Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00027 #ifdef __cplusplus
00028 extern "C" {
00029 #endif
00030
00031 #ifndef VPX_DECODER_H
00032 #define VPX_DECODER_H
00033 #include "vpx_codec.h"
00034
00043 #define VPX_DECODER_ABI_VERSION (2 + VPX_CODEC_ABI_VERSION)
00053 #define VPX_CODEC_CAP_PUT_SLICE 0x10000
00054 #define VPX_CODEC_CAP_PUT_FRAME 0x20000
00055 #define VPX_CODEC_CAP_POSTPROC 0x40000
00056 #define VPX_CODEC_CAP_ERROR_CONCEALMENT 0x80000
00058 #define VPX_CODEC_CAP_INPUT_PARTITION 0x100000
00068 #define VPX_CODEC_USE_POSTPROC 0x10000
00069 #define VPX_CODEC_USE_ERROR_CONCEALMENT 0x20000
00071 #define VPX_CODEC_USE_INPUT_PARTITION 0x40000
00081 typedef struct vpx_codec_stream_info
00082 {
00083 unsigned int sz;
00084 unsigned int w;
00085 unsigned int h;
00086 unsigned int is_kf;
00087 } vpx_codec_stream_info_t;
00088
00089
00090
00091
00092
00093
00094
00095
00101 typedef struct vpx_codec_dec_cfg
00102 {
00103 unsigned int threads;
00104 unsigned int w;
00105 unsigned int h;
00106 } vpx_codec_dec_cfg_t;
00131 vpx_codec_err_t vpx_codec_dec_init_ver(vpx_codec_ctx_t *ctx,
00132 vpx_codec_iface_t *iface,
00133 vpx_codec_dec_cfg_t *cfg,
00134 vpx_codec_flags_t flags,
00135 int ver);
00136
00141 #define vpx_codec_dec_init(ctx, iface, cfg, flags) \
00142 vpx_codec_dec_init_ver(ctx, iface, cfg, flags, VPX_DECODER_ABI_VERSION)
00143
00144
00162 vpx_codec_err_t vpx_codec_peek_stream_info(vpx_codec_iface_t *iface,
00163 const uint8_t *data,
00164 unsigned int data_sz,
00165 vpx_codec_stream_info_t *si);
00166
00167
00181 vpx_codec_err_t vpx_codec_get_stream_info(vpx_codec_ctx_t *ctx,
00182 vpx_codec_stream_info_t *si);
00183
00184
00213 vpx_codec_err_t vpx_codec_decode(vpx_codec_ctx_t *ctx,
00214 const uint8_t *data,
00215 unsigned int data_sz,
00216 void *user_priv,
00217 long deadline);
00218
00219
00235 vpx_image_t *vpx_codec_get_frame(vpx_codec_ctx_t *ctx,
00236 vpx_codec_iter_t *iter);
00237
00238
00253 typedef void (*vpx_codec_put_frame_cb_fn_t)(void *user_priv,
00254 const vpx_image_t *img);
00255
00256
00272 vpx_codec_err_t vpx_codec_register_put_frame_cb(vpx_codec_ctx_t *ctx,
00273 vpx_codec_put_frame_cb_fn_t cb,
00274 void *user_priv);
00275
00276
00293 typedef void (*vpx_codec_put_slice_cb_fn_t)(void *user_priv,
00294 const vpx_image_t *img,
00295 const vpx_image_rect_t *valid,
00296 const vpx_image_rect_t *update);
00297
00298
00314 vpx_codec_err_t vpx_codec_register_put_slice_cb(vpx_codec_ctx_t *ctx,
00315 vpx_codec_put_slice_cb_fn_t cb,
00316 void *user_priv);
00317
00318
00323 #endif
00324
00325 #ifdef __cplusplus
00326 }
00327 #endif
00328
00329 #if !defined(VPX_CODEC_DISABLE_COMPAT) || !VPX_CODEC_DISABLE_COMPAT
00330 #include "vpx_decoder_compat.h"
00331 #endif