Rewind a pipeline
Jorge Fernandez Monteagudo
jorgefm at cirsa.com
Tue May 28 23:46:22 PDT 2013
>> In an old post I've found a solution... if I do
>>
>> ret = gst_element_set_state( decoding_data.pipeline, GST_STATE_PAUSED );
>> if( ret == GST_STATE_CHANGE_FAILURE ) {
>> printf( "Failed to pause pipeline!\n" );
>> return 1;
>> }
>> gst_element_get_state(decoding_data.pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
>
>Ideally you send the seek from the asyn bus handler when your pipeline
>has reached paused. This has the advantage that it would not block.
With the async bus handler I need to run 'g_main_loop_run' in order to get bus messages
but then I lose control of my main loop. With the sync bus handler I have it working with the
next pipeline
gst-launch-0.10 filesrc location=<file.mp4> ! qtdemux ! ffdec_h264 ! xvimagesink
but it doesn't works with
gst-launch-0.10 filesrc location=<file.mp4> ! qtdemux ! vaapidecode ! vaapisink
in this case it freezes the stream at the begin then it sends a lot of frames trying to synchronize
again. It seems some internal 'vaapidecode' problem handling segments.
And finally I've checked in an arm platform with this pipeline
gst-launch-0.10 filesrc location=<file.mp4> ! qtdemux ! TIViddec2 engineName=codecServer ! omapdmaifbsink
but it fails to play the video the first time if I put the gst_element_get_state(decoding_data.pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
sentence, and I can't do a segment seek for the next videos in any condition... Maybe the TI codecs are in a
more primitive situation than the standard codecs.
________________________________________
From: gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org [gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org] On Behalf Of Stefan Sauer [ensonic at hora-obscura.de]
Sent: Tuesday, May 28, 2013 11:30 PM
To: gstreamer-devel at lists.freedesktop.org
Subject: Re: Rewind a pipeline
On 05/28/2013 02:16 PM, Jorge Fernandez Monteagudo wrote:
> In an old post I've found a solution... if I do
>
> ret = gst_element_set_state( decoding_data.pipeline, GST_STATE_PAUSED );
> if( ret == GST_STATE_CHANGE_FAILURE ) {
> printf( "Failed to pause pipeline!\n" );
> return 1;
> }
> gst_element_get_state(decoding_data.pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
Ideally you send the seek from the asyn bus handler when your pipeline
has reached paused. This has the advantage that it would not block.
Stefan
>
> then the 'GST_MESSAGE_SEGMENT_DONE' message is sent at the end of playing... Now
> I have the deadlock Stefan said :)
>
>
> ________________________________________
> From: gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org [gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org] On Behalf Of Jorge Fernandez Monteagudo [jorgefm at cirsa.com]
> Sent: Tuesday, May 28, 2013 1:57 PM
> To: Discussion of the development of and with GStreamer
> Subject: RE: Rewind a pipeline
>
> Hi again!
>
> I've tested your suggestions with no luck. The handler remains the same, because I'm still not receiving the
> GST_MESSAGE_SEGMENT_DONE message then no deadlock still arise.
>
> Now I have :
>
> in main
>
> // Create pipeline.
> decoding_data.pipeline = get_pipeline( file_video );
> if( decoding_data.pipeline == NULL ) {
> printf( "Error creating pipeline! Exiting...\n" );
> return 1;
> }
>
> // Init playing loop flags.
> decoding_data.eos_detected = 0;
> decoding_data.error_detected = 0;
>
> // Play new pipeline.
> printf( "Going to play...\n" );
>
> ret = gst_element_set_state( decoding_data.pipeline, GST_STATE_PAUSED );
> if( ret == GST_STATE_CHANGE_FAILURE ) {
> printf( "Failed to pause pipeline!\n" );
> return 1;
> }
>
> gst_element_seek( decoding_data.pipeline, 1.0, GST_FORMAT_TIME,
> (GstSeekFlags)(GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH),
> GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
>
> ret = gst_element_set_state( decoding_data.pipeline, GST_STATE_PLAYING );
> if( ret == GST_STATE_CHANGE_FAILURE ) {
> printf( "Failed to start up pipeline!\n" );
> return 1;
> }
>
> // Endless loop.
> main_loop();
>
> and in the handler
>
> static GstBusSyncReply on_sync_message( GstBus *bus, GstMessage *msg, gpointer data )
> {
> DecodingPrivateData *priv = (DecodingPrivateData *)data;
>
> GstBusSyncReply ret = GST_BUS_PASS;
> switch( GST_MESSAGE_TYPE( msg ) ) {
> case GST_MESSAGE_SEGMENT_DONE:
> {
> printf( "Looping on segment done\n" );
> gst_element_seek( priv->pipeline, 1.0, GST_FORMAT_TIME,
> (GstSeekFlags)(GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_ACCURATE),
> GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE);
> break;
> }
> case GST_MESSAGE_EOS:
> printf( "End-of-stream\n" );
> priv->eos_detected = 1;
> ret = GST_BUS_DROP;
> break;
> case GST_MESSAGE_ERROR:
> {
> gchar *debug = NULL;
> GError *err = NULL;
>
> gst_message_parse_error( msg, &err, &debug );
> printf( "Error: %s\n", err->message );
> g_error_free( err );
>
> if( debug ) {
> printf( "Debug details: %s\n", debug );
> g_free( debug );
> }
>
> priv->error_detected = 1;
> ret = GST_BUS_DROP;
> break;
> }
> default:
> break;
> }
>
> return ret;
> }
>
>
> Attached is the output I get with GST_DEBUG=*:3. I only can see the "End-of-stream" own trace...
>
> 0:00:00.000100217 23881 0x9961c00 INFO GST_INIT gst.c:613:init_pre: Initializing GStreamer Core Library version 0.10.36
> 0:00:00.000150551 23881 0x9961c00 INFO GST_INIT gst.c:614:init_pre: Using library installed in /usr/local/lib
> 0:00:00.000164272 23881 0x9961c00 INFO GST_INIT gst.c:624:init_pre: Linux wsi-jorge 3.2.0-43-generic-pae #68-Ubuntu SMP Wed May 15 03:55:10 UTC 2013 i686
> 0:00:00.000242339 23881 0x9961c00 INFO GST_INIT gstquery.c:107:_gst_query_initialize: init queries
> 0:00:00.000786369 23881 0x9961c00 INFO GST_INIT gstmessage.c:73:_gst_message_initialize: init messages
> 0:00:00.001055920 23881 0x9961c00 INFO GST_PLUGIN_LOADING gstplugin.c:350:_gst_plugin_initialize: registering 0 static plugins
> 0:00:00.001161416 23881 0x9961c00 INFO GST_PLUGIN_LOADING gstplugin.c:255:gst_plugin_register_static: registered static plugin "staticelements"
> 0:00:00.001177677 23881 0x9961c00 INFO GST_PLUGIN_LOADING gstplugin.c:257:gst_plugin_register_static: added static plugin "staticelements", result: 1
> 0:00:00.014182548 23881 0x9961c00 INFO GST_REGISTRY gstregistry.c:1648:ensure_current_registry: reading registry cache: /home/jorge/.gstreamer-0.10/registry.i686.bin
> 0:00:00.025588412 23881 0x9961c00 INFO GST_REGISTRY gstregistrybinary.c:614:gst_registry_binary_read_cache: loaded /home/jorge/.gstreamer-0.10/registry.i686.bin in 0.011373 seconds
> 0:00:00.025685429 23881 0x9961c00 INFO GST_REGISTRY gstregistry.c:1518:scan_and_update_registry: Validating plugins from registry cache: /home/jorge/.gstreamer-0.10/registry.i686.bin
> 0:00:00.026803036 23881 0x9961c00 INFO GST_REGISTRY gstregistry.c:1610:scan_and_update_registry: Registry cache has not changed
> 0:00:00.026819350 23881 0x9961c00 INFO GST_REGISTRY gstregistry.c:1683:ensure_current_registry: registry reading and updating done, result = 1
> 0:00:00.026831271 23881 0x9961c00 INFO GST_INIT gst.c:805:init_post: GLib runtime version: 2.32.3
> 0:00:00.026842066 23881 0x9961c00 INFO GST_INIT gst.c:807:init_post: GLib headers version: 2.32.3
> 0:00:00.026854421 23881 0x9961c00 INFO GST_INIT gst.c:456:gst_init_check: initialized GStreamer successfully
> 0:00:00.026887137 23881 0x9961c00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:374:gst_element_factory_create: creating element "pipeline" named "pipeline"
> 0:00:00.028592825 23881 0x9961c00 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstcoreelements.so" loaded
> 0:00:00.028620542 23881 0x9961c00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:374:gst_element_factory_create: creating element "filesrc" named "filesrc"
> 0:00:00.028754712 23881 0x9961c00 INFO GST_ELEMENT_PADS gstelement.c:728:gst_element_add_pad:<GstBaseSrc at 0x9a7e088> adding pad 'src'
> 0:00:00.031282887 23881 0x9961c00 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstisomp4.so" loaded
> 0:00:00.031306077 23881 0x9961c00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:376:gst_element_factory_create: creating element "qtdemux"
> 0:00:00.031535774 23881 0x9961c00 INFO GST_ELEMENT_PADS gstelement.c:728:gst_element_add_pad:<GstQTDemux at 0x9a8a098> adding pad 'sink'
> 0:00:00.035315334 23881 0x9961c00 INFO GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/local/lib/gstreamer-0.10/libgstvaapi.so" loaded
> 0:00:00.035343158 23881 0x9961c00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:376:gst_element_factory_create: creating element "vaapidecode"
> 0:00:00.035471425 23881 0x9961c00 INFO GST_ELEMENT_PADS gstelement.c:728:gst_element_add_pad:<GstVaapiDecode at 0x9a97020> adding pad 'sink'
> 0:00:00.035500220 23881 0x9961c00 INFO GST_ELEMENT_PADS gstelement.c:728:gst_element_add_pad:<GstVaapiDecode at 0x9a97020> adding pad 'src'
> 0:00:00.035519360 23881 0x9961c00 INFO GST_ELEMENT_FACTORY gstelementfactory.c:376:gst_element_factory_create: creating element "vaapisink"
> 0:00:00.035671250 23881 0x9961c00 INFO GST_ELEMENT_PADS gstelement.c:728:gst_element_add_pad:<GstBaseSink at 0x9a9a188> adding pad 'sink'
> 0:00:00.035732001 23881 0x9961c00 INFO GST_ELEMENT_PADS gstutils.c:1698:gst_element_link_pads_full: trying to link element filesrc:(any) to element qtdemux0:(any)
> 0:00:00.035748075 23881 0x9961c00 INFO GST_PADS gstutils.c:1032:gst_pad_check_link: trying to link filesrc:src and qtdemux0:sink
> 0:00:00.035771237 23881 0x9961c00 INFO GST_PADS gstutils.c:1596:prepare_link_maybe_ghosting: filesrc and qtdemux0 in same bin, no need for ghost pads
> 0:00:00.035798518 23881 0x9961c00 INFO GST_PADS gstpad.c:1978:gst_pad_link_prepare: trying to link filesrc:src and qtdemux0:sink
> 0:00:00.035811170 23881 0x9961c00 INFO GST_PADS gstpad.c:2161:gst_pad_link_full: linked filesrc:src and qtdemux0:sink, successful
> 0:00:00.035837631 23881 0x9961c00 INFO GST_ELEMENT_PADS gstutils.c:1698:gst_element_link_pads_full: trying to link element vaapidecode0:(any) to element vaapisink0:(any)
> 0:00:00.035852321 23881 0x9961c00 INFO GST_PADS gstutils.c:1032:gst_pad_check_link: trying to link vaapidecode0:src and vaapisink0:sink
> 0:00:00.035876824 23881 0x9961c00 INFO GST_PADS gstutils.c:1596:prepare_link_maybe_ghosting: vaapidecode0 and vaapisink0 in same bin, no need for ghost pads
> 0:00:00.035899706 23881 0x9961c00 INFO GST_PADS gstpad.c:1978:gst_pad_link_prepare: trying to link vaapidecode0:src and vaapisink0:sink
> 0:00:00.035920370 23881 0x9961c00 INFO GST_PADS gstpad.c:2161:gst_pad_link_full: linked vaapidecode0:src and vaapisink0:sink, successful
> 0:00:00.035985590 23881 0x9961c00 INFO filesrc gstfilesrc.c:374:gst_file_src_set_location: filename : ./roma.mp4
> 0:00:00.036001003 23881 0x9961c00 INFO filesrc gstfilesrc.c:375:gst_file_src_set_location: uri : file:///home/jorge/vaapi/gstreamer/render/loopplayer/roma.mp4
> Going to play...
> libva info: VA-API version 0.33.0
> libva info: va_getDriverName() returns 0
> libva info: Trying to open /usr/local/lib/dri/nvidia_drv_video.so
> libva info: Found init function __vaDriverInit_0_33
> libva info: va_openDriver() returns 0
> 0:00:00.059292595 23881 0x9961c00 INFO vaapisink gstvaapisink.c:311:gst_vaapisink_ensure_display: created VA/X11 display 0x9a3ea68
> 0:00:00.059349461 23881 0x9961c00 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<vaapisink0> completed state change to READY
> 0:00:00.059389622 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<vaapisink0> notifying about state-changed NULL to READY (VOID_PENDING pending)
> 0:00:00.059461847 23881 0x9961c00 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'vaapisink0' changed state to 2(READY) successfully
> 0:00:00.059515674 23881 0x9961c00 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<vaapidecode0> completed state change to READY
> 0:00:00.059550931 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<vaapidecode0> notifying about state-changed NULL to READY (VOID_PENDING pending)
> 0:00:00.059611322 23881 0x9961c00 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'vaapidecode0' changed state to 2(READY) successfully
> 0:00:00.059689997 23881 0x9961c00 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<qtdemux0> completed state change to READY
> 0:00:00.059728076 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<qtdemux0> notifying about state-changed NULL to READY (VOID_PENDING pending)
> 0:00:00.059780587 23881 0x9961c00 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'qtdemux0' changed state to 2(READY) successfully
> 0:00:00.059822973 23881 0x9961c00 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<filesrc> completed state change to READY
> 0:00:00.059857025 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<filesrc> notifying about state-changed NULL to READY (VOID_PENDING pending)
> 0:00:00.059907839 23881 0x9961c00 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'filesrc' changed state to 2(READY) successfully
> 0:00:00.059952959 23881 0x9961c00 INFO GST_STATES gstelement.c:2435:gst_element_continue_state:<pipeline> committing state from NULL to READY, pending PAUSED, next PAUSED
> 0:00:00.059986943 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<pipeline> notifying about state-changed NULL to READY (PAUSED pending)
> 0:00:00.060051248 23881 0x9961c00 INFO GST_STATES gstelement.c:2442:gst_element_continue_state:<pipeline> continue state change READY to PAUSED, final PAUSED
> 0:00:00.060151988 23881 0x9961c00 INFO GST_STATES gstbin.c:2532:gst_bin_change_state_func:<pipeline> child 'vaapisink0' is changing state asynchronously to PAUSED
> 0:00:00.060205344 23881 0x9961c00 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<vaapidecode0> completed state change to PAUSED
> 0:00:00.060240416 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<vaapidecode0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
> 0:00:00.060291579 23881 0x9961c00 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'vaapidecode0' changed state to 3(PAUSED) successfully
> 0:00:00.060353128 23881 0x9961c00 INFO filesrc gstfilesrc.c:969:gst_file_src_start:<filesrc> opening file ./roma.mp4
> 0:00:00.060421562 23881 0x9961c00 INFO filesrc gstfilesrc.c:969:gst_file_src_start:<filesrc> opening file ./roma.mp4
> 0:00:00.060654318 23881 0x9961c00 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<qtdemux0> completed state change to PAUSED
> 0:00:00.060745439 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<qtdemux0> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
> 0:00:00.060822904 23881 0x9961c00 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'qtdemux0' changed state to 3(PAUSED) successfully
> 0:00:00.060881669 23881 0x9961c00 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<filesrc> completed state change to PAUSED
> 0:00:00.060919965 23881 0x9961c00 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<filesrc> notifying about state-changed READY to PAUSED (VOID_PENDING pending)
> 0:00:00.060969450 23881 0x9961c00 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'filesrc' changed state to 3(PAUSED) successfully
> 0:00:00.060970680 23881 0x9967350 WARN qtdemux qtdemux_types.c:191:qtdemux_type_get: unknown QuickTime node type iods
> 0:00:00.061035882 23881 0x9967350 WARN qtdemux qtdemux_types.c:191:qtdemux_type_get: unknown QuickTime node type avc1
> 0:00:00.061025975 23881 0x9961c00 INFO GST_EVENT gstevent.c:1020:gst_event_new_seek: creating seek rate 1.000000, format TIME, flags 9, start_type 2, start 0:00:00.000000000, stop_type 0, stop 99:99:99.999999999
> 0:00:00.061061124 23881 0x9967350 WARN qtdemux qtdemux_types.c:191:qtdemux_type_get: unknown QuickTime node type avcC
> 0:00:00.061107967 23881 0x9967350 WARN qtdemux qtdemux_types.c:191:qtdemux_type_get: unknown QuickTime node type pasp
> 0:00:00.061143024 23881 0x9967350 INFO qtdemux qtdemux.c:8867:qtdemux_parse_tree:<qtdemux0> timescale: 1000
> 0:00:00.061176582 23881 0x9967350 INFO qtdemux qtdemux.c:8868:qtdemux_parse_tree:<qtdemux0> duration: 7849
> 0:00:00.061260792 23881 0x9967350 INFO qtdemux qtdemux.c:6904:qtdemux_parse_trak:<qtdemux0> type avc1 caps video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)main, codec_data=(buffer)014d401fffe10019674d401fe88020030d87080000030008000003018078c1889001000568ebc3cb20
> 0:00:00.061343647 23881 0x9967350 WARN qtdemux qtdemux.c:7044:qtdemux_parse_trak:<qtdemux0> unknown version 00000000
> 0:00:00.061399197 23881 0x9967350 INFO qtdemux qtdemux.c:7322:qtdemux_parse_trak:<qtdemux0> type mp4a caps audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)121056e500
> 0:00:00.061482391 23881 0x9967350 INFO GST_SCHEDULING gstpad.c:5021:gst_pad_get_range_unchecked:<filesrc:src> getrange failed, flow: unexpected
> 0:00:00.061507943 23881 0x9967350 INFO GST_SCHEDULING gstpad.c:5167:gst_pad_pull_range:<qtdemux0:sink> pullrange failed, flow: unexpected
> 0:00:00.061644391 23881 0x9967350 INFO GST_ELEMENT_PADS gstelement.c:728:gst_element_add_pad:<qtdemux0> adding pad 'video_00'
> 0:00:00.061714630 23881 0x9967350 INFO GST_ELEMENT_PADS gstelement.c:975:gst_element_get_static_pad: found pad vaapidecode0:sink
> 0:00:00.061750188 23881 0x9967350 INFO GST_PADS gstpad.c:1978:gst_pad_link_prepare: trying to link qtdemux0:video_00 and vaapidecode0:sink
> 0:00:00.062017151 23881 0x9967350 INFO GST_PADS gstpad.c:2161:gst_pad_link_full: linked qtdemux0:video_00 and vaapidecode0:sink, successful
> on_pad_demux_added - New pad 'video_00' to 0x9a97020, caps 'video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)3.1, profile=(string)main, codec_data=(buffer)014d401fffe10019674d401fe88020030d87080000030008000003018078c1889001000568ebc3cb20, width=(int)1024, height=(int)768, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)4/3'
> 0:00:00.062172622 23881 0x9967350 INFO GST_ELEMENT_PADS gstelement.c:728:gst_element_add_pad:<qtdemux0> adding pad 'audio_00'
> on_pad_demux_added - New pad 'audio_00' to 0x9a97020, caps 'audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profile=(string)lc, profile=(string)lc, codec_data=(buffer)121056e500, rate=(int)44100, channels=(int)2'
> 0:00:00.062287216 23881 0x9967350 INFO qtdemux qtdemux.c:1891:qtdemux_post_global_tags:<qtdemux0> posting global tags: taglist, encoder=(string)Lavf53.21.1, container-format=(string)"ISO\ MP4/M4A";
> 0:00:00.062345989 23881 0x9967350 INFO GST_EVENT gstevent.c:600:gst_event_new_new_segment_full: creating newsegment update 0, rate 1.000000, format GST_FORMAT_TIME, start 0:00:00.041666666, stop 0:00:07.875666666, position 0:00:00.000000000
> 0:00:00.076019183 23881 0x9967350 INFO GST_EVENT gstevent.c:600:gst_event_new_new_segment_full: creating newsegment update 0, rate 1.000000, format GST_FORMAT_TIME, start 0:00:00.000000000, stop 0:00:07.848344671, position 0:00:00.000000000
> 0:00:00.275594460 23881 0x9967350 INFO GST_STATES gstbin.c:2942:bin_handle_async_done:<pipeline> committing state from READY to PAUSED, old pending PLAYING
> 0:00:00.275658618 23881 0x9967350 INFO GST_STATES gstbin.c:2971:bin_handle_async_done:<pipeline> continue state change, pending PLAYING
> 0:00:00.275706563 23881 0x9967350 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<pipeline> notifying about state-changed READY to PAUSED (PLAYING pending)
> 0:00:00.275872085 23881 0x9ac5a90 INFO GST_STATES gstbin.c:2764:gst_bin_continue_func:<pipeline> continue state change PAUSED to PLAYING, final PLAYING
> 0:00:00.276167710 23881 0x9ac5a90 INFO GST_EVENT gstevent.c:1136:gst_event_new_latency: creating latency event 0:00:00.000000000
> 0:00:00.276253243 23881 0x9ac5a90 INFO GST_PADS gstpad.c:3554:gst_pad_event_default_dispatch:<qtdemux0:video_00> Sending event 0x9ac5db0 (latency) to all internally linked pads
> 0:00:00.276298509 23881 0x9ac5a90 WARN bin gstbin.c:2395:gst_bin_do_latency_func:<pipeline> did not really configure latency of 0:00:00.000000000
> 0:00:00.276381367 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<vaapisink0> completed state change to PLAYING
> 0:00:00.276403599 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<vaapisink0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
> 0:00:00.276432417 23881 0x9ac5a90 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'vaapisink0' changed state to 4(PLAYING) successfully
> 0:00:00.276457416 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<vaapidecode0> completed state change to PLAYING
> 0:00:00.276475246 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<vaapidecode0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
> 0:00:00.276500457 23881 0x9ac5a90 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'vaapidecode0' changed state to 4(PLAYING) successfully
> 0:00:00.276522972 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<qtdemux0> completed state change to PLAYING
> 0:00:00.276537599 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<qtdemux0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
> 0:00:00.276561572 23881 0x9ac5a90 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'qtdemux0' changed state to 4(PLAYING) successfully
> 0:00:00.276582044 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<filesrc> completed state change to PLAYING
> 0:00:00.276598646 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<filesrc> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
> 0:00:00.276621404 23881 0x9ac5a90 INFO GST_STATES gstbin.c:2526:gst_bin_change_state_func:<pipeline> child 'filesrc' changed state to 4(PLAYING) successfully
> 0:00:00.276640428 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2460:gst_element_continue_state:<pipeline> completed state change to PLAYING
> 0:00:00.276657697 23881 0x9ac5a90 INFO GST_STATES gstelement.c:2365:_priv_gst_element_state_changed:<pipeline> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
> 0:00:00.334378017 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.201446, diff -32950050, timestamp 0:00:00.041666667
> 0:00:00.364676141 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.203024, diff -24854048, timestamp 0:00:00.083333334
> 0:00:00.439366071 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.204168, diff -34012181, timestamp 0:00:00.125000000
> 0:00:00.447510378 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.210761, diff -3003149, timestamp 0:00:00.166666667
> 0:00:00.484655857 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.215517, diff -36364985, timestamp 0:00:00.208333334
> 0:00:00.526393387 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.217806, diff -41280934, timestamp 0:00:00.250000000
> 0:00:00.568060381 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.218097, diff -41056166, timestamp 0:00:00.291666667
> 0:00:00.609709031 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.216749, diff -41044383, timestamp 0:00:00.333333334
> 0:00:00.651397944 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.214083, diff -40953047, timestamp 0:00:00.375000000
> 0:00:00.693062854 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.210311, diff -41204697, timestamp 0:00:00.416666667
> 0:00:00.734716836 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.205688, diff -41051542, timestamp 0:00:00.458333334
> 0:00:00.776360416 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.200403, diff -41064134, timestamp 0:00:00.500000000
> 0:00:00.818081565 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.195620, diff -35699457, timestamp 0:00:00.541666667
> 0:00:00.859729163 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.190258, diff -41187941, timestamp 0:00:00.583333334
> 0:00:00.901361600 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.184460, diff -41205180, timestamp 0:00:00.625000000
> 0:00:00.943080945 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.178477, diff -40521488, timestamp 0:00:00.666666667
> 0:00:00.984742940 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.172295, diff -41024516, timestamp 0:00:00.708333334
> 0:00:01.026411039 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.166015, diff -40935964, timestamp 0:00:00.750000000
> 0:00:01.068062508 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.159656, diff -41192059, timestamp 0:00:00.791666667
> 0:00:01.109721818 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.153424, diff -40427268, timestamp 0:00:00.833333334
> 0:00:01.151400049 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.147234, diff -41023380, timestamp 0:00:00.875000000
> 0:00:01.193048022 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.141144, diff -40929375, timestamp 0:00:00.916666667
> 0:00:01.234727706 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.135130, diff -41221166, timestamp 0:00:00.958333334
> 0:00:01.276397780 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.129254, diff -41056163, timestamp 0:00:01.000000000
> 0:00:01.318105851 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.123542, diff -41040974, timestamp 0:00:01.041666667
> 0:00:01.359728455 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.118037, diff -40891554, timestamp 0:00:01.083333334
> 0:00:01.401377688 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.112685, diff -41207197, timestamp 0:00:01.125000000
> 0:00:01.443049413 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.107527, diff -41065804, timestamp 0:00:01.166666667
> 0:00:01.484741801 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.102567, diff -41070724, timestamp 0:00:01.208333334
> 0:00:01.526394469 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.097835, diff -40934329, timestamp 0:00:01.250000000
> 0:00:01.568043753 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.093274, diff -41208340, timestamp 0:00:01.291666667
> 0:00:01.609719583 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.088916, diff -41074126, timestamp 0:00:01.333333334
> 0:00:01.651396459 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.084769, diff -41007882, timestamp 0:00:01.375000000
> 0:00:01.693072886 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.080840, diff -40950041, timestamp 0:00:01.416666667
> 0:00:01.734718035 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.077073, diff -41196503, timestamp 0:00:01.458333334
> 0:00:01.776411193 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.073495, diff -41059143, timestamp 0:00:01.500000000
> 0:00:01.818085247 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.070105, diff -41032529, timestamp 0:00:01.541666667
> 0:00:01.859734932 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.066912, diff -40936618, timestamp 0:00:01.583333334
> 0:00:01.901394759 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.063858, diff -41202125, timestamp 0:00:01.625000000
> 0:00:01.943064168 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.060970, diff -41047924, timestamp 0:00:01.666666667
> 0:00:01.984743746 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.058241, diff -41045269, timestamp 0:00:01.708333334
> 0:00:02.026392460 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.055684, diff -40937774, timestamp 0:00:01.750000000
> 0:00:02.068093476 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.053238, diff -41207255, timestamp 0:00:01.791666667
> 0:00:02.109715640 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.050937, diff -41017229, timestamp 0:00:01.833333334
> 0:00:02.151377127 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.048772, diff -41023703, timestamp 0:00:01.875000000
> 0:00:02.193069874 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.046748, diff -40955858, timestamp 0:00:01.916666667
> 0:00:02.234691012 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.044810, diff -41199016, timestamp 0:00:01.958333334
> 0:00:02.276396624 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.042978, diff -41094974, timestamp 0:00:02.000000000
> 0:00:02.318056578 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.041255, diff -41047938, timestamp 0:00:02.041666667
> 0:00:02.359725716 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.039654, diff -40952798, timestamp 0:00:02.083333334
> 0:00:02.401395892 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.038116, diff -41210183, timestamp 0:00:02.125000000
> 0:00:02.443079878 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.036671, diff -41051290, timestamp 0:00:02.166666667
> 0:00:02.484703623 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.035318, diff -41039951, timestamp 0:00:02.208333334
> 0:00:02.526396501 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.034063, diff -40966370, timestamp 0:00:02.250000000
> 0:00:02.568045326 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.032853, diff -41206647, timestamp 0:00:02.291666667
> 0:00:02.609751915 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.031717, diff -41066877, timestamp 0:00:02.333333334
> 0:00:02.651396695 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.030663, diff -40998725, timestamp 0:00:02.375000000
> 0:00:02.693076013 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.029690, diff -40960392, timestamp 0:00:02.416666667
> 0:00:02.734726618 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.028750, diff -41192917, timestamp 0:00:02.458333334
> 0:00:02.776392389 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.027869, diff -41052044, timestamp 0:00:02.500000000
> 0:00:02.818087709 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.027025, diff -41147293, timestamp 0:00:02.541666667
> 0:00:02.859738842 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.026260, diff -40935018, timestamp 0:00:02.583333334
> 0:00:02.901397903 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.025515, diff -41195977, timestamp 0:00:02.625000000
> 0:00:02.943064703 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.024821, diff -41048317, timestamp 0:00:02.666666667
> 0:00:02.984707242 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.024174, diff -41043647, timestamp 0:00:02.708333334
> 0:00:03.026397228 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.023585, diff -40973361, timestamp 0:00:02.750000000
> 0:00:03.068065049 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.023004, diff -41202698, timestamp 0:00:02.791666667
> 0:00:03.109693056 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.022463, diff -41049450, timestamp 0:00:02.833333334
> 0:00:03.151355024 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.021958, diff -41063368, timestamp 0:00:02.875000000
> 0:00:03.193040451 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.021497, diff -40999442, timestamp 0:00:02.916666667
> 0:00:03.234715058 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.021032, diff -41232097, timestamp 0:00:02.958333334
> 0:00:03.276409147 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.020598, diff -41071090, timestamp 0:00:03.000000000
> 0:00:03.318043251 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.020201, diff -41023347, timestamp 0:00:03.041666667
> 0:00:03.359691860 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.019849, diff -40968764, timestamp 0:00:03.083333334
> 0:00:03.401356750 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.019485, diff -41244716, timestamp 0:00:03.125000000
> 0:00:03.443059220 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.019140, diff -41095206, timestamp 0:00:03.166666667
> 0:00:03.484705011 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018824, diff -41051816, timestamp 0:00:03.208333334
> 0:00:03.526390353 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018547, diff -40973131, timestamp 0:00:03.250000000
> 0:00:03.568044587 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018260, diff -41211988, timestamp 0:00:03.291666667
> 0:00:03.609830625 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017995, diff -41064652, timestamp 0:00:03.333333334
> 0:00:03.651370180 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017789, diff -40859189, timestamp 0:00:03.375000000
> 0:00:03.693031812 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017610, diff -40975435, timestamp 0:00:03.416666667
> 0:00:03.734819471 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017402, diff -41259922, timestamp 0:00:03.458333334
> 0:00:03.776388569 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017270, diff -40737096, timestamp 0:00:03.500000000
> 0:00:03.818103041 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017142, diff -41048295, timestamp 0:00:03.541666667
> 0:00:03.859733252 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017044, diff -40918771, timestamp 0:00:03.583333334
> 0:00:03.901366762 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016911, diff -41238518, timestamp 0:00:03.625000000
> 0:00:03.943063002 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016846, diff -40722739, timestamp 0:00:03.666666667
> 0:00:03.984743896 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016777, diff -41048385, timestamp 0:00:03.708333334
> 0:00:04.026397378 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016730, diff -40916290, timestamp 0:00:03.750000000
> 0:00:04.068059981 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016649, diff -41200799, timestamp 0:00:03.791666667
> 0:00:04.109672408 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016565, diff -41061132, timestamp 0:00:03.833333334
> 0:00:04.151392321 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016479, diff -41071229, timestamp 0:00:03.875000000
> 0:00:04.193075294 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016415, diff -40945114, timestamp 0:00:03.916666667
> 0:00:04.234882113 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016323, diff -41190965, timestamp 0:00:03.958333334
> 0:00:04.276402108 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016264, diff -40898934, timestamp 0:00:04.000000000
> 0:00:04.318053048 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016205, diff -41045879, timestamp 0:00:04.041666667
> 0:00:04.359725023 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016165, diff -40947716, timestamp 0:00:04.083333334
> 0:00:04.401397241 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016091, diff -41209839, timestamp 0:00:04.125000000
> 0:00:04.443058136 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016021, diff -41050954, timestamp 0:00:04.166666667
> 0:00:04.484739113 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015953, diff -41052342, timestamp 0:00:04.208333334
> 0:00:04.526408641 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016813, diff -36117784, timestamp 0:00:04.250000000
> 0:00:04.568048829 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017476, diff -41193048, timestamp 0:00:04.291666667
> 0:00:04.609717366 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017967, diff -41218798, timestamp 0:00:04.333333334
> 0:00:04.651399819 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018346, diff -41047795, timestamp 0:00:04.375000000
> 0:00:04.693073128 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018630, diff -41042144, timestamp 0:00:04.416666667
> 0:00:04.734703370 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018853, diff -40946712, timestamp 0:00:04.458333334
> 0:00:04.776384719 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018969, diff -41236629, timestamp 0:00:04.500000000
> 0:00:04.818087779 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.019029, diff -41065345, timestamp 0:00:04.541666667
> 0:00:04.859742230 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.019050, diff -41024658, timestamp 0:00:04.583333334
> 0:00:04.901379927 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.019055, diff -40937503, timestamp 0:00:04.625000000
> 0:00:04.943050730 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018994, diff -41219459, timestamp 0:00:04.666666667
> 0:00:04.984747006 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018909, diff -41060454, timestamp 0:00:04.708333334
> 0:00:05.026413023 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018813, diff -41018371, timestamp 0:00:04.750000000
> 0:00:05.068060880 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018724, diff -40938220, timestamp 0:00:04.791666667
> 0:00:05.109662459 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018591, diff -41207609, timestamp 0:00:04.833333334
> 0:00:05.151392780 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018443, diff -41101685, timestamp 0:00:04.875000000
> 0:00:05.193077960 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018294, diff -41042839, timestamp 0:00:04.916666667
> 0:00:05.234742430 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018166, diff -40933346, timestamp 0:00:04.958333334
> 0:00:05.276386456 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.018008, diff -41194149, timestamp 0:00:05.000000000
> 0:00:05.318067215 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017850, diff -41070072, timestamp 0:00:05.041666667
> 0:00:05.359723309 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017698, diff -41037554, timestamp 0:00:05.083333334
> 0:00:05.401405917 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017571, diff -40945760, timestamp 0:00:05.125000000
> 0:00:05.443240763 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017418, diff -41194166, timestamp 0:00:05.166666667
> 0:00:05.484744342 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017305, diff -40870115, timestamp 0:00:05.208333334
> 0:00:05.526401367 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017196, diff -41036244, timestamp 0:00:05.250000000
> 0:00:05.568064832 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.017108, diff -40945207, timestamp 0:00:05.291666667
> 0:00:05.609704633 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016988, diff -41202552, timestamp 0:00:05.333333334
> 0:00:05.651401229 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016875, diff -41042076, timestamp 0:00:05.375000000
> 0:00:05.693072520 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016766, diff -41046199, timestamp 0:00:05.416666667
> 0:00:05.734729426 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016682, diff -40942309, timestamp 0:00:05.458333334
> 0:00:05.776398810 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016569, diff -41207168, timestamp 0:00:05.500000000
> 0:00:05.818047114 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016462, diff -41051001, timestamp 0:00:05.541666667
> 0:00:05.859719901 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016358, diff -41064624, timestamp 0:00:05.583333334
> 0:00:05.901371426 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016276, diff -40970745, timestamp 0:00:05.625000000
> 0:00:05.943221522 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016163, diff -41234488, timestamp 0:00:05.666666667
> 0:00:05.984700279 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016090, diff -40884776, timestamp 0:00:05.708333334
> 0:00:06.026375274 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016016, diff -41073040, timestamp 0:00:05.750000000
> 0:00:06.068010684 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015961, diff -40968370, timestamp 0:00:05.791666667
> 0:00:06.109697733 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015866, diff -41263102, timestamp 0:00:05.833333334
> 0:00:06.151353693 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015779, diff -41061216, timestamp 0:00:05.875000000
> 0:00:06.193039216 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015691, diff -41093740, timestamp 0:00:05.916666667
> 0:00:06.234706647 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015625, diff -40981739, timestamp 0:00:05.958333334
> 0:00:06.276344940 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015530, diff -41233041, timestamp 0:00:06.000000000
> 0:00:06.318056487 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015434, diff -41116783, timestamp 0:00:06.041666667
> 0:00:06.359732954 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015349, diff -41057417, timestamp 0:00:06.083333334
> 0:00:06.401351076 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015297, diff -40928483, timestamp 0:00:06.125000000
> 0:00:06.443003660 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015213, diff -41252497, timestamp 0:00:06.166666667
> 0:00:06.484706070 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015131, diff -41100753, timestamp 0:00:06.208333334
> 0:00:06.526391930 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015056, diff -41083078, timestamp 0:00:06.250000000
> 0:00:06.568026886 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015009, diff -40958489, timestamp 0:00:06.291666667
> 0:00:06.609669918 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014932, diff -41245973, timestamp 0:00:06.333333334
> 0:00:06.651410111 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014858, diff -41100231, timestamp 0:00:06.375000000
> 0:00:06.693081387 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014802, diff -41026260, timestamp 0:00:06.416666667
> 0:00:06.734670822 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014776, diff -40942860, timestamp 0:00:06.458333334
> 0:00:06.776600432 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014713, diff -41268839, timestamp 0:00:06.500000000
> 0:00:06.818087919 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014701, diff -40846822, timestamp 0:00:06.541666667
> 0:00:06.859707282 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014696, diff -41023996, timestamp 0:00:06.583333334
> 0:00:06.901353265 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014708, diff -40975415, timestamp 0:00:06.625000000
> 0:00:06.943032223 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014680, diff -41251225, timestamp 0:00:06.666666667
> 0:00:06.984745358 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014653, diff -41078149, timestamp 0:00:06.708333334
> 0:00:07.026393770 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014635, diff -41031367, timestamp 0:00:06.750000000
> 0:00:07.068034442 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014641, diff -40946990, timestamp 0:00:06.791666667
> 0:00:07.109730736 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014613, diff -41233331, timestamp 0:00:06.833333334
> 0:00:07.151394220 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014634, diff -40819327, timestamp 0:00:06.875000000
> 0:00:07.193060043 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014653, diff -41051623, timestamp 0:00:06.916666667
> 0:00:07.234749937 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014690, diff -40944420, timestamp 0:00:06.958333334
> 0:00:07.276562720 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014695, diff -41185722, timestamp 0:00:07.000000000
> 0:00:07.318092120 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014810, diff -40462938, timestamp 0:00:07.041666667
> 0:00:07.359729672 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.014908, diff -41032221, timestamp 0:00:07.083333334
> 0:00:07.401407452 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015011, diff -40923243, timestamp 0:00:07.125000000
> 0:00:07.443265904 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015067, diff -41192227, timestamp 0:00:07.166666667
> 0:00:07.484716126 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015228, diff -40423715, timestamp 0:00:07.208333334
> 0:00:07.526393044 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015355, diff -41062039, timestamp 0:00:07.250000000
> 0:00:07.568023514 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015472, diff -40962261, timestamp 0:00:07.291666667
> 0:00:07.610563170 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015518, diff -41281555, timestamp 0:00:07.333333334
> 0:00:07.651397729 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015708, diff -40211285, timestamp 0:00:07.375000000
> 0:00:07.693063476 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015856, diff -41052879, timestamp 0:00:07.416666667
> 0:00:07.734727434 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.015987, diff -40958930, timestamp 0:00:07.458333334
> 0:00:07.776618011 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016054, diff -41209132, timestamp 0:00:07.500000000
> 0:00:07.818094502 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016141, diff -40832188, timestamp 0:00:07.541666667
> 0:00:07.859743482 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016208, diff -41018847, timestamp 0:00:07.583333334
> 0:00:07.901392251 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016272, diff -40937381, timestamp 0:00:07.625000000
> 0:00:07.943022919 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016284, diff -41206635, timestamp 0:00:07.666666667
> 0:00:07.984744227 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016274, diff -41095389, timestamp 0:00:07.708333334
> 0:00:08.026408736 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016255, diff -41044216, timestamp 0:00:07.750000000
> 0:00:08.068081048 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016202, diff -41190951, timestamp 0:00:07.791666667
> End-of-stream
> 0:00:08.109502071 23881 0x9967350 INFO GST_EVENT gstevent.c:891:gst_event_new_qos_full: creating qos type 0, proportion 0.016121, diff -41191850, timestamp 0:00:07.833333333
> ^CGoing to stop...
>
> ________________________________________
> From: gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org [gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org] On Behalf Of Stefan Sauer [ensonic at hora-obscura.de]
> Sent: Tuesday, May 28, 2013 11:23 AM
> To: gstreamer-devel at lists.freedesktop.org
> Subject: Re: Rewind a pipeline
>
> On 05/28/2013 08:36 AM, Jorge Fernandez Monteagudo wrote:
>> Hi Stefan!
>>
>> That will be perfect because I'm looking for a playing loop mode. I've been doing some test but I'm not able to
>> get the loop mode working... This is what I'm doing:
>>
>> in main
>>
>> // Create main loop.
>> decoding_data.loop = g_main_loop_new( NULL, FALSE );
>>
>> // Create pipeline.
>> decoding_data.pipeline = get_pipeline( file_video );
>> if( decoding_data.pipeline == NULL ) {
>> printf( "Error creating pipeline! Exiting...\n" );
>> return 1;
>> }
> go to PAUSED first, then seek and then go to playing.
>> // Play new pipeline.
>> printf( "Going to play...\n" );
>> gst_element_seek( decoding_data.pipeline, 1.0, GST_FORMAT_TIME,
>> (GstSeekFlags)(GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE),
>> GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_END, 0);
> For start=0 you waont need the ACCURATE flag. For end, you can also use
> TYPE_NONE and GST_CLOCK_TIME_NONE instead of 0. Not sure if all elements
> handle TYPE_END
>> ret = gst_element_set_state( decoding_data.pipeline, GST_STATE_PLAYING );
>> if( ret == GST_STATE_CHANGE_FAILURE ) {
>> printf( "Failed to start up pipeline!\n" );
>> return 1;
>> }
>>
>> // Endless loop.
>> main_loop();
>>
>>
>> and in the bus messages handler
>>
>> static GstBusSyncReply on_sync_message( GstBus *bus, GstMessage *msg, gpointer data )
>> {
>> DecodingPrivateData *priv = (DecodingPrivateData *)data;
>>
>> // Handle other messages on the bus.
>> GstBusSyncReply ret = GST_BUS_PASS;
>> switch( GST_MESSAGE_TYPE( msg ) ) {
>> case GST_MESSAGE_EOS:
>> printf( "End-of-stream\n" );
>> priv->eos_detected = 1;
>> ret = GST_BUS_DROP;
>> break;
>>
>> case GST_MESSAGE_SEGMENT_DONE:
>> printf( "Looping on segment done\n" );
>> gst_element_seek( priv->pipeline, 1.0, GST_FORMAT_TIME,
>> (GstSeekFlags)(GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_ACCURATE),
>> GST_SEEK_TYPE_SET, 0, GST_SEEK_TYPE_END, 0);
>> break;
>>
>> case GST_MESSAGE_ERROR:
>> {
>> gchar *debug = NULL;
>> GError *err = NULL;
>>
>> gst_message_parse_error( msg, &err, &debug );
>> printf( "Error: %s\n", err->message );
>> g_error_free( err );
>>
>> if( debug ) {
>> printf( "Debug details: %s\n", debug );
>> g_free( debug );
>> }
>>
>> priv->error_detected = 1;
>> ret = GST_BUS_DROP;
>> break;
>> }
>> default:
>> break;
>> }
>>
>> return ret;
>> }
>>
>> I've tried doing the seek before and after gst_element_set_state( decoding_data.pipeline, GST_STATE_PLAYING )
>> with the same result. The video is played once and I only get the GST_MESSAGE_EOS message! What am I missing?
>>
>>
>> Thanks!
>>
>> ________________________________________
>> From: gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org [gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org] On Behalf Of Stefan Sauer [ensonic at hora-obscura.de]
>> Sent: Sunday, May 26, 2013 12:16 PM
>> To: gstreamer-devel at lists.freedesktop.org
>> Subject: Re: Rewind a pipeline
>>
>> On 05/20/2013 03:41 PM, Jorge Fernandez Monteagudo wrote:
>>> Answering myself I've seen using GST_DEBUG that the event is ignored. First I have to set the
>>> pipeline in GST_STATE_PLAYING then send the seek event and now it works!
>> If you go to playing again, you should not need to seek. If you want to
>> play in a loop, you can seek with the SEGMENT flag initially and then
>> wait for SEGMENT_DONE on the bus (instead of EOS) and seek again. The
>> continuation seek won't need the FLUSH flag. This way you get seamless
>> loops.
>>
>> Stefan
>>> Sorry for disturbing the list!
>>>
>>> ________________________________________
>>> From: gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org [gstreamer-devel-bounces+jorgefm=cirsa.com at lists.freedesktop.org] On Behalf Of Jorge Fernandez Monteagudo [jorgefm at cirsa.com]
>>> Sent: Monday, May 20, 2013 3:27 PM
>>> To: gstreamer-devel at lists.freedesktop.org
>>> Subject: Rewind a pipeline
>>>
>>> Hi all!
>>>
>>> Is it possible to reuse a pipeline? I would like to avoid creating and destroying a pipeline when I
>>> want to have a video playing in a loop. How can I do that? When I try to send a seek event I
>>> always get an error. The next code always print "Send seek event failed!"
>>>
>>> // Set the pipeline ready.
>>> ret = gst_element_set_state( pipeline, GST_STATE_READY );
>>> if( ret == GST_STATE_CHANGE_FAILURE ) {
>>> printf( "Failed to start up pipeline!\n" );
>>> done = 1;
>>> return;
>>> }
>>>
>>> // Seek the stream init.
>>> GstEvent *seek_event = NULL;
>>>
>>> seek_event = gst_event_new_seek( 1.0, GST_FORMAT_TIME,
>>> (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT),
>>> GST_SEEK_TYPE_SET, 0LL,
>>> GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE );
>>> if( gst_element_send_event( pipeline, seek_event ) == false ) {
>>> printf( "Send seek event failed!\n" );
>>> done = 1;
>>> return;
>>> }
>>>
>>> Este mensaje se dirige exclusivamente a su destinatario y puede contener informaci?n privilegiada o CONFIDENCIAL. Si no es vd. el destinatario indicado, queda notificado de que la utilizaci?n, divulgaci?n y/o copia sin autorizaci?n est? prohibida en virtud de la legislaci?n vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma v?a y proceda a su destrucci?n.
>>>
>>> This message is intended exclusively for its addressee and may contain information that is CONFIDENTIAL and protected by professional privilege.
>>> If you are not the intended recipient you are hereby notified that any dissemination, copy or disclosure of this communication is strictly prohibited by law. If this message has been received in error, please immediately notify us via e-mail and delete it.
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> Este mensaje se dirige exclusivamente a su destinatario y puede contener informaci?n privilegiada o CONFIDENCIAL. Si no es vd. el destinatario indicado, queda notificado de que la utilizaci?n, divulgaci?n y/o copia sin autorizaci?n est? prohibida en virtud de la legislaci?n vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma v?a y proceda a su destrucci?n.
>
> This message is intended exclusively for its addressee and may contain information that is CONFIDENTIAL and protected by professional privilege.
> If you are not the intended recipient you are hereby notified that any dissemination, copy or disclosure of this communication is strictly prohibited by law. If this message has been received in error, please immediately notify us via e-mail and delete it.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
More information about the gstreamer-devel
mailing list