[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