gstmpegvideometa

## gstmpegvideometa gstmpegvideometa |

## Synopsis

    #include <gst/codecparsers/gstmpegvideometa.h>

    #define             GST_MPEG_VIDEO_META_API_TYPE
    #define             GST_MPEG_VIDEO_META_INFO
    struct              GstMpegVideoMeta;
    GstMpegVideoMeta *  gst_buffer_add_mpeg_video_meta      (GstBuffer *buffer,
                                                             const GstMpegVideoSequenceHdr *seq_hdr,
                                                             const GstMpegVideoSequenceExt *seq_ext,
                                                             const GstMpegVideoSequenceDisplayExt *disp_ext,
                                                             const GstMpegVideoPictureHdr *pic_hdr,
                                                             const GstMpegVideoPictureExt *pic_ext,
                                                             const GstMpegVideoQuantMatrixExt *quant_ext);
    #define             gst_buffer_get_mpeg_video_meta      (b)
    const GstMetaInfo * gst_mpeg_video_meta_get_info        (void);

## Description

## Details

### GST_MPEG_VIDEO_META_API_TYPE

    #define GST_MPEG_VIDEO_META_API_TYPE  (gst_mpeg_video_meta_api_get_type())

### GST_MPEG_VIDEO_META_INFO

    #define GST_MPEG_VIDEO_META_INFO  (gst_mpeg_video_meta_get_info())

### struct GstMpegVideoMeta

    struct GstMpegVideoMeta {
      GstMeta            meta;

      GstMpegVideoSequenceHdr        *sequencehdr;
      GstMpegVideoSequenceExt        *sequenceext;
      GstMpegVideoSequenceDisplayExt *sequencedispext;
      GstMpegVideoPictureHdr         *pichdr;
      GstMpegVideoPictureExt         *picext;
      GstMpegVideoQuantMatrixExt     *quantext;

      guint num_slices;
      gsize slice_offset;
    };

Extra buffer metadata describing the contents of a MPEG1/2 Video frame

Can be used by elements (mainly decoders) to avoid having to parse Mpeg video 1/2 packets if it can be done upstream.

The various fields are only valid during the lifetime of the GstMpegVideoMeta. If elements wish to use those for longer, they are required to make a copy.

GstMeta `meta`; | parent GstMeta
GstMpegVideoSequenceHdr *`sequencehdr`; | the GstMpegVideoSequenceHdr if present in the buffer
GstMpegVideoSequenceExt *`sequenceext`; | the GstMpegVideoSequenceExt if present in the buffer
GstMpegVideoSequenceDisplayExt *`sequencedispext`; | the GstMpegVideoSequenceDisplayExt if present in the buffer.
GstMpegVideoPictureHdr *`pichdr`; | the GstMpegVideoPictureHdr if present in the buffer.
GstMpegVideoPictureExt *`picext`; | the GstMpegVideoPictureExt if present in the buffer.
GstMpegVideoQuantMatrixExt *`quantext`; | the GstMpegVideoQuantMatrixExt if present in the buffer
guint `num_slices`; |
gsize `slice_offset`; |

Since 1.2

### gst_buffer_add_mpeg_video_meta ()

    GstMpegVideoMeta *  gst_buffer_add_mpeg_video_meta      (GstBuffer *buffer,
                                                             const GstMpegVideoSequenceHdr *seq_hdr,
                                                             const GstMpegVideoSequenceExt *seq_ext,
                                                             const GstMpegVideoSequenceDisplayExt *disp_ext,
                                                             const GstMpegVideoPictureHdr *pic_hdr,
                                                             const GstMpegVideoPictureExt *pic_ext,
                                                             const GstMpegVideoQuantMatrixExt *quant_ext);

Creates and adds a GstMpegVideoMeta to a `buffer`.

Provided structures must either be `NULL` or GSlice-allocated.

`buffer` : | a GstBuffer
Returns : | a newly created GstMpegVideoMeta. [transfer full]

Since 1.2

### gst_buffer_get_mpeg_video_meta()

    #define gst_buffer_get_mpeg_video_meta(b) ((GstMpegVideoMeta*)gst_buffer_get_meta((b),GST_MPEG_VIDEO_META_API_TYPE))

### gst_mpeg_video_meta_get_info ()

    const GstMetaInfo * gst_mpeg_video_meta_get_info        (void);