[FFmpeg-cvslog] dirac: fix horizontal_compose_dd97i_ssse3

Michael Niedermayer git at videolan.org
Tue Nov 1 22:03:58 CET 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Tue Nov  1 21:55:37 2011 +0100| [e985d719266939fbcdc682492079d4a9995516be] | committer: Michael Niedermayer

dirac: fix horizontal_compose_dd97i_ssse3

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/x86/dwt.c        |    8 ++++++--
 libavcodec/x86/dwt_yasm.asm |    4 +---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/libavcodec/x86/dwt.c b/libavcodec/x86/dwt.c
index 1d04c7d..daa7331 100644
--- a/libavcodec/x86/dwt.c
+++ b/libavcodec/x86/dwt.c
@@ -119,8 +119,12 @@ COMPOSE_VERTICAL(_sse2, 8)
 
 void ff_horizontal_compose_dd97i_ssse3(IDWTELEM *b, IDWTELEM *tmp, int w);
 
-void ff_horizontal_compose_dd97i_end_c(IDWTELEM *b, IDWTELEM *tmp, int w2, int x)
+static void horizontal_compose_dd97i_ssse3(IDWTELEM *b, IDWTELEM *tmp, int w)
 {
+    int w2= w>>1;
+    int x= w2 - (w2&7);
+    ff_horizontal_compose_dd97i_ssse3(b, tmp, w);
+
     for (; x < w2; x++) {
         b[2*x  ] = (tmp[x] + 1)>>1;
         b[2*x+1] = (COMPOSE_DD97iH0(tmp[x-1], tmp[x], b[x+w2], tmp[x+1], tmp[x+2]) + 1)>>1;
@@ -191,7 +195,7 @@ void ff_spatial_idwt_init_mmx(DWTContext *d, enum dwt_type type)
 
     switch (type) {
     case DWT_DIRAC_DD9_7:
-//MMXDISABLED        d->horizontal_compose = ff_horizontal_compose_dd97i_ssse3;
+        d->horizontal_compose = horizontal_compose_dd97i_ssse3;
         break;
     }
 #endif // HAVE_YASM
diff --git a/libavcodec/x86/dwt_yasm.asm b/libavcodec/x86/dwt_yasm.asm
index 7d7471c..b8dccb8 100644
--- a/libavcodec/x86/dwt_yasm.asm
+++ b/libavcodec/x86/dwt_yasm.asm
@@ -21,8 +21,6 @@
 
 %include "x86inc.asm"
 
-cextern horizontal_compose_dd97i_end_c
-
 SECTION_RODATA
 pw_1: times 8 dw 1
 pw_2: times 8 dw 2
@@ -293,7 +291,7 @@ cglobal horizontal_compose_dd97i_ssse3, 3,6,8, b, tmp, w, x, w2, b_w2
     cmp     xd, w2d
     jl      .highpass_loop
 .end:
-    END_HORIZONTAL horizontal_compose_dd97i_end_c
+    REP_RET
 
 
 %ifndef ARCH_X86_64



More information about the ffmpeg-cvslog mailing list