demux/mkv: force the packetizer to fill AV1 extradata without optional OBUs
authorSteve Lhomme <robux4@ycbcr.xyz>
Fri, 29 Nov 2024 10:27:50 +0000 (11:27 +0100)
committerSebastian Ramacher <sramacher@debian.org>
Tue, 21 Jan 2025 18:02:47 +0000 (19:02 +0100)
The hardware decoders need it and the packetizer can fill it for us.

(cherry picked from commit f05f3388d32bfff5c20de710f79a87a914dcd166)

Gbp-Pq: Name 0109-demux-mkv-force-the-packetizer-to-fill-AV1-extradata.patch

modules/demux/mkv/matroska_segment_parse.cpp

index 15680314cb86a030519115050538f9d2db5dc46f..428e7816561e1bd5c070a8d5d7d5dfd1ba473db2 100644 (file)
@@ -1621,6 +1621,8 @@ bool matroska_segment_c::TrackInit( mkv_track_t * p_tk )
             vars.p_tk->b_pts_only = true;
 
             fill_extra_data( vars.p_tk, 0 );
+            if (vars.p_fmt->i_extra <= 4)
+                vars.p_fmt->b_packetized = false; // force full extradata by the packetizer
         }
         S_CASE("V_MPEG4/MS/V3") {
             vars.p_fmt->i_codec = VLC_CODEC_DIV3;