[FFmpeg-devel] [PATCH 1/3] avformat/matroskadec: Beautify matroska_parse_laces()
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Mon May 25 08:35:32 EEST 2020
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
More information about the ffmpeg-devel
mailing list