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 607842 - Audio comes out with short breaks after resume pipeline (paused->playing)
Audio comes out with short breaks after resume pipeline (paused->playing)
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.10.25
Other Linux
: Normal blocker
: 0.10.26
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-01-23 05:36 UTC by SeungBae Shin
Modified: 2010-01-28 15:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed patch (4.25 KB, patch)
2010-01-28 15:00 UTC, Wim Taymans
committed Details | Review

Description SeungBae Shin 2010-01-23 05:36:29 UTC
Overview: 
Audio comes out with short breaks after resume pipeline (paused->playing)

Steps to Reproduce: 
1)	Make pipeline to play normal audio file such as mp3.
2)	set pipeline to playing->pause ->playing

Actual Results: 
1)	Sound are breaking shortly.
2)	When you resume, short play->short mute->play

Expected Results: 
Audio should played smoothly without any mute sound.

Build Date & Platform: 
Build 2010-01-18 on Ubuntu 8.04
Build 2010-01-18 on ARM target

Additional Builds and Platforms: 
This occurs both host (ubuntu 8.04) and ARM target

Additional Information:  
I found that this happens after this commit (http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=6affcdd2ad04e66b197e097a3cfc24c1d4508bfe)
It is strange that code in “case GST_STATE_CHANGE_PLAYING_TO_PAUSED:”is moved from downstream part to upstream part.
When I rollbacked the location of that code to downstream part, audio breaks can’t be heard.
I’m not sure the actual purpose of that code movement but I think this is bug.
Comment 1 Wim Taymans 2010-01-28 12:55:03 UTC
I tried moving that code back but it still gives a gap for me. Are you using alsa or pulseaudio?
Comment 2 Wim Taymans 2010-01-28 13:17:46 UTC
I get the error with pulsesink all the time but not with alsa only when I move the code to its previous location.
Comment 3 Wim Taymans 2010-01-28 15:00:51 UTC
Created attachment 152488 [details] [review]
proposed patch

This patch also recalculates the start_time after chaining up to the parent. We still have to recalculate before chaining up because else we might call the state change of our children without setting the start_time on them.
Comment 4 Wim Taymans 2010-01-28 15:43:55 UTC
commit 69c531784e2b220465df99848fc886bbebd666e5
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Thu Jan 28 15:55:27 2010 +0100

    pipeline: Take start_time after chaining up too
    
    Refactor the code to take the current start_time when going to PAUSED.
    Make sure we also call the start_time update code after we chained up to the
    parent bin.
    
    Fixes #607842