diff options
author | James Almer <jamrial@gmail.com> | 2022-09-22 15:54:22 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2022-09-22 18:17:26 -0300 |
commit | 0627e6d74ce6f28287ea787c099a0f9fe4baaacb (patch) | |
tree | 07289c2dab50e3fcd9bb9b1c0be3c03baafe4457 /libavcodec | |
parent | c8c4a162fc18c0fd99bada66d9ea3b48c64b2450 (diff) | |
download | ffmpeg-0627e6d74ce6f28287ea787c099a0f9fe4baaacb.tar.gz |
avcodec/lpc: zero the middle odd sample in the output
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/lpc.c | 1 | ||||
-rw-r--r-- | libavcodec/x86/lpc.asm | 10 |
2 files changed, 8 insertions, 3 deletions
diff --git a/libavcodec/lpc.c b/libavcodec/lpc.c index 8603bb9709..dc6a3060ce 100644 --- a/libavcodec/lpc.c +++ b/libavcodec/lpc.c @@ -53,6 +53,7 @@ static void lpc_apply_welch_window_c(const int32_t *data, ptrdiff_t len, w_data[i] = data[i] * w; w_data[len-1-i] = data[len-1-i] * w; } + w_data[n2] = 0.0; return; } diff --git a/libavcodec/x86/lpc.asm b/libavcodec/x86/lpc.asm index ad74f1d8ac..61a5796e5d 100644 --- a/libavcodec/x86/lpc.asm +++ b/libavcodec/x86/lpc.asm @@ -37,7 +37,7 @@ SECTION .text %macro APPLY_WELCH_FN 0 cglobal lpc_apply_welch_window, 3, 5, 8, data, len, out, off1, off2 cmp lenq, 0 - je .end + je .end_e cmp lenq, 2 je .two cmp lenq, 1 @@ -104,7 +104,7 @@ cglobal lpc_apply_welch_window, 3, 5, 8, data, len, out, off1, off2 add lend, (mmsize/4 - 1) cmp lend, 0 - je .end + je .end_o sub lenq, (mmsize/4 - 1) .scalar_o: @@ -135,6 +135,10 @@ cglobal lpc_apply_welch_window, 3, 5, 8, data, len, out, off1, off2 sub lenq, 2 jg .loop_o_scalar + +.end_o: + xorpd xm3, xm3 + movlpd [outq + off1q*2], xm3 RET .even: @@ -233,7 +237,7 @@ cglobal lpc_apply_welch_window, 3, 5, 8, data, len, out, off1, off2 .one: xorpd xm0, xm0 movhpd [outq], xm0 -.end: +.end_e: RET %endmacro |