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 757225 - Freezing with crossfade backend
Freezing with crossfade backend
Status: RESOLVED OBSOLETE
Product: rhythmbox
Classification: Other
Component: playback
HEAD
Other Linux
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
: 761289 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2015-10-28 00:23 UTC by rosenp
Modified: 2018-05-24 18:35 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
debug info when the issue occurs. (5.82 KB, text/plain)
2015-11-01 19:50 UTC, Tasos Sahanidis
Details

Description rosenp 2015-10-28 00:23:59 UTC
Steps to reproduce

1: Play a song
2: Pause it
3: Resume
4: Forward to next track

happens on latest git as of this report. On Arch.

The interesting part is that the freeze seems to last the duration of the pause.
Comment 1 Tasos Sahanidis 2015-11-01 19:50:10 UTC
I am also affected by this bug on Ubuntu 15.10.
It happens on all Rhythmbox versions (even ones that worked before), after the upgrade from 15.04.

I also noticed that the duration counter seems to get "confused".
( https://vps.tasossah.com/bugs/rhythmbox_xfade.jpg )

The bug can easily be reproduced with the steps mentioned by the bug reporter on a Ubuntu 15.10 Live CD/ISO inside a Virtual Machine.
Comment 2 Tasos Sahanidis 2015-11-01 19:50:53 UTC
Created attachment 314587 [details]
debug info when the issue occurs.
Comment 3 Jonathan Matthew 2015-11-02 10:51:35 UTC
I am unable to reproduce this.

What versions of GStreamer and its plugin packages do you have installed?  Does this happen for all file types, or just mp3?  What mp3 decoder plugin(s) do you have installed?
Comment 4 Tasos Sahanidis 2015-11-02 13:55:14 UTC
I just realised that the bug reporter probably meant that the UI freezes.

In my case the UI is still responsive, but the application has no control over the track that is currently playing, and then the music stops after some time (depending on the pause duration).
I think they are both caused by the same issue, however apologies if the bug is not the same.

From what I have seen the issue is format-independentas I have encountered it while playing flac, mp3 and opus music files.

The version of gstreamer installed in my system is the one that comes with Ubuntu, which is 1.6.0.
Here is a list the gstreamer1-related packages in my installation:
https://vps.tasossah.com/bugs/gstreamer.txt

As I mentioned earlier, this can be reproduced with a couple of flac files on a stock Ubuntu 15.10 ISO in a VM, without even needing to install it.

This leads me to believe that it is not a change specific to my system, but possibly a change in gstreamer or another library.
Comment 5 rosenp 2015-11-04 01:06:34 UTC
I'm on arch with latest gstreamer(well, everything i guess). All gstreamer plugins are installed. Happens to me with all types.
Comment 6 Jonathan Matthew 2015-11-10 08:08:03 UTC
(In reply to rosenp from comment #5)
> I'm on arch with latest gstreamer(well, everything i guess). All gstreamer
> plugins are installed. Happens to me with all types.

This isn't very helpful.  Please give actual version numbers.

It appears that this only happens with the pulsesink in gst-plugins-good 1.6.x as I've tried alsasink and sndiosink on machines with gstreamer 1.6.x without seeing it, while I do see it with pulsesink on one of those machines.
Comment 7 rosenp 2015-11-10 18:50:54 UTC
from pacman -Q: 

gst-libav 1.6.1-1
gst-plugins-bad 1.6.1-1
gst-plugins-base 1.6.1-1
gst-plugins-base-libs 1.6.1-1
gst-plugins-good 1.6.1-1
gst-plugins-ugly 1.6.1-1

Can't say i have any idea how to switch to alsasink or sndiosink. Pulseaudio is at version 7.1 on this machine. I use it since gnome requires it.
Comment 8 Jonathan Matthew 2016-01-05 13:51:48 UTC
I haven't had any time to look at this until today, but I think I've figured it out now.

When all streams are paused, rhythmbox is still playing a silent stream (ideally it would pause the sink completely, but this doesn't work for various other reasons).  The buffers that make up this stream have the 'gap' flag set on them which allows downstream elements to skip processing them.

As part of fixing bug 735666, the audio sink base class started dropping gap buffers rather than rendering them.  Most audio sinks seem to insert silence by themselves to fill in gaps between buffers rendered to them, but pulsesink doesn't.  The pulseaudio server then sees a gap in the stream it gets from rhythmbox, resulting in silence, and I'm guessing it also messes up gstreamer's idea of the stream timestamp too.

We can work around this by playing extremely quiet noise instead of silence, but this is a pretty horrible thing to have to do.
Comment 9 Jonathan Matthew 2016-01-06 13:03:51 UTC
commit 039da36 works around this by using appsrc to produce silence rather than audiotestsrc.  the buffers appsrc produces don't have the GAP flag set, so they don't cause pulsesink to do bad things.
Comment 10 Jonathan Matthew 2016-01-29 20:49:24 UTC
*** Bug 761289 has been marked as a duplicate of this bug. ***
Comment 11 Tasos Sahanidis 2016-03-19 09:58:53 UTC
After much testing and waiting for some other bugs to get fixed, as well as upgrading Pulseaudio to version 7, the issue seems to be completely resolved.

Thank you!
Comment 12 GNOME Infrastructure Team 2018-05-24 18:35:24 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/rhythmbox/issues/1424.