summaryrefslogtreecommitdiff
path: root/libavformat/avidec.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2004-05-29 12:01:28 +0000
committerMichael Niedermayer <michaelni@gmx.at>2004-05-29 12:01:28 +0000
commit42feef6b7074c0498b8a9d3c8b8e4da786eb0bf7 (patch)
treed3c490792f440834e173fc66d3e3ad848b94557e /libavformat/avidec.c
parente928649b0bf6c8c7b87eb09d5e393a70387b10e9 (diff)
exporting keyframe flags, fixes keyframe stuff with streamcopy
Originally committed as revision 3169 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/avidec.c')
-rw-r--r--libavformat/avidec.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 31b5b5f2e4..ea2858eedd 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -52,6 +52,8 @@ typedef struct {
DVDemuxContext* dv_demux;
} AVIContext;
+static int avi_load_index(AVFormatContext *s);
+
#ifdef DEBUG
static void print_tag(const char *str, unsigned int tag, int size)
{
@@ -338,6 +340,10 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
return -1;
}
+ assert(!avi->index_loaded);
+ avi_load_index(s);
+ avi->index_loaded = 1;
+
return 0;
}
@@ -422,9 +428,10 @@ static int avi_read_packet(AVFormatContext *s, AVPacket *pkt)
ast = st->priv_data;
/* XXX: how to handle B frames in avi ? */
- pkt->pts = ast->frame_offset;
+ pkt->dts = ast->frame_offset;
+// pkt->dts += ast->start;
if(ast->sample_size)
- pkt->pts /= ast->sample_size;
+ pkt->dts /= ast->sample_size;
//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 */