Class Message

java.lang.Object
org.javagi.base.ProxyInstance
org.freedesktop.gstreamer.gst.Message
All Implemented Interfaces:
Proxy

@Generated("org.javagi.JavaGI") public class Message extends ProxyInstance

Messages are implemented as a subclass of GstMiniObject with a generic GstStructure as the content. This allows for writing custom messages without requiring an API change while allowing a wide range of different types of messages.

Messages are posted by objects in the pipeline and are passed to the application using the GstBus.

The basic use pattern of posting a message on a GstBus is as follows:

  gst_bus_post (bus, gst_message_new_eos());

A GstElement usually posts messages on the bus provided by the parent container using gst_element_post_message().

  • Constructor Details

    • Message

      public Message(MemorySegment address)
      Create a Message proxy instance for the provided memory address.
      Parameters:
      address - the memory address of the native object
    • Message

      public Message(Arena arena)
      Allocate a new Message.
      Parameters:
      arena - to control the memory allocation scope
    • Message

      public Message()
      Allocate a new Message. The memory is allocated with Arena.ofAuto().
    • Message

      public Message(MiniObject miniObject, Set<MessageType> type, long timestamp, GstObject src, int seqnum, Mutex lock, Cond cond, Arena arena)
      Allocate a new Message with the fields set to the provided values.
      Parameters:
      miniObject - value for the field miniObject
      type - value for the field type
      timestamp - value for the field timestamp
      src - value for the field src
      seqnum - value for the field seqnum
      lock - value for the field lock
      cond - value for the field cond
      arena - to control the memory allocation scope
    • Message

      public Message(MiniObject miniObject, Set<MessageType> type, long timestamp, GstObject src, int seqnum, Mutex lock, Cond cond)
      Allocate a new Message with the fields set to the provided values. The memory is allocated with Arena.ofAuto().
      Parameters:
      miniObject - value for the field miniObject
      type - value for the field type
      timestamp - value for the field timestamp
      src - value for the field src
      seqnum - value for the field seqnum
      lock - value for the field lock
      cond - value for the field cond
  • Method Details

    • getType

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

      public static MemoryLayout getMemoryLayout()
      The memory layout of the native struct.
      Returns:
      the memory layout
    • readMiniObject

      public @Nullable MiniObject readMiniObject()
      Read the value of the field mini_object.
      Returns:
      The value of the field mini_object
    • writeMiniObject

      public void writeMiniObject(@Nullable MiniObject miniObject)
      Write a value in the field mini_object.
      Parameters:
      miniObject - The new value for the field mini_object
    • readType

      public Set<MessageType> readType()
      Read the value of the field type.
      Returns:
      The value of the field type
    • writeType

      public void writeType(Set<MessageType> type)
      Write a value in the field type.
      Parameters:
      type - The new value for the field type
    • readTimestamp

      public long readTimestamp()
      Read the value of the field timestamp.
      Returns:
      The value of the field timestamp
    • writeTimestamp

      public void writeTimestamp(long timestamp)
      Write a value in the field timestamp.
      Parameters:
      timestamp - The new value for the field timestamp
    • readSrc

      public GstObject readSrc()
      Read the value of the field src.
      Returns:
      The value of the field src
    • writeSrc

      public void writeSrc(GstObject src)
      Write a value in the field src.
      Parameters:
      src - The new value for the field src
    • readSeqnum

      public int readSeqnum()
      Read the value of the field seqnum.
      Returns:
      The value of the field seqnum
    • writeSeqnum

      public void writeSeqnum(int seqnum)
      Write a value in the field seqnum.
      Parameters:
      seqnum - The new value for the field seqnum
    • readLock

      public @Nullable Mutex readLock()
      Read the value of the field lock.
      Returns:
      The value of the field lock
    • writeLock

      public void writeLock(@Nullable Mutex lock)
      Write a value in the field lock.
      Parameters:
      lock - The new value for the field lock
    • readCond

      public @Nullable Cond readCond()
      Read the value of the field cond.
      Returns:
      The value of the field cond
    • writeCond

      public void writeCond(@Nullable Cond cond)
      Write a value in the field cond.
      Parameters:
      cond - The new value for the field cond
    • application

      public static Message application(@Nullable GstObject src, Structure structure)
      Create a new application-typed message. GStreamer will never create these messages; they are a gift from us to you. Enjoy.
      Parameters:
      src - The object originating the message.
      structure - the structure for the message. The message will take ownership of the structure.
      Returns:

      The new application message.

      MT safe.

    • asyncDone

      public static Message asyncDone(@Nullable GstObject src, ClockTime runningTime)
      The message is posted when elements completed an ASYNC state change. runningTime contains the time of the desired running_time when this elements goes to PLAYING. A value of GST_CLOCK_TIME_NONE for runningTime means that the element has no clock interaction and thus doesn't care about the running_time of the pipeline.
      Parameters:
      src - The object originating the message.
      runningTime - the desired running_time
      Returns:

      The new async_done message.

      MT safe.

    • asyncStart

      public static Message asyncStart(@Nullable GstObject src)
      This message is posted by elements when they start an ASYNC state change.
      Parameters:
      src - The object originating the message.
      Returns:

      The new async_start message.

      MT safe.

    • buffering

      public static Message buffering(@Nullable GstObject src, int percent)

      Create a new buffering message. This message can be posted by an element that needs to buffer data before it can continue processing. percent should be a value between 0 and 100. A value of 100 means that the buffering completed.

      When percent is < 100 the application should PAUSE a PLAYING pipeline. When percent is 100, the application can set the pipeline (back) to PLAYING. The application must be prepared to receive BUFFERING messages in the PREROLLING state and may only set the pipeline to PLAYING after receiving a message with percent set to 100, which can happen after the pipeline completed prerolling.

      MT safe.

      Parameters:
      src - The object originating the message.
      percent - The buffering percent
      Returns:
      The new buffering message.
    • clockLost

      public static Message clockLost(@Nullable GstObject src, Clock clock)

      Create a clock lost message. This message is posted whenever the clock is not valid anymore.

      If this message is posted by the pipeline, the pipeline will select a new clock again when it goes to PLAYING. It might therefore be needed to set the pipeline to PAUSED and PLAYING again.

      Parameters:
      src - The object originating the message.
      clock - the clock that was lost
      Returns:

      The new clock lost message.

      MT safe.

    • clockProvide

      public static Message clockProvide(@Nullable GstObject src, Clock clock, boolean ready)

      Create a clock provide message. This message is posted whenever an element is ready to provide a clock or lost its ability to provide a clock (maybe because it paused or became EOS).

      This message is mainly used internally to manage the clock selection.

      Parameters:
      src - The object originating the message.
      clock - the clock it provides
      ready - true if the sender can provide a clock
      Returns:

      the new provide clock message.

      MT safe.

    • custom

      public static Message custom(Set<MessageType> type, @Nullable GstObject src, @Nullable Structure structure)
      Create a new custom-typed message. This can be used for anything not handled by other message-specific functions to pass a message to the app. The structure field can be null.
      Parameters:
      type - The GstMessageType to distinguish messages
      src - The object originating the message.
      structure - the structure for the message. The message will take ownership of the structure.
      Returns:

      The new message.

      MT safe.

    • custom

      public static Message custom(MessageType type, @Nullable GstObject src, @Nullable Structure structure)
      Create a new custom-typed message. This can be used for anything not handled by other message-specific functions to pass a message to the app. The structure field can be null.
      Parameters:
      type - The GstMessageType to distinguish messages
      src - The object originating the message.
      structure - the structure for the message. The message will take ownership of the structure.
      Returns:

      The new message.

      MT safe.

    • deviceAdded

      public static Message deviceAdded(@Nullable GstObject src, Device device)
      Creates a new device-added message. The device-added message is produced by GstDeviceProvider or a GstDeviceMonitor. They announce the appearance of monitored devices.
      Parameters:
      src - The GstObject that created the message
      device - The new GstDevice
      Returns:
      a newly allocated GstMessage
      Since:
      1.4
    • deviceChanged

      public static Message deviceChanged(@Nullable GstObject src, Device device, Device changedDevice)
      Creates a new device-changed message. The device-changed message is produced by GstDeviceProvider or a GstDeviceMonitor. They announce that a device properties has changed and device represent the new modified version of changedDevice.
      Parameters:
      src - The GstObject that created the message
      device - The newly created device representing changedDevice with its new configuration.
      changedDevice - The old version of the device.
      Returns:
      a newly allocated GstMessage
      Since:
      1.16
    • deviceRemoved

      public static Message deviceRemoved(@Nullable GstObject src, Device device)
      Creates a new device-removed message. The device-removed message is produced by GstDeviceProvider or a GstDeviceMonitor. They announce the disappearance of monitored devices.
      Parameters:
      src - The GstObject that created the message
      device - The removed GstDevice
      Returns:
      a newly allocated GstMessage
      Since:
      1.4
    • durationChanged

      public static Message durationChanged(@Nullable GstObject src)
      Create a new duration changed message. This message is posted by elements that know the duration of a stream when the duration changes. This message is received by bins and is used to calculate the total duration of a pipeline.
      Parameters:
      src - The object originating the message.
      Returns:

      The new duration-changed message.

      MT safe.

    • element

      public static Message element(@Nullable GstObject src, Structure structure)
      Create a new element-specific message. This is meant as a generic way of allowing one-way communication from an element to an application, for example "the firewire cable was unplugged". The format of the message should be documented in the element's documentation. The structure field can be null.
      Parameters:
      src - The object originating the message.
      structure - The structure for the message. The message will take ownership of the structure.
      Returns:

      The new element message.

      MT safe.

    • eos

      public static Message eos(@Nullable GstObject src)
      Create a new eos message. This message is generated and posted in the sink elements of a GstBin. The bin will only forward the EOS message to the application if all sinks have posted an EOS message.
      Parameters:
      src - The object originating the message.
      Returns:

      The new eos message.

      MT safe.

    • error

      public static Message error(@Nullable GstObject src, GError error, String debug)
      Create a new error message. The message will copy error and debug. This message is posted by element when a fatal event occurred. The pipeline will probably (partially) stop. The application receiving this message should stop the pipeline.
      Parameters:
      src - The object originating the message.
      error - The GError for this message.
      debug - A debugging string.
      Returns:

      the new error message.

      MT safe.

    • errorWithDetails

      public static Message errorWithDetails(@Nullable GstObject src, GError error, String debug, @Nullable Structure details)
      Create a new error message. The message will copy error and debug. This message is posted by element when a fatal event occurred. The pipeline will probably (partially) stop. The application receiving this message should stop the pipeline.
      Parameters:
      src - The object originating the message.
      error - The GError for this message.
      debug - A debugging string.
      details - A GstStructure with details
      Returns:
      the new error message.
      Since:
      1.10
    • haveContext

      public static Message haveContext(@Nullable GstObject src, Context context)
      This message is posted when an element has a new local GstContext.
      Parameters:
      src - The object originating the message.
      context - the context
      Returns:

      The new have-context message.

      MT safe.

      Since:
      1.2
    • info

      public static Message info(@Nullable GstObject src, GError error, String debug)
      Create a new info message. The message will make copies of error and debug.
      Parameters:
      src - The object originating the message.
      error - The GError for this message.
      debug - A debugging string.
      Returns:

      the new info message.

      MT safe.

    • infoWithDetails

      public static Message infoWithDetails(@Nullable GstObject src, GError error, String debug, @Nullable Structure details)
      Create a new info message. The message will make copies of error and debug.
      Parameters:
      src - The object originating the message.
      error - The GError for this message.
      debug - A debugging string.
      details - A GstStructure with details
      Returns:
      the new warning message.
      Since:
      1.10
    • instantRateRequest

      public static Message instantRateRequest(@Nullable GstObject src, double rateMultiplier)
      Creates a new instant-rate-request message. Elements handling the instant-rate-change event must post this message. The message is handled at the pipeline, and allows the pipeline to select the running time when the rate change should happen and to send an GSTEVENTINSTANTRATESYNCTIME event to notify the elements in the pipeline.
      Parameters:
      src - The GstObject that posted the message
      rateMultiplier - the rate multiplier factor that should be applied
      Returns:
      a newly allocated GstMessage
      Since:
      1.18
    • latency

      public static Message latency(@Nullable GstObject src)
      This message can be posted by elements when their latency requirements have changed.
      Parameters:
      src - The object originating the message.
      Returns:

      The new latency message.

      MT safe.

    • needContext

      public static Message needContext(@Nullable GstObject src, String contextType)
      This message is posted when an element needs a specific GstContext.
      Parameters:
      src - The object originating the message.
      contextType - The context type that is needed
      Returns:

      The new need-context message.

      MT safe.

      Since:
      1.2
    • newClock

      public static Message newClock(@Nullable GstObject src, Clock clock)
      Create a new clock message. This message is posted whenever the pipeline selects a new clock for the pipeline.
      Parameters:
      src - The object originating the message.
      clock - the new selected clock
      Returns:

      The new new clock message.

      MT safe.

    • progress

      public static Message progress(@Nullable GstObject src, ProgressType type, String code, String text)

      Progress messages are posted by elements when they use an asynchronous task to perform actions triggered by a state change.

      code contains a well defined string describing the action. text should contain a user visible string detailing the current action.

      Parameters:
      src - The object originating the message.
      type - a GstProgressType
      code - a progress code
      text - free, user visible text describing the progress
      Returns:
      The new qos message.
    • propertyNotify

      public static Message propertyNotify(GstObject src, String propertyName, @Nullable Value val)
    • qos

      public static Message qos(@Nullable GstObject src, boolean live, long runningTime, long streamTime, long timestamp, long duration)

      A QOS message is posted on the bus whenever an element decides to drop a buffer because of QoS reasons or whenever it changes its processing strategy because of QoS reasons (quality adjustments such as processing at lower accuracy).

      This message can be posted by an element that performs synchronisation against the clock (live) or it could be dropped by an element that performs QoS because of QOS events received from a downstream element (!live).

      runningTime, streamTime, timestamp, duration should be set to the respective running-time, stream-time, timestamp and duration of the (dropped) buffer that generated the QoS event. Values can be left to GST_CLOCK_TIME_NONE when unknown.

      Parameters:
      src - The object originating the message.
      live - if the message was generated by a live element
      runningTime - the running time of the buffer that generated the message
      streamTime - the stream time of the buffer that generated the message
      timestamp - the timestamps of the buffer that generated the message
      duration - the duration of the buffer that generated the message
      Returns:

      The new qos message.

      MT safe.

    • redirect

      public static Message redirect(@Nullable GstObject src, String location, @Nullable TagList tagList, @Nullable Structure entryStruct)

      Creates a new redirect message and adds a new entry to it. Redirect messages are posted when an element detects that the actual data has to be retrieved from a different location. This is useful if such a redirection cannot be handled inside a source element, for example when HTTP 302/303 redirects return a non-HTTP URL.

      The redirect message can hold multiple entries. The first one is added when the redirect message is created, with the given location, tag_list, entry_struct arguments. Use gst_message_add_redirect_entry() to add more entries.

      Each entry has a location, a tag list, and a structure. All of these are optional. The tag list and structure are useful for additional metadata, such as bitrate statistics for the given location.

      By default, message recipients should treat entries in the order they are stored. The recipient should therefore try entry \0 first, and if this entry is not acceptable or working, try entry \1 etc. Senders must make sure that they add entries in this order. However, recipients are free to ignore the order and pick an entry that is "best" for them. One example would be a recipient that scans the entries for the one with the highest bitrate tag.

      The specified location string is copied. However, ownership over the tag list and structure are transferred to the message.

      Parameters:
      src - The GstObject whose property changed (may or may not be a GstElement)
      location - location string for the new entry
      tagList - tag list for the new entry
      entryStruct - structure for the new entry
      Returns:
      a newly allocated GstMessage
      Since:
      1.10
    • requestState

      public static Message requestState(@Nullable GstObject src, State state)
      This message can be posted by elements when they want to have their state changed. A typical use case would be an audio server that wants to pause the pipeline because a higher priority stream is being played.
      Parameters:
      src - The object originating the message.
      state - The new requested state
      Returns:

      the new request state message.

      MT safe.

    • resetTime

      public static Message resetTime(@Nullable GstObject src, ClockTime runningTime)
      This message is posted when the pipeline running-time should be reset to runningTime, like after a flushing seek.
      Parameters:
      src - The object originating the message.
      runningTime - the requested running-time
      Returns:

      The new reset_time message.

      MT safe.

    • segmentDone

      public static Message segmentDone(@Nullable GstObject src, Format format, long position)
      Create a new segment done message. This message is posted by elements that finish playback of a segment as a result of a segment seek. This message is received by the application after all elements that posted a segment_start have posted the segment_done.
      Parameters:
      src - The object originating the message.
      format - The format of the position being done
      position - The position of the segment being done
      Returns:

      the new segment done message.

      MT safe.

    • segmentStart

      public static Message segmentStart(@Nullable GstObject src, Format format, long position)
      Create a new segment message. This message is posted by elements that start playback of a segment as a result of a segment seek. This message is not received by the application but is used for maintenance reasons in container elements.
      Parameters:
      src - The object originating the message.
      format - The format of the position being played
      position - The position of the segment being played
      Returns:

      the new segment start message.

      MT safe.

    • stateChanged

      public static Message stateChanged(@Nullable GstObject src, State oldstate, State newstate, State pending)
      Create a state change message. This message is posted whenever an element changed its state.
      Parameters:
      src - The object originating the message.
      oldstate - the previous state
      newstate - the new (current) state
      pending - the pending (target) state
      Returns:

      the new state change message.

      MT safe.

    • stateDirty

      public static Message stateDirty(@Nullable GstObject src)
      Create a state dirty message. This message is posted whenever an element changed its state asynchronously and is used internally to update the states of container objects.
      Parameters:
      src - The object originating the message
      Returns:

      the new state dirty message.

      MT safe.

    • stepDone

      public static Message stepDone(@Nullable GstObject src, Format format, long amount, double rate, boolean flush, boolean intermediate, long duration, boolean eos)

      This message is posted by elements when they complete a part, when intermediate set to true, or a complete step operation.

      duration will contain the amount of time (in GST_FORMAT_TIME) of the stepped amount of media in format format.

      Parameters:
      src - The object originating the message.
      format - the format of amount
      amount - the amount of stepped data
      rate - the rate of the stepped amount
      flush - is this an flushing step
      intermediate - is this an intermediate step
      duration - the duration of the data
      eos - the step caused EOS
      Returns:

      the new step_done message.

      MT safe.

    • stepStart

      public static Message stepStart(@Nullable GstObject src, boolean active, Format format, long amount, double rate, boolean flush, boolean intermediate)

      This message is posted by elements when they accept or activate a new step event for amount in format.

      active is set to false when the element accepted the new step event and has queued it for execution in the streaming threads.

      active is set to true when the element has activated the step operation and is now ready to start executing the step in the streaming thread. After this message is emitted, the application can queue a new step operation in the element.

      Parameters:
      src - The object originating the message.
      active - if the step is active or queued
      format - the format of amount
      amount - the amount of stepped data
      rate - the rate of the stepped amount
      flush - is this an flushing step
      intermediate - is this an intermediate step
      Returns:

      The new step_start message.

      MT safe.

    • streamCollection

      public static Message streamCollection(@Nullable GstObject src, StreamCollection collection)
      Creates a new stream-collection message. The message is used to announce new GstStreamCollection
      Parameters:
      src - The GstObject that created the message
      collection - The GstStreamCollection
      Returns:
      a newly allocated GstMessage
      Since:
      1.10
    • streamStart

      public static Message streamStart(@Nullable GstObject src)
      Create a new stream_start message. This message is generated and posted in the sink elements of a GstBin. The bin will only forward the STREAM_START message to the application if all sinks have posted an STREAM_START message.
      Parameters:
      src - The object originating the message.
      Returns:

      The new stream_start message.

      MT safe.

    • streamStatus

      public static Message streamStatus(@Nullable GstObject src, StreamStatusType type, Element owner)
      Create a new stream status message. This message is posted when a streaming thread is created/destroyed or when the state changed.
      Parameters:
      src - The object originating the message.
      type - The stream status type.
      owner - the owner element of src.
      Returns:

      the new stream status message.

      MT safe.

    • streamsSelected

      public static Message streamsSelected(@Nullable GstObject src, StreamCollection collection)

      Creates a new steams-selected message. The message is used to announce that an array of streams has been selected. This is generally in response to a GST_EVENT_SELECT_STREAMS event, or when an element (such as decodebin3) makes an initial selection of streams.

      The message also contains the GstStreamCollection to which the various streams belong to.

      Users of gst_message_new_streams_selected() can add the selected streams with gst_message_streams_selected_add().

      Parameters:
      src - The GstObject that created the message
      collection - The GstStreamCollection
      Returns:
      a newly allocated GstMessage
      Since:
      1.10
    • structureChange

      public static Message structureChange(@Nullable GstObject src, StructureChangeType type, Element owner, boolean busy)

      Create a new structure change message. This message is posted when the structure of a pipeline is in the process of being changed, for example when pads are linked or unlinked.

      src should be the sinkpad that unlinked or linked.

      Parameters:
      src - The object originating the message.
      type - The change type.
      owner - The owner element of src.
      busy - Whether the structure change is busy.
      Returns:

      the new structure change message.

      MT safe.

    • tag

      public static Message tag(@Nullable GstObject src, TagList tagList)
      Create a new tag message. The message will take ownership of the tag list. The message is posted by elements that discovered a new taglist.
      Parameters:
      src - The object originating the message.
      tagList - the tag list for the message.
      Returns:

      the new tag message.

      MT safe.

    • toc

      public static Message toc(@Nullable GstObject src, Toc toc, boolean updated)
      Create a new TOC message. The message is posted by elements that discovered or updated a TOC.
      Parameters:
      src - the object originating the message.
      toc - GstToc structure for the message.
      updated - whether TOC was updated or not.
      Returns:

      a new TOC message.

      MT safe.

    • warning

      public static Message warning(@Nullable GstObject src, GError error, String debug)
      Create a new warning message. The message will make copies of error and debug.
      Parameters:
      src - The object originating the message.
      error - The GError for this message.
      debug - A debugging string.
      Returns:

      the new warning message.

      MT safe.

    • warningWithDetails

      public static Message warningWithDetails(@Nullable GstObject src, GError error, String debug, @Nullable Structure details)
      Create a new warning message. The message will make copies of error and debug.
      Parameters:
      src - The object originating the message.
      error - The GError for this message.
      debug - A debugging string.
      details - A GstStructure with details
      Returns:
      the new warning message.
      Since:
      1.10
    • replace

      public static boolean replace(@Nullable Out<Message> oldMessage, @Nullable Message newMessage)

      Modifies a pointer to a GstMessage to point to a different GstMessage. The modification is done atomically (so this is useful for ensuring thread safety in some cases), and the reference counts are updated appropriately (the old message is unreffed, the new one is reffed).

      Either newMessage or the GstMessage pointed to by oldMessage may be null.

      Parameters:
      oldMessage - pointer to a pointer to a GstMessage to be replaced.
      newMessage - pointer to a GstMessage that will replace the message pointed to by oldMessage.
      Returns:
      true if newMessage was different from oldMessage
    • take

      public static boolean take(Out<Message> oldMessage, @Nullable Message newMessage)
      Modifies a pointer to a GstMessage to point to a different GstMessage. This function is similar to gst_message_replace() except that it takes ownership of newMessage.
      Parameters:
      oldMessage - pointer to a pointer to a GstMessage to be replaced.
      newMessage - pointer to a GstMessage that will replace the message pointed to by oldMessage.
      Returns:
      true if newMessage was different from oldMessage
      Since:
      1.16
    • addRedirectEntry

      public void addRedirectEntry(String location, @Nullable TagList tagList, @Nullable Structure entryStruct)

      Creates and appends a new entry.

      The specified location string is copied. However, ownership over the tag list and structure are transferred to the message.

      Parameters:
      location - location string for the new entry
      tagList - tag list for the new entry
      entryStruct - structure for the new entry
      Since:
      1.10
    • copy

      public Message copy()
      Creates a copy of the message. Returns a copy of the message.
      Returns:

      a new copy of msg.

      MT safe

    • getDetails

      public @Nullable Structure getDetails()

      Returns the optional details structure of the message. May be NULL if none.

      The returned structure must not be freed.

      Returns:
      The details, or NULL if none.
      Since:
      1.26
    • getNumRedirectEntries

      public long getNumRedirectEntries()
    • getSeqnum

      public int getSeqnum()

      Retrieve the sequence number of a message.

      Messages have ever-incrementing sequence numbers, which may also be set explicitly via gst_message_set_seqnum(). Sequence numbers are typically used to indicate that a message corresponds to some other set of messages or events, for example a SEGMENT_DONE message corresponding to a SEEK event. It is considered good practice to make this correspondence when possible, though it is not required.

      Note that events and messages share the same sequence number incrementor; two events or messages will never have the same sequence number unless that correspondence was made explicitly.

      Returns:

      The message's sequence number.

      MT safe.

    • getStreamStatusObject

      public @Nullable Value getStreamStatusObject()
      Extracts the object managing the streaming thread from message.
      Returns:
      a GValue containing the object that manages the streaming thread. This object is usually of type GstTask but other types can be added in the future. The object remains valid as long as this Message is valid.
    • getStructure

      public @Nullable Structure getStructure()
      Access the structure of the message.
      Returns:

      The structure of the message. The structure is still owned by the message, which means that you should not free it and that the pointer becomes invalid when you free the message.

      MT safe.

    • hasName

      public boolean hasName(String name)
      Checks if this Message has the given name. This function is usually used to check the name of a custom message.
      Parameters:
      name - name to check
      Returns:
      true if name matches the name of the message structure.
    • parseAsyncDone

      public void parseAsyncDone(@Nullable ClockTime runningTime)

      Extract the running_time from the async_done message.

      MT safe.

      Parameters:
      runningTime - Result location for the running_time or null
    • parseBuffering

      public void parseBuffering(@Nullable Out<Integer> percent)

      Extracts the buffering percent from the GstMessage. see also gst_message_new_buffering().

      MT safe.

      Parameters:
      percent - Return location for the percent.
    • parseBufferingStats

      public void parseBufferingStats(@Nullable Out<BufferingMode> mode, @Nullable Out<Integer> avgIn, @Nullable Out<Integer> avgOut, @Nullable Out<Long> bufferingLeft)
      Extracts the buffering stats values from message.
      Parameters:
      mode - a buffering mode, or null
      avgIn - the average input rate, or null
      avgOut - the average output rate, or null
      bufferingLeft - amount of buffering time left in milliseconds, or null
    • parseClockLost

      public void parseClockLost(@Nullable Out<Clock> clock)

      Extracts the lost clock from the GstMessage. The clock object returned remains valid until the message is freed.

      MT safe.

      Parameters:
      clock - a pointer to hold the lost clock
    • parseClockProvide

      public void parseClockProvide(@Nullable Out<Clock> clock, @Nullable Out<Boolean> ready)

      Extracts the clock and ready flag from the GstMessage. The clock object returned remains valid until the message is freed.

      MT safe.

      Parameters:
      clock - a pointer to hold a clock object, or null
      ready - a pointer to hold the ready flag, or null
    • parseContextType

      public boolean parseContextType(@Nullable Out<String> contextType)
      Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message.
      Parameters:
      contextType - the context type, or null
      Returns:
      a gboolean indicating if the parsing succeeded.
      Since:
      1.2
    • parseDeviceAdded

      public void parseDeviceAdded(@Nullable Out<Device> device)
      Parses a device-added message. The device-added message is produced by GstDeviceProvider or a GstDeviceMonitor. It announces the appearance of monitored devices.
      Parameters:
      device - A location where to store a pointer to the new GstDevice, or null
      Since:
      1.4
    • parseDeviceChanged

      public void parseDeviceChanged(@Nullable Out<Device> device, @Nullable Out<Device> changedDevice)
      Parses a device-changed message. The device-changed message is produced by GstDeviceProvider or a GstDeviceMonitor. It announces the disappearance of monitored devices. * It announce that a device properties has changed and device represents the new modified version of changedDevice.
      Parameters:
      device - A location where to store a pointer to the updated version of the GstDevice, or null
      changedDevice - A location where to store a pointer to the old version of the GstDevice, or null
      Since:
      1.16
    • parseDeviceRemoved

      public void parseDeviceRemoved(@Nullable Out<Device> device)
      Parses a device-removed message. The device-removed message is produced by GstDeviceProvider or a GstDeviceMonitor. It announces the disappearance of monitored devices.
      Parameters:
      device - A location where to store a pointer to the removed GstDevice, or null
      Since:
      1.4
    • parseError

      public void parseError(Out<GError> gerror, @Nullable Out<String> debug)

      Extracts the GError and debug string from the GstMessage. The values returned in the output arguments are copies; the caller must free them when done.

      Typical usage of this function might be:

        ...
        switch (GST_MESSAGE_TYPE (msg)) {
          case GST_MESSAGE_ERROR: {
            GError *err = NULL;
            gchar *dbg_info = NULL;
      
            gst_message_parse_error (msg, &err, &dbg_info);
            g_printerr ("ERROR from element %s: %s\\n",
                GST_OBJECT_NAME (msg->src), err->message);
            g_printerr ("Debugging info: %s\\n", (dbg_info) ? dbg_info : "none");
            g_error_free (err);
            g_free (dbg_info);
            break;
          }
          ...
        }
        ...
      

      MT safe.

      Parameters:
      gerror - location for the GError
      debug - location for the debug message, or null
    • parseErrorDetails

      public void parseErrorDetails(@Nullable Out<Structure> structure)
      Returns the optional details structure, may be NULL if none. The returned structure must not be freed.
      Parameters:
      structure - A pointer to the returned details
      Since:
      1.10
    • parseErrorWritableDetails

      public void parseErrorWritableDetails(@Nullable Out<Structure> structure)
      Returns the details structure if present or will create one if not present. The returned structure must not be freed.
      Parameters:
      structure - A pointer to the returned details
      Since:
      1.26
    • parseGroupId

      public boolean parseGroupId(@Nullable Out<Integer> groupId)
      Extract the group from the STREAM_START message.
      Parameters:
      groupId - Result location for the group id or null
      Returns:

      true if the message had a group id set, false otherwise

      MT safe.

      Since:
      1.2
    • parseHaveContext

      public void parseHaveContext(@Nullable Out<Context> context)

      Extract the context from the HAVE_CONTEXT message.

      MT safe.

      Parameters:
      context - Result location for the context or null
      Since:
      1.2
    • parseInfo

      public void parseInfo(Out<GError> gerror, @Nullable Out<String> debug)

      Extracts the GError and debug string from the GstMessage. The values returned in the output arguments are copies; the caller must free them when done.

      MT safe.

      Parameters:
      gerror - location for the GError
      debug - location for the debug message, or null
    • parseInfoDetails

      public void parseInfoDetails(@Nullable Out<Structure> structure)
      Returns the optional details structure, may be NULL if none The returned structure must not be freed.
      Parameters:
      structure - A pointer to the returned details
      Since:
      1.10
    • parseInfoWritableDetails

      public void parseInfoWritableDetails(@Nullable Out<Structure> structure)
      Returns the details structure if present or will create one if not present. The returned structure must not be freed.
      Parameters:
      structure - A pointer to the returned details
      Since:
      1.26
    • parseInstantRateRequest

      public void parseInstantRateRequest(@Nullable Out<Double> rateMultiplier)
      Parses the rate_multiplier from the instant-rate-request message.
      Parameters:
      rateMultiplier - return location for the rate, or null
      Since:
      1.18
    • parseNewClock

      public void parseNewClock(@Nullable Out<Clock> clock)

      Extracts the new clock from the GstMessage. The clock object returned remains valid until the message is freed.

      MT safe.

      Parameters:
      clock - a pointer to hold the selected new clock
    • parseProgress

      public void parseProgress(@Nullable Out<ProgressType> type, @Nullable Out<String> code, @Nullable Out<String> text)
      Parses the progress type, code and text.
      Parameters:
      type - location for the type
      code - location for the code
      text - location for the text
    • parsePropertyNotify

      public void parsePropertyNotify(@Nullable Out<GstObject> object, @Nullable Out<String> propertyName, @Nullable Out<Value> propertyValue)
      Parses a property-notify message. These will be posted on the bus only when set up with gst_element_add_property_notify_watch() or gst_element_add_property_deep_notify_watch().
      Parameters:
      object - location where to store a pointer to the object whose property got changed, or null
      propertyName - return location for the name of the property that got changed, or null
      propertyValue - return location for the new value of the property that got changed, or null. This will only be set if the property notify watch was told to include the value when it was set up
      Since:
      1.10
    • parseQos

      public void parseQos(@Nullable Out<Boolean> live, @Nullable Out<Long> runningTime, @Nullable Out<Long> streamTime, @Nullable Out<Long> timestamp, @Nullable Out<Long> duration)

      Extract the timestamps and live status from the QoS message.

      The returned values give the running_time, stream_time, timestamp and duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown values.

      MT safe.

      Parameters:
      live - if the message was generated by a live element
      runningTime - the running time of the buffer that generated the message
      streamTime - the stream time of the buffer that generated the message
      timestamp - the timestamps of the buffer that generated the message
      duration - the duration of the buffer that generated the message
    • parseQosStats

      public void parseQosStats(@Nullable Out<Format> format, @Nullable Out<Long> processed, @Nullable Out<Long> dropped)

      Extract the QoS stats representing the history of the current continuous pipeline playback period.

      When format is GSTFORMATUNDEFINED both dropped and processed are invalid. Values of -1 for either processed or dropped mean unknown values.

      MT safe.

      Parameters:
      format - Units of the 'processed' and 'dropped' fields. Video sinks and video filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT (samples).
      processed - Total number of units correctly processed since the last state change to READY or a flushing operation.
      dropped - Total number of units dropped since the last state change to READY or a flushing operation.
    • parseQosValues

      public void parseQosValues(@Nullable Out<Long> jitter, @Nullable Out<Double> proportion, @Nullable Out<Integer> quality)

      Extract the QoS values that have been calculated/analysed from the QoS data

      MT safe.

      Parameters:
      jitter - The difference of the running-time against the deadline.
      proportion - Long term prediction of the ideal rate relative to normal rate to get optimal quality.
      quality - An element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000.
    • parseRedirectEntry

      public void parseRedirectEntry(long entryIndex, @Nullable Out<String> location, @Nullable Out<TagList> tagList, @Nullable Out<Structure> entryStruct)
      Parses the location and/or structure from the entry with the given index. The index must be between 0 and gst_message_get_num_redirect_entries() - 1. Returned pointers are valid for as long as this message exists.
      Parameters:
      entryIndex - index of the entry to parse
      location - return location for the pointer to the entry's location string, or null
      tagList - return location for the pointer to the entry's tag list, or null
      entryStruct - return location for the pointer to the entry's structure, or null
      Since:
      1.10
    • parseRequestState

      public void parseRequestState(@Nullable Out<State> state)

      Extract the requested state from the request_state message.

      MT safe.

      Parameters:
      state - Result location for the requested state or null
    • parseResetTime

      public void parseResetTime(@Nullable ClockTime runningTime)

      Extract the running-time from the RESET_TIME message.

      MT safe.

      Parameters:
      runningTime - Result location for the running_time or null
    • parseSegmentDone

      public void parseSegmentDone(@Nullable Out<Format> format, @Nullable Out<Long> position)

      Extracts the position and format from the segment done message.

      MT safe.

      Parameters:
      format - Result location for the format, or null
      position - Result location for the position, or null
    • parseSegmentStart

      public void parseSegmentStart(@Nullable Out<Format> format, @Nullable Out<Long> position)

      Extracts the position and format from the segment start message.

      MT safe.

      Parameters:
      format - Result location for the format, or null
      position - Result location for the position, or null
    • parseStateChanged

      public void parseStateChanged(@Nullable Out<State> oldstate, @Nullable Out<State> newstate, @Nullable Out<State> pending)

      Extracts the old and new states from the GstMessage.

      Typical usage of this function might be:

        ...
        switch (GST_MESSAGE_TYPE (msg)) {
          case GST_MESSAGE_STATE_CHANGED: {
            GstState old_state, new_state;
      
            gst_message_parse_state_changed (msg, &old_state, &new_state, NULL);
            g_print ("Element %s changed state from %s to %s.\\n",
                GST_OBJECT_NAME (msg->src),
                gst_element_state_get_name (old_state),
                gst_element_state_get_name (new_state));
            break;
          }
          ...
        }
        ...
      

      MT safe.

      Parameters:
      oldstate - the previous state, or null
      newstate - the new (current) state, or null
      pending - the pending (target) state, or null
    • parseStepDone

      public void parseStepDone(@Nullable Out<Format> format, @Nullable Out<Long> amount, @Nullable Out<Double> rate, @Nullable Out<Boolean> flush, @Nullable Out<Boolean> intermediate, @Nullable Out<Long> duration, @Nullable Out<Boolean> eos)

      Extract the values the step_done message.

      MT safe.

      Parameters:
      format - result location for the format
      amount - result location for the amount
      rate - result location for the rate
      flush - result location for the flush flag
      intermediate - result location for the intermediate flag
      duration - result location for the duration
      eos - result location for the EOS flag
    • parseStepStart

      public void parseStepStart(@Nullable Out<Boolean> active, @Nullable Out<Format> format, @Nullable Out<Long> amount, @Nullable Out<Double> rate, @Nullable Out<Boolean> flush, @Nullable Out<Boolean> intermediate)

      Extract the values from step_start message.

      MT safe.

      Parameters:
      active - result location for the active flag
      format - result location for the format
      amount - result location for the amount
      rate - result location for the rate
      flush - result location for the flush flag
      intermediate - result location for the intermediate flag
    • parseStreamCollection

      public void parseStreamCollection(@Nullable Out<StreamCollection> collection)
      Parses a stream-collection message.
      Parameters:
      collection - A location where to store a pointer to the GstStreamCollection, or null
      Since:
      1.10
    • parseStreamStatus

      public void parseStreamStatus(Out<StreamStatusType> type, Out<Element> owner)

      Extracts the stream status type and owner the GstMessage. The returned owner remains valid for as long as the reference to this Message is valid and should thus not be unreffed.

      MT safe.

      Parameters:
      type - A pointer to hold the status type
      owner - The owner element of the message source
    • parseStreamsSelected

      public void parseStreamsSelected(@Nullable Out<StreamCollection> collection)
      Parses a streams-selected message.
      Parameters:
      collection - A location where to store a pointer to the GstStreamCollection, or null
      Since:
      1.10
    • parseStructureChange

      public void parseStructureChange(Out<StructureChangeType> type, @Nullable Out<Element> owner, @Nullable Out<Boolean> busy)

      Extracts the change type and completion status from the GstMessage.

      MT safe.

      Parameters:
      type - A pointer to hold the change type
      owner - The owner element of the message source
      busy - a pointer to hold whether the change is in progress or has been completed
    • parseTag

      public void parseTag(Out<TagList> tagList)

      Extracts the tag list from the GstMessage. The tag list returned in the output argument is a copy; the caller must free it when done.

      Typical usage of this function might be:

        ...
        switch (GST_MESSAGE_TYPE (msg)) {
          case GST_MESSAGE_TAG: {
            GstTagList *tags = NULL;
      
            gst_message_parse_tag (msg, &tags);
            g_print ("Got tags from element %s\\n", GST_OBJECT_NAME (msg->src));
            handle_tags (tags);
            gst_tag_list_unref (tags);
            break;
          }
          ...
        }
        ...
      

      MT safe.

      Parameters:
      tagList - return location for the tag-list.
    • parseToc

      public void parseToc(Out<Toc> toc, Out<Boolean> updated)

      Extract the TOC from the GstMessage. The TOC returned in the output argument is a copy; the caller must free it with gst_toc_unref() when done.

      MT safe.

      Parameters:
      toc - return location for the TOC.
      updated - return location for the updated flag.
    • parseWarning

      public void parseWarning(Out<GError> gerror, @Nullable Out<String> debug)

      Extracts the GError and debug string from the GstMessage. The values returned in the output arguments are copies; the caller must free them when done.

      MT safe.

      Parameters:
      gerror - location for the GError
      debug - location for the debug message, or null
    • parseWarningDetails

      public void parseWarningDetails(@Nullable Out<Structure> structure)
      Returns the optional details structure, may be NULL if none The returned structure must not be freed.
      Parameters:
      structure - A pointer to the returned details
      Since:
      1.10
    • parseWarningWritableDetails

      public void parseWarningWritableDetails(@Nullable Out<Structure> structure)
      Returns the details structure if present or will create one if not present. The returned structure must not be freed.
      Parameters:
      structure - A pointer to the returned details
      Since:
      1.26
    • ref

      public Message ref()
      Convenience macro to increase the reference count of the message.
      Returns:
      this Message (for convenience when doing assignments)
    • setBufferingStats

      public void setBufferingStats(BufferingMode mode, int avgIn, int avgOut, long bufferingLeft)
      Configures the buffering stats values in message.
      Parameters:
      mode - a buffering mode
      avgIn - the average input rate
      avgOut - the average output rate
      bufferingLeft - amount of buffering time left in milliseconds
    • setDetails

      public void setDetails(@Nullable Structure details)
      Add details to message. Will fail if the message already has details set on it or if it is not writable.
      Parameters:
      details - A GstStructure with details
      Since:
      1.26
    • setGroupId

      public void setGroupId(int groupId)

      Sets the group id on the stream-start message.

      All streams that have the same group id are supposed to be played together, i.e. all streams inside a container file should have the same group id but different stream ids. The group id should change each time the stream is started, resulting in different group ids each time a file is played for example.

      MT safe.

      Parameters:
      groupId - the group id
      Since:
      1.2
    • setQosStats

      public void setQosStats(Format format, long processed, long dropped)

      Set the QoS stats representing the history of the current continuous pipeline playback period.

      When format is GSTFORMATUNDEFINED both dropped and processed are invalid. Values of -1 for either processed or dropped mean unknown values.

      MT safe.

      Parameters:
      format - Units of the 'processed' and 'dropped' fields. Video sinks and video filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT (samples).
      processed - Total number of units correctly processed since the last state change to READY or a flushing operation.
      dropped - Total number of units dropped since the last state change to READY or a flushing operation.
    • setQosValues

      public void setQosValues(long jitter, double proportion, int quality)

      Set the QoS values that have been calculated/analysed from the QoS data

      MT safe.

      Parameters:
      jitter - The difference of the running-time against the deadline.
      proportion - Long term prediction of the ideal rate relative to normal rate to get optimal quality.
      quality - An element dependent integer value that specifies the current quality level of the element. The default maximum quality is 1000000.
    • setSeqnum

      public void setSeqnum(int seqnum)

      Set the sequence number of a message.

      This function might be called by the creator of a message to indicate that the message relates to other messages or events. See gst_message_get_seqnum() for more information.

      MT safe.

      Parameters:
      seqnum - A sequence number.
    • setStreamStatusObject

      public void setStreamStatusObject(Value object)
      Configures the object handling the streaming thread. This is usually a GstTask object but other objects might be added in the future.
      Parameters:
      object - the object controlling the streaming
    • streamsSelectedAdd

      public void streamsSelectedAdd(Stream stream)
      Adds the stream to the message.
      Parameters:
      stream - a GstStream to add to this Message
      Since:
      1.10
    • streamsSelectedGetSize

      public int streamsSelectedGetSize()
      Returns the number of streams contained in the message.
      Returns:
      The number of streams contained within.
      Since:
      1.10
    • streamsSelectedGetStream

      public @Nullable Stream streamsSelectedGetStream(int idx)
      Retrieves the GstStream with index index from the message.
      Parameters:
      idx - Index of the stream to retrieve
      Returns:
      A GstStream
      Since:
      1.10
    • unref

      public void unref()
      Convenience macro to decrease the reference count of the message, possibly freeing it.
    • writableDetails

      public Structure writableDetails()

      Returns the details structure of the message. If not present it will be created. Use this function (instead of gst_message_get_details()) if you want to write to the details structure.

      The returned structure must not be freed.

      Returns:
      The details
      Since:
      1.26
    • writableStructure

      public Structure writableStructure()
      Get a writable version of the structure.
      Returns:

      The structure of the message. The structure is still owned by the message, which means that you should not free it and that the pointer becomes invalid when you free the message. This function ensures that this Message is writable, and if so, will never return null.

      MT safe.

      Since:
      1.14