[gst-devel] Change pipeline's state to playing, null, playing

Juraj Kubelka juraj.kubelka at googlemail.com
Tue Jun 16 13:59:16 CEST 2009


On Tue, Jun 16, 2009 at 12:39 PM, Dan Taylor <dan.taylor9 at ca.rr.com> wrote:
>
> Juraj Kubelka wrote:
> > Hi!
> >
> > I tried to change pipeline's state to PLAYING, then to NULL and then
> > to PLAYING. But the last state change is never happened. It waits
> > forever (because of blocked method pipeline.get_state()). I found out
> > message which says: filesink is changing state asynchronously to PLAYING.
> >
> > 0:00:04.310890050  5634 0x132efd0 INFO            GST_STATES
> > gstbin.c:2197:gst_bin_change_state_func:<pipeline> child 'file' is
> > changing state asynchronously to PLAYING
> >
> > But I don't know why. I would like to reuse the same pipeline. For
> > know: create it, play, stop, play, stop...  Pipeline is simple:
> > alsasrc ! queue ! audioconvert ! vorbisenc ! oggmux ! filesink.
> >
> > It also says:
> >
> > 0:00:04.393084573  5634 0x160abe0 WARN                oggmux
> > gstoggmux.c:1132:gst_ogg_mux_process_best_pad:<multiplexer> no
> > subsequent buffer and EOS not reached
> > 0:00:04.393095274  5634 0x160abe0 WARN             vorbisenc
> > vorbisenc.c:1196:gst_vorbis_enc_chain:<encoder> Failed to push headers
> > 0:00:04.422744230  5634 0x15de340 INFO               basesrc
> > gstbasesrc.c:2114:gst_base_src_loop:<source> pausing after
> > gst_pad_push() = wrong-state
> >
> > maybe because of a message above when state was changing from PLAYING
> > to NULL:
> >
> > 0:00:02.272544776  5634 0x1625690 INFO               basesrc
> > gstbasesrc.c:2021:gst_base_src_loop:<source> pausing after
> > gst_base_src_get_range() = wrong-state
> > 0:00:02.272570930  5634 0x132efd0 INFO             GST_EVENT
> > gstpad.c:4317:gst_pad_send_event:<queue:sink> Received event on
> > flushing pad. Discarding
> >
> >
> > Can you give me an advice?
> > Thank you a lot!
> > Jura
>
> Apparently, when a pipeline is set to NULL, all of the elements are
> released (recursively) so the pointers to them are no longer valid.
>
> Are you changing elements in the pipeline so that you go to NULL, rather
> than READY, or are you just changing element properties?

My intention is somehow close OGG file, and say to pipeline continue
in saving to another file. I think it means to change file location
and inform vorbisenc to start from beginning. I don't know how to do
it properly.

Thank you,
Jura




More information about the gstreamer-devel mailing list