Struct gstreamer::SeekFlags [−][src]
pub struct SeekFlags { /* fields omitted */ }
Expand description
Flags to be used with ElementExtManual::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 emitted 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 only changing the playback rate and not the direction, the
INSTANT_RATE_CHANGE
flag can be used for a non-flushing seek
to signal that the rate change should be applied immediately. This requires
special support in the seek handlers (e.g. demuxers) and any elements
synchronizing to the clock, and in general can’t work in all cases (for example
UDP streaming where the delivery rate is controlled by a remote server). The
instant-rate-change mode supports changing the trickmode-related GST_SEEK_ flags,
but can’t be used in conjunction with other seek flags that affect the new
playback position - as the playback position will not be changing.
When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode
playback, the TRICKMODE
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.
Beyond that, the TRICKMODE_KEY_UNITS
flag can be used to
request that decoders skip all frames except key units, and
TRICKMODE_NO_AUDIO
flags can be used to request that audio
decoders do no decoding at all, and simple output silence.
The SNAP_BEFORE
flag can be used to snap to the previous
relevant location, and the 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.
Implementations
accurate position is requested, this might be considerably slower for some formats.
seek to the nearest keyframe. This might be faster but less accurate.
when doing fast forward or fast reverse playback, allow elements to skip frames instead of generating all frames. (Since: 1.6)
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.
go to a location after the requested position,
if KEY_UNIT
this means the keyframe at of after the
requested position.
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
.
when doing fast forward or fast reverse playback, request that elements only decode keyframes and skip all other content, for formats that have keyframes. (Since: 1.6)
when doing fast forward or fast reverse playback, request that audio decoder elements skip decoding and output only gap events or silence. (Since: 1.6)
This is supported on crate feature v1_18
only.
v1_18
only.When doing fast forward or fast reverse playback, request that elements only decode keyframes and forward predicted frames and skip all other content (for example B-Frames), for formats that have keyframes and forward predicted frames. (Since: 1.18)
This is supported on crate feature v1_18
only.
v1_18
only.Signals that a rate change should be applied immediately. Only valid if start/stop position are GST_CLOCK_TIME_NONE, the playback direction does not change and the seek is not flushing. (Since: 1.18)
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Returns true
if there are flags common to both self
and other
.
Returns true
all of the flags in other
are contained within self
.
Trait Implementations
Disables all flags disabled in the set.
Adds the set of flags.
Toggles the set of flags.
Extends a collection with the contents of an iterator. Read more
extend_one
)Extends a collection with exactly one element.
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
type Checker = GenericValueTypeChecker<Self>
type Checker = GenericValueTypeChecker<Self>
Value type checker.
Get the contained value from a Value
. Read more
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Disables all flags enabled in the set.
Auto Trait Implementations
impl RefUnwindSafe for SeekFlags
impl UnwindSafe for SeekFlags
Blanket Implementations
Mutably borrows from an owned value. Read more
Returns a SendValue
clone of self
.