[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19199] trunk/blender/extern/ffmpeg: FFmpeg update: fix bug in V5 and V6 codec; enable PNG support for VideoTexture.

Benoit Bolsee benoit.bolsee at online.be
Thu Mar 5 15:30:36 CET 2009


Revision: 19199
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19199
Author:   ben2610
Date:     2009-03-05 15:30:36 +0100 (Thu, 05 Mar 2009)

Log Message:
-----------
FFmpeg update: fix bug in V5 and V6 codec; enable PNG support for VideoTexture. Note: V5/V6 bug fix is copied from ffmpeg SVN. PNG support is obtained by enabling zlib on configure command line.

Modified Paths:
--------------
    trunk/blender/extern/ffmpeg/Makefile
    trunk/blender/extern/ffmpeg/SConscript
    trunk/blender/extern/ffmpeg/libavcodec/vp5.c
    trunk/blender/extern/ffmpeg/libavcodec/vp56.c
    trunk/blender/extern/ffmpeg/libavcodec/vp6.c

Modified: trunk/blender/extern/ffmpeg/Makefile
===================================================================
--- trunk/blender/extern/ffmpeg/Makefile	2009-03-05 12:09:30 UTC (rev 19198)
+++ trunk/blender/extern/ffmpeg/Makefile	2009-03-05 14:30:36 UTC (rev 19199)
@@ -35,7 +35,7 @@
 ALLDIRS = libavcodec libavformat libavutil libswscale libavdevice
 
 config::
-	./configure --disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscale --enable-pthreads 
+	./configure --disable-shared --enable-liba52bin --enable-gpl --enable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscale --enable-pthreads 
 all::
 	@for i in $(ALLDIRS); do \
 	    echo "====> $(MAKE) $@ in $(SOURCEDIR)/$$i" ;\

Modified: trunk/blender/extern/ffmpeg/SConscript
===================================================================
--- trunk/blender/extern/ffmpeg/SConscript	2009-03-05 12:09:30 UTC (rev 19198)
+++ trunk/blender/extern/ffmpeg/SConscript	2009-03-05 14:30:36 UTC (rev 19199)
@@ -7,9 +7,9 @@
 root = "extern/ffmpeg"
 
 if env['OURPLATFORM'] == 'win32-mingw':
-    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscale --enable-pthreads --enable-libx264 --enable-libxvid --enable-libmp3lame"
+    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --enable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscale --enable-pthreads --enable-libx264 --enable-libxvid --enable-libmp3lame"
 else:
-    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --disable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscale --enable-memalign-hack --enable-libx264 --enable-libxvid --enable-libmp3lame"
+    ffmpeg_switches = "--disable-shared --enable-liba52bin --enable-gpl --enable-zlib --disable-vhook --disable-ffserver --disable-ffplay --enable-swscale --enable-memalign-hack --enable-libx264 --enable-libxvid --enable-libmp3lame"
     if env['OURPLATFORM'] == 'darwin':
         ffmpeg_switches += " --disable-mmx"
 

Modified: trunk/blender/extern/ffmpeg/libavcodec/vp5.c
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/vp5.c	2009-03-05 12:09:30 UTC (rev 19198)
+++ trunk/blender/extern/ffmpeg/libavcodec/vp5.c	2009-03-05 14:30:36 UTC (rev 19199)
@@ -58,12 +58,14 @@
         vp56_rac_gets(c, 8);  /* number of displayed macroblock rows */
         vp56_rac_gets(c, 8);  /* number of displayed macroblock cols */
         vp56_rac_gets(c, 2);
-        if (16*cols != s->avctx->coded_width ||
+        if (!s->macroblocks || /* first frame */
+			16*cols != s->avctx->coded_width ||
             16*rows != s->avctx->coded_height) {
             avcodec_set_dimensions(s->avctx, 16*cols, 16*rows);
             return 2;
         }
-    }
+    } else if (!s->macroblocks)
+        return 0;
     return 1;
 }
 

Modified: trunk/blender/extern/ffmpeg/libavcodec/vp56.c
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/vp56.c	2009-03-05 12:09:30 UTC (rev 19198)
+++ trunk/blender/extern/ffmpeg/libavcodec/vp56.c	2009-03-05 14:30:36 UTC (rev 19199)
@@ -656,8 +656,6 @@
     dsputil_init(&s->dsp, avctx);
     ff_init_scantable(s->dsp.idct_permutation, &s->scantable,ff_zigzag_direct);
 
-    avcodec_set_dimensions(avctx, 0, 0);
-
     for (i=0; i<4; i++)
         s->framep[i] = &s->frames[i];
     s->framep[VP56_FRAME_UNUSED] = s->framep[VP56_FRAME_GOLDEN];

Modified: trunk/blender/extern/ffmpeg/libavcodec/vp6.c
===================================================================
--- trunk/blender/extern/ffmpeg/libavcodec/vp6.c	2009-03-05 12:09:30 UTC (rev 19198)
+++ trunk/blender/extern/ffmpeg/libavcodec/vp6.c	2009-03-05 14:30:36 UTC (rev 19199)
@@ -75,7 +75,8 @@
         /* buf[4] is number of displayed macroblock rows */
         /* buf[5] is number of displayed macroblock cols */
 
-        if (16*cols != s->avctx->coded_width ||
+        if (!s->macroblocks || /* first frame */
+			16*cols != s->avctx->coded_width ||
             16*rows != s->avctx->coded_height) {
             avcodec_set_dimensions(s->avctx, 16*cols, 16*rows);
             if (s->avctx->extradata_size == 1) {
@@ -135,6 +136,8 @@
     if (coeff_offset) {
         buf      += coeff_offset;
         buf_size -= coeff_offset;
+        if (buf_size < 0)
+            return 0;
         if (s->use_huffman) {
             s->parse_coeff = vp6_parse_coeff_huffman;
             init_get_bits(&s->gb, buf, buf_size<<3);





More information about the Bf-blender-cvs mailing list