After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 727421 - Why eos event is converted to gap event when no stream data was seen
Why eos event is converted to gap event when no stream data was seen
Status: RESOLVED NOTABUG
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.2.3
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-04-01 09:59 UTC by zmafox
Modified: 2014-04-02 13:02 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description zmafox 2014-04-01 09:59:50 UTC
Hi:

    We have an mp4 file with normal video and bad audio, when try to play, both video and audio decoders are created and demux sends data to decoders. As all audio data was not decoded by audio decoder, we tried to stop audio stream and let video played alone. we send EOS event to demux's audio pad and it was forwarded to stream synchronizer, then it was converted to gap event and send to alsasink, but base audio sink report "Sink not negotiated before GAP event." because no segment event was send to audio sink and the pipeline stops.

I wonder why eos event is converted to gap event when no stream data was seen in streamsynchronizer. No more data was sent after eos event and I want to know why audio sink still want to preroll.
Comment 1 Jan Schmidt 2014-04-02 13:02:41 UTC
You need to send a CAPS event before the EOS.

streamsynchronizer converts the EOS to a gap event to keep the audio chain alive, for potential gapless playback at the end of this sequence.