# GstVp9Decoder

    GObject
        ╰──GInitiallyUnowned
            ╰──GstObject
                ╰──GstElement
                    ╰──GstVideoDecoder
                        ╰──GstVp9Decoder

The opaque GstVp9Decoder data structure.

### Class structure

#### GstVp9DecoderClass

##### Fields

`parent_class` (GstVideoDecoderClass) –
No description available

### GstCodecs.Vp9DecoderClass

##### Attributes

`parent_class` (GstVideo.VideoDecoderClass) –
No description available

### GstCodecs.Vp9DecoderClass

##### Attributes

`parent_class` (GstVideo.VideoDecoderClass) –
No description available

## GstCodecs.Vp9Decoder

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──GstVideo.VideoDecoder
                        ╰──GstCodecs.Vp9Decoder

The opaque GstCodecs.Vp9Decoder data structure.

## GstCodecs.Vp9Decoder

    GObject.Object
        ╰──GObject.InitiallyUnowned
            ╰──Gst.Object
                ╰──Gst.Element
                    ╰──GstVideo.VideoDecoder
                        ╰──GstCodecs.Vp9Decoder

The opaque GstCodecs.Vp9Decoder data structure.

### Methods

#### gst_vp9_decoder_set_non_keyframe_format_change_support

    gst_vp9_decoder_set_non_keyframe_format_change_support (GstVp9Decoder * decoder,
                                                            gboolean support)

Called to set non-keyframe format change awareness

Parameters:

`decoder` –

a GstVp9Decoder

`support` –

whether subclass can support non-keyframe format change

Since : 1.20

#### GstCodecs.Vp9Decoder.prototype.set_non_keyframe_format_change_support

    function GstCodecs.Vp9Decoder.prototype.set_non_keyframe_format_change_support(support: Number): {
        // javascript wrapper for 'gst_vp9_decoder_set_non_keyframe_format_change_support'
    }

Called to set non-keyframe format change awareness

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`support` (Number) –

whether subclass can support non-keyframe format change

Since : 1.20

#### GstCodecs.Vp9Decoder.set_non_keyframe_format_change_support

    def GstCodecs.Vp9Decoder.set_non_keyframe_format_change_support (self, support):
        #python wrapper for 'gst_vp9_decoder_set_non_keyframe_format_change_support'

Called to set non-keyframe format change awareness

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`support` (bool) –

whether subclass can support non-keyframe format change

Since : 1.20

### Virtual Methods

#### decode_picture

    GstFlowReturn
    decode_picture (GstVp9Decoder * decoder,
                    GstVp9Picture * picture,
                    GstVp9Dpb * dpb)

Called to notify decoding for subclass to decoder given picture with given dpb

Parameters:

`decoder` –

a GstVp9Decoder

`picture` ( [transfer: none]) –

a GstVp9Picture to decoder

`dpb` ( [transfer: none]) –

a GstVp9Dpb

Returns –
No description available

Since : 1.18

#### vfunc_decode_picture

    function vfunc_decode_picture(decoder: GstCodecs.Vp9Decoder, picture: GstCodecs.Vp9Picture, dpb: GstCodecs.Vp9Dpb): {
        // javascript implementation of the 'decode_picture' virtual method
    }

Called to notify decoding for subclass to decoder given picture with given dpb

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture to decoder

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### do_decode_picture

    def do_decode_picture (decoder, picture, dpb):
        #python implementation of the 'decode_picture' virtual method

Called to notify decoding for subclass to decoder given picture with given dpb

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture to decoder

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### duplicate_picture

    GstVp9Picture *
    duplicate_picture (GstVp9Decoder * decoder,
                       GstVideoCodecFrame * frame,
                       GstVp9Picture * picture)

Optional. Called to duplicate picture when show_existing_frame flag is set in the parsed vp9 frame header. Returned GstVp9Picture from this method should hold already decoded picture data corresponding to the picture, since the returned GstVp9Picture from this method will be passed to the output_picture method immediately without additional decoding process.

If this method is not implemented by subclass, baseclass will drop current GstVideoCodecFrame without additional processing for the current frame.

Parameters:

`decoder` –

a GstVp9Decoder

`frame` ( [transfer: none]) –

a GstVideoCodecFrame

`picture` ( [transfer: none]) –

a GstVp9Picture to be duplicated

Returns ( [transfer: full][nullable]) –

a GstVp9Picture or NULL if failed to duplicate picture.

Since : 1.18

#### vfunc_duplicate_picture

    function vfunc_duplicate_picture(decoder: GstCodecs.Vp9Decoder, frame: GstVideo.VideoCodecFrame, picture: GstCodecs.Vp9Picture): {
        // javascript implementation of the 'duplicate_picture' virtual method
    }

Optional. Called to duplicate picture when show_existing_frame flag is set in the parsed vp9 frame header. Returned GstCodecs.Vp9Picture from this method should hold already decoded picture data corresponding to the picture, since the returned GstCodecs.Vp9Picture from this method will be passed to the output_picture method immediately without additional decoding process.

If this method is not implemented by subclass, baseclass will drop current GstVideo.VideoCodecFrame without additional processing for the current frame.

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame` (GstVideo.VideoCodecFrame) –

a GstVideo.VideoCodecFrame

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture to be duplicated

Returns (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture or null if failed to duplicate picture.

Since : 1.18

#### do_duplicate_picture

    def do_duplicate_picture (decoder, frame, picture):
        #python implementation of the 'duplicate_picture' virtual method

Optional. Called to duplicate picture when show_existing_frame flag is set in the parsed vp9 frame header. Returned GstCodecs.Vp9Picture from this method should hold already decoded picture data corresponding to the picture, since the returned GstCodecs.Vp9Picture from this method will be passed to the output_picture method immediately without additional decoding process.

If this method is not implemented by subclass, baseclass will drop current GstVideo.VideoCodecFrame without additional processing for the current frame.

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame` (GstVideo.VideoCodecFrame) –

a GstVideo.VideoCodecFrame

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture to be duplicated

Returns (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture or None if failed to duplicate picture.

Since : 1.18

#### end_picture

    GstFlowReturn
    end_picture (GstVp9Decoder * decoder,
                 GstVp9Picture * picture)

Optional. Called per one GstVp9Picture to notify subclass to finish decoding process for the GstVp9Picture

Parameters:

`decoder` –

a GstVp9Decoder

`picture` ( [transfer: none]) –

a GstVp9Picture

Returns –
No description available

Since : 1.18

#### vfunc_end_picture

    function vfunc_end_picture(decoder: GstCodecs.Vp9Decoder, picture: GstCodecs.Vp9Picture): {
        // javascript implementation of the 'end_picture' virtual method
    }

Optional. Called per one GstCodecs.Vp9Picture to notify subclass to finish decoding process for the GstCodecs.Vp9Picture

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### do_end_picture

    def do_end_picture (decoder, picture):
        #python implementation of the 'end_picture' virtual method

Optional. Called per one GstCodecs.Vp9Picture to notify subclass to finish decoding process for the GstCodecs.Vp9Picture

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### get_preferred_output_delay

    guint
    get_preferred_output_delay (GstVp9Decoder * decoder,
                                gboolean is_live)

Optional. Retrieve the preferred output delay from child classes. controls how many frames to delay when calling GstVp9DecoderClass::output_picture

Parameters:

`decoder` –

a GstVp9Decoder

`is_live` –

whether upstream is live or not

Returns –

the number of perferred delayed output frame

Since : 1.20

#### vfunc_get_preferred_output_delay

    function vfunc_get_preferred_output_delay(decoder: GstCodecs.Vp9Decoder, is_live: Number): {
        // javascript implementation of the 'get_preferred_output_delay' virtual method
    }

Optional. Retrieve the preferred output delay from child classes. controls how many frames to delay when calling GstVp9DecoderClass::output_picture

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`is_live` (Number) –

whether upstream is live or not

Returns (Number) –

the number of perferred delayed output frame

Since : 1.20

#### do_get_preferred_output_delay

    def do_get_preferred_output_delay (decoder, is_live):
        #python implementation of the 'get_preferred_output_delay' virtual method

Optional. Retrieve the preferred output delay from child classes. controls how many frames to delay when calling GstVp9DecoderClass::output_picture

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`is_live` (bool) –

whether upstream is live or not

Returns (int) –

the number of perferred delayed output frame

Since : 1.20

#### new_picture

    GstFlowReturn
    new_picture (GstVp9Decoder * decoder,
                 GstVideoCodecFrame * frame,
                 GstVp9Picture * picture)

Optional. Called whenever new GstVp9Picture is created. Subclass can set implementation specific user data on the GstVp9Picture via gst_vp9_picture_set_user_data

Parameters:

`decoder` –

a GstVp9Decoder

`frame` ( [transfer: none]) –

a GstVideoCodecFrame

`picture` ( [transfer: none]) –

a GstVp9Picture

Returns –
No description available

Since : 1.18

#### vfunc_new_picture

    function vfunc_new_picture(decoder: GstCodecs.Vp9Decoder, frame: GstVideo.VideoCodecFrame, picture: GstCodecs.Vp9Picture): {
        // javascript implementation of the 'new_picture' virtual method
    }

Optional. Called whenever new GstCodecs.Vp9Picture is created. Subclass can set implementation specific user data on the GstCodecs.Vp9Picture via gst_vp9_picture_set_user_data

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame` (GstVideo.VideoCodecFrame) –

a GstVideo.VideoCodecFrame

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### do_new_picture

    def do_new_picture (decoder, frame, picture):
        #python implementation of the 'new_picture' virtual method

Optional. Called whenever new GstCodecs.Vp9Picture is created. Subclass can set implementation specific user data on the GstCodecs.Vp9Picture via gst_vp9_picture_set_user_data

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame` (GstVideo.VideoCodecFrame) –

a GstVideo.VideoCodecFrame

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### new_sequence

    GstFlowReturn
    new_sequence (GstVp9Decoder * decoder,
                  const GstVp9FrameHeader * frame_hdr,
                  gint max_dpb_size)

Notifies subclass of video sequence update such as resolution, bitdepth, profile.

Parameters:

`decoder` –

a GstVp9Decoder

`frame_hdr` –

a GstVp9FrameHeader

`max_dpb_size` –

the size of dpb including preferred output delay by subclass reported via get_preferred_output_delay method.

Returns –
No description available

Since : 1.18

#### vfunc_new_sequence

    function vfunc_new_sequence(decoder: GstCodecs.Vp9Decoder, frame_hdr: GstCodecs.Vp9FrameHeader, max_dpb_size: Number): {
        // javascript implementation of the 'new_sequence' virtual method
    }

Notifies subclass of video sequence update such as resolution, bitdepth, profile.

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame_hdr` (GstCodecs.Vp9FrameHeader) –

a GstCodecs.Vp9FrameHeader

`max_dpb_size` (Number) –

the size of dpb including preferred output delay by subclass reported via get_preferred_output_delay method.

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### do_new_sequence

    def do_new_sequence (decoder, frame_hdr, max_dpb_size):
        #python implementation of the 'new_sequence' virtual method

Notifies subclass of video sequence update such as resolution, bitdepth, profile.

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame_hdr` (GstCodecs.Vp9FrameHeader) –

a GstCodecs.Vp9FrameHeader

`max_dpb_size` (int) –

the size of dpb including preferred output delay by subclass reported via get_preferred_output_delay method.

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### output_picture

    GstFlowReturn
    output_picture (GstVp9Decoder * decoder,
                    GstVideoCodecFrame * frame,
                    GstVp9Picture * picture)

Called to notify picture is ready to be outputted.

Parameters:

`decoder` –

a GstVp9Decoder

`frame` ( [transfer: full]) –

a GstVideoCodecFrame

`picture` ( [transfer: full]) –

a GstVp9Picture

Returns –
No description available

Since : 1.18

#### vfunc_output_picture

    function vfunc_output_picture(decoder: GstCodecs.Vp9Decoder, frame: GstVideo.VideoCodecFrame, picture: GstCodecs.Vp9Picture): {
        // javascript implementation of the 'output_picture' virtual method
    }

Called to notify picture is ready to be outputted.

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame` (GstVideo.VideoCodecFrame) –

a GstVideo.VideoCodecFrame

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### do_output_picture

    def do_output_picture (decoder, frame, picture):
        #python implementation of the 'output_picture' virtual method

Called to notify picture is ready to be outputted.

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`frame` (GstVideo.VideoCodecFrame) –

a GstVideo.VideoCodecFrame

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### start_picture

    GstFlowReturn
    start_picture (GstVp9Decoder * decoder,
                   GstVp9Picture * picture)

Optional. Called to notify subclass to prepare decoding process for picture

Parameters:

`decoder` –

a GstVp9Decoder

`picture` ( [transfer: none]) –

a GstVp9Picture

Returns –
No description available

Since : 1.18

#### vfunc_start_picture

    function vfunc_start_picture(decoder: GstCodecs.Vp9Decoder, picture: GstCodecs.Vp9Picture): {
        // javascript implementation of the 'start_picture' virtual method
    }

Optional. Called to notify subclass to prepare decoding process for picture

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

#### do_start_picture

    def do_start_picture (decoder, picture):
        #python implementation of the 'start_picture' virtual method

Optional. Called to notify subclass to prepare decoding process for picture

Parameters:

`decoder` (GstCodecs.Vp9Decoder) –

a GstCodecs.Vp9Decoder

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

Returns (Gst.FlowReturn) –
No description available

Since : 1.18

## GstVp9Dpb

### Members

`pic_list` (GstVp9Picture *) –
No description available

## GstCodecs.Vp9Dpb

### Members

`pic_list` ([ GstCodecs.Vp9Picture ]) –
No description available

## GstCodecs.Vp9Dpb

### Members

`pic_list` ([ GstCodecs.Vp9Picture ]) –
No description available

### Methods

#### gst_vp9_dpb_add

    gst_vp9_dpb_add (GstVp9Dpb * dpb,
                     GstVp9Picture * picture)

Store the picture

Parameters:

`dpb` –

a GstVp9Dpb

`picture` ( [transfer: full]) –

a GstVp9Picture

#### GstCodecs.Vp9Dpb.prototype.add

    function GstCodecs.Vp9Dpb.prototype.add(picture: GstCodecs.Vp9Picture): {
        // javascript wrapper for 'gst_vp9_dpb_add'
    }

Store the picture

Parameters:

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

#### GstCodecs.Vp9Dpb.add

    def GstCodecs.Vp9Dpb.add (self, picture):
        #python wrapper for 'gst_vp9_dpb_add'

Store the picture

Parameters:

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb

`picture` (GstCodecs.Vp9Picture) –

a GstCodecs.Vp9Picture

#### gst_vp9_dpb_clear

    gst_vp9_dpb_clear (GstVp9Dpb * dpb)

Clear all stored GstVp9Picture

Parameters:

`dpb` –

a GstVp9Dpb

#### GstCodecs.Vp9Dpb.prototype.clear

    function GstCodecs.Vp9Dpb.prototype.clear(): {
        // javascript wrapper for 'gst_vp9_dpb_clear'
    }

Clear all stored GstCodecs.Vp9Picture

Parameters:

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb

#### GstCodecs.Vp9Dpb.clear

    def GstCodecs.Vp9Dpb.clear (self):
        #python wrapper for 'gst_vp9_dpb_clear'

Clear all stored GstCodecs.Vp9Picture

Parameters:

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb

#### gst_vp9_dpb_free

    gst_vp9_dpb_free (GstVp9Dpb * dpb)

Free the dpb

Parameters:

`dpb` –

a GstVp9Dpb to free

#### GstCodecs.Vp9Dpb.prototype.free

    function GstCodecs.Vp9Dpb.prototype.free(): {
        // javascript wrapper for 'gst_vp9_dpb_free'
    }

Free the dpb

Parameters:

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb to free

#### GstCodecs.Vp9Dpb.free

    def GstCodecs.Vp9Dpb.free (self):
        #python wrapper for 'gst_vp9_dpb_free'

Free the dpb

Parameters:

`dpb` (GstCodecs.Vp9Dpb) –

a GstCodecs.Vp9Dpb to free

### Functions

#### gst_vp9_dpb_new

    GstVp9Dpb *
    gst_vp9_dpb_new ()

Create new GstVp9Dpb

Returns –

a new GstVp9Dpb

## GstVp9Picture

## GstCodecs.Vp9Picture

### Constructors

#### gst_vp9_picture_new

    GstVp9Picture *
    gst_vp9_picture_new ()

Create new GstVp9Picture

Returns –

a new GstVp9Picture

#### GstCodecs.Vp9Picture.prototype.new

    function GstCodecs.Vp9Picture.prototype.new(): {
        // javascript wrapper for 'gst_vp9_picture_new'
    }

Create new GstCodecs.Vp9Picture

Returns (GstCodecs.Vp9Picture) –

a new GstCodecs.Vp9Picture

#### GstCodecs.Vp9Picture.new

    def GstCodecs.Vp9Picture.new ():
        #python wrapper for 'gst_vp9_picture_new'

Create new GstCodecs.Vp9Picture

Returns (GstCodecs.Vp9Picture) –

a new GstCodecs.Vp9Picture

## Function Macros

### GST_VP9_DECODER_CAST

    #define GST_VP9_DECODER_CAST(obj)       ((GstVP9Decoder*)obj)

### GST_VP9_PICTURE_CAST

    #define GST_VP9_PICTURE_CAST(obj) (GST_VP9_PICTURE(obj))

The results of the search are