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
116116 return ff_start_frame(outlink, picref);
117117 }
118118
119−static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
119+static int filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref)
120120 {
121121 AVFilterContext *ctx = inlink->dst;
122122 AVFilterLink *outlink = ctx->outputs[0];
123− AVFilterBufferRef *outsamples = insamples;
124123
125124 if (av_cmp_q(inlink->time_base, outlink->time_base)) {
126− outsamples = avfilter_ref_buffer(insamples, ~0);
127− outsamples->pts = av_rescale_q(insamples->pts, inlink->time_base, outlink->time_base);
125+ int64_t orig_pts = samplesref->pts;
126+ samplesref->pts = av_rescale_q(samplesref->pts, inlink->time_base, outlink->time_base);
128127 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,
130− outlink->time_base.num, outlink->time_base.den, outsamples->pts);
131− avfilter_unref_buffer(insamples);
128+ inlink ->time_base.num, inlink ->time_base.den, orig_pts,
129+ outlink->time_base.num, outlink->time_base.den, samplesref->pts);
132130 }
133131
134− return ff_filter_samples(outlink, outsamples);
132+ return ff_filter_samples(outlink, samplesref);
135133 }
136134
137135 #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