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

Juraj Kubelka juraj.kubelka at googlemail.com
Tue Jun 16 14:17:47 CEST 2009


As I tried it right now, whenever status is changed from PLAYING to
READY to PLAYING, the last PLAYING is never happened: "waiting for
element to commit state" (it means filesink element: "child 'file' is
changing state asynchronously to PLAYING").

Only procedure PLAYING, PAUSED, PLAYING works, but I cannot change
filesink's property location, because the file is opened.

On Tue, Jun 16, 2009 at 1:59 PM, Juraj
Kubelka<juraj.kubelka at googlemail.com> wrote:
> 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