[vlc-commits] Contribs: update FFmpeg and fix the SSSE3/h264/EMU_EDGE issue

Jean-Baptiste Kempf git at videolan.org
Thu Jan 20 11:17:28 CET 2011


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Thu Jan 20 09:51:06 2011 +0100| [3a94d0615580de160064620e50dea4f0ada1e202] | committer: Jean-Baptiste Kempf

Contribs: update FFmpeg and fix the SSSE3/h264/EMU_EDGE issue

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3a94d0615580de160064620e50dea4f0ada1e202
---

 extras/contrib/src/Patches/ffmpeg-h264-ssse3.patch |   74 ++++++++++++++++++++
 extras/contrib/src/contrib-src.mak                 |    1 +
 extras/contrib/src/packages.mak                    |    2 +-
 3 files changed, 76 insertions(+), 1 deletions(-)

diff --git a/extras/contrib/src/Patches/ffmpeg-h264-ssse3.patch b/extras/contrib/src/Patches/ffmpeg-h264-ssse3.patch
new file mode 100644
index 0000000..9fd6900
--- /dev/null
+++ b/extras/contrib/src/Patches/ffmpeg-h264-ssse3.patch
@@ -0,0 +1,74 @@
+diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm
+index afe6426..dbe6b8a 100644
+--- a/libavcodec/x86/h264_intrapred.asm
++++ b/libavcodec/x86/h264_intrapred.asm
+@@ -1249,7 +1249,10 @@ cglobal pred8x8l_horizontal_%1, 4,4
+     sub          r0, r3
+     lea          r2, [r0+r3*2]
+     movq        mm0, [r0+r3*1-8]
+-    punpckhbw   mm0, [r0+r3*0-8]
++    test         r1, r1
++    lea          r1, [r0+r3]
++    cmovnz       r1, r0
++    punpckhbw   mm0, [r1+r3*0-8]
+     movq        mm1, [r2+r3*1-8]
+     punpckhbw   mm1, [r0+r3*2-8]
+     mov          r2, r0
+@@ -1264,21 +1267,12 @@ cglobal pred8x8l_horizontal_%1, 4,4
+     punpckhdq   mm3, mm1
+     lea          r0, [r0+r3*2]
+     movq        mm0, [r0+r3*0-8]
+-    movq        mm1, [r2]
++    movq        mm1, [r1+r3*0-8]
+     mov          r0, r2
+     movq        mm4, mm3
+     movq        mm2, mm3
+     PALIGNR     mm4, mm0, 7, mm0
+     PALIGNR     mm1, mm2, 1, mm2
+-    test        r1, r1 ; top_left
+-    jnz .do_left
+-.fix_lt_1:
+-    movq        mm5, mm3
+-    pxor        mm5, mm4
+-    psrlq       mm5, 56
+-    psllq       mm5, 48
+-    pxor        mm1, mm5
+-.do_left:
+     movq        mm0, mm4
+     PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5
+     movq        mm4, mm0
+@@ -2153,7 +2147,10 @@ cglobal pred8x8l_horizontal_up_%1, 4,4
+     sub          r0, r3
+     lea          r2, [r0+r3*2]
+     movq        mm0, [r0+r3*1-8]
+-    punpckhbw   mm0, [r0+r3*0-8]
++    test         r1, r1
++    lea          r1, [r0+r3]
++    cmovnz       r1, r0
++    punpckhbw   mm0, [r1+r3*0-8]
+     movq        mm1, [r2+r3*1-8]
+     punpckhbw   mm1, [r0+r3*2-8]
+     mov          r2, r0
+@@ -2168,21 +2165,12 @@ cglobal pred8x8l_horizontal_up_%1, 4,4
+     punpckhdq   mm3, mm1
+     lea          r0, [r0+r3*2]
+     movq        mm0, [r0+r3*0-8]
+-    movq        mm1, [r2]
++    movq        mm1, [r1+r3*0-8]
+     mov          r0, r2
+     movq        mm4, mm3
+     movq        mm2, mm3
+     PALIGNR     mm4, mm0, 7, mm0
+     PALIGNR     mm1, mm2, 1, mm2
+-    test        r1, r1
+-    jnz .do_left
+-.fix_lt_1:
+-    movq        mm5, mm3
+-    pxor        mm5, mm4
+-    psrlq       mm5, 56
+-    psllq       mm5, 48
+-    pxor        mm1, mm5
+-.do_left:
+     movq       mm0, mm4
+     PRED4x4_LOWPASS mm2, mm1, mm4, mm3, mm5
+     movq       mm4, mm0
diff --git a/extras/contrib/src/contrib-src.mak b/extras/contrib/src/contrib-src.mak
index ed32efe..cd8dac7 100644
--- a/extras/contrib/src/contrib-src.mak
+++ b/extras/contrib/src/contrib-src.mak
@@ -1094,6 +1094,7 @@ endif
 ifdef HAVE_WIN32
 	sed -i "s/std=c99/std=gnu99/" ffmpeg/configure
 endif
+	(cd ffmpeg; patch -p1 < ../Patches/ffmpeg-h264-ssse3.patch )
 	touch $@
 
 ffmpeg-$(FFMPEG_VERSION).tar.gz:
diff --git a/extras/contrib/src/packages.mak b/extras/contrib/src/packages.mak
index beaf8eb..61063f1 100644
--- a/extras/contrib/src/packages.mak
+++ b/extras/contrib/src/packages.mak
@@ -95,7 +95,7 @@ LIBMATROSKA_URL=http://dl.matroska.org/downloads/libmatroska/libmatroska-$(LIBMA
 FFMPEG_VERSION=0.4.8
 FFMPEG_URL=$(SF)/ffmpeg/ffmpeg-$(FFMPEG_VERSION).tar.gz
 FFMPEG_SVN=svn://svn.ffmpeg.org/ffmpeg/trunk
-FFMPEG_SVN_REV=26165
+FFMPEG_SVN_REV=26400
 LIBDVDCSS_VERSION=1.2.10
 LIBDVDCSS_URL=$(VIDEOLAN)/libdvdcss/$(LIBDVDCSS_VERSION)/libdvdcss-$(LIBDVDCSS_VERSION).tar.bz2
 LIBDVDNAV_VERSION=4.1.1



More information about the vlc-commits mailing list