Browse Source

avformat/matroskadec: Beautify matroska_parse_laces()

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
tags/n4.3
Andreas Rheinhardt 5 years ago
parent
commit
1fd8528c4e
1 changed files with 11 additions and 16 deletions
  1. +11
    -16
      libavformat/matroskadec.c

+ 11
- 16
libavformat/matroskadec.c View File

@@ -3037,9 +3037,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 */
@@ -3049,31 +3049,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;
@@ -3109,15 +3104,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;
}


Loading…
Cancel
Save