mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-29 14:30:27 +00:00
scale duration and default_duration
Originally committed as revision 8363 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
20bd4e0799
commit
25f2b76fdb
@ -254,7 +254,7 @@ typedef struct Track {
|
||||
unsigned char *codec_priv;
|
||||
int codec_priv_size;
|
||||
|
||||
int64_t default_duration;
|
||||
uint64_t default_duration;
|
||||
MatroskaTrackFlags flags;
|
||||
} MatroskaTrack;
|
||||
|
||||
@ -1307,7 +1307,7 @@ matroska_add_stream (MatroskaDemuxContext *matroska)
|
||||
if ((res = ebml_read_uint (matroska, &id,
|
||||
&num)) < 0)
|
||||
break;
|
||||
track->default_duration = num;
|
||||
track->default_duration = num/matroska->time_scale;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1317,7 +1317,7 @@ matroska_add_stream (MatroskaDemuxContext *matroska)
|
||||
if ((res = ebml_read_float(matroska, &id,
|
||||
&num)) < 0)
|
||||
break;
|
||||
track->default_duration = 1000000000 * (1. / num);
|
||||
track->default_duration = 1000000000/(matroska->time_scale*num);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1620,7 +1620,7 @@ matroska_add_stream (MatroskaDemuxContext *matroska)
|
||||
uint64_t num;
|
||||
if ((res = ebml_read_uint(matroska, &id, &num)) < 0)
|
||||
break;
|
||||
track->default_duration = num;
|
||||
track->default_duration = num / matroska->time_scale;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2357,7 +2357,7 @@ matroska_read_header (AVFormatContext *s,
|
||||
|
||||
if (track->default_duration)
|
||||
av_reduce(&st->codec->time_base.num, &st->codec->time_base.den,
|
||||
track->default_duration, 1000000000, 30000);
|
||||
track->default_duration, 1000, 30000);
|
||||
|
||||
if(extradata){
|
||||
st->codec->extradata = extradata;
|
||||
@ -2646,6 +2646,7 @@ matroska_parse_blockgroup (MatroskaDemuxContext *matroska,
|
||||
case MATROSKA_ID_BLOCKDURATION: {
|
||||
if ((res = ebml_read_uint(matroska, &id, &duration)) < 0)
|
||||
break;
|
||||
duration /= matroska->time_scale;
|
||||
break;
|
||||
}
|
||||
|
||||
@ -2691,7 +2692,7 @@ matroska_parse_blockgroup (MatroskaDemuxContext *matroska,
|
||||
if (duration != AV_NOPTS_VALUE)
|
||||
pkt->duration = duration;
|
||||
else if (track >= 0 && track < matroska->num_tracks)
|
||||
pkt->duration = matroska->tracks[track]->default_duration / matroska->time_scale;
|
||||
pkt->duration = matroska->tracks[track]->default_duration;
|
||||
}
|
||||
|
||||
return res;
|
||||
|
Loading…
Reference in New Issue
Block a user