summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Converse <aconverse@google.com>2011-05-09 14:34:23 -0700
committerAlex Converse <alex.converse@gmail.com>2011-05-25 12:34:46 -0700
commit30315a8d9c9bea98d54260956db58b6df56f9347 (patch)
tree0d2a29d48fb91454ce0849e369d325ea9fed9829
parent80068da3a0bafc7e24ce6b1f91cefec7d793b4d2 (diff)
avformat: Add fpsprobesize as an AVOption.
-rw-r--r--doc/APIchanges3
-rw-r--r--libavformat/avformat.h5
-rw-r--r--libavformat/options.c1
-rw-r--r--libavformat/utils.c2
-rw-r--r--libavformat/version.h4
5 files changed, 13 insertions, 2 deletions
diff --git a/doc/APIchanges b/doc/APIchanges
index 853975e76d..a99b798d80 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -13,6 +13,9 @@ libavutil: 2011-04-18
API changes, most recent first:
+2011-05-25 - XXXXXXX - lavf 53.1.0 - avformat.h
+ Add fps_probe_size to AVFormatContext.
+
2011-05-18 - 64150ff - lavc 53.4.0 - AVCodecContext.request_sample_fmt
Add request_sample_fmt field to AVCodecContext.
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 11dbe8b2de..3a652a354b 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -817,6 +817,11 @@ typedef struct AVFormatContext {
* - decoding: Unused.
*/
int64_t start_time_realtime;
+
+ /**
+ * decoding: number of frames used to probe fps
+ */
+ int fps_probe_size;
} AVFormatContext;
typedef struct AVPacketList {
diff --git a/libavformat/options.c b/libavformat/options.c
index 22807c3058..377ba93b44 100644
--- a/libavformat/options.c
+++ b/libavformat/options.c
@@ -57,6 +57,7 @@ static const AVOption options[]={
{"fdebug", "print specific debug info", OFFSET(debug), FF_OPT_TYPE_FLAGS, {.dbl = DEFAULT }, 0, INT_MAX, E|D, "fdebug"},
{"ts", NULL, 0, FF_OPT_TYPE_CONST, {.dbl = FF_FDEBUG_TS }, INT_MIN, INT_MAX, E|D, "fdebug"},
{"max_delay", "maximum muxing or demuxing delay in microseconds", OFFSET(max_delay), FF_OPT_TYPE_INT, {.dbl = DEFAULT }, 0, INT_MAX, E|D},
+{"fpsprobesize", "number of frames used to probe fps", OFFSET(fps_probe_size), FF_OPT_TYPE_INT, -1, -1, INT_MAX-1, D},
{NULL},
};
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 8cdd8b3805..89ab1086fe 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -2229,6 +2229,8 @@ int av_find_stream_info(AVFormatContext *ic)
the correct fps */
if (av_q2d(st->time_base) > 0.0005)
fps_analyze_framecount *= 2;
+ if (ic->fps_probe_size >= 0)
+ fps_analyze_framecount = ic->fps_probe_size;
/* variable fps and no guess at the real fps */
if( tb_unreliable(st->codec) && !(st->r_frame_rate.num && st->avg_frame_rate.num)
&& st->info->duration_count < fps_analyze_framecount
diff --git a/libavformat/version.h b/libavformat/version.h
index b4fdb6f8b5..b2ac6d8181 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -24,8 +24,8 @@
#include "libavutil/avutil.h"
#define LIBAVFORMAT_VERSION_MAJOR 53
-#define LIBAVFORMAT_VERSION_MINOR 0
-#define LIBAVFORMAT_VERSION_MICRO 3
+#define LIBAVFORMAT_VERSION_MINOR 1
+#define LIBAVFORMAT_VERSION_MICRO 0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \