Browse Source

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>
tags/n2.2-rc1
Michael Niedermayer 11 years ago
parent
commit
4bfcedb33f
2 changed files with 7 additions and 0 deletions
  1. +4
    -0
      libavformat/avformat.h
  2. +3
    -0
      libavformat/utils.c

+ 4
- 0
libavformat/avformat.h View File

@@ -893,6 +893,10 @@ typedef struct AVStream {
*/ */
int pts_wrap_behavior; int pts_wrap_behavior;


/**
* Internal data to prevent doing update_initial_durations() twice
*/
int update_initial_durations_done;
} AVStream; } AVStream;


AVRational av_stream_get_r_frame_rate(const AVStream *s); AVRational av_stream_get_r_frame_rate(const AVStream *s);


+ 3
- 0
libavformat/utils.c View File

@@ -998,6 +998,9 @@ static void update_initial_durations(AVFormatContext *s, AVStream *st,
int64_t cur_dts= RELATIVE_TS_BASE; int64_t cur_dts= RELATIVE_TS_BASE;


if(st->first_dts != AV_NOPTS_VALUE){ 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; cur_dts= st->first_dts;
for(; pktl; pktl= get_next_pkt(s, st, pktl)){ for(; pktl; pktl= get_next_pkt(s, st, pktl)){
if(pktl->pkt.stream_index == stream_index){ if(pktl->pkt.stream_index == stream_index){


Loading…
Cancel
Save