It has no longer any effect.
Nicolas George authored on 2015/08/26 19:11:26... | ... |
@@ -611,7 +611,6 @@ static int acrossfade_config_output(AVFilterLink *outlink) |
611 | 611 |
outlink->time_base = ctx->inputs[0]->time_base; |
612 | 612 |
outlink->channel_layout = ctx->inputs[0]->channel_layout; |
613 | 613 |
outlink->channels = ctx->inputs[0]->channels; |
614 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
615 | 614 |
|
616 | 615 |
switch (outlink->format) { |
617 | 616 |
case AV_SAMPLE_FMT_DBL: s->crossfade_samples = crossfade_samples_dbl; break; |
... | ... |
@@ -77,7 +77,6 @@ static int config_props_output(AVFilterLink *outlink) |
77 | 77 |
asns->fifo = av_audio_fifo_alloc(outlink->format, outlink->channels, asns->nb_out_samples); |
78 | 78 |
if (!asns->fifo) |
79 | 79 |
return AVERROR(ENOMEM); |
80 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
81 | 80 |
|
82 | 81 |
return 0; |
83 | 82 |
} |
... | ... |
@@ -1046,8 +1046,6 @@ static int config_props(AVFilterLink *inlink) |
1046 | 1046 |
int sample_rate = (int)inlink->sample_rate; |
1047 | 1047 |
int channels = av_get_channel_layout_nb_channels(inlink->channel_layout); |
1048 | 1048 |
|
1049 |
- ctx->outputs[0]->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
1050 |
- |
|
1051 | 1049 |
return yae_reset(atempo, format, sample_rate, channels); |
1052 | 1050 |
} |
1053 | 1051 |
|
... | ... |
@@ -305,12 +305,6 @@ static int config_input(AVFilterLink *inlink) |
305 | 305 |
return 0; |
306 | 306 |
} |
307 | 307 |
|
308 |
-static int config_output(AVFilterLink *outlink) |
|
309 |
-{ |
|
310 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
311 |
- return 0; |
|
312 |
-} |
|
313 |
- |
|
314 | 308 |
static inline double fade(double prev, double next, int pos, |
315 | 309 |
double *fade_factors[2]) |
316 | 310 |
{ |
... | ... |
@@ -721,7 +715,6 @@ static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = { |
721 | 721 |
{ |
722 | 722 |
.name = "default", |
723 | 723 |
.type = AVMEDIA_TYPE_AUDIO, |
724 |
- .config_props = config_output, |
|
725 | 724 |
.request_frame = request_frame, |
726 | 725 |
}, |
727 | 726 |
{ NULL } |
... | ... |
@@ -153,13 +153,6 @@ static int config_input(AVFilterLink *inlink) |
153 | 153 |
return 0; |
154 | 154 |
} |
155 | 155 |
|
156 |
-static int config_output(AVFilterLink *outlink) |
|
157 |
-{ |
|
158 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
159 |
- |
|
160 |
- return 0; |
|
161 |
-} |
|
162 |
- |
|
163 | 156 |
static double compute_rms(SilenceRemoveContext *s, double sample) |
164 | 157 |
{ |
165 | 158 |
double new_sum; |
... | ... |
@@ -463,7 +456,6 @@ static const AVFilterPad silenceremove_outputs[] = { |
463 | 463 |
{ |
464 | 464 |
.name = "default", |
465 | 465 |
.type = AVMEDIA_TYPE_AUDIO, |
466 |
- .config_props = config_output, |
|
467 | 466 |
.request_frame = request_frame, |
468 | 467 |
}, |
469 | 468 |
{ NULL } |
... | ... |
@@ -300,7 +300,6 @@ static int config_output(AVFilterLink *outlink) |
300 | 300 |
s->scale += s->window_func_lut[i] * s->window_func_lut[i]; |
301 | 301 |
} |
302 | 302 |
|
303 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
304 | 303 |
outlink->frame_rate = av_make_q(inlink->sample_rate, s->win_size * (1.-s->overlap)); |
305 | 304 |
outlink->sample_aspect_ratio = (AVRational){1,1}; |
306 | 305 |
outlink->w = s->w; |
... | ... |
@@ -1097,7 +1097,6 @@ static int ff_filter_frame_needs_framing(AVFilterLink *link, AVFrame *frame) |
1097 | 1097 |
int nb_channels = av_frame_get_channels(frame); |
1098 | 1098 |
int ret = 0; |
1099 | 1099 |
|
1100 |
- link->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
1101 | 1100 |
/* Handle framing (min_samples, max_samples) */ |
1102 | 1101 |
while (insamples) { |
1103 | 1102 |
if (!pbuf) { |
... | ... |
@@ -337,8 +337,6 @@ static int config_video_output(AVFilterLink *outlink) |
337 | 337 |
DRAW_RECT(ebur128->graph); |
338 | 338 |
DRAW_RECT(ebur128->gauge); |
339 | 339 |
|
340 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
341 |
- |
|
342 | 340 |
return 0; |
343 | 341 |
} |
344 | 342 |
|
... | ... |
@@ -398,8 +396,6 @@ static int config_audio_output(AVFilterLink *outlink) |
398 | 398 |
return AVERROR(ENOMEM); |
399 | 399 |
} |
400 | 400 |
|
401 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
402 |
- |
|
403 | 401 |
#if CONFIG_SWRESAMPLE |
404 | 402 |
if (ebur128->peak_mode & PEAK_MODE_TRUE_PEAKS) { |
405 | 403 |
int ret; |
... | ... |
@@ -62,12 +62,6 @@ static av_cold void uninit(AVFilterContext *ctx) |
62 | 62 |
av_freep(&s->frames); |
63 | 63 |
} |
64 | 64 |
|
65 |
-static int config_output(AVFilterLink *outlink) |
|
66 |
-{ |
|
67 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
68 |
- return 0; |
|
69 |
-} |
|
70 |
- |
|
71 | 65 |
static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
72 | 66 |
{ |
73 | 67 |
AVFilterContext *ctx = inlink->dst; |
... | ... |
@@ -129,7 +123,6 @@ static const AVFilterPad reverse_outputs[] = { |
129 | 129 |
.name = "default", |
130 | 130 |
.type = AVMEDIA_TYPE_VIDEO, |
131 | 131 |
.request_frame = request_frame, |
132 |
- .config_props = config_output, |
|
133 | 132 |
}, |
134 | 133 |
{ NULL } |
135 | 134 |
}; |
... | ... |
@@ -240,7 +233,6 @@ static const AVFilterPad areverse_outputs[] = { |
240 | 240 |
.name = "default", |
241 | 241 |
.type = AVMEDIA_TYPE_AUDIO, |
242 | 242 |
.request_frame = areverse_request_frame, |
243 |
- .config_props = config_output, |
|
244 | 243 |
}, |
245 | 244 |
{ NULL } |
246 | 245 |
}; |
... | ... |
@@ -322,7 +322,6 @@ int ff_framesync_request_frame(FFFrameSync *fs, AVFilterLink *outlink) |
322 | 322 |
return 0; |
323 | 323 |
if (fs->eof) |
324 | 324 |
return AVERROR_EOF; |
325 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
326 | 325 |
input = fs->in_request; |
327 | 326 |
ret = ff_request_frame(ctx->inputs[input]); |
328 | 327 |
if (ret == AVERROR_EOF) { |
... | ... |
@@ -336,20 +336,6 @@ int ff_request_frame(AVFilterLink *link); |
336 | 336 |
int ff_filter_frame(AVFilterLink *link, AVFrame *frame); |
337 | 337 |
|
338 | 338 |
/** |
339 |
- * Flags for AVFilterLink.flags. |
|
340 |
- */ |
|
341 |
-enum { |
|
342 |
- |
|
343 |
- /** |
|
344 |
- * Frame requests may need to loop in order to be fulfilled. |
|
345 |
- * A filter must set this flags on an output link if it may return 0 in |
|
346 |
- * request_frame() without filtering a frame. |
|
347 |
- */ |
|
348 |
- FF_LINK_FLAG_REQUEST_LOOP = 1, |
|
349 |
- |
|
350 |
-}; |
|
351 |
- |
|
352 |
-/** |
|
353 | 339 |
* Allocate a new filter context and return it. |
354 | 340 |
* |
355 | 341 |
* @param filter what filter to create an instance of |
... | ... |
@@ -114,12 +114,6 @@ static int config_input(AVFilterLink *inlink) |
114 | 114 |
return 0; |
115 | 115 |
} |
116 | 116 |
|
117 |
-static int config_output(AVFilterLink *outlink) |
|
118 |
-{ |
|
119 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
120 |
- return 0; |
|
121 |
-} |
|
122 |
- |
|
123 | 117 |
#define OFFSET(x) offsetof(TrimContext, x) |
124 | 118 |
#define COMMON_OPTS \ |
125 | 119 |
{ "starti", "Timestamp of the first frame that " \ |
... | ... |
@@ -223,7 +217,6 @@ static const AVFilterPad trim_outputs[] = { |
223 | 223 |
{ |
224 | 224 |
.name = "default", |
225 | 225 |
.type = AVMEDIA_TYPE_VIDEO, |
226 |
- .config_props = config_output, |
|
227 | 226 |
}, |
228 | 227 |
{ NULL } |
229 | 228 |
}; |
... | ... |
@@ -378,7 +371,6 @@ static const AVFilterPad atrim_outputs[] = { |
378 | 378 |
{ |
379 | 379 |
.name = "default", |
380 | 380 |
.type = AVMEDIA_TYPE_AUDIO, |
381 |
- .config_props = config_output, |
|
382 | 381 |
}, |
383 | 382 |
{ NULL } |
384 | 383 |
}; |
... | ... |
@@ -285,12 +285,6 @@ static int config_input(AVFilterLink *inlink) |
285 | 285 |
return 0; |
286 | 286 |
} |
287 | 287 |
|
288 |
-static int config_output(AVFilterLink *outlink) |
|
289 |
-{ |
|
290 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
291 |
- return 0; |
|
292 |
-} |
|
293 |
- |
|
294 | 288 |
static int filter_frame(AVFilterLink *inlink, AVFrame *buf) |
295 | 289 |
{ |
296 | 290 |
AVFilterContext *ctx = inlink->dst; |
... | ... |
@@ -401,7 +395,6 @@ static const AVFilterPad outputs[] = { |
401 | 401 |
.name = "default", |
402 | 402 |
.type = AVMEDIA_TYPE_VIDEO, |
403 | 403 |
.request_frame = request_frame, |
404 |
- .config_props = config_output, |
|
405 | 404 |
}, |
406 | 405 |
{ NULL } |
407 | 406 |
}; |
... | ... |
@@ -467,9 +467,8 @@ static int config_output(AVFilterLink *outlink) |
467 | 467 |
is_16bit = pix_desc->comp[0].depth == 16; |
468 | 468 |
s->nb_planes = av_pix_fmt_count_planes(toplink->format); |
469 | 469 |
|
470 |
- if (s->tblend) |
|
471 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
472 |
- else if ((ret = ff_dualinput_init(ctx, &s->dinput)) < 0) |
|
470 |
+ if (!s->tblend) |
|
471 |
+ if ((ret = ff_dualinput_init(ctx, &s->dinput)) < 0) |
|
473 | 472 |
return ret; |
474 | 473 |
|
475 | 474 |
for (plane = 0; plane < FF_ARRAY_ELEMS(s->params); plane++) { |
... | ... |
@@ -372,7 +372,6 @@ static int config_output(AVFilterLink *outlink) |
372 | 372 |
fps = av_mul_q(fps, (AVRational){dm->cycle - 1, dm->cycle}); |
373 | 373 |
av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", |
374 | 374 |
inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); |
375 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
376 | 375 |
outlink->time_base = inlink->time_base; |
377 | 376 |
outlink->frame_rate = fps; |
378 | 377 |
outlink->sample_aspect_ratio = inlink->sample_aspect_ratio; |
... | ... |
@@ -170,7 +170,6 @@ static int config_output(AVFilterLink *outlink) |
170 | 170 |
av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", |
171 | 171 |
inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); |
172 | 172 |
|
173 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
174 | 173 |
outlink->frame_rate = fps; |
175 | 174 |
outlink->time_base = av_mul_q(inlink->time_base, s->pts); |
176 | 175 |
av_log(ctx, AV_LOG_VERBOSE, "TB: %d/%d -> %d/%d\n", |
... | ... |
@@ -953,7 +953,6 @@ static int config_output(AVFilterLink *outlink) |
953 | 953 |
const AVFilterLink *inlink = |
954 | 954 |
ctx->inputs[fm->ppsrc ? INPUT_CLEANSRC : INPUT_MAIN]; |
955 | 955 |
|
956 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
957 | 956 |
outlink->time_base = inlink->time_base; |
958 | 957 |
outlink->sample_aspect_ratio = inlink->sample_aspect_ratio; |
959 | 958 |
outlink->frame_rate = inlink->frame_rate; |
... | ... |
@@ -639,7 +639,6 @@ static int config_output(AVFilterLink *outlink) |
639 | 639 |
|
640 | 640 |
outlink->frame_rate = s->dest_frame_rate; |
641 | 641 |
outlink->time_base = s->dest_time_base; |
642 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
643 | 642 |
|
644 | 643 |
ff_dlog(ctx, |
645 | 644 |
"config_output() output time base:%u/%u (%f) w:%d h:%d\n", |
... | ... |
@@ -49,7 +49,6 @@ static int config_output_props(AVFilterLink *outlink) |
49 | 49 |
FrameStepContext *framestep = ctx->priv; |
50 | 50 |
AVFilterLink *inlink = ctx->inputs[0]; |
51 | 51 |
|
52 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
53 | 52 |
outlink->frame_rate = |
54 | 53 |
av_div_q(inlink->frame_rate, (AVRational){framestep->frame_step, 1}); |
55 | 54 |
|
... | ... |
@@ -400,12 +400,6 @@ static int query_formats(AVFilterContext *ctx) |
400 | 400 |
return ff_set_common_formats(ctx, fmts_list); |
401 | 401 |
} |
402 | 402 |
|
403 |
-static int config_output(AVFilterLink *outlink) |
|
404 |
-{ |
|
405 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
406 |
- return 0; |
|
407 |
-} |
|
408 |
- |
|
409 | 403 |
static av_cold int init(AVFilterContext *ctx) |
410 | 404 |
{ |
411 | 405 |
IDETContext *idet = ctx->priv; |
... | ... |
@@ -440,7 +434,6 @@ static const AVFilterPad idet_outputs[] = { |
440 | 440 |
{ |
441 | 441 |
.name = "default", |
442 | 442 |
.type = AVMEDIA_TYPE_VIDEO, |
443 |
- .config_props = config_output, |
|
444 | 443 |
.request_frame = request_frame |
445 | 444 |
}, |
446 | 445 |
{ NULL } |
... | ... |
@@ -220,12 +220,6 @@ static int config_input(AVFilterLink *inlink) |
220 | 220 |
return 0; |
221 | 221 |
} |
222 | 222 |
|
223 |
-static int config_output(AVFilterLink *outlink) |
|
224 |
-{ |
|
225 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
226 |
- return 0; |
|
227 |
-} |
|
228 |
- |
|
229 | 223 |
static PullupBuffer *pullup_lock_buffer(PullupBuffer *b, int parity) |
230 | 224 |
{ |
231 | 225 |
if (!b) |
... | ... |
@@ -766,7 +760,6 @@ static const AVFilterPad pullup_outputs[] = { |
766 | 766 |
{ |
767 | 767 |
.name = "default", |
768 | 768 |
.type = AVMEDIA_TYPE_VIDEO, |
769 |
- .config_props = config_output, |
|
770 | 769 |
}, |
771 | 770 |
{ NULL } |
772 | 771 |
}; |
... | ... |
@@ -64,12 +64,6 @@ static av_cold int init(AVFilterContext *ctx) |
64 | 64 |
return 0; |
65 | 65 |
} |
66 | 66 |
|
67 |
-static int config_output(AVFilterLink *outlink) |
|
68 |
-{ |
|
69 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
70 |
- return 0; |
|
71 |
-} |
|
72 |
- |
|
73 | 67 |
static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
74 | 68 |
{ |
75 | 69 |
AVFilterContext *ctx = inlink->dst; |
... | ... |
@@ -128,7 +122,6 @@ static const AVFilterPad random_outputs[] = { |
128 | 128 |
.name = "default", |
129 | 129 |
.type = AVMEDIA_TYPE_VIDEO, |
130 | 130 |
.request_frame = request_frame, |
131 |
- .config_props = config_output, |
|
132 | 131 |
}, |
133 | 132 |
{ NULL } |
134 | 133 |
}; |
... | ... |
@@ -157,7 +157,6 @@ static int config_output(AVFilterLink *outlink) |
157 | 157 |
av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", |
158 | 158 |
inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); |
159 | 159 |
|
160 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
161 | 160 |
outlink->frame_rate = fps; |
162 | 161 |
outlink->time_base = av_mul_q(inlink->time_base, s->pts); |
163 | 162 |
av_log(ctx, AV_LOG_VERBOSE, "TB: %d/%d -> %d/%d\n", |
... | ... |
@@ -117,7 +117,6 @@ static int config_out_props(AVFilterLink *outlink) |
117 | 117 |
int i; |
118 | 118 |
|
119 | 119 |
tinterlace->vsub = desc->log2_chroma_h; |
120 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
121 | 120 |
outlink->w = inlink->w; |
122 | 121 |
outlink->h = tinterlace->mode == MODE_MERGE || tinterlace->mode == MODE_PAD ? |
123 | 122 |
inlink->h*2 : inlink->h; |
... | ... |
@@ -117,7 +117,6 @@ static int config_output(AVFilterLink *outlink) |
117 | 117 |
outlink->time_base.den = inlink->time_base.den * 2; |
118 | 118 |
outlink->frame_rate.num = inlink->frame_rate.num * 2; |
119 | 119 |
outlink->frame_rate.den = inlink->frame_rate.den; |
120 |
- outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; |
|
121 | 120 |
|
122 | 121 |
return 0; |
123 | 122 |
} |