[vlc-commits] [Git][videolan/vlc][master] demux: mkv: do not accept any (uncompressed) video FourCC for supposedly raw video
Steve Lhomme (@robUx4)
gitlab at videolan.org
Thu Apr 16 15:58:43 UTC 2026
Steve Lhomme pushed to branch master at VideoLAN / VLC
Commits:
4352adf3 by Steve Lhomme at 2026-04-16T15:43:47+00:00
demux: mkv: do not accept any (uncompressed) video FourCC for supposedly raw video
Fixes #29776
- - - - -
2 changed files:
- modules/demux/mkv/matroska_segment_parse.cpp
- modules/demux/mkv/mkv.hpp
Changes:
=====================================
modules/demux/mkv/matroska_segment_parse.cpp
=====================================
@@ -782,8 +782,8 @@ void matroska_segment_c::ParseTrackEntry( const KaxTrackEntry *m )
ONLY_FMT(VIDEO);
if ( colourspace.ValidateSize() )
{
- vars.tk->fmt.i_codec = GetFOURCC( colourspace.GetBuffer() );
- debug( vars, "Colour Space=%4.4s", (const char*)&vars.tk->fmt.i_codec );
+ vars.tk->uncompressed_fourcc = GetFOURCC( colourspace.GetBuffer() );
+ debug( vars, "Colour Space=%4.4s", (const char*)&vars.tk->uncompressed_fourcc );
}
}
#if LIBMATROSKA_VERSION >= 0x010405
@@ -1918,7 +1918,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
=====================================
@@ -218,6 +218,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/-/commit/4352adf39542199c184a9c99bc2665dd1e8b064c
--
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/4352adf39542199c184a9c99bc2665dd1e8b064c
You're receiving this email because of your account on code.videolan.org.
More information about the vlc-commits
mailing list