[FFmpeg-cvslog] commit: Parse fact chunks from wav files to find duration. ( Michael Niedermayer )

git at videolan.org git
Sat Jan 15 18:29:48 CET 2011


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sat Jan 15 17:13:32 2011 +0000| [f9329946d0024eaef5515d7d0aa39de3d140d604] | committer: Michael Niedermayer 

Parse fact chunks from wav files to find duration.

Originally committed as revision 26370 to svn://svn.ffmpeg.org/ffmpeg/trunk

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

 libavformat/wav.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/libavformat/wav.c b/libavformat/wav.c
index 7cb2429..894c0c0 100644
--- a/libavformat/wav.c
+++ b/libavformat/wav.c
@@ -232,7 +232,18 @@ static int wav_read_header(AVFormatContext *s,
 
     av_set_pts_info(st, 64, 1, st->codec->sample_rate);
 
-    size = find_tag(pb, MKTAG('d', 'a', 't', 'a'));
+    for (;;) {
+        if (url_feof(pb))
+            return -1;
+        size = next_tag(pb, &tag);
+        if (tag == MKTAG('d', 'a', 't', 'a')){
+            break;
+        }else if (tag == MKTAG('f','a','c','t') && !sample_count){
+            sample_count = get_le32(pb);
+            size -= 4;
+        }
+        url_fseek(pb, size, SEEK_CUR);
+    }
     if (rf64)
         size = data_size;
     if (size < 0)




More information about the ffmpeg-cvslog mailing list