[FFmpeg-devel] [PATCH] hook up the atrac1 decoder

Benjamin Larsson banan
Wed Sep 23 13:24:51 CEST 2009


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.

MvH
Benjamin Larsson





More information about the ffmpeg-devel mailing list