diff options
| author | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
| commit | f7813a5324be39d13ab536c245d15dfc602a7849 (patch) | |
| tree | fad99148b88823d34a5df2f0a25881a002eb291b /ffmpeg/libavcodec/libvpxdec.c | |
| parent | b7a5a477b8ff4d4e3028b9dfb9a9df0a41463f92 (diff) | |
basic type mechanism working
Diffstat (limited to 'ffmpeg/libavcodec/libvpxdec.c')
| -rw-r--r-- | ffmpeg/libavcodec/libvpxdec.c | 16 |
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 */ |
