diff --git a/libavformat/mov.c b/libavformat/mov.c index ab8cf7b784..fb7019c2c1 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -895,7 +895,7 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) ); #endif - st->time_length=0;//Not possible to get from this info, must count number of AMR frames + st->duration = AV_NOPTS_VALUE;//Not possible to get from this info, must count number of AMR frames st->codec.sample_rate=8000; st->codec.channels=1; st->codec.bits_per_sample=16; @@ -1153,7 +1153,8 @@ static int mov_read_trak(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) sc->sample_to_chunk_index = -1; st->priv_data = sc; st->codec.codec_type = CODEC_TYPE_MOV_OTHER; - st->time_length = (c->duration * 1000) / c->time_scale; // time in miliseconds + st->start_time = 0; /* XXX: check */ + st->duration = (c->duration * (int64_t)AV_TIME_BASE) / c->time_scale; c->streams[c->fc->nb_streams-1] = sc; return mov_read_default(c, pb, atom); @@ -1182,7 +1183,8 @@ static int mov_read_tkhd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) get_be32(pb); /* modification time */ st->id = (int)get_be32(pb); /* track id (NOT 0 !)*/ get_be32(pb); /* reserved */ - st->time_length = get_be32(pb) * 1000 / c->time_scale; /* duration */ + st->start_time = 0; /* check */ + st->duration = (get_be32(pb) * (int64_t)AV_TIME_BASE) / c->time_scale; /* duration */ get_be32(pb); /* reserved */ get_be32(pb); /* reserved */