lavf: move nb_decoded_frames out of info.

This way the variable is available outside find_stream_info

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/28/head
Michael Niedermayer 13 years ago
parent b288b4c63f
commit 2107009e7d
  1. 7
      libavformat/avformat.h
  2. 8
      libavformat/utils.c

@ -741,7 +741,6 @@ typedef struct AVStream {
int duration_count;
double duration_error[2][2][MAX_STD_TIMEBASES];
int64_t codec_info_duration;
int nb_decoded_frames;
int found_decoder;
/**
@ -823,6 +822,12 @@ typedef struct AVStream {
* Number of samples to skip at the start of the frame decoded from the next packet.
*/
int skip_samples;
/**
* Number of internally decoded frames, used internally in libavformat, do not access
* its lifetime differs from info which is why its not in that structure.
*/
int nb_decoded_frames;
} AVStream;
#define AV_PROGRAM_RUNNING 1

@ -910,11 +910,11 @@ static int has_decode_delay_been_guessed(AVStream *st)
return 1;
#endif
if(st->codec->has_b_frames<3)
return st->info->nb_decoded_frames >= 7;
return st->nb_decoded_frames >= 7;
else if(st->codec->has_b_frames<4)
return st->info->nb_decoded_frames >= 18;
return st->nb_decoded_frames >= 18;
else
return st->info->nb_decoded_frames >= 20;
return st->nb_decoded_frames >= 20;
}
static AVPacketList *get_next_pkt(AVFormatContext *s, AVStream *st, AVPacketList *pktl)
@ -2385,7 +2385,7 @@ static int try_decode_frame(AVStream *st, AVPacket *avpkt, AVDictionary **option
}
if (ret >= 0) {
if (got_picture)
st->info->nb_decoded_frames++;
st->nb_decoded_frames++;
pkt.data += ret;
pkt.size -= ret;
ret = got_picture;

Loading…
Cancel
Save