On Wed, 29 Mar 2017, Hendrik Leppkes wrote:
On Wed, Mar 29, 2017 at 7:53 PM, Diego Biurrun <[email protected]> wrote:
On Wed, Mar 29, 2017 at 02:02:30PM +0300, Martin Storsjö wrote:
--- a/libavcodec/atrac3plusdsp.c
+++ b/libavcodec/atrac3plusdsp.c
@@ -177,12 +177,14 @@ static void waves_synth(Atrac3pWaveSynthParams
*synth_param,
void ff_atrac3p_generate_tones(Atrac3pChanUnitCtx *ch_unit, AVFloatDSPContext
*fdsp,
int ch_num, int sb, float *out)
{
- DECLARE_ALIGNED(32, float, wavreg1)[128] = { 0 };
- DECLARE_ALIGNED(32, float, wavreg2)[128] = { 0 };
+ LOCAL_ALIGNED_32(float, wavreg1, [128]);
+ LOCAL_ALIGNED_32(float, wavreg2, [128]);
int i, reg1_env_nonzero, reg2_env_nonzero;
Atrac3pWavesData *tones_now =
&ch_unit->channels[ch_num].tones_info_prev[sb];
Atrac3pWavesData *tones_next = &ch_unit->channels[ch_num].tones_info[sb];
+ memset(wavreg1, 0, sizeof(float) * 128);
+ memset(wavreg2, 0, sizeof(float) * 128);
We have to resort to these manual memsets in many other places. I think
the proper solution would be to add LOCAL_ALIGNEDZ macros that include
a zero initialization.
That wouldn't be possible with declarations before statements rules, would it?
You should be able to use normal (= { 0 }) zero initialization for the
array used within LOCAL_ALIGNED if you modify the macros, instead of
having a separate memset for it. It does requires a bit of wrangling of
the macros though.
// Martin
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel