Commit 70c6a1bc authored by James Almer's avatar James Almer

avformat/matroskadec: fix DiscardPadding element parsing

If the value is negative then it means padding at the start of the packet
instead of at the end.

Based on a patch by Hendrik Leppkes.
Reviewed-by: 's avatarJames Zern <jzern-at-google.com@ffmpeg.org>
Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
parent 317be31e
...@@ -3082,10 +3082,14 @@ static int matroska_parse_frame(MatroskaDemuxContext *matroska, ...@@ -3082,10 +3082,14 @@ static int matroska_parse_frame(MatroskaDemuxContext *matroska,
av_free(pkt); av_free(pkt);
return AVERROR(ENOMEM); return AVERROR(ENOMEM);
} }
AV_WL32(side_data, 0); discard_padding = av_rescale_q(discard_padding,
AV_WL32(side_data + 4, av_rescale_q(discard_padding,
(AVRational){1, 1000000000}, (AVRational){1, 1000000000},
(AVRational){1, st->codecpar->sample_rate})); (AVRational){1, st->codecpar->sample_rate});
if (discard_padding > 0) {
AV_WL32(side_data + 4, discard_padding);
} else {
AV_WL32(side_data, -discard_padding);
}
} }
if (track->ms_compat) if (track->ms_compat)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment