[FFmpeg-devel] [PATCH] lavfi/settb: factorize rescaling code in settb and asettb
Stefano Sabatini
stefasab at gmail.com
Mon Jul 30 15:17:26 CEST 2012
---
libavfilter/f_settb.c | 23 +++++++++++++++--------
1 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/libavfilter/f_settb.c b/libavfilter/f_settb.c
index 9558d26..44ae231 100644
--- a/libavfilter/f_settb.c
+++ b/libavfilter/f_settb.c
@@ -99,6 +99,17 @@ static int config_output_props(AVFilterLink *outlink)
return 0;
}
+inline static void rescale_ref_time(AVFilterBufferRef *out, AVRational outtb,
+ const AVFilterBufferRef *in, AVRational intb,
+ void *log_ctx)
+{
+ out->pts = av_rescale_q(in->pts, intb, outtb);
+ av_log(log_ctx, AV_LOG_DEBUG,
+ "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n",
+ intb .num, intb .den, in ->pts,
+ outtb.num, outtb.den, out->pts);
+}
+
static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
{
AVFilterContext *ctx = inlink->dst;
@@ -107,10 +118,8 @@ static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
if (av_cmp_q(inlink->time_base, outlink->time_base)) {
outpicref = avfilter_ref_buffer(inpicref, ~0);
- outpicref->pts = av_rescale_q(inpicref->pts, inlink->time_base, outlink->time_base);
- av_log(ctx, AV_LOG_DEBUG, "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n",
- inlink ->time_base.num, inlink ->time_base.den, inpicref ->pts,
- outlink->time_base.num, outlink->time_base.den, outpicref->pts);
+ rescale_ref_time(outpicref, outlink->time_base,
+ inpicref, inlink->time_base, ctx);
avfilter_unref_buffer(inpicref);
}
inlink->cur_buf = NULL;
@@ -126,10 +135,8 @@ static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
if (av_cmp_q(inlink->time_base, outlink->time_base)) {
outsamples = avfilter_ref_buffer(insamples, ~0);
- outsamples->pts = av_rescale_q(insamples->pts, inlink->time_base, outlink->time_base);
- av_log(ctx, AV_LOG_DEBUG, "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n",
- inlink ->time_base.num, inlink ->time_base.den, insamples ->pts,
- outlink->time_base.num, outlink->time_base.den, outsamples->pts);
+ rescale_ref_time(outsamples, outlink->time_base,
+ insamples, inlink->time_base, ctx);
avfilter_unref_buffer(insamples);
}
--
1.7.5.4
More information about the ffmpeg-devel
mailing list