avcodec/aacps: move checks for valid length outside the stereo_interpolate dsp function
authorJames Almer <jamrial@gmail.com>
Sat, 3 Jun 2017 17:01:46 +0000 (14:01 -0300)
committerJames Almer <jamrial@gmail.com>
Fri, 16 Jun 2017 02:49:40 +0000 (23:49 -0300)
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/aacps.c
libavcodec/x86/aacpsdsp.asm

index 29de8a5..473da7b 100644 (file)
@@ -979,9 +979,10 @@ static void stereo_processing(PSContext *ps, INTFLOAT (*l)[32][2], INTFLOAT (*r)
                 h_step[1][2] = AAC_MSUB31_V3(H21[1][e+1][b], h[1][2], width);
                 h_step[1][3] = AAC_MSUB31_V3(H22[1][e+1][b], h[1][3], width);
             }
-            ps->dsp.stereo_interpolate[!PS_BASELINE && ps->enable_ipdopd](
-                l[k] + 1 + start, r[k] + 1 + start,
-                h, h_step, stop - start);
+            if (stop - start)
+                ps->dsp.stereo_interpolate[!PS_BASELINE && ps->enable_ipdopd](
+                    l[k] + 1 + start, r[k] + 1 + start,
+                    h, h_step, stop - start);
         }
     }
 }
index f7f22f2..67d3bd4 100644 (file)
@@ -94,8 +94,6 @@ INIT_XMM sse3
 cglobal ps_stereo_interpolate, 5, 5, 6, l, r, h, h_step, n
     movaps   m0, [hq]
     movaps   m1, [h_stepq]
-    cmp      nd, 0
-    jle .ret
     unpcklps m4, m0, m0
     unpckhps m0, m0
     unpcklps m5, m1, m1
@@ -118,7 +116,6 @@ align 16
     movhps [rq+nq], m2
     add      nq, 8
     jl .loop
-.ret:
     REP_RET
 
 ;***************************************************************************
@@ -128,8 +125,6 @@ align 16
 ;***************************************************************************
 INIT_XMM sse3
 cglobal ps_stereo_interpolate_ipdopd, 5, 5, 10, l, r, h, h_step, n
-    cmp      nd, 0
-    jle .ret
     movaps   m0, [hq]
     movaps   m1, [hq+mmsize]
 %if ARCH_X86_64
@@ -169,7 +164,6 @@ align 16
     movhps [rq+nq], m2
     add      nq, 8
     jl .loop
-.ret:
     REP_RET
 
 ;*******************************************************************