History

lavfi/asettb: do not create a new reference in filter_samples()

There is no need to duplicate the input reference, since a filter should not pass along a reference which is later modified. If this happens the filter passing the reference should be fixed. Also improve consistency with start_frame() of settb, allowing a pending factorization.

Stefano Sabatini committed 14 years ago

Commit b4c33591 parent a7c37201 file · +6 −8Browse files

Unified · Split

libavfilter/f_settb.c+6−8
@@ -116,22 +116,20 @@ static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) · 115 unmodified lines
116 return ff_start_frame(outlink, picref);116 return ff_start_frame(outlink, picref);
117}117}
118 118
119static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)119static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
120{120{
121 AVFilterContext *ctx = inlink->dst;121 AVFilterContext *ctx = inlink->dst;
122 AVFilterLink *outlink = ctx->outputs[0];122 AVFilterLink *outlink = ctx->outputs[0];
123 AVFilterBufferRef *outsamples = insamples;
124 123
125 if (av_cmp_q(inlink->time_base, outlink->time_base)) {124 if (av_cmp_q(inlink->time_base, outlink->time_base)) {
126 outsamples = avfilter_ref_buffer(insamples, ~0);125 int64_t orig_pts = samplesref->pts;
127 outsamples->pts = av_rescale_q(insamples->pts, inlink->time_base, outlink->time_base);126 samplesref->pts = av_rescale_q(samplesref->pts, inlink->time_base, outlink->time_base);
128 av_log(ctx, AV_LOG_DEBUG, "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n",127 av_log(ctx, AV_LOG_DEBUG, "tb:%d/%d pts:%"PRId64" -> tb:%d/%d pts:%"PRId64"\n",
129 inlink ->time_base.num, inlink ->time_base.den, insamples ->pts,128 inlink ->time_base.num, inlink ->time_base.den, orig_pts,
130 outlink->time_base.num, outlink->time_base.den, outsamples->pts);129 outlink->time_base.num, outlink->time_base.den, samplesref->pts);
131 avfilter_unref_buffer(insamples);
132 }130 }
133 131
134 return ff_filter_samples(outlink, outsamples);132 return ff_filter_samples(outlink, samplesref);
135}133}
136 134
137#if CONFIG_SETTB_FILTER135#if CONFIG_SETTB_FILTER

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t