diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-12-08 14:04:06 +0100 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-12-10 04:02:10 +0100 |
commit | 8e5a2989a387e809d7367167114d2f2a45649ffa (patch) | |
tree | 62cef06648754c737bf2413e36d3e51b1c80d713 | |
parent | 0e575c24d62a3d9f51bca04d22c234e3857b86a9 (diff) | |
download | ffmpeg-8e5a2989a387e809d7367167114d2f2a45649ffa.tar.gz |
avcodec/libvpx: set CODEC_CAP_EXPERIMENTAL correctly instead of testing at codec open time
Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/libvpx.c | 13 | ||||
-rw-r--r-- | libavcodec/libvpx.h | 2 | ||||
-rw-r--r-- | libavcodec/libvpxdec.c | 4 | ||||
-rw-r--r-- | libavcodec/libvpxenc.c | 4 |
4 files changed, 7 insertions, 16 deletions
diff --git a/libavcodec/libvpx.c b/libavcodec/libvpx.c index 9ff2e91bc4..5d29893602 100644 --- a/libavcodec/libvpx.c +++ b/libavcodec/libvpx.c @@ -22,14 +22,9 @@ #include "libvpx.h" -int ff_vp9_check_experimental(AVCodecContext *avctx) +av_cold void ff_vp9_init_static(AVCodec *codec) { - if (avctx->strict_std_compliance > FF_COMPLIANCE_EXPERIMENTAL && - (vpx_codec_version_major() < 1 || - (vpx_codec_version_major() == 1 && vpx_codec_version_minor() < 3))) { - av_log(avctx, AV_LOG_ERROR, - "Non-experimental support of VP9 requires libvpx >= 1.3.0\n"); - return AVERROR_EXPERIMENTAL; - } - return 0; + if ( vpx_codec_version_major() < 1 + || (vpx_codec_version_major() == 1 && vpx_codec_version_minor() < 3)) + codec->capabilities |= CODEC_CAP_EXPERIMENTAL; } diff --git a/libavcodec/libvpx.h b/libavcodec/libvpx.h index 2c901f92ef..36a275c5d2 100644 --- a/libavcodec/libvpx.h +++ b/libavcodec/libvpx.h @@ -23,6 +23,6 @@ #include "avcodec.h" -int ff_vp9_check_experimental(AVCodecContext *avctx); +void ff_vp9_init_static(AVCodec *codec); #endif /* AVCODEC_LIBVPX_H */ diff --git a/libavcodec/libvpxdec.c b/libavcodec/libvpxdec.c index 8d608c3860..94e1e4d1ef 100644 --- a/libavcodec/libvpxdec.c +++ b/libavcodec/libvpxdec.c @@ -133,9 +133,6 @@ AVCodec ff_libvpx_vp8_decoder = { #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); } @@ -149,5 +146,6 @@ AVCodec ff_libvpx_vp9_decoder = { .close = vp8_free, .decode = vp8_decode, .capabilities = CODEC_CAP_AUTO_THREADS | CODEC_CAP_DR1, + .init_static_data = ff_vp9_init_static, }; #endif /* CONFIG_LIBVPX_VP9_DECODER */ diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index c7ca050b17..869c8fe115 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -852,9 +852,6 @@ AVCodec ff_libvpx_vp8_encoder = { #if CONFIG_LIBVPX_VP9_ENCODER 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_cx_algo); } @@ -878,5 +875,6 @@ AVCodec ff_libvpx_vp9_encoder = { .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &class_vp9, .defaults = defaults, + .init_static_data = ff_vp9_init_static, }; #endif /* CONFIG_LIBVPX_VP9_ENCODER */ |