summaryrefslogtreecommitdiff
path: root/media-video/pipewire/files/pipewire-0.3.62-distorted-avx2.patch
blob: 5b2f0817d048c3bf6c8789a5d54f83b5c5981c21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/b927063b89b791c5fc5485ce4d9eac2cd17a4ad6

From b927063b89b791c5fc5485ce4d9eac2cd17a4ad6 Mon Sep 17 00:00:00 2001
From: Sefa Eyeoglu <contact@scrumplex.net>
Date: Sun, 11 Dec 2022 20:14:09 +0100
Subject: [PATCH] audioconvert: fix distorted audio on AVX2

Closes pipewire/pipewire#2885

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
--- a/spa/plugins/audioconvert/fmt-ops-avx2.c
+++ b/spa/plugins/audioconvert/fmt-ops-avx2.c
@@ -339,7 +339,7 @@ conv_s32_to_f32d_4s_avx2(void *data, void * SPA_RESTRICT dst[], const void * SPA
 	__m256i in[4];
 	__m256 out[4], factor = _mm256_set1_ps(1.0f / S24_SCALE);
 	__m256i mask1 = _mm256_setr_epi32(0*n_channels, 1*n_channels, 2*n_channels, 3*n_channels,
-					  3*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
+					  4*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
 
 	if (SPA_IS_ALIGNED(d0, 32) &&
 	    SPA_IS_ALIGNED(d1, 32) &&
@@ -405,7 +405,7 @@ conv_s32_to_f32d_2s_avx2(void *data, void * SPA_RESTRICT dst[], const void * SPA
 	__m256i in[4];
 	__m256 out[4], factor = _mm256_set1_ps(1.0f / S24_SCALE);
 	__m256i mask1 = _mm256_setr_epi32(0*n_channels, 1*n_channels, 2*n_channels, 3*n_channels,
-					  3*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
+					  4*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
 
 	if (SPA_IS_ALIGNED(d0, 32) &&
 	    SPA_IS_ALIGNED(d1, 32))
@@ -453,7 +453,7 @@ conv_s32_to_f32d_1s_avx2(void *data, void * SPA_RESTRICT dst[], const void * SPA
 	__m256i in[2];
 	__m256 out[2], factor = _mm256_set1_ps(1.0f / S24_SCALE);
 	__m256i mask1 = _mm256_setr_epi32(0*n_channels, 1*n_channels, 2*n_channels, 3*n_channels,
-					  3*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
+					  4*n_channels, 5*n_channels, 6*n_channels, 7*n_channels);
 
 	if (SPA_IS_ALIGNED(d0, 32))
 		unrolled = n_samples & ~15;
-- 
GitLab