[FFmpeg-cvslog] WavPack demuxer: set packet duration

Paul B Mahol git at videolan.org
Fri Feb 10 01:47:56 CET 2012


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Wed Feb  8 22:17:54 2012 +0000| [0f3d8baef9f83d278ef3ef8d02fab742a44ee484] | committer: Justin Ruggles

WavPack demuxer: set packet duration

Signed-off-by: Paul B Mahol <onemda at gmail.com>
Signed-off-by: Justin Ruggles <justin.ruggles at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0f3d8baef9f83d278ef3ef8d02fab742a44ee484
---

 libavformat/wv.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/libavformat/wv.c b/libavformat/wv.c
index c39cc68..49ca486 100644
--- a/libavformat/wv.c
+++ b/libavformat/wv.c
@@ -251,6 +251,7 @@ static int wv_read_packet(AVFormatContext *s,
     int ret;
     int size, ver, off;
     int64_t pos;
+    uint32_t block_samples;
 
     if (s->pb->eof_reached)
         return AVERROR(EIO);
@@ -316,6 +317,12 @@ static int wv_read_packet(AVFormatContext *s,
     pkt->stream_index = 0;
     wc->block_parsed = 1;
     pkt->pts = wc->soff;
+    block_samples = AV_RN32(wc->extra);
+    if (block_samples > INT32_MAX)
+        av_log(s, AV_LOG_WARNING, "Too many samples in block: %"PRIu32"\n", block_samples);
+    else
+        pkt->duration = block_samples;
+
     av_add_index_entry(s->streams[0], pos, pkt->pts, 0, 0, AVINDEX_KEYFRAME);
     return 0;
 }



More information about the ffmpeg-cvslog mailing list