[FFmpeg-cvslog] avformat/matroskadec: fix DiscardPadding element parsing
James Almer
git at videolan.org
Tue Nov 8 18:45:21 EET 2016
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Nov 5 17:46:52 2016 -0300| [70c6a1bcf021b396c9186c4a46dd6c96cc9f59f8] | committer: 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: James Zern <jzern-at-google.com at ffmpeg.org>
Signed-off-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=70c6a1bcf021b396c9186c4a46dd6c96cc9f59f8
---
libavformat/matroskadec.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 32f5e49..d2a691b 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3082,10 +3082,14 @@ static int matroska_parse_frame(MatroskaDemuxContext *matroska,
av_free(pkt);
return AVERROR(ENOMEM);
}
- AV_WL32(side_data, 0);
- AV_WL32(side_data + 4, av_rescale_q(discard_padding,
+ discard_padding = av_rescale_q(discard_padding,
(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)
More information about the ffmpeg-cvslog
mailing list