From b16d001b628237c93529c2be169ea5af1be7c9d7 Mon Sep 17 00:00:00 2001 From: Janne Grunau Date: Wed, 5 Sep 2012 20:49:18 +0200 Subject: rv34: use ff_MPV_common_frame_size_change() Specialised functionality for size changes with the advantage of supporting frame size changes during frame-based multithreading. --- libavcodec/rv34.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) (limited to 'libavcodec/rv34.c') diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index 7e83a99959..d918392442 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -1533,10 +1533,9 @@ int ff_rv34_decode_update_thread_context(AVCodecContext *dst, const AVCodecConte return 0; if (s->height != s1->height || s->width != s1->width) { - ff_MPV_common_end(s); s->height = s1->height; s->width = s1->width; - if ((err = ff_MPV_common_init(s)) < 0) + if ((err = ff_MPV_common_frame_size_change(s)) < 0) return err; if ((err = rv34_decoder_realloc(r)) < 0) return err; @@ -1655,20 +1654,13 @@ int ff_rv34_decode_frame(AVCodecContext *avctx, if (s->width != si.width || s->height != si.height) { int err; - if (HAVE_THREADS && - (s->avctx->active_thread_type & FF_THREAD_FRAME)) { - av_log_missing_feature(s->avctx, "Width/height changing with " - "frame threading is", 0); - return AVERROR_PATCHWELCOME; - } - av_log(s->avctx, AV_LOG_WARNING, "Changing dimensions to %dx%d\n", si.width, si.height); - ff_MPV_common_end(s); + s->width = si.width; s->height = si.height; avcodec_set_dimensions(s->avctx, s->width, s->height); - if ((err = ff_MPV_common_init(s)) < 0) + if ((err = ff_MPV_common_frame_size_change(s)) < 0) return err; if ((err = rv34_decoder_realloc(r)) < 0) return err; -- cgit v1.2.3