# vaapimpeg2dec

vaapimpeg2dec decodes from MPEG2 bitstreams to surfaces suitable for the vaapisink or vaapipostproc elements using the installed VA-API back-end.

In the case of OpenGL based elements, the buffers have the GstVideoGLTextureUploadMeta meta, which efficiently copies the content of the VA-API surface into a GL texture.

Also it can deliver normal video buffers that can be rendered or processed by other elements, but the performance would be rather bad.

## Example launch line

     gst-launch-1.0 filesrc location=~/sample.mpg ! mpegpsdemux ! vaapimpeg2dec ! vaapisink

## Hierarchy

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstVideoDecoder
                        ╰──vaapimpeg2dec

## Factory details

Authors: – Gwenole Beauchesne , Halley Zhao , Sreerenj Balachandran , Wind Yuan

Classification: – `Codec/Decoder/Video/Hardware`

Rank – primary

Plugin – vaapi

Package – gstreamer-vaapi

## Pad Templates

### `sink`

    video/mpeg:
        mpegversion: 2
       systemstream: false

Presence – always

Direction – sink

Object type – GstPad

### `src`

    video/x-raw(memory:VASurface):
             format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, VUYA, Y210, Y410, ARGB, xRGB, RGBA, RGBx, ABGR, xBGR, BGRA, BGRx, RGB16, RGB, BGR10A2_LE }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

    video/x-raw(meta:GstVideoGLTextureUploadMeta):
             format: { RGBA, BGRA }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]
    video/x-raw:
             format: { ENCODED, NV12, YV12, I420, YUY2, UYVY, Y444, GRAY8, P010_10LE, VUYA, Y210, Y410, ARGB, xRGB, RGBA, RGBx, ABGR, xBGR, BGRA, BGRx, RGB16, RGB, BGR10A2_LE }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

    video/x-raw(memory:DMABuf):
             format: { I420, YV12, RGBA }
              width: [ 1, 2147483647 ]
             height: [ 1, 2147483647 ]
          framerate: [ 0/1, 2147483647/1 ]

Presence – always

Direction – src

Object type – GstPad

The results of the search are