## GstMessage GstMessage |

## Functions

#define | GST_MESSAGE_SRC()
#define | GST_MESSAGE_SRC_NAME()
#define | GST_MESSAGE_TIMESTAMP()
#define | GST_MESSAGE_SEQNUM()
#define | GST_MESSAGE_TYPE()
#define | GST_MESSAGE_TYPE_IS_EXTENDED()
#define | GST_MESSAGE_TYPE_NAME()
GQuark | gst_message_type_to_quark ()
const gchar * | gst_message_type_get_name ()
GstMessage * | gst_message_ref ()
void | gst_message_unref ()
GstMessage * | gst_message_copy ()
const GstStructure * | gst_message_get_structure ()
#define | gst_message_make_writable()
guint32 | gst_message_get_seqnum ()
void | gst_message_set_seqnum ()
gboolean | gst_message_has_name ()
#define | gst_message_is_writable()
gboolean | gst_message_replace ()
GstMessage * | gst_message_new_eos ()
GstMessage * | gst_message_new_error ()
void | gst_message_parse_error ()
GstMessage * | gst_message_new_warning ()
void | gst_message_parse_warning ()
GstMessage * | gst_message_new_info ()
void | gst_message_parse_info ()
GstMessage * | gst_message_new_tag ()
void | gst_message_parse_tag ()
GstMessage * | gst_message_new_buffering ()
void | gst_message_parse_buffering ()
void | gst_message_set_buffering_stats ()
void | gst_message_parse_buffering_stats ()
GstMessage * | gst_message_new_state_changed ()
void | gst_message_parse_state_changed ()
GstMessage * | gst_message_new_state_dirty ()
GstMessage * | gst_message_new_step_done ()
void | gst_message_parse_step_done ()
GstMessage * | gst_message_new_clock_provide ()
void | gst_message_parse_clock_provide ()
GstMessage * | gst_message_new_clock_lost ()
void | gst_message_parse_clock_lost ()
GstMessage * | gst_message_new_new_clock ()
void | gst_message_parse_new_clock ()
GstMessage * | gst_message_new_application ()
GstMessage * | gst_message_new_element ()
GstMessage * | gst_message_new_custom ()
GstMessage * | gst_message_new_segment_start ()
void | gst_message_parse_segment_start ()
GstMessage * | gst_message_new_segment_done ()
void | gst_message_parse_segment_done ()
GstMessage * | gst_message_new_duration_changed ()
GstMessage * | gst_message_new_latency ()
GstMessage * | gst_message_new_async_start ()
GstMessage * | gst_message_new_async_done ()
void | gst_message_parse_async_done ()
GstMessage * | gst_message_new_step_start ()
void | gst_message_parse_step_start ()
GstMessage * | gst_message_new_qos ()
void | gst_message_set_qos_values ()
void | gst_message_set_qos_stats ()
void | gst_message_parse_qos ()
void | gst_message_parse_qos_values ()
void | gst_message_parse_qos_stats ()
GstMessage * | gst_message_new_toc ()
void | gst_message_parse_toc ()
GstMessage * | gst_message_new_reset_time ()
void | gst_message_parse_reset_time ()
GstMessage * | gst_message_new_stream_start ()
void | gst_message_set_group_id ()
gboolean | gst_message_parse_group_id ()
GstMessage * | gst_message_new_stream_collection ()
void | gst_message_parse_stream_collection ()
GstMessage * | gst_message_new_structure_change ()
void | gst_message_parse_structure_change ()
GstMessage * | gst_message_new_request_state ()
void | gst_message_parse_request_state ()
GstMessage * | gst_message_new_stream_status ()
void | gst_message_parse_stream_status ()
void | gst_message_set_stream_status_object ()
const GValue * | gst_message_get_stream_status_object ()
GstMessage * | gst_message_new_progress ()
void | gst_message_parse_progress ()
GstMessage * | gst_message_new_need_context ()
gboolean | gst_message_parse_context_type ()
GstMessage * | gst_message_new_have_context ()
void | gst_message_parse_have_context ()
GstMessage * | gst_message_new_device_added ()
GstMessage * | gst_message_new_device_removed ()
void | gst_message_parse_device_added ()
void | gst_message_parse_device_removed ()
GstMessage * | gst_message_new_property_notify ()
void | gst_message_parse_property_notify ()
GstMessage * | gst_message_new_streams_selected ()
void | gst_message_parse_streams_selected ()
void | gst_message_streams_selected_add ()
guint | gst_message_streams_selected_get_size ()
GstStream * | gst_message_streams_selected_get_stream ()

## Types and Values

struct | GstMessage
enum | GstMessageType
enum | GstStructureChangeType
enum | GstStreamStatusType
enum | GstProgressType

## Object Hierarchy

        GBoxed
        ╰── GstMessage

## Includes

    #include <gst/gst.h>

## Description

## Functions

### GST_MESSAGE_SRC()

    #define GST_MESSAGE_SRC(message)        (GST_MESSAGE_CAST(message)->src)

### GST_MESSAGE_SRC_NAME()

    #define             GST_MESSAGE_SRC_NAME(message)

### GST_MESSAGE_TIMESTAMP()

    #define GST_MESSAGE_TIMESTAMP(message)  (GST_MESSAGE_CAST(message)->timestamp)

### GST_MESSAGE_SEQNUM()

    #define GST_MESSAGE_SEQNUM(message)     (GST_MESSAGE_CAST(message)->seqnum)

### GST_MESSAGE_TYPE()

    #define GST_MESSAGE_TYPE(message)       (GST_MESSAGE_CAST(message)->type)

### GST_MESSAGE_TYPE_IS_EXTENDED()

    #define GST_MESSAGE_TYPE_IS_EXTENDED(message)       (!!(GST_MESSAGE_CAST(message)->type & GST_MESSAGE_EXTENDED))

### GST_MESSAGE_TYPE_NAME()

    #define GST_MESSAGE_TYPE_NAME(message)  gst_message_type_get_name(GST_MESSAGE_TYPE(message))

### gst_message_type_to_quark ()

    GQuark
    gst_message_type_to_quark (GstMessageType type);

### gst_message_type_get_name ()

    const gchar *
    gst_message_type_get_name (GstMessageType type);

### gst_message_ref ()

    GstMessage *
    gst_message_ref (GstMessage *msg);

### gst_message_unref ()

    void
    gst_message_unref (GstMessage *msg);

### gst_message_copy ()

    GstMessage *
    gst_message_copy (const GstMessage *msg);

### gst_message_get_structure ()

    const GstStructure *
    gst_message_get_structure (GstMessage *message);

### gst_message_make_writable()

    #define         gst_message_make_writable(msg)  GST_MESSAGE_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (msg)))

### gst_message_get_seqnum ()

    guint32
    gst_message_get_seqnum (GstMessage *message);

### gst_message_set_seqnum ()

    void
    gst_message_set_seqnum (GstMessage *message,
                            guint32 seqnum);

### gst_message_has_name ()

    gboolean
    gst_message_has_name (GstMessage *message,
                          const gchar *name);

### gst_message_is_writable()

    #define         gst_message_is_writable(msg)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (msg))

### gst_message_replace ()

    gboolean
    gst_message_replace (GstMessage **old_message,
                         GstMessage *new_message);

### gst_message_new_eos ()

    GstMessage *
    gst_message_new_eos (GstObject *src);

### gst_message_new_error ()

    GstMessage *
    gst_message_new_error (GstObject *src,
                           GError *error,
                           const gchar *debug);

### gst_message_parse_error ()

    void
    gst_message_parse_error (GstMessage *message,
                             GError **gerror,
                             gchar **debug);

### gst_message_new_warning ()

    GstMessage *
    gst_message_new_warning (GstObject *src,
                             GError *error,
                             const gchar *debug);

### gst_message_parse_warning ()

    void
    gst_message_parse_warning (GstMessage *message,
                               GError **gerror,
                               gchar **debug);

### gst_message_new_info ()

    GstMessage *
    gst_message_new_info (GstObject *src,
                          GError *error,
                          const gchar *debug);

### gst_message_parse_info ()

    void
    gst_message_parse_info (GstMessage *message,
                            GError **gerror,
                            gchar **debug);

### gst_message_new_tag ()

    GstMessage *
    gst_message_new_tag (GstObject *src,
                         GstTagList *tag_list);

### gst_message_parse_tag ()

    void
    gst_message_parse_tag (GstMessage *message,
                           GstTagList **tag_list);

### gst_message_new_buffering ()

    GstMessage *
    gst_message_new_buffering (GstObject *src,
                               gint percent);

### gst_message_parse_buffering ()

    void
    gst_message_parse_buffering (GstMessage *message,
                                 gint *percent);

### gst_message_set_buffering_stats ()

    void
    gst_message_set_buffering_stats (GstMessage *message,
                                     GstBufferingMode mode,
                                     gint avg_in,
                                     gint avg_out,
                                     gint64 buffering_left);

### gst_message_parse_buffering_stats ()

    void
    gst_message_parse_buffering_stats (GstMessage *message,
                                       GstBufferingMode *mode,
                                       gint *avg_in,
                                       gint *avg_out,
                                       gint64 *buffering_left);

### gst_message_new_state_changed ()

    GstMessage *
    gst_message_new_state_changed (GstObject *src,
                                   GstState oldstate,
                                   GstState newstate,
                                   GstState pending);

### gst_message_parse_state_changed ()

    void
    gst_message_parse_state_changed (GstMessage *message,
                                     GstState *oldstate,
                                     GstState *newstate,
                                     GstState *pending);

### gst_message_new_state_dirty ()

    GstMessage *
    gst_message_new_state_dirty (GstObject *src);

### gst_message_new_step_done ()

    GstMessage *
    gst_message_new_step_done (GstObject *src,
                               GstFormat format,
                               guint64 amount,
                               gdouble rate,
                               gboolean flush,
                               gboolean intermediate,
                               guint64 duration,
                               gboolean eos);

### gst_message_parse_step_done ()

    void
    gst_message_parse_step_done (GstMessage *message,
                                 GstFormat *format,
                                 guint64 *amount,
                                 gdouble *rate,
                                 gboolean *flush,
                                 gboolean *intermediate,
                                 guint64 *duration,
                                 gboolean *eos);

### gst_message_new_clock_provide ()

    GstMessage *
    gst_message_new_clock_provide (GstObject *src,
                                   GstClock *clock,
                                   gboolean ready);

### gst_message_parse_clock_provide ()

    void
    gst_message_parse_clock_provide (GstMessage *message,
                                     GstClock **clock,
                                     gboolean *ready);

### gst_message_new_clock_lost ()

    GstMessage *
    gst_message_new_clock_lost (GstObject *src,
                                GstClock *clock);

### gst_message_parse_clock_lost ()

    void
    gst_message_parse_clock_lost (GstMessage *message,
                                  GstClock **clock);

### gst_message_new_new_clock ()

    GstMessage *
    gst_message_new_new_clock (GstObject *src,
                               GstClock *clock);

### gst_message_parse_new_clock ()

    void
    gst_message_parse_new_clock (GstMessage *message,
                                 GstClock **clock);

### gst_message_new_application ()

    GstMessage *
    gst_message_new_application (GstObject *src,
                                 GstStructure *structure);

### gst_message_new_element ()

    GstMessage *
    gst_message_new_element (GstObject *src,
                             GstStructure *structure);

### gst_message_new_custom ()

    GstMessage *
    gst_message_new_custom (GstMessageType type,
                            GstObject *src,
                            GstStructure *structure);

### gst_message_new_segment_start ()

    GstMessage *
    gst_message_new_segment_start (GstObject *src,
                                   GstFormat format,
                                   gint64 position);

### gst_message_parse_segment_start ()

    void
    gst_message_parse_segment_start (GstMessage *message,
                                     GstFormat *format,
                                     gint64 *position);

### gst_message_new_segment_done ()

    GstMessage *
    gst_message_new_segment_done (GstObject *src,
                                  GstFormat format,
                                  gint64 position);

### gst_message_parse_segment_done ()

    void
    gst_message_parse_segment_done (GstMessage *message,
                                    GstFormat *format,
                                    gint64 *position);

### gst_message_new_duration_changed ()

    GstMessage *
    gst_message_new_duration_changed (GstObject *src);

### gst_message_new_latency ()

    GstMessage *
    gst_message_new_latency (GstObject *src);

### gst_message_new_async_start ()

    GstMessage *
    gst_message_new_async_start (GstObject *src);

### gst_message_new_async_done ()

    GstMessage *
    gst_message_new_async_done (GstObject *src,
                                GstClockTime running_time);

### gst_message_parse_async_done ()

    void
    gst_message_parse_async_done (GstMessage *message,
                                  GstClockTime *running_time);

### gst_message_new_step_start ()

    GstMessage *
    gst_message_new_step_start (GstObject *src,
                                gboolean active,
                                GstFormat format,
                                guint64 amount,
                                gdouble rate,
                                gboolean flush,
                                gboolean intermediate);

### gst_message_parse_step_start ()

    void
    gst_message_parse_step_start (GstMessage *message,
                                  gboolean *active,
                                  GstFormat *format,
                                  guint64 *amount,
                                  gdouble *rate,
                                  gboolean *flush,
                                  gboolean *intermediate);

### gst_message_new_qos ()

    GstMessage *
    gst_message_new_qos (GstObject *src,
                         gboolean live,
                         guint64 running_time,
                         guint64 stream_time,
                         guint64 timestamp,
                         guint64 duration);

### gst_message_set_qos_values ()

    void
    gst_message_set_qos_values (GstMessage *message,
                                gint64 jitter,
                                gdouble proportion,
                                gint quality);

### gst_message_set_qos_stats ()

    void
    gst_message_set_qos_stats (GstMessage *message,
                               GstFormat format,
                               guint64 processed,
                               guint64 dropped);

### gst_message_parse_qos ()

    void
    gst_message_parse_qos (GstMessage *message,
                           gboolean *live,
                           guint64 *running_time,
                           guint64 *stream_time,
                           guint64 *timestamp,
                           guint64 *duration);

### gst_message_parse_qos_values ()

    void
    gst_message_parse_qos_values (GstMessage *message,
                                  gint64 *jitter,
                                  gdouble *proportion,
                                  gint *quality);

### gst_message_parse_qos_stats ()

    void
    gst_message_parse_qos_stats (GstMessage *message,
                                 GstFormat *format,
                                 guint64 *processed,
                                 guint64 *dropped);

### gst_message_new_toc ()

    GstMessage *
    gst_message_new_toc (GstObject *src,
                         GstToc *toc,
                         gboolean updated);

### gst_message_parse_toc ()

    void
    gst_message_parse_toc (GstMessage *message,
                           GstToc **toc,
                           gboolean *updated);

### gst_message_new_reset_time ()

    GstMessage *
    gst_message_new_reset_time (GstObject *src,
                                GstClockTime running_time);

### gst_message_parse_reset_time ()

    void
    gst_message_parse_reset_time (GstMessage *message,
                                  GstClockTime *running_time);

### gst_message_new_stream_start ()

    GstMessage *
    gst_message_new_stream_start (GstObject *src);

### gst_message_set_group_id ()

    void
    gst_message_set_group_id (GstMessage *message,
                              guint group_id);

### gst_message_parse_group_id ()

    gboolean
    gst_message_parse_group_id (GstMessage *message,
                                guint *group_id);

### gst_message_new_stream_collection ()

    GstMessage *
    gst_message_new_stream_collection (GstObject *src,
                                       GstStreamCollection *collection);

### gst_message_parse_stream_collection ()

    void
    gst_message_parse_stream_collection (GstMessage *message,
                                         GstStreamCollection **collection);

### gst_message_new_structure_change ()

    GstMessage *
    gst_message_new_structure_change (GstObject *src,
                                      GstStructureChangeType type,
                                      GstElement *owner,
                                      gboolean busy);

### gst_message_parse_structure_change ()

    void
    gst_message_parse_structure_change (GstMessage *message,
                                        GstStructureChangeType *type,
                                        GstElement **owner,
                                        gboolean *busy);

### gst_message_new_request_state ()

    GstMessage *
    gst_message_new_request_state (GstObject *src,
                                   GstState state);

### gst_message_parse_request_state ()

    void
    gst_message_parse_request_state (GstMessage *message,
                                     GstState *state);

### gst_message_new_stream_status ()

    GstMessage *
    gst_message_new_stream_status (GstObject *src,
                                   GstStreamStatusType type,
                                   GstElement *owner);

### gst_message_parse_stream_status ()

    void
    gst_message_parse_stream_status (GstMessage *message,
                                     GstStreamStatusType *type,
                                     GstElement **owner);

### gst_message_set_stream_status_object ()

    void
    gst_message_set_stream_status_object (GstMessage *message,
                                          const GValue *object);

### gst_message_get_stream_status_object ()

    const GValue *
    gst_message_get_stream_status_object (GstMessage *message);

### gst_message_new_progress ()

    GstMessage *
    gst_message_new_progress (GstObject *src,
                              GstProgressType type,
                              const gchar *code,
                              const gchar *text);

### gst_message_parse_progress ()

    void
    gst_message_parse_progress (GstMessage *message,
                                GstProgressType *type,
                                gchar **code,
                                gchar **text);

### gst_message_new_need_context ()

    GstMessage *
    gst_message_new_need_context (GstObject *src,
                                  const gchar *context_type);

### gst_message_parse_context_type ()

    gboolean
    gst_message_parse_context_type (GstMessage *message,
                                    const gchar **context_type);

### gst_message_new_have_context ()

    GstMessage *
    gst_message_new_have_context (GstObject *src,
                                  GstContext *context);

### gst_message_parse_have_context ()

    void
    gst_message_parse_have_context (GstMessage *message,
                                    GstContext **context);

### gst_message_new_device_added ()

    GstMessage *
    gst_message_new_device_added (GstObject *src,
                                  GstDevice *device);

### gst_message_new_device_removed ()

    GstMessage *
    gst_message_new_device_removed (GstObject *src,
                                    GstDevice *device);

### gst_message_parse_device_added ()

    void
    gst_message_parse_device_added (GstMessage *message,
                                    GstDevice **device);

### gst_message_parse_device_removed ()

    void
    gst_message_parse_device_removed (GstMessage *message,
                                      GstDevice **device);

### gst_message_new_property_notify ()

    GstMessage *
    gst_message_new_property_notify (GstObject *src,
                                     const gchar *property_name,
                                     GValue *val);

### gst_message_parse_property_notify ()

    void
    gst_message_parse_property_notify (GstMessage *message,
                                       GstObject **object,
                                       const gchar **property_name,
                                       const GValue **property_value);

### gst_message_new_streams_selected ()

    GstMessage *
    gst_message_new_streams_selected (GstObject *src,
                                      GstStreamCollection *collection);

### gst_message_parse_streams_selected ()

    void
    gst_message_parse_streams_selected (GstMessage *message,
                                        GstStreamCollection **collection);

### gst_message_streams_selected_add ()

    void
    gst_message_streams_selected_add (GstMessage *message,
                                      GstStream *stream);

### gst_message_streams_selected_get_size ()

    guint
    gst_message_streams_selected_get_size (GstMessage *message);

### gst_message_streams_selected_get_stream ()

    GstStream *
    gst_message_streams_selected_get_stream
                                   (GstMessage *message,
                                    guint idx);

## Types and Values

### struct GstMessage

    struct GstMessage {
      GstMiniObject   mini_object;

      GstMessageType  type;
      guint64         timestamp;
      GstObject      *src;
      guint32         seqnum;
    };

### enum GstMessageType

#### Members

GST_MESSAGE_UNKNOWN |  |
GST_MESSAGE_EOS |  |
GST_MESSAGE_ERROR |  |
GST_MESSAGE_WARNING |  |
GST_MESSAGE_INFO |  |
GST_MESSAGE_TAG |  |
GST_MESSAGE_BUFFERING |  |
GST_MESSAGE_STATE_CHANGED |  |
GST_MESSAGE_STATE_DIRTY |  |
GST_MESSAGE_STEP_DONE |  |
GST_MESSAGE_CLOCK_PROVIDE |  |
GST_MESSAGE_CLOCK_LOST |  |
GST_MESSAGE_NEW_CLOCK |  |
GST_MESSAGE_STRUCTURE_CHANGE |  |
GST_MESSAGE_STREAM_STATUS |  |
GST_MESSAGE_APPLICATION |  |
GST_MESSAGE_ELEMENT |  |
GST_MESSAGE_SEGMENT_START |  |
GST_MESSAGE_SEGMENT_DONE |  |
GST_MESSAGE_DURATION_CHANGED |  |
GST_MESSAGE_LATENCY |  |
GST_MESSAGE_ASYNC_START |  |
GST_MESSAGE_ASYNC_DONE |  |
GST_MESSAGE_REQUEST_STATE |  |
GST_MESSAGE_STEP_START |  |
GST_MESSAGE_QOS |  |
GST_MESSAGE_PROGRESS |  |
GST_MESSAGE_TOC |  |
GST_MESSAGE_RESET_TIME |  |
GST_MESSAGE_STREAM_START |  |
GST_MESSAGE_NEED_CONTEXT |  |
GST_MESSAGE_HAVE_CONTEXT |  |
GST_MESSAGE_EXTENDED |  |
GST_MESSAGE_DEVICE_ADDED |  |
GST_MESSAGE_DEVICE_REMOVED |  |
GST_MESSAGE_PROPERTY_NOTIFY |  |
GST_MESSAGE_STREAM_COLLECTION |  |
GST_MESSAGE_STREAMS_SELECTED |  |
GST_MESSAGE_ANY |  |

### enum GstStructureChangeType

#### Members

GST_STRUCTURE_CHANGE_TYPE_PAD_LINK |  |
GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK |  |

### enum GstStreamStatusType

#### Members

GST_STREAM_STATUS_TYPE_CREATE |  |
GST_STREAM_STATUS_TYPE_ENTER |  |
GST_STREAM_STATUS_TYPE_LEAVE |  |
GST_STREAM_STATUS_TYPE_DESTROY |  |
GST_STREAM_STATUS_TYPE_START |  |
GST_STREAM_STATUS_TYPE_PAUSE |  |
GST_STREAM_STATUS_TYPE_STOP |  |

### enum GstProgressType

#### Members

GST_PROGRESS_TYPE_START |  |
GST_PROGRESS_TYPE_CONTINUE |  |
GST_PROGRESS_TYPE_COMPLETE |  |
GST_PROGRESS_TYPE_CANCELED |  |
GST_PROGRESS_TYPE_ERROR |  |