GNOME Bugzilla – Bug 338419
Regression in the handling of files with multiple audio/subtitle streams
Last modified: 2006-04-22 21:16:15 UTC
I just discovered a file that refuses to preroll properly in playbin. After investigating, it turns out that the file has 2 audio tracks. Decodebin relies on pad_probes to detect data passing each decoder source pad. In this case, the 2nd audio track never triggers the pad probe because it never outputs a buffer. Instead, it is just performing a buffer-alloc and discovering that downstream is not linked (It is not the selected track and the StreamSelector is returning not-linked) There are 2 solutions: 1) Get decodebin to also detect an attempt at buffer-allocation and mark that pad as prerolled. pad_probes do not get called for buffer-alloc, so this will either need core changes, or decodebin needs changing to block the pads instead. 2) Restore the old behaviour of StreamSelector to always perform a fallback buffer-allocation, even for non-selected pads. Since 2) is less intrusive, and fixes the regression, attaching a patch for that.
Created attachment 63428 [details] [review] fix regression in multiple-stream scenario
commited to CVS