[FFmpeg-cvslog] r22204 - trunk/libavcodec/vp3.c

Måns Rullgård mans
Thu Mar 4 19:17:29 CET 2010


Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:

> On Thu, Mar 04, 2010 at 11:01:03AM +0100, conrad wrote:
>> Author: conrad
>> Date: Thu Mar  4 11:01:03 2010
>> New Revision: 22204
>> 
>> Log:
>> Really fix 2.95
>> 
>> Modified:
>>    trunk/libavcodec/vp3.c
>> 
>> Modified: trunk/libavcodec/vp3.c
>> ==============================================================================
>> --- trunk/libavcodec/vp3.c	Thu Mar  4 10:25:42 2010	(r22203)
>> +++ trunk/libavcodec/vp3.c	Thu Mar  4 11:01:03 2010	(r22204)
>> @@ -456,6 +456,7 @@ static void init_loop_filter(Vp3DecodeCo
>>   */
>>  static int unpack_superblocks(Vp3DecodeContext *s, GetBitContext *gb)
>>  {
>> +    int superblock_starts[3] = { 0, s->u_superblock_start, s->v_superblock_start };
>>      int bit = 0;
>>      int current_superblock = 0;
>>      int current_run = 0;
>> @@ -547,7 +548,7 @@ static int unpack_superblocks(Vp3DecodeC
>>      memset(s->macroblock_coding, MODE_COPY, s->macroblock_count);
>>  
>>      for (plane = 0; plane < 3; plane++) {
>> -        int sb_start = (int[3]){ 0, s->u_superblock_start, s->v_superblock_start }[plane];
>> +        int sb_start = superblock_starts[plane];
>
> Why are you moving the declaration up away from where it's used?
> Is it relevantly faster or so?

Yes.  You don't want rebuild the array each iteration in the loop.
The original code with the compound literal had that problem too.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-cvslog mailing list