[vlc-commits] [Git][videolan/vlc][3.0.x] 2 commits: demux/mkv: use %4.4s to log a FourCC

Steve Lhomme (@robUx4) gitlab at videolan.org
Fri Apr 24 09:02:06 UTC 2026



Steve Lhomme pushed to branch 3.0.x at VideoLAN / VLC


Commits:
7f045072 by Steve Lhomme at 2026-04-24T08:28:27+00:00
demux/mkv: use %4.4s to log a FourCC

No need to call vlc_fourcc_to_char() for that.

(cherry picked from commit 880043e35859bb11cfe7f17e208cb281b432876b)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -
281d3218 by Steve Lhomme at 2026-04-24T08:28:27+00:00
demux: mkv: do not accept any (uncompressed) video FourCC for supposedly raw video

Fixes #29776

(cherry picked from commit 4352adf39542199c184a9c99bc2665dd1e8b064c)
Signed-off-by: Steve Lhomme <robux4 at ycbcr.xyz>

- - - - -


2 changed files:

- modules/demux/mkv/matroska_segment_parse.cpp
- modules/demux/mkv/mkv.hpp


Changes:

=====================================
modules/demux/mkv/matroska_segment_parse.cpp
=====================================
@@ -659,13 +659,8 @@ void matroska_segment_c::ParseTrackEntry( const KaxTrackEntry *m )
             ONLY_FMT(VIDEO);
             if ( colourspace.ValidateSize() )
             {
-                char clrspc[5];
-
-                vars.tk->fmt.i_codec = GetFOURCC( colourspace.GetBuffer() );
-
-                vlc_fourcc_to_char( vars.tk->fmt.i_codec, clrspc );
-                clrspc[4]  = '\0';
-                debug( vars, "Colour Space=%s", clrspc );
+                vars.tk->uncompressed_fourcc = GetFOURCC( colourspace.GetBuffer() );
+                debug( vars, "Colour Space=%4.4s", (const char*)&vars.tk->uncompressed_fourcc );
             }
         }
 #if LIBMATROSKA_VERSION >= 0x010405
@@ -1645,7 +1640,21 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk )
             vars.p_tk->b_pts_only = true;
         }
         S_CASE("V_UNCOMPRESSED") {
-            msg_Dbg( vars.p_demuxer, "uncompressed format detected");
+            if (vars.p_tk->uncompressed_fourcc == 0)
+                msg_Dbg( vars.p_demuxer, "uncompressed format with no FourCC");
+            else
+            {
+                const char *desc = vlc_fourcc_GetDescription(VIDEO_ES, vars.p_tk->uncompressed_fourcc);
+                if (desc[0])
+                {
+                    vars.p_fmt->i_codec = vars.p_tk->uncompressed_fourcc;
+                    msg_Dbg( vars.p_demuxer, "uncompressed format codec=%4.4s", (const char*)&vars.p_tk->uncompressed_fourcc );
+                }
+                else
+                {
+                    msg_Dbg( vars.p_demuxer, "uncompressed format unknown video codec=%4.4s", (const char*)&vars.p_tk->uncompressed_fourcc );
+                }
+            }
         }
         S_CASE("V_FFV1") {
             vars.p_fmt->i_codec = VLC_CODEC_FFV1;


=====================================
modules/demux/mkv/mkv.hpp
=====================================
@@ -235,6 +235,7 @@ class mkv_track_t
         es_format_t fmt;
         float       f_fps;
         es_out_id_t *p_es;
+        vlc_fourcc_t uncompressed_fourcc = 0;
 
         /* audio */
         unsigned int i_original_rate;



View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/4a41ddfed30e11ad912e50b44e64ad70c5b4b0b7...281d32189370c3ff70d36e277203bb252a170574

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/4a41ddfed30e11ad912e50b44e64ad70c5b4b0b7...281d32189370c3ff70d36e277203bb252a170574
You're receiving this email because of your account on code.videolan.org.




More information about the vlc-commits mailing list