GNOME Bugzilla – Bug 385527
oggmux sometimes gets DELTA flag on output wrong near start
Last modified: 2007-06-15 11:17:02 UTC
If oggmux is muxing audio and video, and it chooses to output audio first (presumably because it has earlier timestamps), it gets the delta flags on the output wrong until the first video keyframe is seen. This is because the audio doesn't have the delta flag set ever, and oggmux->delta_pad doesn't get set until oggmux decides to process video. So, it outputs audio pages with the delta flag not set, even though it should be set. This could be fixed by moving the delta_pad decision into the collectpads callback - looking at a buffer on every pad - rather than doing it only on the pad it's currently processing. Also see https://core.fluendo.com/flumotion/trac/ticket/526
* tests/check/pipelines/oggmux.c: (validate_ogg_page), (is_video), (eos_buffer_probe): Add a test that ensures we set DELTA_UNIT on all non-header, non-video buffers, if we have a video stream. * ext/ogg/gstoggmux.c: (gst_ogg_mux_queue_pads), (gst_ogg_mux_process_best_pad): Move setting delta_pad to earlier, where we inspect all pads, so that leading audio pages don't get DELTA_UNIT unset if they come before the first DELTA_UNIT from video pages. Fixes the newly-added test. Fixes #385527.