aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-12-31 08:36:14 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-12-31 14:13:51 +0100
commit4bfcedb33f7bb8aff43a32f924742ed5a4ba3edf (patch)
tree3872786a9cd77c90303f3e3f52d499c268f57f3e
parentcbeaf678889baeaac0776305f3ca289318a1aca7 (diff)
downloadffmpeg-4bfcedb33f7bb8aff43a32f924742ed5a4ba3edf.tar.gz
avformat: dont run update_initial_duration() twice
This should avoid floods of first_dts not matching debug messages Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavformat/avformat.h4
-rw-r--r--libavformat/utils.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 52eef0dd5a..6d719d7985 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -893,6 +893,10 @@ typedef struct AVStream {
*/
int pts_wrap_behavior;
+ /**
+ * Internal data to prevent doing update_initial_durations() twice
+ */
+ int update_initial_durations_done;
} AVStream;
AVRational av_stream_get_r_frame_rate(const AVStream *s);
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 40d886f58a..b0cb427968 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -998,6 +998,9 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st,
int64_t cur_dts= RELATIVE_TS_BASE;
if(st->first_dts != AV_NOPTS_VALUE){
+ if (st->update_initial_durations_done)
+ return;
+ st->update_initial_durations_done = 1;
cur_dts= st->first_dts;
for(; pktl; pktl= get_next_pkt(s, st, pktl)){
if(pktl->pkt.stream_index == stream_index){