diff options
author | Kirill Volinsky <KVolinsky@COMMON.EU.CORP.TOYOTA.com> | 2017-06-16 09:01:02 +0300 |
---|---|---|
committer | Kirill Volinsky <KVolinsky@COMMON.EU.CORP.TOYOTA.com> | 2017-06-16 09:01:02 +0300 |
commit | 5c191ef54dfc00c1a25ad4e0fbc4ae290ebf2589 (patch) | |
tree | 9ac9444a66d4d9057fbd22b76d95ee078500e32b /protocols/Tox/include/vpx/vp8dx.h | |
parent | 4f6145c3b880aba158633af290ce1210dcec95a1 (diff) |
Tox: library update
Diffstat (limited to 'protocols/Tox/include/vpx/vp8dx.h')
-rw-r--r-- | protocols/Tox/include/vpx/vp8dx.h | 134 |
1 files changed, 99 insertions, 35 deletions
diff --git a/protocols/Tox/include/vpx/vp8dx.h b/protocols/Tox/include/vpx/vp8dx.h index d3093c48c5..0d7759eb25 100644 --- a/protocols/Tox/include/vpx/vp8dx.h +++ b/protocols/Tox/include/vpx/vp8dx.h @@ -8,43 +8,43 @@ * be found in the AUTHORS file in the root of the source tree. */ - -#include "vp8.h" - -/*!\defgroup vp8_decoder WebM VP8 Decoder +/*!\defgroup vp8_decoder WebM VP8/VP9 Decoder * \ingroup vp8 * * @{ */ /*!\file - * \brief Provides definitions for using the VP8 algorithm within the vpx Decoder + * \brief Provides definitions for using VP8 or VP9 within the vpx Decoder * interface. */ -#ifndef VP8DX_H -#define VP8DX_H +#ifndef VPX_VP8DX_H_ +#define VPX_VP8DX_H_ #ifdef __cplusplus extern "C" { #endif +/* Include controls common to both the encoder and decoder */ +#include "./vp8.h" + /*!\name Algorithm interface for VP8 * - * This interface provides the capability to decode raw VP8 streams, as would - * be found in AVI files and other non-Flash uses. + * This interface provides the capability to decode VP8 streams. * @{ */ -extern vpx_codec_iface_t vpx_codec_vp8_dx_algo; +extern vpx_codec_iface_t vpx_codec_vp8_dx_algo; extern vpx_codec_iface_t *vpx_codec_vp8_dx(void); +/*!@} - end algorithm interface member group*/ -/* TODO(jkoleszar): These move to VP9 in a later patch set. */ -extern vpx_codec_iface_t vpx_codec_vp9_dx_algo; +/*!\name Algorithm interface for VP9 + * + * This interface provides the capability to decode VP9 streams. + * @{ + */ +extern vpx_codec_iface_t vpx_codec_vp9_dx_algo; extern vpx_codec_iface_t *vpx_codec_vp9_dx(void); /*!@} - end algorithm interface member group*/ -/* Include controls common to both the encoder and decoder */ -#include "vp8.h" - - /*!\enum vp8_dec_control_id * \brief VP8 decoder control functions * @@ -68,31 +68,80 @@ enum vp8_dec_control_id { VP8D_GET_LAST_REF_USED, /** decryption function to decrypt encoded buffer data immediately - * before decoding. Takes a vp8_decrypt_init, which contains + * before decoding. Takes a vpx_decrypt_init, which contains * a callback function and opaque context pointer. */ - VP8D_SET_DECRYPTOR, - - /** For testing. */ + VPXD_SET_DECRYPTOR, + VP8D_SET_DECRYPTOR = VPXD_SET_DECRYPTOR, + + /** 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_FRAME_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_DISPLAY_SIZE, + + /** control function to get the bit depth of the stream. */ + VP9D_GET_BIT_DEPTH, + + /** 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_SET_BYTE_ALIGNMENT, + + /** 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_INVERT_TILE_DECODE_ORDER, + /** 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_SET_SKIP_LOOP_FILTER, + + /** 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. + */ + VP9_DECODE_SVC_SPATIAL_LAYER, + VP8_DECODER_CTRL_ID_MAX }; +/** Decrypt n bytes of data from input -> output, using the decrypt_state + * passed in VPXD_SET_DECRYPTOR. + */ +typedef void (*vpx_decrypt_cb)(void *decrypt_state, const unsigned char *input, + unsigned char *output, int count); + /*!\brief Structure to hold decryption state * * Defines a structure to hold the decryption state and access function. */ -typedef struct vp8_decrypt_init { - /** Decrypt n bytes of data from input -> output, using the decrypt_state - * passed in VP8D_SET_DECRYPTOR. - */ - void (*decrypt_cb)(void *decrypt_state, const unsigned char *input, - unsigned char *output, int count); - /*! Decryption state. */ - void *decrypt_state; -} vp8_decrypt_init; +typedef struct vpx_decrypt_init { + /*! Decrypt callback. */ + vpx_decrypt_cb decrypt_cb; + + /*! Decryption state. */ + void *decrypt_state; +} vpx_decrypt_init; + +/*!\brief A deprecated alias for vpx_decrypt_init. + */ +typedef vpx_decrypt_init vp8_decrypt_init; +/*!\cond */ /*!\brief VP8 decoder control function parameter type * * Defines the data types that VP8D control functions take. Note that @@ -100,17 +149,32 @@ typedef struct vp8_decrypt_init { * */ - -VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_UPDATES, int *) -VPX_CTRL_USE_TYPE(VP8D_GET_FRAME_CORRUPTED, int *) -VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_USED, int *) -VPX_CTRL_USE_TYPE(VP8D_SET_DECRYPTOR, vp8_decrypt_init *) +VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_UPDATES, int *) +#define VPX_CTRL_VP8D_GET_LAST_REF_UPDATES +VPX_CTRL_USE_TYPE(VP8D_GET_FRAME_CORRUPTED, int *) +#define VPX_CTRL_VP8D_GET_FRAME_CORRUPTED +VPX_CTRL_USE_TYPE(VP8D_GET_LAST_REF_USED, int *) +#define VPX_CTRL_VP8D_GET_LAST_REF_USED +VPX_CTRL_USE_TYPE(VPXD_SET_DECRYPTOR, vpx_decrypt_init *) +#define VPX_CTRL_VPXD_SET_DECRYPTOR +VPX_CTRL_USE_TYPE(VP8D_SET_DECRYPTOR, vpx_decrypt_init *) +#define VPX_CTRL_VP8D_SET_DECRYPTOR +VPX_CTRL_USE_TYPE(VP9D_GET_DISPLAY_SIZE, int *) +#define VPX_CTRL_VP9D_GET_DISPLAY_SIZE +VPX_CTRL_USE_TYPE(VP9D_GET_BIT_DEPTH, unsigned int *) +#define VPX_CTRL_VP9D_GET_BIT_DEPTH +VPX_CTRL_USE_TYPE(VP9D_GET_FRAME_SIZE, int *) +#define VPX_CTRL_VP9D_GET_FRAME_SIZE VPX_CTRL_USE_TYPE(VP9_INVERT_TILE_DECODE_ORDER, int) +#define VPX_CTRL_VP9_INVERT_TILE_DECODE_ORDER +#define VPX_CTRL_VP9_DECODE_SVC_SPATIAL_LAYER +VPX_CTRL_USE_TYPE(VP9_DECODE_SVC_SPATIAL_LAYER, int) +/*!\endcond */ /*! @} - end defgroup vp8_decoder */ #ifdef __cplusplus } // extern "C" #endif -#endif +#endif // VPX_VP8DX_H_ |