[FFmpeg-devel] [PATCH 1/3] avformat/matroskadec: Beautify matroska_parse_laces()

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Tue May 26 08:29:38 EEST 2020


Andreas Rheinhardt:
> Andreas Rheinhardt:
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
>> ---
>>  libavformat/matroskadec.c | 27 +++++++++++----------------
>>  1 file changed, 11 insertions(+), 16 deletions(-)
>>
>> diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
>> index 4fa32365c3..c02c2561c1 100644
>> --- a/libavformat/matroskadec.c
>> +++ b/libavformat/matroskadec.c
>> @@ -3035,9 +3035,9 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf,
>>      if (size <= 0)
>>          return AVERROR_INVALIDDATA;
>>  
>> -    *laces    = *data + 1;
>> -    data     += 1;
>> -    size     -= 1;
>> +    *laces = *data + 1;
>> +    data  += 1;
>> +    size  -= 1;
>>  
>>      switch (type) {
>>      case 0x1: /* Xiph lacing */
>> @@ -3047,31 +3047,26 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf,
>>          for (n = 0; n < *laces - 1; n++) {
>>              lace_size[n] = 0;
>>  
>> -            while (1) {
>> -                if (size <= total) {
>> +            do {
>> +                if (size <= total)
>>                      return AVERROR_INVALIDDATA;
>> -                }
>>                  temp          = *data;
>>                  total        += temp;
>>                  lace_size[n] += temp;
>>                  data         += 1;
>>                  size         -= 1;
>> -                if (temp != 0xff)
>> -                    break;
>> -            }
>> +            } while (temp ==  0xff);
>>          }
>> -        if (size < total) {
>> +        if (size < total)
>>              return AVERROR_INVALIDDATA;
>> -        }
>>  
>>          lace_size[n] = size - total;
>>          break;
>>      }
>>  
>>      case 0x2: /* fixed-size lacing */
>> -        if (size % (*laces)) {
>> +        if (size % (*laces))
>>              return AVERROR_INVALIDDATA;
>> -        }
>>          for (n = 0; n < *laces; n++)
>>              lace_size[n] = size / *laces;
>>          break;
>> @@ -3107,15 +3102,15 @@ static int matroska_parse_laces(MatroskaDemuxContext *matroska, uint8_t **buf,
>>          }
>>          data += offset;
>>          size -= offset;
>> -        if (size < total) {
>> +        if (size < total)
>>              return AVERROR_INVALIDDATA;
>> -        }
>> +
>>          lace_size[*laces - 1] = size - total;
>>          break;
>>      }
>>      }
>>  
>> -    *buf      = data;
>> +    *buf = data;
>>  
>>      return 0;
>>  }
>>
> Will apply the rest of this patchset tomorrow if there are no objections.
> 
> - Andreas
> 
Applied.

- Andreas


More information about the ffmpeg-devel mailing list