[FFmpeg-cvslog] buffersrc: accept the frame rate as argument.

Nicolas George git at videolan.org
Sat Jun 9 09:28:35 CEST 2012


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Thu Jun  7 20:10:36 2012 +0200| [9ca440679dc535b31edd569393d8d3dda59db90e] | committer: Nicolas George

buffersrc: accept the frame rate as argument.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=9ca440679dc535b31edd569393d8d3dda59db90e
---

 doc/filters.texi        |    3 +++
 libavfilter/buffersrc.c |    7 +++++--
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/doc/filters.texi b/doc/filters.texi
index d6e0dc7..ac79c4c 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -3178,6 +3178,9 @@ name.
 @item time_base
 Specify the timebase assumed by the timestamps of the buffered frames.
 
+ at item time_base
+Specify the frame rate expected for the video stream.
+
 @item pixel_aspect
 Specify the sample aspect ratio assumed by the video frames.
 
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index cd6c1f0..6b78f81 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -42,6 +42,7 @@ typedef struct {
     const AVClass    *class;
     AVFifoBuffer     *fifo;
     AVRational        time_base;     ///< time_base to set in the output link
+    AVRational        frame_rate;    ///< frame_rate to set in the output link
     unsigned          nb_failed_requests;
 
     /* video only */
@@ -220,6 +221,7 @@ unsigned av_buffersrc_get_nb_failed_requests(AVFilterContext *buffer_src)
 #define V AV_OPT_FLAG_VIDEO_PARAM
 static const AVOption video_options[] = {
     { "time_base",      NULL, OFFSET(time_base),           AV_OPT_TYPE_RATIONAL,   { 0 }, 0, INT_MAX, V },
+    { "frame_rate",     NULL, OFFSET(frame_rate),          AV_OPT_TYPE_RATIONAL,   { 0 }, 0, INT_MAX, V },
     { "video_size",     NULL, OFFSET(w),                   AV_OPT_TYPE_IMAGE_SIZE,           .flags = V },
     { "pix_fmt",        NULL, OFFSET(pix_fmt),             AV_OPT_TYPE_PIXEL_FMT,            .flags = V },
     { "pixel_aspect",   NULL, OFFSET(pixel_aspect),        AV_OPT_TYPE_RATIONAL,   { 0 }, 0, INT_MAX, V },
@@ -280,9 +282,9 @@ static av_cold int init_video(AVFilterContext *ctx, const char *args, void *opaq
         goto fail;
     }
 
-    av_log(ctx, AV_LOG_INFO, "w:%d h:%d pixfmt:%s tb:%d/%d sar:%d/%d sws_param:%s\n",
+    av_log(ctx, AV_LOG_INFO, "w:%d h:%d pixfmt:%s tb:%d/%d fr:%d/%d sar:%d/%d sws_param:%s\n",
            c->w, c->h, av_pix_fmt_descriptors[c->pix_fmt].name,
-           c->time_base.num, c->time_base.den,
+           c->time_base.num, c->time_base.den, c->frame_rate.num, c->frame_rate.den,
            c->pixel_aspect.num, c->pixel_aspect.den, (char *)av_x_if_null(c->sws_param, ""));
     return 0;
 
@@ -415,6 +417,7 @@ static int config_props(AVFilterLink *link)
     }
 
     link->time_base = c->time_base;
+    link->frame_rate = c->frame_rate;
     return 0;
 }
 



More information about the ffmpeg-cvslog mailing list