gstreamer/gst/playback
Myoungsun Lee 5c8ef0ea05 decodebin: Handle the preroll multi-queue size
Overview:
There are some of interleaved streams which has long-term location of audio data.
It mean the audio data is located far away more than multiqueue size.
In this case, because of multiqueue overrun, the pipeline is stopped.
To prevent hanging-like state, the decodebin needs to handle the queue size.

Caused:
The multiqueue size is not enough, the pipeline will stay being stalled status
and decodebin cannot complete to build decode chain.
In this issue file, decodebin did not receive no_more_pads signal or audio data yet.

Steps to Reproduce:
play the high-resolution(4K file) files or some streaming media(push mode).

Actual Results:
There is no audio or subtitle.
We can see only video or infinite loading.

Resolution:
Decodebin detect this problem, and add extra buffer size to multiqueue.
The multiqueue is larger than before, the next data can be pushed the downstream element.

Additional Information:
The max-preroll extra buffer size is set 8MB.
We can use total pre-roll buffer 10MB.
Only first overrun callback can handle multiqueue size.

https://bugzilla.gnome.org/show_bug.cgi?id=733235
2015-08-18 15:19:02 +03:00
..
.gitignore playsink: remove old marshal remains 2012-07-13 12:35:44 +02:00
gstdecodebin2.c decodebin: Handle the preroll multi-queue size 2015-08-18 15:19:02 +03:00
gstplay-enum.c playbin: add nick for soft colorbalance play flag to fix gst-inspect 2014-04-27 00:26:14 +01:00
gstplay-enum.h playback: Document GST_PLAY_FLAG_SOFT_COLORBALANCE 2015-05-30 01:11:47 +10:00
gstplayback.c streamsynchronizer: Make the element public 2012-11-21 10:29:44 +01:00
gstplayback.h Fix FSF address 2012-11-03 23:05:09 +00:00
gstplaybackutils.c playback: Skip 'ANY' capsfeature while finding the count of common capsfeatures 2015-06-09 10:13:08 +02:00
gstplaybackutils.h playback: Add gstplaybackutils.{h,c} to deploy the common subroutines 2015-06-09 10:13:08 +02:00
gstplaybin2.c playbin: remove unnecessary break 2015-06-29 19:55:34 -03:00
gstplaysink.c playsink: Require the streamvolume interface on the sink when using the sink's volume/mute properties 2015-07-10 11:55:23 +03:00
gstplaysink.h playback: Add video-/audio-filter properties 2014-03-16 18:38:29 +01:00
gstplaysinkaudioconvert.c Fix FSF address 2012-11-03 23:05:09 +00:00
gstplaysinkaudioconvert.h Fix FSF address 2012-11-03 23:05:09 +00:00
gstplaysinkconvertbin.c playsinkconvertbin: remove accept-caps handling 2015-08-14 05:48:31 -03:00
gstplaysinkconvertbin.h playsinkconvertbin: Remove obsolete segment tracking 2013-07-23 13:36:09 +02:00
gstplaysinkvideoconvert.c Fix FSF address 2012-11-03 23:05:09 +00:00
gstplaysinkvideoconvert.h Fix FSF address 2012-11-03 23:05:09 +00:00
gstrawcaps.h playback: add ANY caps features to default audio/video raw caps 2013-12-30 11:25:49 +01:00
gststreamsynchronizer.c streamsynchronizer: Unblock EOS wait when track switching. 2015-06-23 15:28:49 +02:00
gststreamsynchronizer.h streamsynchronizer: Send GAP event to finish preroll when change state from PLAYING to PAUSED 2015-02-16 14:09:43 +02:00
gstsubtitleoverlay.c playback: use the new gst_object api 2015-05-15 14:49:47 +02:00
gstsubtitleoverlay.h subtitleoverlay: Remove some more unneeded segment tracking 2013-07-23 13:41:55 +02:00
gsturidecodebin.c remove unused enum items PROP_LAST 2015-04-24 17:11:01 +01:00
Makefile.am playback: Add gstplaybackutils.{h,c} to deploy the common subroutines 2015-06-09 10:13:08 +02:00