[FFmpeg-devel] [PATCH 4/7] Extend buffer source to accept the time base for the output PTS.
Stefano Sabatini
stefano.sabatini-lala
Wed Jul 21 17:58:34 CEST 2010
---
ffmpeg.c | 5 +++--
libavfilter/vsrc_buffer.c | 7 +++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/ffmpeg.c b/ffmpeg.c
index af6f9db..08acd8a 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -414,8 +414,9 @@ static int configure_filters(AVInputStream *ist, AVOutputStream *ost)
if (!(ist->out_video_filter = avfilter_open(&output_filter, "out")))
return -1;
- snprintf(args, 255, "%d:%d:%d", ist->st->codec->width,
- ist->st->codec->height, ist->st->codec->pix_fmt);
+ snprintf(args, 255, "%d:%d:%d:%d:%d", ist->st->codec->width,
+ ist->st->codec->height, ist->st->codec->pix_fmt,
+ ist->st->time_base.num, ist->st->time_base.den);
if (avfilter_init_filter(ist->input_video_filter, args, NULL))
return -1;
if (avfilter_init_filter(ist->out_video_filter, NULL, &codec->pix_fmt))
diff --git a/libavfilter/vsrc_buffer.c b/libavfilter/vsrc_buffer.c
index 08f25ed..55ee8d9 100644
--- a/libavfilter/vsrc_buffer.c
+++ b/libavfilter/vsrc_buffer.c
@@ -25,6 +25,7 @@
#include "avfilter.h"
#include "vsrc_buffer.h"
+#include "internal.h"
typedef struct {
int64_t pts;
@@ -32,6 +33,7 @@ typedef struct {
int has_frame;
int h, w;
enum PixelFormat pix_fmt;
+ AVRational time_base; ///< time_base used for expressing the PTS
AVRational pixel_aspect;
} BufferSourceContext;
@@ -63,10 +65,10 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
{
BufferSourceContext *c = ctx->priv;
- if (args && sscanf(args, "%d:%d:%d", &c->w, &c->h, &c->pix_fmt) == 3)
+ if (args && sscanf(args, "%d:%d:%d:%d:%d", &c->w, &c->h, &c->pix_fmt, &c->time_base.num, &c->time_base.den) == 5)
return 0;
- av_log(ctx, AV_LOG_ERROR, "init() expected 3 arguments:'%s'\n", args);
+ av_log(ctx, AV_LOG_ERROR, "init() expected 5 arguments:'%s'\n", args);
return -1;
}
@@ -85,6 +87,7 @@ static int config_props(AVFilterLink *link)
link->w = c->w;
link->h = c->h;
+ link_spad(link).time_base = c->time_base;
return 0;
}
--
1.6.0.4
More information about the ffmpeg-devel
mailing list