[FFmpeg-devel] [PATCH 1/3] adler32: avoid "too big" check in the inner loop

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sat Feb 4 12:09:08 CET 2012


On 4 Feb 2012, at 05:43, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Fri, Feb 03, 2012 at 10:51:01PM +0100, Reimar Döffinger wrote:
>> 
>> 
>> On 3 Feb 2012, at 22:20, Michael Niedermayer <michaelni at gmx.at> wrote:
>> 
>>> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
>>> ---
>>> libavutil/adler32.c |   14 ++++++++++----
>>> 1 files changed, 10 insertions(+), 4 deletions(-)
>>> 
>>> diff --git a/libavutil/adler32.c b/libavutil/adler32.c
>>> index f4f56ea..9ea639f 100644
>>> --- a/libavutil/adler32.c
>>> +++ b/libavutil/adler32.c
>>> @@ -37,17 +37,23 @@ unsigned long av_adler32_update(unsigned long adler, const uint8_t * buf,
>>>    unsigned long s2 = adler >> 16;
>>> 
>>>    while (len > 0) {
>>> +        unsigned len2=(len-1) & ~15;
>>> +        if (len2 > 2048) len2 = 2048;
>> 
>> I would suggest FFALIGN and FFMIN.
> 
> i added FFMIN() but not FFALIGN because the FFALIGN operation rounds
> up and we need quite specific round down with at least 1 remaining
> here. It could be used of course but it feels quite unintuitiv to me.

Of course, I wasn't thinking straight there.


More information about the ffmpeg-devel mailing list