It has no longer any effect.
Unified · Split
| @@ -611,7 +611,6 @@ static int acrossfade_config_output(AVFilterLink *outlink) · 610 unmodified lines | |||
| 611 | outlink->time_base = ctx->inputs[0]->time_base; | 611 | outlink->time_base = ctx->inputs[0]->time_base; |
| 612 | outlink->channel_layout = ctx->inputs[0]->channel_layout; | 612 | outlink->channel_layout = ctx->inputs[0]->channel_layout; |
| 613 | outlink->channels = ctx->inputs[0]->channels; | 613 | outlink->channels = ctx->inputs[0]->channels; |
| 614 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 615 | 614 | ||
| 616 | switch (outlink->format) { | 615 | switch (outlink->format) { |
| 617 | case AV_SAMPLE_FMT_DBL: s->crossfade_samples = crossfade_samples_dbl; break; | 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 | asns->fifo = av_audio_fifo_alloc(outlink->format, outlink->channels, asns->nb_out_samples); | 77 | asns->fifo = av_audio_fifo_alloc(outlink->format, outlink->channels, asns->nb_out_samples); |
| 78 | if (!asns->fifo) | 78 | if (!asns->fifo) |
| 79 | return AVERROR(ENOMEM); | 79 | return AVERROR(ENOMEM); |
| 80 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 81 | 80 | ||
| 82 | return 0; | 81 | return 0; |
| 83 | } | 82 | } |
| @@ -1046,8 +1046,6 @@ static int config_props(AVFilterLink *inlink) · 1045 unmodified lines | |||
| 1046 | int sample_rate = (int)inlink->sample_rate; | 1046 | int sample_rate = (int)inlink->sample_rate; |
| 1047 | int channels = av_get_channel_layout_nb_channels(inlink->channel_layout); | 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 | return yae_reset(atempo, format, sample_rate, channels); | 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 | if (err) | 531 | if (err) |
| 532 | return err; | 532 | return err; |
| 533 | 533 | ||
| 534 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 535 | s->compand = compand_delay; | 534 | s->compand = compand_delay; |
| 536 | return 0; | 535 | return 0; |
| 537 | } | 536 | } |
| @@ -305,12 +305,6 @@ static int config_input(AVFilterLink *inlink) · 304 unmodified lines | |||
| 305 | return 0; | 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 | static inline double fade(double prev, double next, int pos, | 308 | static inline double fade(double prev, double next, int pos, |
| 315 | double *fade_factors[2]) | 309 | double *fade_factors[2]) |
| 316 | { | 310 | { |
| @@ -721,7 +715,6 @@ static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = { · 404 unmodified lines | |||
| 721 | { | 715 | { |
| 722 | .name = "default", | 716 | .name = "default", |
| 723 | .type = AVMEDIA_TYPE_AUDIO, | 717 | .type = AVMEDIA_TYPE_AUDIO, |
| 724 | .config_props = config_output, | ||
| 725 | .request_frame = request_frame, | 718 | .request_frame = request_frame, |
| 726 | }, | 719 | }, |
| 727 | { NULL } | 720 | { NULL } |
| @@ -153,13 +153,6 @@ static int config_input(AVFilterLink *inlink) · 152 unmodified lines | |||
| 153 | return 0; | 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 | static double compute_rms(SilenceRemoveContext *s, double sample) | 156 | static double compute_rms(SilenceRemoveContext *s, double sample) |
| 164 | { | 157 | { |
| 165 | double new_sum; | 158 | double new_sum; |
| @@ -463,7 +456,6 @@ static const AVFilterPad silenceremove_outputs[] = { · 297 unmodified lines | |||
| 463 | { | 456 | { |
| 464 | .name = "default", | 457 | .name = "default", |
| 465 | .type = AVMEDIA_TYPE_AUDIO, | 458 | .type = AVMEDIA_TYPE_AUDIO, |
| 466 | .config_props = config_output, | ||
| 467 | .request_frame = request_frame, | 459 | .request_frame = request_frame, |
| 468 | }, | 460 | }, |
| 469 | { NULL } | 461 | { NULL } |
| @@ -300,7 +300,6 @@ static int config_output(AVFilterLink *outlink) · 299 unmodified lines | |||
| 300 | s->scale += s->window_func_lut[i] * s->window_func_lut[i]; | 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 | outlink->frame_rate = av_make_q(inlink->sample_rate, s->win_size * (1.-s->overlap)); | 303 | outlink->frame_rate = av_make_q(inlink->sample_rate, s->win_size * (1.-s->overlap)); |
| 305 | outlink->sample_aspect_ratio = (AVRational){1,1}; | 304 | outlink->sample_aspect_ratio = (AVRational){1,1}; |
| 306 | outlink->w = s->w; | 305 | outlink->w = s->w; |
| @@ -1097,7 +1097,6 @@ static int ff_filter_frame_needs_framing(AVFilterLink *link, AVFrame *frame) · 1096 unmodified lines | |||
| 1097 | int nb_channels = av_frame_get_channels(frame); | 1097 | int nb_channels = av_frame_get_channels(frame); |
| 1098 | int ret = 0; | 1098 | int ret = 0; |
| 1099 | 1099 | ||
| 1100 | link->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 1101 | /* Handle framing (min_samples, max_samples) */ | 1100 | /* Handle framing (min_samples, max_samples) */ |
| 1102 | while (insamples) { | 1101 | while (insamples) { |
| 1103 | if (!pbuf) { | 1102 | if (!pbuf) { |
| @@ -337,8 +337,6 @@ static int config_video_output(AVFilterLink *outlink) · 336 unmodified lines | |||
| 337 | DRAW_RECT(ebur128->graph); | 337 | DRAW_RECT(ebur128->graph); |
| 338 | DRAW_RECT(ebur128->gauge); | 338 | DRAW_RECT(ebur128->gauge); |
| 339 | 339 | ||
| 340 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 341 | |||
| 342 | return 0; | 340 | return 0; |
| 343 | } | 341 | } |
| 344 | 342 | ||
| @@ -398,8 +396,6 @@ static int config_audio_output(AVFilterLink *outlink) · 53 unmodified lines | |||
| 398 | return AVERROR(ENOMEM); | 396 | return AVERROR(ENOMEM); |
| 399 | } | 397 | } |
| 400 | 398 | ||
| 401 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 402 | |||
| 403 | #if CONFIG_SWRESAMPLE | 399 | #if CONFIG_SWRESAMPLE |
| 404 | if (ebur128->peak_mode & PEAK_MODE_TRUE_PEAKS) { | 400 | if (ebur128->peak_mode & PEAK_MODE_TRUE_PEAKS) { |
| 405 | int ret; | 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 | return 0; | 183 | return 0; |
| 186 | } | 184 | } |
| 187 | 185 | ||
| @@ -62,12 +62,6 @@ static av_cold void uninit(AVFilterContext *ctx) · 61 unmodified lines | |||
| 62 | av_freep(&s->frames); | 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 | static int filter_frame(AVFilterLink *inlink, AVFrame *in) | 65 | static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
| 72 | { | 66 | { |
| 73 | AVFilterContext *ctx = inlink->dst; | 67 | AVFilterContext *ctx = inlink->dst; |
| @@ -129,7 +123,6 @@ static const AVFilterPad reverse_outputs[] = { · 55 unmodified lines | |||
| 129 | .name = "default", | 123 | .name = "default", |
| 130 | .type = AVMEDIA_TYPE_VIDEO, | 124 | .type = AVMEDIA_TYPE_VIDEO, |
| 131 | .request_frame = request_frame, | 125 | .request_frame = request_frame, |
| 132 | .config_props = config_output, | ||
| 133 | }, | 126 | }, |
| 134 | { NULL } | 127 | { NULL } |
| 135 | }; | 128 | }; |
| @@ -240,7 +233,6 @@ static const AVFilterPad areverse_outputs[] = { · 104 unmodified lines | |||
| 240 | .name = "default", | 233 | .name = "default", |
| 241 | .type = AVMEDIA_TYPE_AUDIO, | 234 | .type = AVMEDIA_TYPE_AUDIO, |
| 242 | .request_frame = areverse_request_frame, | 235 | .request_frame = areverse_request_frame, |
| 243 | .config_props = config_output, | ||
| 244 | }, | 236 | }, |
| 245 | { NULL } | 237 | { NULL } |
| 246 | }; | 238 | }; |
| @@ -322,7 +322,6 @@ int ff_framesync_request_frame(FFFrameSync *fs, AVFilterLink *outlink) · 321 unmodified lines | |||
| 322 | return 0; | 322 | return 0; |
| 323 | if (fs->eof) | 323 | if (fs->eof) |
| 324 | return AVERROR_EOF; | 324 | return AVERROR_EOF; |
| 325 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 326 | input = fs->in_request; | 325 | input = fs->in_request; |
| 327 | ret = ff_request_frame(ctx->inputs[input]); | 326 | ret = ff_request_frame(ctx->inputs[input]); |
| 328 | if (ret == AVERROR_EOF) { | 327 | if (ret == AVERROR_EOF) { |
| @@ -335,20 +335,6 @@ int ff_request_frame(AVFilterLink *link); · 334 unmodified lines | |||
| 335 | */ | 335 | */ |
| 336 | int ff_filter_frame(AVFilterLink *link, AVFrame *frame); | 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 | * Allocate a new filter context and return it. | 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 | return 0; | 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 | #define OFFSET(x) offsetof(TrimContext, x) | 117 | #define OFFSET(x) offsetof(TrimContext, x) |
| 124 | #define COMMON_OPTS \ | 118 | #define COMMON_OPTS \ |
| 125 | { "starti", "Timestamp of the first frame that " \ | 119 | { "starti", "Timestamp of the first frame that " \ |
| @@ -223,7 +217,6 @@ static const AVFilterPad trim_outputs[] = { · 97 unmodified lines | |||
| 223 | { | 217 | { |
| 224 | .name = "default", | 218 | .name = "default", |
| 225 | .type = AVMEDIA_TYPE_VIDEO, | 219 | .type = AVMEDIA_TYPE_VIDEO, |
| 226 | .config_props = config_output, | ||
| 227 | }, | 220 | }, |
| 228 | { NULL } | 221 | { NULL } |
| 229 | }; | 222 | }; |
| @@ -378,7 +371,6 @@ static const AVFilterPad atrim_outputs[] = { · 148 unmodified lines | |||
| 378 | { | 371 | { |
| 379 | .name = "default", | 372 | .name = "default", |
| 380 | .type = AVMEDIA_TYPE_AUDIO, | 373 | .type = AVMEDIA_TYPE_AUDIO, |
| 381 | .config_props = config_output, | ||
| 382 | }, | 374 | }, |
| 383 | { NULL } | 375 | { NULL } |
| 384 | }; | 376 | }; |
| @@ -285,12 +285,6 @@ static int config_input(AVFilterLink *inlink) · 284 unmodified lines | |||
| 285 | return 0; | 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 | static int filter_frame(AVFilterLink *inlink, AVFrame *buf) | 288 | static int filter_frame(AVFilterLink *inlink, AVFrame *buf) |
| 295 | { | 289 | { |
| 296 | AVFilterContext *ctx = inlink->dst; | 290 | AVFilterContext *ctx = inlink->dst; |
| @@ -401,7 +395,6 @@ static const AVFilterPad outputs[] = { · 104 unmodified lines | |||
| 401 | .name = "default", | 395 | .name = "default", |
| 402 | .type = AVMEDIA_TYPE_VIDEO, | 396 | .type = AVMEDIA_TYPE_VIDEO, |
| 403 | .request_frame = request_frame, | 397 | .request_frame = request_frame, |
| 404 | .config_props = config_output, | ||
| 405 | }, | 398 | }, |
| 406 | { NULL } | 399 | { NULL } |
| 407 | }; | 400 | }; |
| @@ -467,9 +467,8 @@ static int config_output(AVFilterLink *outlink) · 466 unmodified lines | |||
| 467 | is_16bit = pix_desc->comp[0].depth == 16; | 467 | is_16bit = pix_desc->comp[0].depth == 16; |
| 468 | s->nb_planes = av_pix_fmt_count_planes(toplink->format); | 468 | s->nb_planes = av_pix_fmt_count_planes(toplink->format); |
| 469 | 469 | ||
| 470 | if (s->tblend) | 470 | if (!s->tblend) |
| 471 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | 471 | if ((ret = ff_dualinput_init(ctx, &s->dinput)) < 0) |
| 472 | else if ((ret = ff_dualinput_init(ctx, &s->dinput)) < 0) | ||
| 473 | return ret; | 472 | return ret; |
| 474 | 473 | ||
| 475 | for (plane = 0; plane < FF_ARRAY_ELEMS(s->params); plane++) { | 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 | fps = av_mul_q(fps, (AVRational){dm->cycle - 1, dm->cycle}); | 372 | fps = av_mul_q(fps, (AVRational){dm->cycle - 1, dm->cycle}); |
| 373 | av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", | 373 | av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", |
| 374 | inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); | 374 | inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); |
| 375 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 376 | outlink->time_base = inlink->time_base; | 375 | outlink->time_base = inlink->time_base; |
| 377 | outlink->frame_rate = fps; | 376 | outlink->frame_rate = fps; |
| 378 | outlink->sample_aspect_ratio = inlink->sample_aspect_ratio; | 377 | outlink->sample_aspect_ratio = inlink->sample_aspect_ratio; |
| @@ -170,7 +170,6 @@ static int config_output(AVFilterLink *outlink) · 169 unmodified lines | |||
| 170 | av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", | 170 | av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", |
| 171 | inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); | 171 | inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); |
| 172 | 172 | ||
| 173 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 174 | outlink->frame_rate = fps; | 173 | outlink->frame_rate = fps; |
| 175 | outlink->time_base = av_mul_q(inlink->time_base, s->pts); | 174 | outlink->time_base = av_mul_q(inlink->time_base, s->pts); |
| 176 | av_log(ctx, AV_LOG_VERBOSE, "TB: %d/%d -> %d/%d\n", | 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 | const AVFilterLink *inlink = | 953 | const AVFilterLink *inlink = |
| 954 | ctx->inputs[fm->ppsrc ? INPUT_CLEANSRC : INPUT_MAIN]; | 954 | ctx->inputs[fm->ppsrc ? INPUT_CLEANSRC : INPUT_MAIN]; |
| 955 | 955 | ||
| 956 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 957 | outlink->time_base = inlink->time_base; | 956 | outlink->time_base = inlink->time_base; |
| 958 | outlink->sample_aspect_ratio = inlink->sample_aspect_ratio; | 957 | outlink->sample_aspect_ratio = inlink->sample_aspect_ratio; |
| 959 | outlink->frame_rate = inlink->frame_rate; | 958 | outlink->frame_rate = inlink->frame_rate; |
| @@ -639,7 +639,6 @@ static int config_output(AVFilterLink *outlink) · 638 unmodified lines | |||
| 639 | 639 | ||
| 640 | outlink->frame_rate = s->dest_frame_rate; | 640 | outlink->frame_rate = s->dest_frame_rate; |
| 641 | outlink->time_base = s->dest_time_base; | 641 | outlink->time_base = s->dest_time_base; |
| 642 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 643 | 642 | ||
| 644 | ff_dlog(ctx, | 643 | ff_dlog(ctx, |
| 645 | "config_output() output time base:%u/%u (%f) w:%d h:%d\n", | 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 | FrameStepContext *framestep = ctx->priv; | 49 | FrameStepContext *framestep = ctx->priv; |
| 50 | AVFilterLink *inlink = ctx->inputs[0]; | 50 | AVFilterLink *inlink = ctx->inputs[0]; |
| 51 | 51 | ||
| 52 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 53 | outlink->frame_rate = | 52 | outlink->frame_rate = |
| 54 | av_div_q(inlink->frame_rate, (AVRational){framestep->frame_step, 1}); | 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 | return ff_set_common_formats(ctx, fmts_list); | 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 | static av_cold int init(AVFilterContext *ctx) | 403 | static av_cold int init(AVFilterContext *ctx) |
| 410 | { | 404 | { |
| 411 | IDETContext *idet = ctx->priv; | 405 | IDETContext *idet = ctx->priv; |
| @@ -440,7 +434,6 @@ static const AVFilterPad idet_outputs[] = { · 28 unmodified lines | |||
| 440 | { | 434 | { |
| 441 | .name = "default", | 435 | .name = "default", |
| 442 | .type = AVMEDIA_TYPE_VIDEO, | 436 | .type = AVMEDIA_TYPE_VIDEO, |
| 443 | .config_props = config_output, | ||
| 444 | .request_frame = request_frame | 437 | .request_frame = request_frame |
| 445 | }, | 438 | }, |
| 446 | { NULL } | 439 | { NULL } |
| @@ -113,7 +113,6 @@ static int config_out_props(AVFilterLink *outlink) · 112 unmodified lines | |||
| 113 | // half framerate | 113 | // half framerate |
| 114 | outlink->time_base.num *= 2; | 114 | outlink->time_base.num *= 2; |
| 115 | outlink->frame_rate.den *= 2; | 115 | outlink->frame_rate.den *= 2; |
| 116 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 117 | 116 | ||
| 118 | 117 | ||
| 119 | if (s->lowpass) { | 118 | if (s->lowpass) { |
| @@ -520,7 +520,6 @@ static int config_output(AVFilterLink *outlink) · 519 unmodified lines | |||
| 520 | { | 520 | { |
| 521 | outlink->w = outlink->h = 16; | 521 | outlink->w = outlink->h = 16; |
| 522 | outlink->sample_aspect_ratio = av_make_q(1, 1); | 522 | outlink->sample_aspect_ratio = av_make_q(1, 1); |
| 523 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 524 | return 0; | 523 | return 0; |
| 525 | } | 524 | } |
| 526 | 525 | ||
| @@ -220,12 +220,6 @@ static int config_input(AVFilterLink *inlink) · 219 unmodified lines | |||
| 220 | return 0; | 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 | static PullupBuffer *pullup_lock_buffer(PullupBuffer *b, int parity) | 223 | static PullupBuffer *pullup_lock_buffer(PullupBuffer *b, int parity) |
| 230 | { | 224 | { |
| 231 | if (!b) | 225 | if (!b) |
| @@ -766,7 +760,6 @@ static const AVFilterPad pullup_outputs[] = { · 534 unmodified lines | |||
| 766 | { | 760 | { |
| 767 | .name = "default", | 761 | .name = "default", |
| 768 | .type = AVMEDIA_TYPE_VIDEO, | 762 | .type = AVMEDIA_TYPE_VIDEO, |
| 769 | .config_props = config_output, | ||
| 770 | }, | 763 | }, |
| 771 | { NULL } | 764 | { NULL } |
| 772 | }; | 765 | }; |
| @@ -64,12 +64,6 @@ static av_cold int init(AVFilterContext *ctx) · 63 unmodified lines | |||
| 64 | return 0; | 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 | static int filter_frame(AVFilterLink *inlink, AVFrame *in) | 67 | static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
| 74 | { | 68 | { |
| 75 | AVFilterContext *ctx = inlink->dst; | 69 | AVFilterContext *ctx = inlink->dst; |
| @@ -128,7 +122,6 @@ static const AVFilterPad random_outputs[] = { · 52 unmodified lines | |||
| 128 | .name = "default", | 122 | .name = "default", |
| 129 | .type = AVMEDIA_TYPE_VIDEO, | 123 | .type = AVMEDIA_TYPE_VIDEO, |
| 130 | .request_frame = request_frame, | 124 | .request_frame = request_frame, |
| 131 | .config_props = config_output, | ||
| 132 | }, | 125 | }, |
| 133 | { NULL } | 126 | { NULL } |
| 134 | }; | 127 | }; |
| @@ -373,7 +373,6 @@ static int config_output(AVFilterLink *outlink) · 372 unmodified lines | |||
| 373 | break; | 373 | break; |
| 374 | case ALTERNATING_RL: | 374 | case ALTERNATING_RL: |
| 375 | case ALTERNATING_LR: | 375 | case ALTERNATING_LR: |
| 376 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 377 | fps.den *= 2; | 376 | fps.den *= 2; |
| 378 | tb.num *= 2; | 377 | tb.num *= 2; |
| 379 | break; | 378 | break; |
| @@ -157,7 +157,6 @@ static int config_output(AVFilterLink *outlink) · 156 unmodified lines | |||
| 157 | av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", | 157 | av_log(ctx, AV_LOG_VERBOSE, "FPS: %d/%d -> %d/%d\n", |
| 158 | inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); | 158 | inlink->frame_rate.num, inlink->frame_rate.den, fps.num, fps.den); |
| 159 | 159 | ||
| 160 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 161 | outlink->frame_rate = fps; | 160 | outlink->frame_rate = fps; |
| 162 | outlink->time_base = av_mul_q(inlink->time_base, s->pts); | 161 | outlink->time_base = av_mul_q(inlink->time_base, s->pts); |
| 163 | av_log(ctx, AV_LOG_VERBOSE, "TB: %d/%d -> %d/%d\n", | 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 | ff_draw_init(&tile->draw, inlink->format, 0); | 116 | ff_draw_init(&tile->draw, inlink->format, 0); |
| 117 | ff_draw_color(&tile->draw, &tile->blank, tile->rgba_color); | 117 | ff_draw_color(&tile->draw, &tile->blank, tile->rgba_color); |
| 118 | 118 | ||
| 119 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 120 | |||
| 121 | return 0; | 119 | return 0; |
| 122 | } | 120 | } |
| 123 | 121 | ||
| @@ -117,7 +117,6 @@ static int config_out_props(AVFilterLink *outlink) · 116 unmodified lines | |||
| 117 | int i; | 117 | int i; |
| 118 | 118 | ||
| 119 | tinterlace->vsub = desc->log2_chroma_h; | 119 | tinterlace->vsub = desc->log2_chroma_h; |
| 120 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 121 | outlink->w = inlink->w; | 120 | outlink->w = inlink->w; |
| 122 | outlink->h = tinterlace->mode == MODE_MERGE || tinterlace->mode == MODE_PAD ? | 121 | outlink->h = tinterlace->mode == MODE_MERGE || tinterlace->mode == MODE_PAD ? |
| 123 | inlink->h*2 : inlink->h; | 122 | inlink->h*2 : inlink->h; |
| @@ -117,7 +117,6 @@ static int config_output(AVFilterLink *outlink) · 116 unmodified lines | |||
| 117 | outlink->time_base.den = inlink->time_base.den * 2; | 117 | outlink->time_base.den = inlink->time_base.den * 2; |
| 118 | outlink->frame_rate.num = inlink->frame_rate.num * 2; | 118 | outlink->frame_rate.num = inlink->frame_rate.num * 2; |
| 119 | outlink->frame_rate.den = inlink->frame_rate.den; | 119 | outlink->frame_rate.den = inlink->frame_rate.den; |
| 120 | outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP; | ||
| 121 | 120 | ||
| 122 | return 0; | 121 | return 0; |
| 123 | } | 122 | } |