mirror of
https://mirror.skon.top/https://github.com/FFmpeg/FFmpeg
synced 2026-04-30 22:00:51 +08:00
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>
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user