Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-08-04 17:38:05 +0400
committerMichael Niedermayer <michaelni@gmx.at>2012-08-04 17:42:44 +0400
commit2107009e7d351ff83a87fda161cc5269d2752428 (patch)
tree8be842789b566fdf3b97ab009cf3bb694a932464
parentb288b4c63f32f34dce81ceb50fa1f3a31ef2960d (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.h7
-rw-r--r--libavformat/utils.c8
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;