[gst-devel] question on seek

LRN lrn1986 at gmail.com
Wed Apr 8 13:17:30 CEST 2009


Albert Costa wrote:
> Hi All,
> I have a simple question: I have an application where I want to display only a subset of a video. My pipeline can be resumed to 'filesrc ! decodebin ! ffmegcolorspace ! queue ! directdrawsink'. To see only a part of the video, I use following :
>
> GstEvent* seek_event;
> seek_event = gst_event_new_seek (1.0, GST_FORMAT_TIME,
>                 (GstSeekFlags) (GST_SEEK_FLAG_SEGMENT | GST_SEEK_FLAG_FLUSH),
>                 GST_SEEK_TYPE_SET, start_time,
>                 GST_SEEK_TYPE_SET, stop_time);
>
>               gst_element_set_state(m_pipeline, GST_STATE_PLAYING);
>               gst_element_get_state(m_pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
>               gst_element_send_event(m_pipeline, seek_event);
>
> where start/stop_time are values for the start and end positions in my file.
> Everything works fine, except for the fact that just before displaying the video at position start (and then playing up to stop position), I do see the first (0) frame of the video.
> Is there a way to avoid this and have the pipeline really starting from the position I want? 
>
> Regards,
> Al
>   
Try to set the pipeline to GST_STATE_PAUSED first, then seek, then set
it to GST_STATE_PLAYING.
If that doesn't help, try gnonlin.




More information about the gstreamer-devel mailing list