GNOME Bugzilla – Bug 594136
[alsasink] Regression from 0.10.23 -- element reuse doesn't work
Last modified: 2009-09-09 14:23:53 UTC
Created attachment 142474 [details] play_and_skip.pl After upgrade from gst-plugins-base-0.10.23 to gst-plugins-base-0.10.24 (on Gentoo Linux) I found bug: After song played gmb switch to next song and pause appear (progress bar freeze) - it waiting couple minutes and then start play. So I start topic at https://sourceforge.net/forum/message.php?msg_id=7565832 and by Quentin helping me discover this problem so I attached 2 scripts (perl and python) those script try play first 10 sec from each given files from command line in 0.10.23 all ok - play 10sec each file but in 0.10.24 (and from git too) - only first file played run like: GST_REGISTRY_FORK="no" GST_REGISTRY_UPDATE="no" GST_DEBUG_NO_COLOR=1 GST_DEBUG=2 perl play_and_skip.pl /path/to/*.(mp3|ogg) after all investigations we discovering that problem exists only if use alsasink, if I change sink to osssink, pulsesink, etc - all works fine
Created attachment 142475 [details] play_and_skip.py
I can confirm this here, with GIT and alsasink it doesn't work while it works just fine with other sinks (pulsesink at least). Not sure what the problem here is... alsasink correctly receives the decoded buffers from the second and following files and writes them but nothing can be heard.
pulsesink has code to deal with a ringbuffer reset. This code is now added to the baseaudiosink (and will be removed from pulsesink) commit fe47c6c4d51ed764d823d2d797db2a13b65712e1 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Wed Sep 9 16:19:32 2009 +0200 baseaudiosink: correct for clock reset When going to NULL, we reset the ringbuffer so that it starts beck from 0. We also make sure that the clock is updated with the elapsed time so that it alsways increments even when the ringbuffer goes back to 0. When this happened we need to adjust the sample position for the reset ringbuffer. Fixes #594136