I'm having a problem with audio playback using GStreamer: I can create
and run the pipeline, and the audio plays just fine, but when I pause and then unpause the pipeline, playback does not resume where it was interrupted, but somewhere (much) farther along. This program demonstrates the problem: #include <stdio.h> #include <unistd.h> #include <gst/gst.h> int main(int argc, char *argv[]) { int t1 = 0, t2 = 0; GError *error = NULL; GstElement *pipeline; if (argc >= 2) sscanf(argv[1], "%d", &t1); if (argc >= 3) sscanf(argv[2], "%d", &t2); gst_init(NULL, NULL); pipeline = gst_parse_launch("filesrc location=zero_to_twenty.au ! auparse ! autoaudiosink", &error); if (pipeline == NULL) { g_printerr("Build pipeline error: %s\n", error->message); return 1; } gst_element_set_state(pipeline, GST_STATE_PLAYING); if (t1 > 0) { sleep(t1); gst_element_set_state(pipeline, GST_STATE_PAUSED); if (t2 > 0) { sleep(t2); gst_element_set_state(pipeline, GST_STATE_PLAYING); } } sleep(22 - t1 - t2); return 0; } The audio file I use for testing is http://service.research.att.com/tokken/zero_to_twenty.au I run the program like ./pausetest 4 2 which will start playback, wait 4 seconds, pause, wait 2 second, unpause, then let playback run to the end. When I do this on my PC, playback resumes a little over four seconds after the place where it was paused; it should resume just before the fourth beep, but instead it resumes just after the eighth. Different timings for the pause/unpause calls cause somewhat different results; even the starting point is somewhat erratic. Is there a way to pause and resume a pipeline without losing data like this? It seems strange that I can't control playback with any accuracy. Am I doing something wrong or is my platform buggy? I'm doing this on a Dell Optiplex 960 running a fully updated Ubuntu 10.04.1 LTS; the gstreamer packages on my system are gstreamer0.10-alsa 0.10.28-1 gstreamer0.10-gnonlin 0.10.15-1 gstreamer0.10-nice 0.0.10-2build1 gstreamer0.10-plugins-base 0.10.28-1 gstreamer0.10-plugins-base-apps 0.10.28-1 gstreamer0.10-plugins-good 0.10.21-1ubuntu3 gstreamer0.10-pulseaudio 0.10.21-1ubuntu3 gstreamer0.10-tools 0.10.28-1 gstreamer0.10-x 0.10.28-1 - Thomas ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today http://p.sf.net/sfu/msIE9-sfdev2dev _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |