It has no longer any effect.
Unified · Split
| @@ -611,7 +611,6 @@ static int acrossfade_config_output(AVFilterLink *outlink) · 610 unmodified lines | ||
| 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) · 76 unmodified lines | ||
| 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) · 1045 unmodified lines | ||
| 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 | |
| @@ -531,7 +531,6 @@ static int config_output(AVFilterLink *outlink) · 530 unmodified lines | ||
| 531 | 531 | if (err) |
| 532 | 532 | return err; |
| 533 | 533 | |
| 534 | − outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |
| 535 | 534 | s->compand = compand_delay; |
| 536 | 535 | return 0; |
| 537 | 536 | } |
| @@ -305,12 +305,6 @@ static int config_input(AVFilterLink *inlink) · 304 unmodified lines | ||
| 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[] = { · 404 unmodified lines | ||
| 721 | 715 | { |
| 722 | 716 | .name = "default", |
| 723 | 717 | .type = AVMEDIA_TYPE_AUDIO, |
| 724 | − .config_props = config_output, | |
| 725 | 718 | .request_frame = request_frame, |
| 726 | 719 | }, |
| 727 | 720 | { NULL } |
| @@ -153,13 +153,6 @@ static int config_input(AVFilterLink *inlink) · 152 unmodified lines | ||
| 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[] = { · 297 unmodified lines | ||
| 463 | 456 | { |
| 464 | 457 | .name = "default", |
| 465 | 458 | .type = AVMEDIA_TYPE_AUDIO, |
| 466 | − .config_props = config_output, | |
| 467 | 459 | .request_frame = request_frame, |
| 468 | 460 | }, |
| 469 | 461 | { NULL } |
| @@ -300,7 +300,6 @@ static int config_output(AVFilterLink *outlink) · 299 unmodified lines | ||
| 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) · 1096 unmodified lines | ||
| 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) · 336 unmodified lines | ||
| 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) · 53 unmodified lines | ||
| 398 | 396 | return AVERROR(ENOMEM); |
| 399 | 397 | } |
| 400 | 398 | |
| 401 | − outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |
| 402 | − | |
| 403 | 399 | #if CONFIG_SWRESAMPLE |
| 404 | 400 | if (ebur128->peak_mode & PEAK_MODE_TRUE_PEAKS) { |
| 405 | 401 | int ret; |
| @@ -180,8 +180,6 @@ static int config_output(AVFilterLink *outlink) · 179 unmodified lines | ||
| 180 | 180 | } |
| 181 | 181 | } |
| 182 | 182 | } |
| 183 | − | |
| 184 | − outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |
| 185 | 183 | return 0; |
| 186 | 184 | } |
| 187 | 185 | |
| @@ -62,12 +62,6 @@ static av_cold void uninit(AVFilterContext *ctx) · 61 unmodified lines | ||
| 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[] = { · 55 unmodified lines | ||
| 129 | 123 | .name = "default", |
| 130 | 124 | .type = AVMEDIA_TYPE_VIDEO, |
| 131 | 125 | .request_frame = request_frame, |
| 132 | − .config_props = config_output, | |
| 133 | 126 | }, |
| 134 | 127 | { NULL } |
| 135 | 128 | }; |
| @@ -240,7 +233,6 @@ static const AVFilterPad areverse_outputs[] = { · 104 unmodified lines | ||
| 240 | 233 | .name = "default", |
| 241 | 234 | .type = AVMEDIA_TYPE_AUDIO, |
| 242 | 235 | .request_frame = areverse_request_frame, |
| 243 | − .config_props = config_output, | |
| 244 | 236 | }, |
| 245 | 237 | { NULL } |
| 246 | 238 | }; |
| @@ -322,7 +322,6 @@ int ff_framesync_request_frame(FFFrameSync *fs, AVFilterLink *outlink) · 321 unmodified lines | ||
| 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) { |
| @@ -335,20 +335,6 @@ int ff_request_frame(AVFilterLink *link); · 334 unmodified lines | ||
| 335 | 335 | */ |
| 336 | 336 | int ff_filter_frame(AVFilterLink *link, AVFrame *frame); |
| 337 | 337 | |
| 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 | 338 | /** |
| 353 | 339 | * Allocate a new filter context and return it. |
| 354 | 340 | * |
| @@ -114,12 +114,6 @@ static int config_input(AVFilterLink *inlink) · 113 unmodified lines | ||
| 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[] = { · 97 unmodified lines | ||
| 223 | 217 | { |
| 224 | 218 | .name = "default", |
| 225 | 219 | .type = AVMEDIA_TYPE_VIDEO, |
| 226 | − .config_props = config_output, | |
| 227 | 220 | }, |
| 228 | 221 | { NULL } |
| 229 | 222 | }; |
| @@ -378,7 +371,6 @@ static const AVFilterPad atrim_outputs[] = { · 148 unmodified lines | ||
| 378 | 371 | { |
| 379 | 372 | .name = "default", |
| 380 | 373 | .type = AVMEDIA_TYPE_AUDIO, |
| 381 | − .config_props = config_output, | |
| 382 | 374 | }, |
| 383 | 375 | { NULL } |
| 384 | 376 | }; |
| @@ -285,12 +285,6 @@ static int config_input(AVFilterLink *inlink) · 284 unmodified lines | ||
| 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[] = { · 104 unmodified lines | ||
| 401 | 395 | .name = "default", |
| 402 | 396 | .type = AVMEDIA_TYPE_VIDEO, |
| 403 | 397 | .request_frame = request_frame, |
| 404 | − .config_props = config_output, | |
| 405 | 398 | }, |
| 406 | 399 | { NULL } |
| 407 | 400 | }; |
| @@ -467,9 +467,8 @@ static int config_output(AVFilterLink *outlink) · 466 unmodified lines | ||
| 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) · 371 unmodified lines | ||
| 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) · 169 unmodified lines | ||
| 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) · 952 unmodified lines | ||
| 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) · 638 unmodified lines | ||
| 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) · 48 unmodified lines | ||
| 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) · 399 unmodified lines | ||
| 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[] = { · 28 unmodified lines | ||
| 440 | 434 | { |
| 441 | 435 | .name = "default", |
| 442 | 436 | .type = AVMEDIA_TYPE_VIDEO, |
| 443 | − .config_props = config_output, | |
| 444 | 437 | .request_frame = request_frame |
| 445 | 438 | }, |
| 446 | 439 | { NULL } |
| @@ -113,7 +113,6 @@ static int config_out_props(AVFilterLink *outlink) · 112 unmodified lines | ||
| 113 | 113 | // half framerate |
| 114 | 114 | outlink->time_base.num *= 2; |
| 115 | 115 | outlink->frame_rate.den *= 2; |
| 116 | − outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |
| 117 | 116 | |
| 118 | 117 | |
| 119 | 118 | if (s->lowpass) { |
| @@ -520,7 +520,6 @@ static int config_output(AVFilterLink *outlink) · 519 unmodified lines | ||
| 520 | 520 | { |
| 521 | 521 | outlink->w = outlink->h = 16; |
| 522 | 522 | outlink->sample_aspect_ratio = av_make_q(1, 1); |
| 523 | − outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |
| 524 | 523 | return 0; |
| 525 | 524 | } |
| 526 | 525 | |
| @@ -220,12 +220,6 @@ static int config_input(AVFilterLink *inlink) · 219 unmodified lines | ||
| 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[] = { · 534 unmodified lines | ||
| 766 | 760 | { |
| 767 | 761 | .name = "default", |
| 768 | 762 | .type = AVMEDIA_TYPE_VIDEO, |
| 769 | − .config_props = config_output, | |
| 770 | 763 | }, |
| 771 | 764 | { NULL } |
| 772 | 765 | }; |
| @@ -64,12 +64,6 @@ static av_cold int init(AVFilterContext *ctx) · 63 unmodified lines | ||
| 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[] = { · 52 unmodified lines | ||
| 128 | 122 | .name = "default", |
| 129 | 123 | .type = AVMEDIA_TYPE_VIDEO, |
| 130 | 124 | .request_frame = request_frame, |
| 131 | − .config_props = config_output, | |
| 132 | 125 | }, |
| 133 | 126 | { NULL } |
| 134 | 127 | }; |
| @@ -373,7 +373,6 @@ static int config_output(AVFilterLink *outlink) · 372 unmodified lines | ||
| 373 | 373 | break; |
| 374 | 374 | case ALTERNATING_RL: |
| 375 | 375 | case ALTERNATING_LR: |
| 376 | − outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |
| 377 | 376 | fps.den *= 2; |
| 378 | 377 | tb.num *= 2; |
| 379 | 378 | break; |
| @@ -157,7 +157,6 @@ static int config_output(AVFilterLink *outlink) · 156 unmodified lines | ||
| 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", |
| @@ -116,8 +116,6 @@ static int config_props(AVFilterLink *outlink) · 115 unmodified lines | ||
| 116 | 116 | ff_draw_init(&tile->draw, inlink->format, 0); |
| 117 | 117 | ff_draw_color(&tile->draw, &tile->blank, tile->rgba_color); |
| 118 | 118 | |
| 119 | − outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | |
| 120 | − | |
| 121 | 119 | return 0; |
| 122 | 120 | } |
| 123 | 121 | |
| @@ -117,7 +117,6 @@ static int config_out_props(AVFilterLink *outlink) · 116 unmodified lines | ||
| 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) · 116 unmodified lines | ||
| 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 | } |