<div dir="ltr">Hi,<br><br>On Thu, Feb 15, 2018 at 2:22 AM, Steve Lhomme <<a href="mailto:robux4@ycbcr.xyz">robux4@ycbcr.xyz</a>> wrote:<br>> Le 15/02/2018 à 05:13, Tristan Matthews a écrit :<br>>><br>>> vlc | branch: master | Tristan Matthews <<a href="mailto:tmatth@videolan.org">tmatth@videolan.org</a>> | Wed Feb 14<br>>> 23:12:07 2018 -0500| [5d0056dc3e2bc11bebf7dfa0ddefaa32f34cefd2] | committer:<br>>> Tristan Matthews<br>>><br>>> demux: mkv: support OPUS/EXPERIMENTAL codec ID<br>><br>><br>> IMO it's not a good move to support temporary versions of a binary format.<br>> How many versions were there ?<br><br>5 it looks like.<br><br>> Can decoders differentiate them ? All of them<br>> ? Why was it called EXPERIMENTAL in the first place ?<br><br>So for context, this codec ID is from files created with mkvtoolnix. There's a caveat for this tool that it can't recover the original Opus file's end trimming for files muxed in experimental mode:<br><a href="https://gitlab.com/mbunkus/mkvtoolnix/commit/6de77e94234f3b0b6ead4596247c4cdb95e65ab8#2205c707f8ec1e0062fb0a16b9a3cccd1b843c3d_1508_1509">https://gitlab.com/mbunkus/mkvtoolnix/commit/6de77e94234f3b0b6ead4596247c4cdb95e65ab8#2205c707f8ec1e0062fb0a16b9a3cccd1b843c3d_1508_1509</a><br><br>It looks like Moritz did that to incrementally add a few features in between his initial patch and the final one, namely:<br><br>Initial patch: <a href="https://gitlab.com/mbunkus/mkvtoolnix/commit/98a580978fb500b13ff806e481b4a6b1f742baa5">https://gitlab.com/mbunkus/mkvtoolnix/commit/98a580978fb500b13ff806e481b4a6b1f742baa5</a><br>Discard padding: <a href="https://gitlab.com/mbunkus/mkvtoolnix/commit/5ee51ef6f599f1f11ff32db15adb0b6ecc25340e">https://gitlab.com/mbunkus/mkvtoolnix/commit/5ee51ef6f599f1f11ff32db15adb0b6ecc25340e</a><br>Write seek preroll: <a href="https://gitlab.com/mbunkus/mkvtoolnix/commit/ea6009c50a54318957bf4c57e25617a1e13a8e7d">https://gitlab.com/mbunkus/mkvtoolnix/commit/ea6009c50a54318957bf4c57e25617a1e13a8e7d</a><br>Write codec delay: <a href="https://gitlab.com/mbunkus/mkvtoolnix/commit/eb63797b7c2274220ee213760d6185d8b05276b6">https://gitlab.com/mbunkus/mkvtoolnix/commit/eb63797b7c2274220ee213760d6185d8b05276b6</a><br>Take codec delay/seek pre-roll into account: <a href="https://gitlab.com/mbunkus/mkvtoolnix/commit/086ec83973cf48c7cfd3e6cd0dd4de8e90926bd1">https://gitlab.com/mbunkus/mkvtoolnix/commit/086ec83973cf48c7cfd3e6cd0dd4de8e90926bd1</a><br><div><br></div><div>I can generate samples for each version and add them to the Trac ticket if needed.<br></div><div><br></div>> Can it be used for<br>> other experiments in the future ?<br><br><div>That seems unlikely.</div><div><br></div><div>Best,</div><div>Tristan<br></div><br>><br>>> Fixes #19660<br>>><br>>>><br>>>> <a href="http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5d0056dc3e2bc11bebf7dfa0ddefaa32f34cefd2">http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5d0056dc3e2bc11bebf7dfa0ddefaa32f34cefd2</a><br>>><br>>> ---<br>>><br>>>   modules/demux/mkv/matroska_segment_parse.cpp | 4 +++-<br>>>   1 file changed, 3 insertions(+), 1 deletion(-)<br>>><br>>> diff --git a/modules/demux/mkv/matroska_segment_parse.cpp<br>>> b/modules/demux/mkv/matroska_segment_parse.cpp<br>>> index 63cf64e346..7b18ee3286 100644<br>>> --- a/modules/demux/mkv/matroska_segment_parse.cpp<br>>> +++ b/modules/demux/mkv/matroska_segment_parse.cpp<br>>> @@ -1753,7 +1753,7 @@ bool matroska_segment_c::TrackInit( mkv_track_t *<br>>> p_tk )<br>>>               vars.p_fmt->i_codec = VLC_CODEC_VORBIS;<br>>>               fill_extra_data( vars.p_tk, 0 );<br>>>           }<br>>> -        S_CASE("A_OPUS") {<br>>> +        static void A_OPUS__helper(HandlerPayload& vars) {<br>>>               vars.p_fmt->i_codec = VLC_CODEC_OPUS;<br>>>               vars.p_tk->b_no_duration = true;<br>>>               if( !vars.p_tk->fmt.audio.i_rate )<br>>> @@ -1772,6 +1772,8 @@ bool matroska_segment_c::TrackInit( mkv_track_t *<br>>> p_tk )<br>>>                   ps, pkt, 2 ) )<br>>>                   msg_Err( vars.p_demuxer, "Couldn't pack OPUS headers");<br>>>           }<br>>> +        S_CASE("A_OPUS")                { A_OPUS__helper( vars ); }<br>>> +        S_CASE("A_OPUS/EXPERIMENTAL")   { A_OPUS__helper( vars ); }<br>>>           static void A_AAC_MPEG__helper(HandlerPayload& vars, int<br>>> i_profile, bool sbr = false) {<br>>>               int i_srate;<br>>>  <br>>> _______________________________________________<br>>> vlc-commits mailing list<br>>> <a href="mailto:vlc-commits@videolan.org">vlc-commits@videolan.org</a><br>>> <a href="https://mailman.videolan.org/listinfo/vlc-commits">https://mailman.videolan.org/listinfo/vlc-commits</a><br>><br>><br>> _______________________________________________<br>> vlc-devel mailing list<br>> To unsubscribe or modify your subscription options:<br>> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div>