[FFmpeg-cvslog] rv34: use ff_MPV_common_frame_size_change()

Janne Grunau git at videolan.org
Wed Sep 19 15:37:10 CEST 2012


ffmpeg | branch: master | Janne Grunau <janne-libav at jannau.net> | Wed Sep  5 20:49:18 2012 +0200| [b16d001b628237c93529c2be169ea5af1be7c9d7] | committer: Janne Grunau

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.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b16d001b628237c93529c2be169ea5af1be7c9d7
---

 libavcodec/rv34.c |   14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
index 7e83a99..d918392 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;



More information about the ffmpeg-cvslog mailing list