[libav-commits] lavfi: add a frame_rate field to AVFilterLink.

Nicolas George git at libav.org
Mon Nov 9 08:19:24 CET 2015


Module: libav
Branch: master
Commit: 48ff6683ba5d40b629428673b1028e8ec542a9fa

Author:    Nicolas George <nicolas.george at normalesup.org>
Committer: Anton Khirnov <anton at khirnov.net>
Date:      Tue Nov  3 09:57:17 2015 -0800

lavfi: add a frame_rate field to AVFilterLink.

(cherry picked from ffmpeg commit 7b42036b3b23c85f473bf9369e37fa8da22eaf93)

Signed-off-by: Anton Khirnov <anton at khirnov.net>

---

 doc/APIchanges         |    3 +++
 libavfilter/avfilter.c |    2 ++
 libavfilter/avfilter.h |   12 ++++++++++++
 libavfilter/version.h  |    2 +-
 4 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/doc/APIchanges b/doc/APIchanges
index d301bd5..cc48b51 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -12,6 +12,9 @@ libavutil:     2015-08-28
 
 
 API changes, most recent first:
+2015-11-xx - xxxxxxx - lavfi 6.1.0 - avfilter.h
+    Add a frame_rate field to AVFilterLink
+
 2015-xx-xx - xxxxxxx - lavc 57.6.0 - avcodec.h
 
 2015-xx-xx - lavc 57.7.0 - avcodec.h
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 64b2645..cd98d16 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -195,6 +195,8 @@ int avfilter_config_links(AVFilterContext *filter)
                         link->src->inputs[0]->sample_aspect_ratio : (AVRational){1,1};
 
                 if (link->src->nb_inputs) {
+                    if (!link->frame_rate.num && !link->frame_rate.den)
+                        link->frame_rate = link->src->inputs[0]->frame_rate;
                     if (!link->w)
                         link->w = link->src->inputs[0]->w;
                     if (!link->h)
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 9dbfeea..1890858 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -375,6 +375,18 @@ struct AVFilterLink {
         AVLINK_STARTINIT,       ///< started, but incomplete
         AVLINK_INIT             ///< complete
     } init_state;
+
+    /**
+     * Frame rate of the stream on the link, or 1/0 if unknown or variable;
+     * if left to 0/0, will be automatically copied from the first input
+     * of the source filter if it exists.
+     *
+     * Sources should set it to the real constant frame rate.
+     * If the source frame rate is unknown or variable, set this to 1/0.
+     * Filters should update it if necessary depending on their function.
+     * Sinks can use it to set a default output frame rate.
+     */
+    AVRational frame_rate;
 };
 
 /**
diff --git a/libavfilter/version.h b/libavfilter/version.h
index 3cbd8f8..884cfa0 100644
--- a/libavfilter/version.h
+++ b/libavfilter/version.h
@@ -30,7 +30,7 @@
 #include "libavutil/version.h"
 
 #define LIBAVFILTER_VERSION_MAJOR  6
-#define LIBAVFILTER_VERSION_MINOR  0
+#define LIBAVFILTER_VERSION_MINOR  1
 #define LIBAVFILTER_VERSION_MICRO  0
 
 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \



More information about the libav-commits mailing list