From 0a61ba5869b0ef293f46b19c27d50b5c904a4ad5 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Sat, 10 Jan 2004 23:55:57 +0000
Subject: [PATCH] audio pts fix

Originally committed as revision 2689 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/avidec.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 361a52ff364..0d360993371 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -419,7 +419,11 @@ static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
                 ast = st->priv_data;
 
                 /* XXX: how to handle B frames in avi ? */
-                pkt->pts = ((int64_t)ast->frame_offset * ast->scale* AV_TIME_BASE) / ast->rate;
+                if(st->codec.codec_type == CODEC_TYPE_VIDEO)
+                    pkt->pts = ((int64_t)ast->frame_offset * ast->scale* AV_TIME_BASE) / ast->rate;
+                else //FIXME this is proably not correct for all weird avis
+                    pkt->pts = ((int64_t)ast->frame_offset * ast->scale* AV_TIME_BASE) / (ast->rate * st->codec.block_align);
+//printf("%Ld %d %d %d %d\n", pkt->pts, ast->frame_offset, ast->scale,  AV_TIME_BASE,  ast->rate);
                 pkt->stream_index = n;
                 /* FIXME: We really should read index for that */
                 if (st->codec.codec_type == CODEC_TYPE_VIDEO) {
-- 
GitLab