summaryrefslogtreecommitdiff
path: root/ffmpeg/libavcodec/libvpxdec.c
diff options
context:
space:
mode:
Diffstat (limited to 'ffmpeg/libavcodec/libvpxdec.c')
-rw-r--r--ffmpeg/libavcodec/libvpxdec.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/ffmpeg/libavcodec/libvpxdec.c b/ffmpeg/libavcodec/libvpxdec.c
index 5e80a9f..94e1e4d 100644
--- a/ffmpeg/libavcodec/libvpxdec.c
+++ b/ffmpeg/libavcodec/libvpxdec.c
@@ -31,6 +31,7 @@
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "internal.h"
+#include "libvpx.h"
typedef struct VP8DecoderContext {
struct vpx_codec_ctx decoder;
@@ -90,13 +91,13 @@ static int vp8_decode(AVCodecContext *avctx,
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;
- av_image_copy(picture->data, picture->linesize, img->planes,
+ av_image_copy(picture->data, picture->linesize, (const uint8_t **)img->planes,
img->stride, avctx->pix_fmt, img->d_w, img->d_h);
*got_frame = 1;
}
@@ -118,6 +119,7 @@ static av_cold int vp8_init(AVCodecContext *avctx)
AVCodec ff_libvpx_vp8_decoder = {
.name = "libvpx",
+ .long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"),
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_VP8,
.priv_data_size = sizeof(VP8Context),
@@ -125,7 +127,6 @@ AVCodec ff_libvpx_vp8_decoder = {
.close = vp8_free,
.decode = vp8_decode,
.capabilities = CODEC_CAP_AUTO_THREADS | CODEC_CAP_DR1,
- .long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"),
};
#endif /* CONFIG_LIBVPX_VP8_DECODER */
@@ -137,13 +138,14 @@ static av_cold int vp9_init(AVCodecContext *avctx)
AVCodec ff_libvpx_vp9_decoder = {
.name = "libvpx-vp9",
+ .long_name = NULL_IF_CONFIG_SMALL("libvpx VP9"),
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_VP9,
.priv_data_size = sizeof(VP8Context),
.init = vp9_init,
.close = vp8_free,
.decode = vp8_decode,
- .capabilities = CODEC_CAP_AUTO_THREADS | CODEC_CAP_EXPERIMENTAL,
- .long_name = NULL_IF_CONFIG_SMALL("libvpx VP9"),
+ .capabilities = CODEC_CAP_AUTO_THREADS | CODEC_CAP_DR1,
+ .init_static_data = ff_vp9_init_static,
};
#endif /* CONFIG_LIBVPX_VP9_DECODER */