Class Message
- All Implemented Interfaces:
Proxy
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 Summary
ConstructorsConstructorDescriptionMessage()Allocate a new Message.Allocate a new Message.Message(MemorySegment address) Create a Message proxy instance for the provided memory address.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.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. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddRedirectEntry(String location, @Nullable TagList tagList, @Nullable Structure entryStruct) Creates and appends a new entry.static Messageapplication(@Nullable GstObject src, Structure structure) Create a new application-typed message.static MessageThe message is posted when elements completed an ASYNC state change.static MessageasyncStart(@Nullable GstObject src) This message is posted by elements when they start an ASYNC state change.static MessageCreate a new buffering message.static MessageCreate a clock lost message.static MessageclockProvide(@Nullable GstObject src, Clock clock, boolean ready) Create a clock provide message.copy()Creates a copy of the message.static Messagecustom(Set<MessageType> type, @Nullable GstObject src, @Nullable Structure structure) Create a new custom-typed message.static Messagecustom(MessageType type, @Nullable GstObject src, @Nullable Structure structure) Create a new custom-typed message.static MessagedeviceAdded(@Nullable GstObject src, Device device) Creates a new device-added message.static MessagedeviceChanged(@Nullable GstObject src, Device device, Device changedDevice) Creates a new device-changed message.static MessagedeviceRemoved(@Nullable GstObject src, Device device) Creates a new device-removed message.static MessagedurationChanged(@Nullable GstObject src) Create a new duration changed message.static MessageCreate a new element-specific message.static MessageCreate a new eos message.static MessageCreate a new error message.static MessageerrorWithDetails(@Nullable GstObject src, GError error, String debug, @Nullable Structure details) Create a new error message.@Nullable StructureReturns the optional details structure of the message.static MemoryLayoutThe memory layout of the native struct.longintRetrieve the sequence number of a message.@Nullable ValueExtracts the object managing the streaming thread frommessage.@Nullable StructureAccess the structure of the message.static @Nullable TypegetType()Get the GType of the Message classbooleanChecks if this Message has the givenname.This function is usually used to check the name of a custom message.static MessagehaveContext(@Nullable GstObject src, Context context) This message is posted when an element has a new localGstContext.static MessageCreate a new info message.static MessageinfoWithDetails(@Nullable GstObject src, GError error, String debug, @Nullable Structure details) Create a new info message.static MessageinstantRateRequest(@Nullable GstObject src, double rateMultiplier) Creates a new instant-rate-request message.static MessageThis message can be posted by elements when their latency requirements have changed.static MessageneedContext(@Nullable GstObject src, String contextType) This message is posted when an element needs a specificGstContext.static MessageCreate a new clock message.voidparseAsyncDone(@Nullable ClockTime runningTime) Extract the running_time from the async_done message.voidparseBuffering(@Nullable Out<Integer> percent) Extracts the buffering percent from the GstMessage.voidparseBufferingStats(@Nullable Out<BufferingMode> mode, @Nullable Out<Integer> avgIn, @Nullable Out<Integer> avgOut, @Nullable Out<Long> bufferingLeft) Extracts the buffering stats values frommessage.voidparseClockLost(@Nullable Out<Clock> clock) Extracts the lost clock from the GstMessage.voidparseClockProvide(@Nullable Out<Clock> clock, @Nullable Out<Boolean> ready) Extracts the clock and ready flag from the GstMessage.booleanparseContextType(@Nullable Out<String> contextType) Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message.voidparseDeviceAdded(@Nullable Out<Device> device) Parses a device-added message.voidparseDeviceChanged(@Nullable Out<Device> device, @Nullable Out<Device> changedDevice) Parses a device-changed message.voidparseDeviceRemoved(@Nullable Out<Device> device) Parses a device-removed message.voidparseError(Out<GError> gerror, @Nullable Out<String> debug) Extracts the GError and debug string from the GstMessage.voidparseErrorDetails(@Nullable Out<Structure> structure) Returns the optional details structure, may be NULL if none.voidparseErrorWritableDetails(@Nullable Out<Structure> structure) Returns the details structure if present or will create one if not present.booleanparseGroupId(@Nullable Out<Integer> groupId) Extract the group from the STREAM_START message.voidparseHaveContext(@Nullable Out<Context> context) Extract the context from the HAVE_CONTEXT message.voidExtracts the GError and debug string from the GstMessage.voidparseInfoDetails(@Nullable Out<Structure> structure) Returns the optional details structure, may be NULL if none The returned structure must not be freed.voidparseInfoWritableDetails(@Nullable Out<Structure> structure) Returns the details structure if present or will create one if not present.voidparseInstantRateRequest(@Nullable Out<Double> rateMultiplier) Parses the rate_multiplier from the instant-rate-request message.voidparseNewClock(@Nullable Out<Clock> clock) Extracts the new clock from the GstMessage.voidparseProgress(@Nullable Out<ProgressType> type, @Nullable Out<String> code, @Nullable Out<String> text) Parses the progresstype,codeandtext.voidparsePropertyNotify(@Nullable Out<GstObject> object, @Nullable Out<String> propertyName, @Nullable Out<Value> propertyValue) Parses a property-notify message.voidparseQos(@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.voidparseQosStats(@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.voidparseQosValues(@Nullable Out<Long> jitter, @Nullable Out<Double> proportion, @Nullable Out<Integer> quality) Extract the QoS values that have been calculated/analysed from the QoS datavoidparseRedirectEntry(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.voidparseRequestState(@Nullable Out<State> state) Extract the requested state from the request_state message.voidparseResetTime(@Nullable ClockTime runningTime) Extract the running-time from the RESET_TIME message.voidparseSegmentDone(@Nullable Out<Format> format, @Nullable Out<Long> position) Extracts the position and format from the segment done message.voidparseSegmentStart(@Nullable Out<Format> format, @Nullable Out<Long> position) Extracts the position and format from the segment start message.voidparseStateChanged(@Nullable Out<State> oldstate, @Nullable Out<State> newstate, @Nullable Out<State> pending) Extracts the old and new states from the GstMessage.voidparseStepDone(@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.voidparseStepStart(@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.voidparseStreamCollection(@Nullable Out<StreamCollection> collection) Parses a stream-collection message.voidparseStreamsSelected(@Nullable Out<StreamCollection> collection) Parses a streams-selected message.voidparseStreamStatus(Out<StreamStatusType> type, Out<Element> owner) Extracts the stream status type and owner the GstMessage.voidparseStructureChange(Out<StructureChangeType> type, @Nullable Out<Element> owner, @Nullable Out<Boolean> busy) Extracts the change type and completion status from the GstMessage.voidExtracts the tag list from the GstMessage.voidExtract the TOC from theGstMessage.voidparseWarning(Out<GError> gerror, @Nullable Out<String> debug) Extracts the GError and debug string from the GstMessage.voidparseWarningDetails(@Nullable Out<Structure> structure) Returns the optional details structure, may be NULL if none The returned structure must not be freed.voidparseWarningWritableDetails(@Nullable Out<Structure> structure) Returns the details structure if present or will create one if not present.static Messageprogress(@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.static MessagepropertyNotify(GstObject src, String propertyName, @Nullable Value val) static Messageqos(@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).@Nullable CondreadCond()Read the value of the fieldcond.@Nullable MutexreadLock()Read the value of the fieldlock.@Nullable MiniObjectRead the value of the fieldmini_object.intRead the value of the fieldseqnum.readSrc()Read the value of the fieldsrc.longRead the value of the fieldtimestamp.readType()Read the value of the fieldtype.static Messageredirect(@Nullable GstObject src, String location, @Nullable TagList tagList, @Nullable Structure entryStruct) Creates a new redirect message and adds a new entry to it.ref()Convenience macro to increase the reference count of the message.static booleanModifies a pointer to aGstMessageto point to a differentGstMessage.static MessagerequestState(@Nullable GstObject src, State state) This message can be posted by elements when they want to have their state changed.static MessageThis message is posted when the pipeline running-time should be reset torunningTime,like after a flushing seek.static MessagesegmentDone(@Nullable GstObject src, Format format, long position) Create a new segment done message.static MessagesegmentStart(@Nullable GstObject src, Format format, long position) Create a new segment message.voidsetBufferingStats(BufferingMode mode, int avgIn, int avgOut, long bufferingLeft) Configures the buffering stats values inmessage.voidsetDetails(@Nullable Structure details) Adddetailstomessage.Will fail if the message already has details set on it or if it is not writable.voidsetGroupId(int groupId) Sets the group id on the stream-start message.voidsetQosStats(Format format, long processed, long dropped) Set the QoS stats representing the history of the current continuous pipeline playback period.voidsetQosValues(long jitter, double proportion, int quality) Set the QoS values that have been calculated/analysed from the QoS datavoidsetSeqnum(int seqnum) Set the sequence number of a message.voidsetStreamStatusObject(Value object) Configures the object handling the streaming thread.static MessagestateChanged(@Nullable GstObject src, State oldstate, State newstate, State pending) Create a state change message.static MessagestateDirty(@Nullable GstObject src) Create a state dirty message.static MessagestepDone(@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, whenintermediateset totrue, or a complete step operation.static MessagestepStart(@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 foramountinformat.static MessagestreamCollection(@Nullable GstObject src, StreamCollection collection) Creates a new stream-collection message.static MessagestreamsSelected(@Nullable GstObject src, StreamCollection collection) Creates a new steams-selected message.voidstreamsSelectedAdd(Stream stream) Adds thestreamto themessage.intReturns the number of streams contained in themessage.@Nullable StreamstreamsSelectedGetStream(int idx) Retrieves theGstStreamwith indexindexfrom themessage.static MessagestreamStart(@Nullable GstObject src) Create a new stream_start message.static MessagestreamStatus(@Nullable GstObject src, StreamStatusType type, Element owner) Create a new stream status message.static MessagestructureChange(@Nullable GstObject src, StructureChangeType type, Element owner, boolean busy) Create a new structure change message.static MessageCreate a new tag message.static booleanModifies a pointer to aGstMessageto point to a differentGstMessage.static MessageCreate a new TOC message.voidunref()Convenience macro to decrease the reference count of the message, possibly freeing it.static MessageCreate a new warning message.static MessagewarningWithDetails(@Nullable GstObject src, GError error, String debug, @Nullable Structure details) Create a new warning message.Returns the details structure of themessage.If not present it will be created.Get a writable version of the structure.voidWrite a value in the fieldcond.voidWrite a value in the fieldlock.voidwriteMiniObject(@Nullable MiniObject miniObject) Write a value in the fieldmini_object.voidwriteSeqnum(int seqnum) Write a value in the fieldseqnum.voidWrite a value in the fieldsrc.voidwriteTimestamp(long timestamp) Write a value in the fieldtimestamp.voidwriteType(Set<MessageType> type) Write a value in the fieldtype.Methods inherited from class org.javagi.base.ProxyInstance
equals, handle, hashCode
-
Constructor Details
-
Message
Create a Message proxy instance for the provided memory address.- Parameters:
address- the memory address of the native object
-
Message
Allocate a new Message.- Parameters:
arena- to control the memory allocation scope
-
Message
public Message()Allocate a new Message. The memory is allocated withArena.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 fieldminiObjecttype- value for the fieldtypetimestamp- value for the fieldtimestampsrc- value for the fieldsrcseqnum- value for the fieldseqnumlock- value for the fieldlockcond- value for the fieldcondarena- 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 withArena.ofAuto().- Parameters:
miniObject- value for the fieldminiObjecttype- value for the fieldtypetimestamp- value for the fieldtimestampsrc- value for the fieldsrcseqnum- value for the fieldseqnumlock- value for the fieldlockcond- value for the fieldcond
-
-
Method Details
-
getType
-
getMemoryLayout
The memory layout of the native struct.- Returns:
- the memory layout
-
readMiniObject
Read the value of the fieldmini_object.- Returns:
- The value of the field
mini_object
-
writeMiniObject
Write a value in the fieldmini_object.- Parameters:
miniObject- The new value for the fieldmini_object
-
readType
Read the value of the fieldtype.- Returns:
- The value of the field
type
-
writeType
Write a value in the fieldtype.- Parameters:
type- The new value for the fieldtype
-
readTimestamp
public long readTimestamp()Read the value of the fieldtimestamp.- Returns:
- The value of the field
timestamp
-
writeTimestamp
public void writeTimestamp(long timestamp) Write a value in the fieldtimestamp.- Parameters:
timestamp- The new value for the fieldtimestamp
-
readSrc
-
writeSrc
Write a value in the fieldsrc.- Parameters:
src- The new value for the fieldsrc
-
readSeqnum
public int readSeqnum()Read the value of the fieldseqnum.- Returns:
- The value of the field
seqnum
-
writeSeqnum
public void writeSeqnum(int seqnum) Write a value in the fieldseqnum.- Parameters:
seqnum- The new value for the fieldseqnum
-
readLock
Read the value of the fieldlock.- Returns:
- The value of the field
lock
-
writeLock
Write a value in the fieldlock.- Parameters:
lock- The new value for the fieldlock
-
readCond
Read the value of the fieldcond.- Returns:
- The value of the field
cond
-
writeCond
Write a value in the fieldcond.- Parameters:
cond- The new value for the fieldcond
-
application
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
The message is posted when elements completed an ASYNC state change.runningTimecontains the time of the desired running_time when this elements goes to PLAYING. A value ofGST_CLOCK_TIME_NONEforrunningTimemeans 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
-
buffering
Create a new buffering message. This message can be posted by an element that needs to buffer data before it can continue processing.percentshould be a value between 0 and 100. A value of 100 means that the buffering completed.When
percentis < 100 the application should PAUSE a PLAYING pipeline. Whenpercentis 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 withpercentset 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
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
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 providesready-trueif 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 benull.- Parameters:
type- TheGstMessageTypeto distinguish messagessrc- 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 benull.- Parameters:
type- TheGstMessageTypeto distinguish messagessrc- 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
Creates a new device-added message. The device-added message is produced byGstDeviceProvideror aGstDeviceMonitor. They announce the appearance of monitored devices.- Parameters:
src- TheGstObjectthat created the messagedevice- The newGstDevice- Returns:
- a newly allocated
GstMessage - Since:
- 1.4
-
deviceChanged
Creates a new device-changed message. The device-changed message is produced byGstDeviceProvideror aGstDeviceMonitor. They announce that a device properties has changed anddevicerepresent the new modified version ofchangedDevice.- Parameters:
src- TheGstObjectthat created the messagedevice- The newly created device representingchangedDevicewith its new configuration.changedDevice- The old version of the device.- Returns:
- a newly allocated
GstMessage - Since:
- 1.16
-
deviceRemoved
Creates a new device-removed message. The device-removed message is produced byGstDeviceProvideror aGstDeviceMonitor. They announce the disappearance of monitored devices.- Parameters:
src- TheGstObjectthat created the messagedevice- The removedGstDevice- Returns:
- a newly allocated
GstMessage - Since:
- 1.4
-
durationChanged
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
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 benull.- 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
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
Create a new error message. The message will copyerroranddebug.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 copyerroranddebug.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
-
info
Create a new info message. The message will make copies oferroranddebug.- 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 oferroranddebug.- 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
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 anGSTEVENTINSTANTRATESYNCTIMEevent to notify the elements in the pipeline.- Parameters:
src- TheGstObjectthat posted the messagerateMultiplier- the rate multiplier factor that should be applied- Returns:
- a newly allocated
GstMessage - Since:
- 1.18
-
latency
-
needContext
This message is posted when an element needs a specificGstContext.- 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
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.codecontains a well defined string describing the action.textshould contain a user visible string detailing the current action.- Parameters:
src- The object originating the message.type- aGstProgressTypecode- a progress codetext- free, user visible text describing the progress- Returns:
- The new qos message.
-
propertyNotify
-
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,durationshould 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 elementrunningTime- the running time of the buffer that generated the messagestreamTime- the stream time of the buffer that generated the messagetimestamp- the timestamps of the buffer that generated the messageduration- 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 \\
0first, and if this entry is not acceptable or working, try entry \\1etc. 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- TheGstObjectwhose property changed (may or may not be aGstElement)location- location string for the new entrytagList- tag list for the new entryentryStruct- structure for the new entry- Returns:
- a newly allocated
GstMessage - Since:
- 1.10
-
requestState
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
This message is posted when the pipeline running-time should be reset torunningTime,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
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 doneposition- The position of the segment being done- Returns:
- the new segment done message.
MT safe.
-
segmentStart
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 playedposition- 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 statenewstate- the new (current) statepending- the pending (target) state- Returns:
- the new state change message.
MT safe.
-
stateDirty
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, whenintermediateset totrue, or a complete step operation.durationwill contain the amount of time (in GST_FORMAT_TIME) of the steppedamountof media in formatformat.- Parameters:
src- The object originating the message.format- the format ofamountamount- the amount of stepped datarate- the rate of the stepped amountflush- is this an flushing stepintermediate- is this an intermediate stepduration- the duration of the dataeos- 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 foramountinformat.activeis set tofalsewhen the element accepted the new step event and has queued it for execution in the streaming threads.activeis set totruewhen 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 queuedformat- the format ofamountamount- the amount of stepped datarate- the rate of the stepped amountflush- is this an flushing stepintermediate- is this an intermediate step- Returns:
- The new step_start message.
MT safe.
-
streamCollection
Creates a new stream-collection message. The message is used to announce newGstStreamCollection- Parameters:
src- TheGstObjectthat created the messagecollection- TheGstStreamCollection- Returns:
- a newly allocated
GstMessage - Since:
- 1.10
-
streamStart
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
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 ofsrc.- Returns:
- the new stream status message.
MT safe.
-
streamsSelected
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 aGST_EVENT_SELECT_STREAMSevent, or when an element (such as decodebin3) makes an initial selection of streams.The message also contains the
GstStreamCollectionto 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- TheGstObjectthat created the messagecollection- TheGstStreamCollection- 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.srcshould be the sinkpad that unlinked or linked.- Parameters:
src- The object originating the message.type- The change type.owner- The owner element ofsrc.busy- Whether the structure change is busy.- Returns:
- the new structure change message.
MT safe.
-
tag
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
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-GstTocstructure for the message.updated- whether TOC was updated or not.- Returns:
- a new TOC message.
MT safe.
-
warning
Create a new warning message. The message will make copies oferroranddebug.- 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 oferroranddebug.- 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
Modifies a pointer to aGstMessageto point to a differentGstMessage. 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
newMessageor theGstMessagepointed to byoldMessagemay benull.- Parameters:
oldMessage- pointer to a pointer to aGstMessageto be replaced.newMessage- pointer to aGstMessagethat will replace the message pointed to byoldMessage.- Returns:
trueifnewMessagewas different fromoldMessage
-
take
Modifies a pointer to aGstMessageto point to a differentGstMessage. This function is similar to gst_message_replace() except that it takes ownership ofnewMessage.- Parameters:
oldMessage- pointer to a pointer to aGstMessageto be replaced.newMessage- pointer to aGstMessagethat will replace the message pointed to byoldMessage.- Returns:
trueifnewMessagewas different fromoldMessage- 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 entrytagList- tag list for the new entryentryStruct- structure for the new entry- Since:
- 1.10
-
copy
Creates a copy of the message. Returns a copy of the message.- Returns:
- a new copy of
msg.MT safe
-
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
Extracts the object managing the streaming thread frommessage.- 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
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
Checks if this Message has the givenname.This function is usually used to check the name of a custom message.- Parameters:
name- name to check- Returns:
trueifnamematches the name of the message structure.
-
parseAsyncDone
Extract the running_time from the async_done message.MT safe.
- Parameters:
runningTime- Result location for the running_time ornull
-
parseBuffering
-
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 frommessage.- Parameters:
mode- a buffering mode, ornullavgIn- the average input rate, ornullavgOut- the average output rate, ornullbufferingLeft- amount of buffering time left in milliseconds, ornull
-
parseClockLost
-
parseClockProvide
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, ornullready- a pointer to hold the ready flag, ornull
-
parseContextType
-
parseDeviceAdded
Parses a device-added message. The device-added message is produced byGstDeviceProvideror aGstDeviceMonitor. It announces the appearance of monitored devices.- Parameters:
device- A location where to store a pointer to the newGstDevice, ornull- Since:
- 1.4
-
parseDeviceChanged
Parses a device-changed message. The device-changed message is produced byGstDeviceProvideror aGstDeviceMonitor. It announces the disappearance of monitored devices. * It announce that a device properties has changed anddevicerepresents the new modified version ofchangedDevice.- Parameters:
device- A location where to store a pointer to the updated version of theGstDevice, ornullchangedDevice- A location where to store a pointer to the old version of theGstDevice, ornull- Since:
- 1.16
-
parseDeviceRemoved
Parses a device-removed message. The device-removed message is produced byGstDeviceProvideror aGstDeviceMonitor. It announces the disappearance of monitored devices.- Parameters:
device- A location where to store a pointer to the removedGstDevice, ornull- Since:
- 1.4
-
parseError
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 GErrordebug- location for the debug message, ornull
-
parseErrorDetails
-
parseErrorWritableDetails
-
parseGroupId
-
parseHaveContext
-
parseInfo
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 GErrordebug- location for the debug message, ornull
-
parseInfoDetails
-
parseInfoWritableDetails
-
parseInstantRateRequest
-
parseNewClock
-
parseProgress
-
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, ornullpropertyName- return location for the name of the property that got changed, ornullpropertyValue- return location for the new value of the property that got changed, ornull. 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 elementrunningTime- the running time of the buffer that generated the messagestreamTime- the stream time of the buffer that generated the messagetimestamp- the timestamps of the buffer that generated the messageduration- 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
formatisGSTFORMATUNDEFINEDbothdroppedandprocessedare invalid. Values of -1 for eitherprocessedordroppedmean 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 dataMT 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 parselocation- return location for the pointer to the entry's location string, ornulltagList- return location for the pointer to the entry's tag list, ornullentryStruct- return location for the pointer to the entry's structure, ornull- Since:
- 1.10
-
parseRequestState
-
parseResetTime
Extract the running-time from the RESET_TIME message.MT safe.
- Parameters:
runningTime- Result location for the running_time ornull
-
parseSegmentDone
-
parseSegmentStart
-
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, ornullnewstate- the new (current) state, ornullpending- the pending (target) state, ornull
-
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 formatamount- result location for the amountrate- result location for the rateflush- result location for the flush flagintermediate- result location for the intermediate flagduration- result location for the durationeos- 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 flagformat- result location for the formatamount- result location for the amountrate- result location for the rateflush- result location for the flush flagintermediate- result location for the intermediate flag
-
parseStreamCollection
Parses a stream-collection message.- Parameters:
collection- A location where to store a pointer to theGstStreamCollection, ornull- Since:
- 1.10
-
parseStreamStatus
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 typeowner- The owner element of the message source
-
parseStreamsSelected
Parses a streams-selected message.- Parameters:
collection- A location where to store a pointer to theGstStreamCollection, ornull- 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 typeowner- The owner element of the message sourcebusy- a pointer to hold whether the change is in progress or has been completed
-
parseTag
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
Extract the TOC from theGstMessage. 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
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 GErrordebug- location for the debug message, ornull
-
parseWarningDetails
-
parseWarningWritableDetails
-
ref
Convenience macro to increase the reference count of the message.- Returns:
- this Message (for convenience when doing assignments)
-
setBufferingStats
Configures the buffering stats values inmessage.- Parameters:
mode- a buffering modeavgIn- the average input rateavgOut- the average output ratebufferingLeft- amount of buffering time left in milliseconds
-
setDetails
Adddetailstomessage.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
Set the QoS stats representing the history of the current continuous pipeline playback period.When
formatisGSTFORMATUNDEFINEDbothdroppedandprocessedare invalid. Values of -1 for eitherprocessedordroppedmean 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 dataMT 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
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
Adds thestreamto themessage.- Parameters:
stream- aGstStreamto add to this Message- Since:
- 1.10
-
streamsSelectedGetSize
public int streamsSelectedGetSize()Returns the number of streams contained in themessage.- Returns:
- The number of streams contained within.
- Since:
- 1.10
-
streamsSelectedGetStream
Retrieves theGstStreamwith indexindexfrom themessage.- 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
Returns the details structure of themessage.If not present it will be created. Use this function (instead of gst_message_get_details()) if you want to write to thedetailsstructure.The returned structure must not be freed.
- Returns:
- The details
- Since:
- 1.26
-
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
-