| @@ -169,6 +169,7 @@ av_cold void swri_rematrix_init_x86(struct SwrContext *s){ · 168 unmodified lines |
| 169 | s->mix_2_1_simd = ff_mix_2_1_a_int16_sse2; | 169 | s->mix_2_1_simd = ff_mix_2_1_a_int16_sse2; |
| 170 | } | 170 | } |
| 171 | s->native_simd_matrix = av_mallocz(2 * num * sizeof(int16_t)); | 171 | s->native_simd_matrix = av_mallocz(2 * num * sizeof(int16_t)); |
| | 172 | s->native_simd_one = av_mallocz(2 * sizeof(int16_t)); |
| 172 | for(i=0; i<nb_out; i++){ | 173 | for(i=0; i<nb_out; i++){ |
| 173 | int sh = 0; | 174 | int sh = 0; |
| 174 | for(j=0; j<nb_in; j++) | 175 | for(j=0; j<nb_in; j++) |
| @@ -180,6 +181,8 @@ av_cold void swri_rematrix_init_x86(struct SwrContext *s){ · 5 unmodified lines |
| 180 | ((((int*)s->native_matrix)[i * nb_in + j]) + (1<<sh>>1)) >> sh; | 181 | ((((int*)s->native_matrix)[i * nb_in + j]) + (1<<sh>>1)) >> sh; |
| 181 | } | 182 | } |
| 182 | } | 183 | } |
| | 184 | ((int16_t*)s->native_simd_one)[1] = 14; |
| | 185 | ((int16_t*)s->native_simd_one)[0] = 16384; |
| 183 | } else if(s->midbuf.fmt == AV_SAMPLE_FMT_FLTP){ | 186 | } else if(s->midbuf.fmt == AV_SAMPLE_FMT_FLTP){ |
| 184 | if(mm_flags & AV_CPU_FLAG_SSE) { | 187 | if(mm_flags & AV_CPU_FLAG_SSE) { |
| 185 | s->mix_1_1_simd = ff_mix_1_1_a_float_sse; | 188 | s->mix_1_1_simd = ff_mix_1_1_a_float_sse; |
| @@ -191,5 +194,7 @@ av_cold void swri_rematrix_init_x86(struct SwrContext *s){ · 5 unmodified lines |
| 191 | } | 194 | } |
| 192 | s->native_simd_matrix = av_mallocz(num * sizeof(float)); | 195 | s->native_simd_matrix = av_mallocz(num * sizeof(float)); |
| 193 | memcpy(s->native_simd_matrix, s->native_matrix, num * sizeof(float)); | 196 | memcpy(s->native_simd_matrix, s->native_matrix, num * sizeof(float)); |
| | 197 | s->native_simd_one = av_mallocz(sizeof(float)); |
| | 198 | memcpy(s->native_simd_one, s->native_one, sizeof(float)); |
| 194 | } | 199 | } |
| 195 | } | 200 | } |