diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-08-04 17:38:05 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-08-04 17:42:44 +0400 |
commit | 2107009e7d351ff83a87fda161cc5269d2752428 (patch) | |
tree | 8be842789b566fdf3b97ab009cf3bb694a932464 | |
parent | b288b4c63f32f34dce81ceb50fa1f3a31ef2960d (diff) |
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>
-rw-r--r-- | libavformat/avformat.h | 7 | ||||
-rw-r--r-- | libavformat/utils.c | 8 |
2 files changed, 10 insertions, 5 deletions
diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 1614646aa5..58b02a6a80 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -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 diff --git a/libavformat/utils.c b/libavformat/utils.c index 4926b57e9e..7bd815c3d0 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -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; |