Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
can be used together.
A non flushing seek might take some time to perform as the currently
playing data in the pipeline will not be cleared.
An accurate seek might be slower for formats that don't have any indexes
or timestamp markers in the stream. Specifying this flag might require a
complete scan of the file in those cases.
When performing a segment seek: after the playback of the segment completes,
no EOS will be emmited by the element that performed the seek, but a
GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
When this message is posted, it is possible to send a new seek event to
continue playback. With this seek method it is possible to perform seamless
looping or simple linear editing.
When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode
playback, the GST_SEEK_FLAG_SKIP flag can be used to instruct decoders
and demuxers to adjust the playback rate by skipping frames. This can improve
performance and decrease CPU usage because not all frames need to be decoded.
The GST_SEEK_FLAG_SNAP_BEFORE flag can be used to snap to the previous
relevant location, and the GST_SEEK_FLAG_SNAP_AFTER flag can be used to
select the next relevant location. If KEY_UNIT is specified, the relevant
location is a keyframe. If both flags are specified, the nearest of these
locations will be selected. If none are specified, the implementation is
free to select whichever it wants.
The before and after here are in running time, so when playing backwards,
the next location refers to the one that will played in next, and not the
one that is located after in the actual source stream.
Also see part-seeking.txt in the GStreamer design documentation for more
details on the meaning of these flags and the behaviour expected of
elements that handle them.
GST_SEEK_FLAG_NONE
no flag
GST_SEEK_FLAG_FLUSH
flush pipeline
GST_SEEK_FLAG_ACCURATE
accurate position is requested, this might
be considerably slower for some formats.
GST_SEEK_FLAG_KEY_UNIT
seek to the nearest keyframe. This might be
faster but less accurate.
GST_SEEK_FLAG_SEGMENT
perform a segment seek.
GST_SEEK_FLAG_SKIP
when doing fast foward or fast reverse playback, allow
elements to skip frames instead of generating all
frames.
GST_SEEK_FLAG_SNAP_BEFORE
go to a location before the requested position,
if KEY_UNIT this means the keyframe at or before the
requested position the one at or before the seek target.
GST_SEEK_FLAG_SNAP_AFTER
go to a location after the requested position,
if KEY_UNIT this means the keyframe at of after the
requested position.
GST_SEEK_FLAG_SNAP_NEAREST
go to a position near the requested position,
if KEY_UNIT this means the keyframe closest to the
requested position, if both keyframes are at an equal
distance, behaves like SNAP_BEFORE.
Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags can be used together. A non flushing seek might take some time to perform as the currently playing data in the pipeline will not be cleared. An accurate seek might be slower for formats that don't have any indexes or timestamp markers in the stream. Specifying this flag might require a complete scan of the file in those cases. When performing a segment seek: after the playback of the segment completes, no EOS will be emmited by the element that performed the seek, but a GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element. When this message is posted, it is possible to send a new seek event to continue playback. With this seek method it is possible to perform seamless looping or simple linear editing. When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode playback, the GST_SEEK_FLAG_SKIP flag can be used to instruct decoders and demuxers to adjust the playback rate by skipping frames. This can improve performance and decrease CPU usage because not all frames need to be decoded. The GST_SEEK_FLAG_SNAP_BEFORE flag can be used to snap to the previous relevant location, and the GST_SEEK_FLAG_SNAP_AFTER flag can be used to select the next relevant location. If KEY_UNIT is specified, the relevant location is a keyframe. If both flags are specified, the nearest of these locations will be selected. If none are specified, the implementation is free to select whichever it wants. The before and after here are in running time, so when playing backwards, the next location refers to the one that will played in next, and not the one that is located after in the actual source stream. Also see part-seeking.txt in the GStreamer design documentation for more details on the meaning of these flags and the behaviour expected of elements that handle them. GST_SEEK_FLAG_NONE no flag GST_SEEK_FLAG_FLUSH flush pipeline GST_SEEK_FLAG_ACCURATE accurate position is requested, this might be considerably slower for some formats. GST_SEEK_FLAG_KEY_UNIT seek to the nearest keyframe. This might be faster but less accurate. GST_SEEK_FLAG_SEGMENT perform a segment seek. GST_SEEK_FLAG_SKIP when doing fast foward or fast reverse playback, allow elements to skip frames instead of generating all frames. GST_SEEK_FLAG_SNAP_BEFORE go to a location before the requested position, if KEY_UNIT this means the keyframe at or before the requested position the one at or before the seek target. GST_SEEK_FLAG_SNAP_AFTER go to a location after the requested position, if KEY_UNIT this means the keyframe at of after the requested position. GST_SEEK_FLAG_SNAP_NEAREST go to a position near the requested position, if KEY_UNIT this means the keyframe closest to the requested position, if both keyframes are at an equal distance, behaves like SNAP_BEFORE.