[FFmpeg-devel] [PATCH] hook up the atrac1 decoder
Vitor Sessak
vitor1001
Wed Sep 23 21:02:14 CEST 2009
Benjamin Larsson wrote:
> Vitor Sessak wrote:
>> Benjamin Larsson wrote:
>>> Vitor Sessak wrote:
>>>> Benjamin Larsson wrote:
>>>>> Vitor Sessak wrote:
>>>>>>>> I think a good deal of code of both branches of the if() can be
>>>>>>>> factorized out.
>>>>>>> What code? IMO not much of the code in the 2 cases can be
>>>>>>> factored out
>>>>>>> and still be logical and clear.
>>>>>> The calls to at1_imdct() and vector_fmul_window() are very similar.
>>>>>> They are exactly the same if block_size == 32 and nbits == 5 when
>>>>>> num_blocks == 1. Note also that the for() loop of the else{} branch
>>>>>> will be run only once when num_blocks == 1, as it should. Of course,
>>>>>> there will always be a if() for the memcpy().
>>>>> Ok, I see how it could be factored. But the logic of passing
>>>>> parameters would be highly obfuscated.
>>>> Do you consider the following highly obfuscated or am I missing
>>>> something?
>>>
>>> Now you really have to elaborate what you are meaning.
>>
>> Ok, my completely untested patch was wrong, but this one (that is
>> still missing a little clean up) does not change the output for
>> samples in samples.mplayerhq.hu.
>>
>> -Vitor
>
> Hmm, ok that didn't look to bad. But this code doesn't make any sence:
>
>> if (nbits != 5 && nbits != 7 && nbits != 8)
>> return -1;
>> + } else {
>> + block_size = 32;
>> + nbits = 5;
>> + }
> If nbits is valid always set nbits to 5? That couldn't have worked. You
> should have gotten the wrong mdct_context.
Err, the else does not correspond to this if(). The indentation is weird
to avoid cosmetics, after reindenting it will be
>> if (nbits != 5 && nbits != 7 && nbits != 8)
>> return -1;
>> } else {
>> block_size = 32;
>> nbits = 5;
>> }
-Vitor
More information about the ffmpeg-devel
mailing list