WebM VP8/VP9 Decoder

Files

file  vp8dx.h
 Provides definitions for using VP8 or VP9 within the vpx Decoder interface.
 
file  vp8dx.h
 Provides definitions for using VP8 or VP9 within the vpx Decoder interface.
 

Classes

struct  vpx_decrypt_init
 Structure to hold decryption state. More...
 

Typedefs

typedef void(* vpx_decrypt_cb) (void *decrypt_state, const unsigned char *input, unsigned char *output, int count)
 Decrypt n bytes of data from input -> output, using the decrypt_state passed in VPXD_SET_DECRYPTOR. More...
 
typedef struct vpx_decrypt_init vpx_decrypt_init
 Structure to hold decryption state. More...
 
typedef void(* vpx_decrypt_cb) (void *decrypt_state, const unsigned char *input, unsigned char *output, int count)
 Decrypt n bytes of data from input -> output, using the decrypt_state passed in VPXD_SET_DECRYPTOR. More...
 
typedef struct vpx_decrypt_init vpx_decrypt_init
 Structure to hold decryption state. More...
 
typedef vpx_decrypt_init vp8_decrypt_init
 A deprecated alias for vpx_decrypt_init. More...
 

Enumerations

enum  vp8_dec_control_id {
  VP8D_GET_LAST_REF_UPDATES = VP8_DECODER_CTRL_ID_START , VP8D_GET_FRAME_CORRUPTED , VP8D_GET_LAST_REF_USED , VPXD_SET_DECRYPTOR ,
  VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR , VP9D_GET_FRAME_SIZE , VP9D_GET_DISPLAY_SIZE , VP9D_GET_BIT_DEPTH ,
  VP9_SET_BYTE_ALIGNMENT , VP9_INVERT_TILE_DECODE_ORDER , VP9_SET_SKIP_LOOP_FILTER , VP9_DECODE_SVC_SPATIAL_LAYER ,
  VPXD_GET_LAST_QUANTIZER , VP9D_SET_ROW_MT , VP9D_SET_LOOP_FILTER_OPT , VP8_DECODER_CTRL_ID_MAX ,
  VP8D_GET_LAST_REF_UPDATES = VP8_DECODER_CTRL_ID_START , VP8D_GET_FRAME_CORRUPTED , VP8D_GET_LAST_REF_USED , VPXD_SET_DECRYPTOR ,
  VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR , VP9D_GET_FRAME_SIZE , VP9D_GET_DISPLAY_SIZE , VP9D_GET_BIT_DEPTH ,
  VP9_SET_BYTE_ALIGNMENT , VP9_INVERT_TILE_DECODE_ORDER , VP8_DECODER_CTRL_ID_MAX
}
 VP8 decoder control functions. More...
 
enum  vp8_dec_control_id {
  VP8D_GET_LAST_REF_UPDATES = VP8_DECODER_CTRL_ID_START , VP8D_GET_FRAME_CORRUPTED , VP8D_GET_LAST_REF_USED , VPXD_SET_DECRYPTOR ,
  VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR , VP9D_GET_FRAME_SIZE , VP9D_GET_DISPLAY_SIZE , VP9D_GET_BIT_DEPTH ,
  VP9_SET_BYTE_ALIGNMENT , VP9_INVERT_TILE_DECODE_ORDER , VP9_SET_SKIP_LOOP_FILTER , VP9_DECODE_SVC_SPATIAL_LAYER ,
  VPXD_GET_LAST_QUANTIZER , VP9D_SET_ROW_MT , VP9D_SET_LOOP_FILTER_OPT , VP8_DECODER_CTRL_ID_MAX ,
  VP8D_GET_LAST_REF_UPDATES = VP8_DECODER_CTRL_ID_START , VP8D_GET_FRAME_CORRUPTED , VP8D_GET_LAST_REF_USED , VPXD_SET_DECRYPTOR ,
  VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR , VP9D_GET_FRAME_SIZE , VP9D_GET_DISPLAY_SIZE , VP9D_GET_BIT_DEPTH ,
  VP9_SET_BYTE_ALIGNMENT , VP9_INVERT_TILE_DECODE_ORDER , VP8_DECODER_CTRL_ID_MAX
}
 VP8 decoder control functions. More...
 

Functions

 VPX_CTRL_USE_TYPE (VP8D_GET_LAST_REF_UPDATES, int *) VPX_CTRL_USE_TYPE(VP8D_GET_FRAME_CORRUPTED
 VP8 decoder control function parameter type. More...
 
int * VPX_CTRL_USE_TYPE (VP8D_GET_LAST_REF_USED, int *) VPX_CTRL_USE_TYPE(VPXD_SET_DECRYPTOR
 
int vpx_decrypt_initVPX_CTRL_USE_TYPE (VP8D_SET_DECRYPTOR, vpx_decrypt_init *) VPX_CTRL_USE_TYPE(VP9D_GET_DISPLAY_SIZE
 
int vpx_decrypt_init int * VPX_CTRL_USE_TYPE (VP9D_GET_BIT_DEPTH, unsigned int *) VPX_CTRL_USE_TYPE(VP9D_GET_FRAME_SIZE
 

Algorithm interface for VP8

This interface provides the capability to decode VP8 streams.

vpx_codec_iface_t vpx_codec_vp8_dx_algo
 
vpx_codec_iface_tvpx_codec_vp8_dx (void)
 

Algorithm interface for VP9

This interface provides the capability to decode VP9 streams.

vpx_codec_iface_t vpx_codec_vp9_dx_algo
 
vpx_codec_iface_tvpx_codec_vp9_dx (void)
 

Algorithm interface for VP8

This interface provides the capability to decode VP8 streams.

vpx_codec_iface_t vpx_codec_vp8_dx_algo
 

Algorithm interface for VP9

This interface provides the capability to decode VP9 streams.

vpx_codec_iface_t vpx_codec_vp9_dx_algo
 

Detailed Description

Typedef Documentation

◆ vp8_decrypt_init

A deprecated alias for vpx_decrypt_init.

◆ vpx_decrypt_cb [1/2]

typedef void(* vpx_decrypt_cb) (void *decrypt_state, const unsigned char *input, unsigned char *output, int count)

Decrypt n bytes of data from input -> output, using the decrypt_state passed in VPXD_SET_DECRYPTOR.

◆ vpx_decrypt_cb [2/2]

typedef void(* vpx_decrypt_cb) (void *decrypt_state, const unsigned char *input, unsigned char *output, int count)

Decrypt n bytes of data from input -> output, using the decrypt_state passed in VPXD_SET_DECRYPTOR.

◆ vpx_decrypt_init [1/2]

Structure to hold decryption state.

Defines a structure to hold the decryption state and access function.

◆ vpx_decrypt_init [2/2]

Structure to hold decryption state.

Defines a structure to hold the decryption state and access function.

Enumeration Type Documentation

◆ vp8_dec_control_id [1/2]

VP8 decoder control functions.

This set of macros define the control functions available for the VP8 decoder interface.

See also
#vpx_codec_control
Enumerator
VP8D_GET_LAST_REF_UPDATES 

control function to get info on which reference frames were updated by the last decode

VP8D_GET_FRAME_CORRUPTED 

check if the indicated frame is corrupted

VP8D_GET_LAST_REF_USED 

control function to get info on which reference frames were used by the last decode

VPXD_SET_DECRYPTOR 

decryption function to decrypt encoded buffer data immediately before decoding.

Takes a vpx_decrypt_init, which contains a callback function and opaque context pointer.

VP8D_SET_DECRYPTOR 
VP9D_GET_FRAME_SIZE 

control function to get the dimensions that the current frame is decoded at.

This may be different to the intended display size for the frame as specified in the wrapper or frame header (see VP9D_GET_DISPLAY_SIZE).

VP9D_GET_DISPLAY_SIZE 

control function to get the current frame's intended display dimensions (as specified in the wrapper or frame header).

This may be different to the decoded dimensions of this frame (see VP9D_GET_FRAME_SIZE).

VP9D_GET_BIT_DEPTH 

control function to get the bit depth of the stream.

VP9_SET_BYTE_ALIGNMENT 

control function to set the byte alignment of the planes in the reference buffers.

Valid values are power of 2, from 32 to 1024. A value of 0 sets legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly follows Y plane, and V plane directly follows U plane. Default value is 0.

VP9_INVERT_TILE_DECODE_ORDER 

control function to invert the decoding order to from right to left.

The function is used in a test to confirm the decoding independence of tile columns. The function may be used in application where this order of decoding is desired.

TODO(yaowu): Rework the unit test that uses this control, and in a future release, this test-only control shall be removed.

VP9_SET_SKIP_LOOP_FILTER 

control function to set the skip loop filter flag.

Valid values are integers. The decoder will skip the loop filter when its value is set to nonzero. If the loop filter is skipped the decoder may accumulate decode artifacts. The default value is 0.

VP9_DECODE_SVC_SPATIAL_LAYER 

control function to decode SVC stream up to the x spatial layers, where x is passed in through the control, and is 0 for base layer.

VPXD_GET_LAST_QUANTIZER 

Codec control function to get last decoded frame quantizer.

Return value uses internal quantizer scale defined by the codec.

Supported in codecs: VP8, VP9

VP9D_SET_ROW_MT 

Codec control function to set row level multi-threading.

0 : off, 1 : on

Supported in codecs: VP9

VP9D_SET_LOOP_FILTER_OPT 

Codec control function to set loopfilter optimization.

0 : off, Loop filter is done after all tiles have been decoded 1 : on, Loop filter is done immediately after decode without waiting for all threads to sync.

Supported in codecs: VP9

VP8_DECODER_CTRL_ID_MAX 
VP8D_GET_LAST_REF_UPDATES 

control function to get info on which reference frames were updated by the last decode

VP8D_GET_FRAME_CORRUPTED 

check if the indicated frame is corrupted

VP8D_GET_LAST_REF_USED 

control function to get info on which reference frames were used by the last decode

VPXD_SET_DECRYPTOR 

decryption function to decrypt encoded buffer data immediately before decoding.

Takes a vpx_decrypt_init, which contains a callback function and opaque context pointer.

VP8D_SET_DECRYPTOR 
VP9D_GET_FRAME_SIZE 

control function to get the dimensions that the current frame is decoded at.

This may be different to the intended display size for the frame as specified in the wrapper or frame header (see VP9D_GET_DISPLAY_SIZE).

VP9D_GET_DISPLAY_SIZE 

control function to get the current frame's intended display dimensions (as specified in the wrapper or frame header).

This may be different to the decoded dimensions of this frame (see VP9D_GET_FRAME_SIZE).

VP9D_GET_BIT_DEPTH 

control function to get the bit depth of the stream.

VP9_SET_BYTE_ALIGNMENT 

control function to set the byte alignment of the planes in the reference buffers.

Valid values are power of 2, from 32 to 1024. A value of 0 sets legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly follows Y plane, and V plane directly follows U plane. Default value is 0.

VP9_INVERT_TILE_DECODE_ORDER 

control function to invert the decoding order to from right to left.

The function is used in a test to confirm the decoding independence of tile columns. The function may be used in application where this order of decoding is desired.

TODO(yaowu): Rework the unit test that uses this control, and in a future release, this test-only control shall be removed.

VP8_DECODER_CTRL_ID_MAX 

◆ vp8_dec_control_id [2/2]

VP8 decoder control functions.

This set of macros define the control functions available for the VP8 decoder interface.

See also
#vpx_codec_control
Enumerator
VP8D_GET_LAST_REF_UPDATES 

control function to get info on which reference frames were updated by the last decode

VP8D_GET_FRAME_CORRUPTED 

check if the indicated frame is corrupted

VP8D_GET_LAST_REF_USED 

control function to get info on which reference frames were used by the last decode

VPXD_SET_DECRYPTOR 

decryption function to decrypt encoded buffer data immediately before decoding.

Takes a vpx_decrypt_init, which contains a callback function and opaque context pointer.

VP8D_SET_DECRYPTOR 
VP9D_GET_FRAME_SIZE 

control function to get the dimensions that the current frame is decoded at.

This may be different to the intended display size for the frame as specified in the wrapper or frame header (see VP9D_GET_DISPLAY_SIZE).

VP9D_GET_DISPLAY_SIZE 

control function to get the current frame's intended display dimensions (as specified in the wrapper or frame header).

This may be different to the decoded dimensions of this frame (see VP9D_GET_FRAME_SIZE).

VP9D_GET_BIT_DEPTH 

control function to get the bit depth of the stream.

VP9_SET_BYTE_ALIGNMENT 

control function to set the byte alignment of the planes in the reference buffers.

Valid values are power of 2, from 32 to 1024. A value of 0 sets legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly follows Y plane, and V plane directly follows U plane. Default value is 0.

VP9_INVERT_TILE_DECODE_ORDER 

control function to invert the decoding order to from right to left.

The function is used in a test to confirm the decoding independence of tile columns. The function may be used in application where this order of decoding is desired.

TODO(yaowu): Rework the unit test that uses this control, and in a future release, this test-only control shall be removed.

VP9_SET_SKIP_LOOP_FILTER 

control function to set the skip loop filter flag.

Valid values are integers. The decoder will skip the loop filter when its value is set to nonzero. If the loop filter is skipped the decoder may accumulate decode artifacts. The default value is 0.

VP9_DECODE_SVC_SPATIAL_LAYER 

control function to decode SVC stream up to the x spatial layers, where x is passed in through the control, and is 0 for base layer.

VPXD_GET_LAST_QUANTIZER 

Codec control function to get last decoded frame quantizer.

Return value uses internal quantizer scale defined by the codec.

Supported in codecs: VP8, VP9

VP9D_SET_ROW_MT 

Codec control function to set row level multi-threading.

0 : off, 1 : on

Supported in codecs: VP9

VP9D_SET_LOOP_FILTER_OPT 

Codec control function to set loopfilter optimization.

0 : off, Loop filter is done after all tiles have been decoded 1 : on, Loop filter is done immediately after decode without waiting for all threads to sync.

Supported in codecs: VP9

VP8_DECODER_CTRL_ID_MAX 
VP8D_GET_LAST_REF_UPDATES 

control function to get info on which reference frames were updated by the last decode

VP8D_GET_FRAME_CORRUPTED 

check if the indicated frame is corrupted

VP8D_GET_LAST_REF_USED 

control function to get info on which reference frames were used by the last decode

VPXD_SET_DECRYPTOR 

decryption function to decrypt encoded buffer data immediately before decoding.

Takes a vpx_decrypt_init, which contains a callback function and opaque context pointer.

VP8D_SET_DECRYPTOR 
VP9D_GET_FRAME_SIZE 

control function to get the dimensions that the current frame is decoded at.

This may be different to the intended display size for the frame as specified in the wrapper or frame header (see VP9D_GET_DISPLAY_SIZE).

VP9D_GET_DISPLAY_SIZE 

control function to get the current frame's intended display dimensions (as specified in the wrapper or frame header).

This may be different to the decoded dimensions of this frame (see VP9D_GET_FRAME_SIZE).

VP9D_GET_BIT_DEPTH 

control function to get the bit depth of the stream.

VP9_SET_BYTE_ALIGNMENT 

control function to set the byte alignment of the planes in the reference buffers.

Valid values are power of 2, from 32 to 1024. A value of 0 sets legacy alignment. I.e. Y plane is aligned to 32 bytes, U plane directly follows Y plane, and V plane directly follows U plane. Default value is 0.

VP9_INVERT_TILE_DECODE_ORDER 

control function to invert the decoding order to from right to left.

The function is used in a test to confirm the decoding independence of tile columns. The function may be used in application where this order of decoding is desired.

TODO(yaowu): Rework the unit test that uses this control, and in a future release, this test-only control shall be removed.

VP8_DECODER_CTRL_ID_MAX 

Function Documentation

◆ vpx_codec_vp8_dx()

vpx_codec_iface_t * vpx_codec_vp8_dx ( void  )

◆ vpx_codec_vp9_dx()

vpx_codec_iface_t * vpx_codec_vp9_dx ( void  )

◆ VPX_CTRL_USE_TYPE() [1/4]

VPX_CTRL_USE_TYPE ( VP8D_GET_LAST_REF_UPDATES  ,
int *   
)

VP8 decoder control function parameter type.

Defines the data types that VP8D control functions take. Note that additional common controls are defined in vp8.h

◆ VPX_CTRL_USE_TYPE() [2/4]

int* VPX_CTRL_USE_TYPE ( VP8D_GET_LAST_REF_USED  ,
int *   
)

◆ VPX_CTRL_USE_TYPE() [3/4]

int vpx_decrypt_init* VPX_CTRL_USE_TYPE ( VP8D_SET_DECRYPTOR  ,
vpx_decrypt_init  
)

◆ VPX_CTRL_USE_TYPE() [4/4]

int vpx_decrypt_init int* VPX_CTRL_USE_TYPE ( VP9D_GET_BIT_DEPTH  ,
unsigned int *   
)

Variable Documentation

◆ vpx_codec_vp8_dx_algo [1/2]

vpx_codec_iface_t vpx_codec_vp8_dx_algo
extern

◆ vpx_codec_vp8_dx_algo [2/2]

vpx_codec_iface_t vpx_codec_vp8_dx_algo
extern

◆ vpx_codec_vp9_dx_algo [1/2]

vpx_codec_iface_t vpx_codec_vp9_dx_algo
extern

◆ vpx_codec_vp9_dx_algo [2/2]

vpx_codec_iface_t vpx_codec_vp9_dx_algo
extern