#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "internal.h"
+#include "libvpx.h"
typedef struct VP8DecoderContext {
struct vpx_codec_ctx decoder;
if ((int) img->d_w != avctx->width || (int) img->d_h != avctx->height) {
av_log(avctx, AV_LOG_INFO, "dimension change! %dx%d -> %dx%d\n",
avctx->width, avctx->height, img->d_w, img->d_h);
- if (av_image_check_size(img->d_w, img->d_h, 0, avctx))
- return AVERROR_INVALIDDATA;
- avcodec_set_dimensions(avctx, img->d_w, img->d_h);
+ ret = ff_set_dimensions(avctx, img->d_w, img->d_h);
+ if (ret < 0)
+ return ret;
}
if ((ret = ff_get_buffer(avctx, picture, 0)) < 0)
return ret;
#if CONFIG_LIBVPX_VP9_DECODER
static av_cold int vp9_init(AVCodecContext *avctx)
{
+ int ret;
+ if ((ret = ff_vp9_check_experimental(avctx)))
+ return ret;
return vpx_init(avctx, &vpx_codec_vp9_dx_algo);
}
.init = vp9_init,
.close = vp8_free,
.decode = vp8_decode,
- .capabilities = CODEC_CAP_AUTO_THREADS | CODEC_CAP_EXPERIMENTAL,
+ .capabilities = CODEC_CAP_AUTO_THREADS,
};
#endif /* CONFIG_LIBVPX_VP9_DECODER */