[gst-devel] State changes from PLAY -> READY -> PLAY only work with mad plugin?
Georg Sauthoff
g_sauthoff at web.de
Thu Mar 4 12:47:13 CET 2010
Hi,
I am playing around with the gstreamer API and currently I am trying to
make a pipeline stop (works) and make it to play from the beginning
again (works just in one case).
In the test program I construct the pipeline via:
pipeline = gst_parse_launch(argv[1], &error);
With this example
filesrc location=some.mp3 ! mad ! audioconvert ! audioresample ! alsasink
it is no problem to to command pipeline state changes
via
gst_element_set_state(pipeline, state);
in such a way
GST_STATE_PLAYING -> READY -> PLAYING
or
PLAYING -> READY -> PAUSED -> PLAYING
With the above pipeline, these state changes work like expected.
But with a pipeline like
filesrc location=some.ogg ! oggdemux ! vorbisdec ! audioconvert ! audioresample ! alsasink
or
filesrc location=some.mp3 ! decodebin2 ! audioconvert ! audioresample ! alsasink
the state change sequences fail:
GST_STATE_PLAYING -> READY -> ***FAIL*** PLAYING
or
PLAYING -> READY -> ***FAIL*** PAUSED -> PLAYING
For the ogg vorbis example:
Error was: gstoggdemux.c(3251): gst_ogg_demux_loop ():
/GstPipeline:pipeline0/GstOggDemux:oggdemux0:
stream stopped, reason not-linked message: Internal data stream error.
Which looks to me like, hm, a bit kryptic.
Obviously, I am missing something about the use of the gstreamer
API. What is the problem with the last two
pipelines/state-change-sequences?
Best regards
Georg
PS: I am using gstreamer 0.10 under Ubuntu 9.10.
More information about the gstreamer-devel
mailing list