demux: mkv: make sure we send the first valid PCR before we send a valid block
Negative or VLC_TICK_INVALID timestamps are not sent as a PCR but there might still be such blocks sent before the PCR.
This can be backported to 3.0, adjusting the mtime/vlc_tick difference.
Fixes #26263 (closed)
Merge request reports
Activity
changed milestone to %4.0
added Component::Demuxers: MKV label
Does what #26263 (closed) says, but the sample provided in that issue works fine without this change on 4.0...
added MRStatus::Acceptable label
- Resolved by Steve Lhomme
@robUx4 The sample works fine on 4.x but not 3.x without this change. So this should be backported to 3.x if it solves the issue there.
added MRStatus::InReview label and removed MRStatus::Acceptable label
mentioned in issue #25129 (closed)
added 1 commit
- 3ef07ad2 - demux: mkv: send the latest known PCR after each block sent
added 1 commit
- 3e97381d - demux: mkv: send the latest known PCR after each block sent
edit: It does not fix #25129 (closed), I was testing the wrong version.
libavformat parses the packets when queuing them and extract the proper duration for all audio packets. So laced frames never have an unknown duration (and thus starting point) in lavf.
To do the same in our demuxer we would need to parse all audio codecs (which most likely use lacing) to find how many samples a frame contains. This is similar to adding a packetizer for these channels. But we don't have an Opus packetizer (yet).
It does fix the remaining packets at the beginning in #26263 (closed) after the !857 (merged) backport of the DTS packetizer, without the 3rd patch that sets the PCR after the first frame of a lace. (tested on 4.0 and 3.0)
added MRStatus::Acceptable label and removed MRStatus::InReview label
added MRStatus::Accepted label and removed MRStatus::Acceptable label
MR Acceptance result
This MergeRequest has been Accepted! Congratulations.MR acceptance checks details:
-
MR should be considered mergeable by Gitlab -
Last pipeline should be successful -
MergeRequest should have at least one external review and/or vote -
All threads should be resolved, and score >= 0 -
MergeRequest should have no activity (threads/votes) for (24h/24h)
-
added 7 commits
-
51bad829...c651b10d - 5 commits from branch
videolan:master
- 7a5eede4 - demux: mkv: turn the PCR update into a function
- a18356f3 - demux: mkv: make sure we send the first valid PCR before we send a valid block
-
51bad829...c651b10d - 5 commits from branch
enabled an automatic merge when the pipeline for a18356f3 succeeds
mentioned in merge request !941 (merged)