aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>2007-03-12 10:59:47 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2007-03-12 10:59:47 +0000
commitea486ab3bede4fc68b8cccb70791cdfa589a0fcb (patch)
treed7ff027f4936ad81d7aee4e8765afe39cc05a41e
parent17ceb4f9d1b2ec2760604e8d52e0de2ca6008f9e (diff)
downloadffmpeg-ea486ab3bede4fc68b8cccb70791cdfa589a0fcb.tar.gz
remove codec_info_duration/nb_frames from AVStream
Originally committed as revision 8337 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavformat/avformat.h2
-rw-r--r--libavformat/utils.c13
2 files changed, 8 insertions, 7 deletions
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index c2136a65be..b6fefaf33b 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -275,9 +275,11 @@ typedef struct AVStream {
*/
AVRational r_frame_rate;
void *priv_data;
+#if LIBAVFORMAT_VERSION_INT < (52<<16)
/* internal data used in av_find_stream_info() */
int64_t codec_info_duration;
int codec_info_nb_frames;
+#endif
/** encoding: PTS generation when outputing stream */
AVFrac pts;
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 0c1259cb26..768d0b8687 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -1679,6 +1679,8 @@ int av_find_stream_info(AVFormatContext *ic)
int duration_count[MAX_STREAMS]={0};
double (*duration_error)[MAX_STD_TIMEBASES];
offset_t old_offset = url_ftell(&ic->pb);
+ int64_t codec_info_duration[MAX_STREAMS]={0};
+ int codec_info_nb_frames[MAX_STREAMS]={0};
duration_error = av_mallocz(MAX_STREAMS * sizeof(*duration_error));
if (!duration_error) return AVERROR_NOMEM;
@@ -1777,10 +1779,10 @@ int av_find_stream_info(AVFormatContext *ic)
read_size += pkt->size;
st = ic->streams[pkt->stream_index];
- if(st->codec_info_nb_frames>1) //FIXME move codec_info_nb_frames and codec_info_duration from AVStream into this func
- st->codec_info_duration += pkt->duration;
+ if(codec_info_nb_frames[st->index]>1)
+ codec_info_duration[st->index] += pkt->duration;
if (pkt->duration != 0)
- st->codec_info_nb_frames++;
+ codec_info_nb_frames[st->index]++;
{
int index= pkt->stream_index;
@@ -1801,9 +1803,6 @@ int av_find_stream_info(AVFormatContext *ic)
duration_error[index][i] += error*error;
}
duration_count[index]++;
-
- if(st->codec_info_nb_frames == 0 && 0)
- st->codec_info_duration += duration;
}
if(last == AV_NOPTS_VALUE || duration_count[index]<=1)
last_dts[pkt->stream_index]= pkt->dts;
@@ -1839,7 +1838,7 @@ int av_find_stream_info(AVFormatContext *ic)
(st->codec->codec_id == CODEC_ID_MPEG4 && !st->need_parsing))*/)
try_decode_frame(st, pkt->data, pkt->size);
- if (av_rescale_q(st->codec_info_duration, st->time_base, AV_TIME_BASE_Q) >= ic->max_analyze_duration) {
+ if (av_rescale_q(codec_info_duration[st->index], st->time_base, AV_TIME_BASE_Q) >= ic->max_analyze_duration) {
break;
}
count++;