Enum Class SeekFlags

java.lang.Object
java.lang.Enum<SeekFlags>
org.freedesktop.gstreamer.gst.SeekFlags
All Implemented Interfaces:
Serializable, Comparable<SeekFlags>, Constable, Enumeration

@Generated("org.javagi.JavaGI") public enum SeekFlags extends Enum<SeekFlags> implements Enumeration

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 emitted by the element that performed the seek, but a MessageType.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.

  • Nested Class Summary

    Nested classes/interfaces inherited from class Enum

    Enum.EnumDesc<E>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    accurate position is requested, this might be considerably slower for some formats.
    flush pipeline
    Signals that a rate change should be applied immediately.
    seek to the nearest keyframe.
    no flag
    perform a segment seek.
    go to a location after the requested position, if KEY_UNIT this means the keyframe at of after the requested position.
    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 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, allow elements to skip frames instead of generating all frames.
    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.
    when doing fast forward or fast reverse playback, request that elements only decode keyframes and skip all other content, for formats that have keyframes.
    when doing fast forward or fast reverse playback, request that audio decoder elements skip decoding and output only gap events or silence.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final SeekFlags
    Deprecated backward compatibility flag, replaced by TRICKMODE
  • Method Summary

    Modifier and Type
    Method
    Description
    static @Nullable Type
    Get the GType of the SeekFlags class.
    int
    Get the numeric value of this enum
    static Set<SeekFlags>
    of(int flags)
    Create a new EnumSet<SeekFlags> for the provided bitfield
    static Set<SeekFlags>
    of(MemorySegment address)
    Create a new EnumSet<SeekFlags> for the bitfield in the provided memory address.
    static SeekFlags
    Returns the enum constant of this class with the specified name.
    static SeekFlags[]
    Returns an array containing the constants of this enum class, in the order they are declared.

    Methods inherited from class Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • NONE

      public static final SeekFlags NONE
      no flag
    • FLUSH

      public static final SeekFlags FLUSH
      flush pipeline
    • ACCURATE

      public static final SeekFlags ACCURATE
      accurate position is requested, this might be considerably slower for some formats.
    • KEY_UNIT

      public static final SeekFlags KEY_UNIT
      seek to the nearest keyframe. This might be faster but less accurate.
    • SEGMENT

      public static final SeekFlags SEGMENT
      perform a segment seek.
    • TRICKMODE

      public static final SeekFlags TRICKMODE
      when doing fast forward or fast reverse playback, allow elements to skip frames instead of generating all frames. (Since: 1.6)
    • SNAP_BEFORE

      public static final SeekFlags 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.
    • SNAP_AFTER

      public static final SeekFlags SNAP_AFTER
      go to a location after the requested position, if KEY_UNIT this means the keyframe at of after the requested position.
    • SNAP_NEAREST

      public static final SeekFlags 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.
    • TRICKMODE_KEY_UNITS

      public static final SeekFlags TRICKMODE_KEY_UNITS
      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)
    • TRICKMODE_NO_AUDIO

      public static final SeekFlags TRICKMODE_NO_AUDIO
      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)
    • TRICKMODE_FORWARD_PREDICTED

      public static final SeekFlags TRICKMODE_FORWARD_PREDICTED
      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)
    • INSTANT_RATE_CHANGE

      public static final SeekFlags INSTANT_RATE_CHANGE
      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)
  • Field Details

    • SKIP

      public static final SeekFlags SKIP
      Deprecated backward compatibility flag, replaced by TRICKMODE
  • Method Details

    • values

      public static SeekFlags[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static SeekFlags valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • getValue

      public int getValue()
      Get the numeric value of this enum
      Specified by:
      getValue in interface Enumeration
      Returns:
      the enum value
    • of

      public static Set<SeekFlags> of(int flags)
      Create a new EnumSet<SeekFlags> for the provided bitfield
      Parameters:
      flags - the SeekFlags bitfield
      Returns:
      the EnumSet for the provided bitfield
    • of

      public static Set<SeekFlags> of(MemorySegment address)
      Create a new EnumSet<SeekFlags> for the bitfield in the provided memory address.
      Parameters:
      address - the memory address holding a bitfield value
      Returns:
      the EnumSet for the bitfield in the provided memory address
    • getType

      public static @Nullable Type getType()
      Get the GType of the SeekFlags class.
      Returns:
      the GType