Up until now, an AVFilter's lists of input and output AVFilterPads were terminated by a sentinel and the only way to get the length of these lists was by using avfilter_pad_count(). This has two drawbacks: first, sizeof(AVFilterPad) is not negligible (i.e. 64B on 64bit systems); second, getting the size involves a function call instead of just reading the data. This commit therefore changes this. The sentinels are removed and new private fields nb_inputs and nb_outputs are added to AVFilter that contain the number of elements of the respective AVFilterPad array. Given that AVFilter.(in|out)puts are the only arrays of zero-terminated AVFilterPads an API user has access to (AVFilterContext.(in|out)put_pads are not zero-terminated and they already have a size field) the argument to avfilter_pad_count() is always one of these lists, so it just has to find the filter the list belongs to and read said number. This is slower than before, but a replacement function that just reads the internal numbers that users are expected to switch to will be added soon; and furthermore, avfilter_pad_count() is probably never called in hot loops anyway. This saves about 49KiB from the binary; notice that these sentinels are not in .bss despite being zeroed: they are in .data.rel.ro due to the non-sentinels.
Showing the changes to libavfilter (389 of 389 files). Show all
Unified · Split
| @@ -307,7 +307,6 @@ static const AVFilterPad aevalsrc_outputs[] = { · 306 unmodified lines | ||
| 307 | 307 | .config_props = config_props, |
| 308 | 308 | .request_frame = request_frame, |
| 309 | 309 | }, |
| 310 | − { NULL } | |
| 311 | 310 | }; |
| 312 | 311 | |
| 313 | 312 | const AVFilter ff_asrc_aevalsrc = { |
| @@ -318,7 +317,7 @@ const AVFilter ff_asrc_aevalsrc = { · 4 unmodified lines | ||
| 318 | 317 | .uninit = uninit, |
| 319 | 318 | .priv_size = sizeof(EvalContext), |
| 320 | 319 | .inputs = NULL, |
| 321 | − .outputs = aevalsrc_outputs, | |
| 320 | + FILTER_OUTPUTS(aevalsrc_outputs), | |
| 322 | 321 | .priv_class = &aevalsrc_class, |
| 323 | 322 | }; |
| 324 | 323 | |
| @@ -445,7 +444,6 @@ static const AVFilterPad aeval_inputs[] = { · 120 unmodified lines | ||
| 445 | 444 | .type = AVMEDIA_TYPE_AUDIO, |
| 446 | 445 | .filter_frame = filter_frame, |
| 447 | 446 | }, |
| 448 | − { NULL } | |
| 449 | 447 | }; |
| 450 | 448 | |
| 451 | 449 | static const AVFilterPad aeval_outputs[] = { |
| @@ -454,7 +452,6 @@ static const AVFilterPad aeval_outputs[] = { · 2 unmodified lines | ||
| 454 | 452 | .type = AVMEDIA_TYPE_AUDIO, |
| 455 | 453 | .config_props = aeval_config_output, |
| 456 | 454 | }, |
| 457 | − { NULL } | |
| 458 | 455 | }; |
| 459 | 456 | |
| 460 | 457 | const AVFilter ff_af_aeval = { |
| @@ -464,8 +461,8 @@ const AVFilter ff_af_aeval = { · 3 unmodified lines | ||
| 464 | 461 | .init = init, |
| 465 | 462 | .uninit = uninit, |
| 466 | 463 | .priv_size = sizeof(EvalContext), |
| 467 | − .inputs = aeval_inputs, | |
| 468 | − .outputs = aeval_outputs, | |
| 464 | + FILTER_INPUTS(aeval_inputs), | |
| 465 | + FILTER_OUTPUTS(aeval_outputs), | |
| 469 | 466 | .priv_class = &aeval_class, |
| 470 | 467 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 471 | 468 | }; |
| @@ -187,7 +187,6 @@ static const AVFilterPad inputs[] = { · 186 unmodified lines | ||
| 187 | 187 | .filter_frame = filter_frame, |
| 188 | 188 | .config_props = config_input, |
| 189 | 189 | }, |
| 190 | − { NULL } | |
| 191 | 190 | }; |
| 192 | 191 | |
| 193 | 192 | static const AVFilterPad outputs[] = { |
| @@ -195,7 +194,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 195 | 194 | .name = "default", |
| 196 | 195 | .type = AVMEDIA_TYPE_AUDIO, |
| 197 | 196 | }, |
| 198 | − { NULL } | |
| 199 | 197 | }; |
| 200 | 198 | |
| 201 | 199 | const AVFilter ff_af_acontrast = { |
| @@ -204,6 +202,6 @@ const AVFilter ff_af_acontrast = { · 2 unmodified lines | ||
| 204 | 202 | .query_formats = query_formats, |
| 205 | 203 | .priv_size = sizeof(AudioContrastContext), |
| 206 | 204 | .priv_class = &acontrast_class, |
| 207 | − .inputs = inputs, | |
| 208 | − .outputs = outputs, | |
| 205 | + FILTER_INPUTS(inputs), | |
| 206 | + FILTER_OUTPUTS(outputs), | |
| 209 | 207 | }; |
| @@ -51,7 +51,6 @@ static const AVFilterPad acopy_inputs[] = { · 50 unmodified lines | ||
| 51 | 51 | .type = AVMEDIA_TYPE_AUDIO, |
| 52 | 52 | .filter_frame = filter_frame, |
| 53 | 53 | }, |
| 54 | − { NULL } | |
| 55 | 54 | }; |
| 56 | 55 | |
| 57 | 56 | static const AVFilterPad acopy_outputs[] = { |
| @@ -59,12 +58,11 @@ static const AVFilterPad acopy_outputs[] = { · 1 unmodified line | ||
| 59 | 58 | .name = "default", |
| 60 | 59 | .type = AVMEDIA_TYPE_AUDIO, |
| 61 | 60 | }, |
| 62 | − { NULL } | |
| 63 | 61 | }; |
| 64 | 62 | |
| 65 | 63 | const AVFilter ff_af_acopy = { |
| 66 | 64 | .name = "acopy", |
| 67 | 65 | .description = NULL_IF_CONFIG_SMALL("Copy the input audio unchanged to the output."), |
| 68 | − .inputs = acopy_inputs, | |
| 69 | − .outputs = acopy_outputs, | |
| 66 | + FILTER_INPUTS(acopy_inputs), | |
| 67 | + FILTER_OUTPUTS(acopy_outputs), | |
| 70 | 68 | }; |
| @@ -555,7 +555,6 @@ static const AVFilterPad inputs[] = { · 554 unmodified lines | ||
| 555 | 555 | .filter_frame = filter_frame, |
| 556 | 556 | .config_props = config_input, |
| 557 | 557 | }, |
| 558 | − { NULL } | |
| 559 | 558 | }; |
| 560 | 559 | |
| 561 | 560 | const AVFilter ff_af_acrossover = { |
| @@ -566,7 +565,7 @@ const AVFilter ff_af_acrossover = { · 4 unmodified lines | ||
| 566 | 565 | .init = init, |
| 567 | 566 | .uninit = uninit, |
| 568 | 567 | .query_formats = query_formats, |
| 569 | − .inputs = inputs, | |
| 568 | + FILTER_INPUTS(inputs), | |
| 570 | 569 | .outputs = NULL, |
| 571 | 570 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | |
| 572 | 571 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -342,7 +342,6 @@ static const AVFilterPad avfilter_af_acrusher_inputs[] = { · 341 unmodified lines | ||
| 342 | 342 | .config_props = config_input, |
| 343 | 343 | .filter_frame = filter_frame, |
| 344 | 344 | }, |
| 345 | − { NULL } | |
| 346 | 345 | }; |
| 347 | 346 | |
| 348 | 347 | static const AVFilterPad avfilter_af_acrusher_outputs[] = { |
| @@ -350,7 +349,6 @@ static const AVFilterPad avfilter_af_acrusher_outputs[] = { · 1 unmodified line | ||
| 350 | 349 | .name = "default", |
| 351 | 350 | .type = AVMEDIA_TYPE_AUDIO, |
| 352 | 351 | }, |
| 353 | − { NULL } | |
| 354 | 352 | }; |
| 355 | 353 | |
| 356 | 354 | const AVFilter ff_af_acrusher = { |
| @@ -360,7 +358,7 @@ const AVFilter ff_af_acrusher = { · 3 unmodified lines | ||
| 360 | 358 | .priv_class = &acrusher_class, |
| 361 | 359 | .uninit = uninit, |
| 362 | 360 | .query_formats = query_formats, |
| 363 | − .inputs = avfilter_af_acrusher_inputs, | |
| 364 | − .outputs = avfilter_af_acrusher_outputs, | |
| 361 | + FILTER_INPUTS(avfilter_af_acrusher_inputs), | |
| 362 | + FILTER_OUTPUTS(avfilter_af_acrusher_outputs), | |
| 365 | 363 | .process_command = process_command, |
| 366 | 364 | }; |
| @@ -741,7 +741,6 @@ static const AVFilterPad inputs[] = { · 740 unmodified lines | ||
| 741 | 741 | .type = AVMEDIA_TYPE_AUDIO, |
| 742 | 742 | .config_props = config_input, |
| 743 | 743 | }, |
| 744 | − { NULL } | |
| 745 | 744 | }; |
| 746 | 745 | |
| 747 | 746 | static const AVFilterPad outputs[] = { |
| @@ -749,7 +748,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 749 | 748 | .name = "default", |
| 750 | 749 | .type = AVMEDIA_TYPE_AUDIO, |
| 751 | 750 | }, |
| 752 | − { NULL } | |
| 753 | 751 | }; |
| 754 | 752 | |
| 755 | 753 | const AVFilter ff_af_adeclick = { |
| @@ -761,8 +759,8 @@ const AVFilter ff_af_adeclick = { · 5 unmodified lines | ||
| 761 | 759 | .init = init, |
| 762 | 760 | .activate = activate, |
| 763 | 761 | .uninit = uninit, |
| 764 | − .inputs = inputs, | |
| 765 | − .outputs = outputs, | |
| 762 | + FILTER_INPUTS(inputs), | |
| 763 | + FILTER_OUTPUTS(outputs), | |
| 766 | 764 | .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 767 | 765 | }; |
| 768 | 766 | |
| @@ -797,7 +795,7 @@ const AVFilter ff_af_adeclip = { · 28 unmodified lines | ||
| 797 | 795 | .init = init, |
| 798 | 796 | .activate = activate, |
| 799 | 797 | .uninit = uninit, |
| 800 | − .inputs = inputs, | |
| 801 | − .outputs = outputs, | |
| 798 | + FILTER_INPUTS(inputs), | |
| 799 | + FILTER_OUTPUTS(outputs), | |
| 802 | 800 | .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 803 | 801 | }; |
| @@ -326,7 +326,6 @@ static const AVFilterPad adelay_inputs[] = { · 325 unmodified lines | ||
| 326 | 326 | .type = AVMEDIA_TYPE_AUDIO, |
| 327 | 327 | .config_props = config_input, |
| 328 | 328 | }, |
| 329 | − { NULL } | |
| 330 | 329 | }; |
| 331 | 330 | |
| 332 | 331 | static const AVFilterPad adelay_outputs[] = { |
| @@ -334,7 +333,6 @@ static const AVFilterPad adelay_outputs[] = { · 1 unmodified line | ||
| 334 | 333 | .name = "default", |
| 335 | 334 | .type = AVMEDIA_TYPE_AUDIO, |
| 336 | 335 | }, |
| 337 | − { NULL } | |
| 338 | 336 | }; |
| 339 | 337 | |
| 340 | 338 | const AVFilter ff_af_adelay = { |
| @@ -345,7 +343,7 @@ const AVFilter ff_af_adelay = { · 4 unmodified lines | ||
| 345 | 343 | .priv_class = &adelay_class, |
| 346 | 344 | .activate = activate, |
| 347 | 345 | .uninit = uninit, |
| 348 | − .inputs = adelay_inputs, | |
| 349 | − .outputs = adelay_outputs, | |
| 346 | + FILTER_INPUTS(adelay_inputs), | |
| 347 | + FILTER_OUTPUTS(adelay_outputs), | |
| 350 | 348 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 351 | 349 | }; |
| @@ -279,7 +279,6 @@ static const AVFilterPad adenorm_inputs[] = { · 278 unmodified lines | ||
| 279 | 279 | .type = AVMEDIA_TYPE_AUDIO, |
| 280 | 280 | .filter_frame = filter_frame, |
| 281 | 281 | }, |
| 282 | − { NULL } | |
| 283 | 282 | }; |
| 284 | 283 | |
| 285 | 284 | static const AVFilterPad adenorm_outputs[] = { |
| @@ -288,7 +287,6 @@ static const AVFilterPad adenorm_outputs[] = { · 2 unmodified lines | ||
| 288 | 287 | .type = AVMEDIA_TYPE_AUDIO, |
| 289 | 288 | .config_props = config_output, |
| 290 | 289 | }, |
| 291 | − { NULL } | |
| 292 | 290 | }; |
| 293 | 291 | |
| 294 | 292 | #define OFFSET(x) offsetof(ADenormContext, x) |
| @@ -311,8 +309,8 @@ const AVFilter ff_af_adenorm = { · 16 unmodified lines | ||
| 311 | 309 | .description = NULL_IF_CONFIG_SMALL("Remedy denormals by adding extremely low-level noise."), |
| 312 | 310 | .query_formats = query_formats, |
| 313 | 311 | .priv_size = sizeof(ADenormContext), |
| 314 | − .inputs = adenorm_inputs, | |
| 315 | − .outputs = adenorm_outputs, | |
| 312 | + FILTER_INPUTS(adenorm_inputs), | |
| 313 | + FILTER_OUTPUTS(adenorm_outputs), | |
| 316 | 314 | .priv_class = &adenorm_class, |
| 317 | 315 | .process_command = process_command, |
| 318 | 316 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| @@ -163,7 +163,6 @@ static const AVFilterPad aderivative_inputs[] = { · 162 unmodified lines | ||
| 163 | 163 | .filter_frame = filter_frame, |
| 164 | 164 | .config_props = config_input, |
| 165 | 165 | }, |
| 166 | − { NULL } | |
| 167 | 166 | }; |
| 168 | 167 | |
| 169 | 168 | static const AVFilterPad aderivative_outputs[] = { |
| @@ -171,7 +170,6 @@ static const AVFilterPad aderivative_outputs[] = { · 1 unmodified line | ||
| 171 | 170 | .name = "default", |
| 172 | 171 | .type = AVMEDIA_TYPE_AUDIO, |
| 173 | 172 | }, |
| 174 | − { NULL } | |
| 175 | 173 | }; |
| 176 | 174 | |
| 177 | 175 | const AVFilter ff_af_aderivative = { |
| @@ -180,8 +178,8 @@ const AVFilter ff_af_aderivative = { · 2 unmodified lines | ||
| 180 | 178 | .query_formats = query_formats, |
| 181 | 179 | .priv_size = sizeof(ADerivativeContext), |
| 182 | 180 | .uninit = uninit, |
| 183 | − .inputs = aderivative_inputs, | |
| 184 | − .outputs = aderivative_outputs, | |
| 181 | + FILTER_INPUTS(aderivative_inputs), | |
| 182 | + FILTER_OUTPUTS(aderivative_outputs), | |
| 185 | 183 | }; |
| 186 | 184 | |
| 187 | 185 | const AVFilter ff_af_aintegral = { |
| @@ -190,6 +188,6 @@ const AVFilter ff_af_aintegral = { · 2 unmodified lines | ||
| 190 | 188 | .query_formats = query_formats, |
| 191 | 189 | .priv_size = sizeof(ADerivativeContext), |
| 192 | 190 | .uninit = uninit, |
| 193 | − .inputs = aderivative_inputs, | |
| 194 | − .outputs = aderivative_outputs, | |
| 191 | + FILTER_INPUTS(aderivative_inputs), | |
| 192 | + FILTER_OUTPUTS(aderivative_outputs), | |
| 195 | 193 | }; |
| @@ -351,7 +351,6 @@ static const AVFilterPad aecho_inputs[] = { · 350 unmodified lines | ||
| 351 | 351 | .name = "default", |
| 352 | 352 | .type = AVMEDIA_TYPE_AUDIO, |
| 353 | 353 | }, |
| 354 | − { NULL } | |
| 355 | 354 | }; |
| 356 | 355 | |
| 357 | 356 | static const AVFilterPad aecho_outputs[] = { |
| @@ -360,7 +359,6 @@ static const AVFilterPad aecho_outputs[] = { · 2 unmodified lines | ||
| 360 | 359 | .config_props = config_output, |
| 361 | 360 | .type = AVMEDIA_TYPE_AUDIO, |
| 362 | 361 | }, |
| 363 | − { NULL } | |
| 364 | 362 | }; |
| 365 | 363 | |
| 366 | 364 | const AVFilter ff_af_aecho = { |
| @@ -372,6 +370,6 @@ const AVFilter ff_af_aecho = { · 5 unmodified lines | ||
| 372 | 370 | .init = init, |
| 373 | 371 | .activate = activate, |
| 374 | 372 | .uninit = uninit, |
| 375 | − .inputs = aecho_inputs, | |
| 376 | − .outputs = aecho_outputs, | |
| 373 | + FILTER_INPUTS(aecho_inputs), | |
| 374 | + FILTER_OUTPUTS(aecho_outputs), | |
| 377 | 375 | }; |
| @@ -376,7 +376,6 @@ static const AVFilterPad avfilter_af_aemphasis_inputs[] = { · 375 unmodified lines | ||
| 376 | 376 | .config_props = config_input, |
| 377 | 377 | .filter_frame = filter_frame, |
| 378 | 378 | }, |
| 379 | − { NULL } | |
| 380 | 379 | }; |
| 381 | 380 | |
| 382 | 381 | static const AVFilterPad avfilter_af_aemphasis_outputs[] = { |
| @@ -384,7 +383,6 @@ static const AVFilterPad avfilter_af_aemphasis_outputs[] = { · 1 unmodified line | ||
| 384 | 383 | .name = "default", |
| 385 | 384 | .type = AVMEDIA_TYPE_AUDIO, |
| 386 | 385 | }, |
| 387 | − { NULL } | |
| 388 | 386 | }; |
| 389 | 387 | |
| 390 | 388 | const AVFilter ff_af_aemphasis = { |
| @@ -394,8 +392,8 @@ const AVFilter ff_af_aemphasis = { · 3 unmodified lines | ||
| 394 | 392 | .priv_class = &aemphasis_class, |
| 395 | 393 | .uninit = uninit, |
| 396 | 394 | .query_formats = query_formats, |
| 397 | − .inputs = avfilter_af_aemphasis_inputs, | |
| 398 | − .outputs = avfilter_af_aemphasis_outputs, | |
| 395 | + FILTER_INPUTS(avfilter_af_aemphasis_inputs), | |
| 396 | + FILTER_OUTPUTS(avfilter_af_aemphasis_outputs), | |
| 399 | 397 | .process_command = process_command, |
| 400 | 398 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 401 | 399 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -279,7 +279,6 @@ static const AVFilterPad avfilter_af_aexciter_inputs[] = { · 278 unmodified lines | ||
| 279 | 279 | .config_props = config_input, |
| 280 | 280 | .filter_frame = filter_frame, |
| 281 | 281 | }, |
| 282 | − { NULL } | |
| 283 | 282 | }; |
| 284 | 283 | |
| 285 | 284 | static const AVFilterPad avfilter_af_aexciter_outputs[] = { |
| @@ -287,7 +286,6 @@ static const AVFilterPad avfilter_af_aexciter_outputs[] = { · 1 unmodified line | ||
| 287 | 286 | .name = "default", |
| 288 | 287 | .type = AVMEDIA_TYPE_AUDIO, |
| 289 | 288 | }, |
| 290 | − { NULL } | |
| 291 | 289 | }; |
| 292 | 290 | |
| 293 | 291 | const AVFilter ff_af_aexciter = { |
| @@ -297,8 +295,8 @@ const AVFilter ff_af_aexciter = { · 3 unmodified lines | ||
| 297 | 295 | .priv_class = &aexciter_class, |
| 298 | 296 | .uninit = uninit, |
| 299 | 297 | .query_formats = query_formats, |
| 300 | − .inputs = avfilter_af_aexciter_inputs, | |
| 301 | − .outputs = avfilter_af_aexciter_outputs, | |
| 298 | + FILTER_INPUTS(avfilter_af_aexciter_inputs), | |
| 299 | + FILTER_OUTPUTS(avfilter_af_aexciter_outputs), | |
| 302 | 300 | .process_command = process_command, |
| 303 | 301 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 304 | 302 | }; |
| @@ -340,7 +340,6 @@ static const AVFilterPad avfilter_af_afade_inputs[] = { · 339 unmodified lines | ||
| 340 | 340 | .type = AVMEDIA_TYPE_AUDIO, |
| 341 | 341 | .filter_frame = filter_frame, |
| 342 | 342 | }, |
| 343 | − { NULL } | |
| 344 | 343 | }; |
| 345 | 344 | |
| 346 | 345 | static const AVFilterPad avfilter_af_afade_outputs[] = { |
| @@ -349,7 +348,6 @@ static const AVFilterPad avfilter_af_afade_outputs[] = { · 2 unmodified lines | ||
| 349 | 348 | .type = AVMEDIA_TYPE_AUDIO, |
| 350 | 349 | .config_props = config_output, |
| 351 | 350 | }, |
| 352 | − { NULL } | |
| 353 | 351 | }; |
| 354 | 352 | |
| 355 | 353 | const AVFilter ff_af_afade = { |
| @@ -358,8 +356,8 @@ const AVFilter ff_af_afade = { · 2 unmodified lines | ||
| 358 | 356 | .query_formats = query_formats, |
| 359 | 357 | .priv_size = sizeof(AudioFadeContext), |
| 360 | 358 | .init = init, |
| 361 | − .inputs = avfilter_af_afade_inputs, | |
| 362 | − .outputs = avfilter_af_afade_outputs, | |
| 359 | + FILTER_INPUTS(avfilter_af_afade_inputs), | |
| 360 | + FILTER_OUTPUTS(avfilter_af_afade_outputs), | |
| 363 | 361 | .priv_class = &afade_class, |
| 364 | 362 | .process_command = process_command, |
| 365 | 363 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| @@ -628,7 +626,6 @@ static const AVFilterPad avfilter_af_acrossfade_inputs[] = { · 262 unmodified lines | ||
| 628 | 626 | .name = "crossfade1", |
| 629 | 627 | .type = AVMEDIA_TYPE_AUDIO, |
| 630 | 628 | }, |
| 631 | − { NULL } | |
| 632 | 629 | }; |
| 633 | 630 | |
| 634 | 631 | static const AVFilterPad avfilter_af_acrossfade_outputs[] = { |
| @@ -637,7 +634,6 @@ static const AVFilterPad avfilter_af_acrossfade_outputs[] = { · 2 unmodified lines | ||
| 637 | 634 | .type = AVMEDIA_TYPE_AUDIO, |
| 638 | 635 | .config_props = acrossfade_config_output, |
| 639 | 636 | }, |
| 640 | − { NULL } | |
| 641 | 637 | }; |
| 642 | 638 | |
| 643 | 639 | const AVFilter ff_af_acrossfade = { |
| @@ -647,8 +643,8 @@ const AVFilter ff_af_acrossfade = { · 3 unmodified lines | ||
| 647 | 643 | .priv_size = sizeof(AudioFadeContext), |
| 648 | 644 | .activate = activate, |
| 649 | 645 | .priv_class = &acrossfade_class, |
| 650 | − .inputs = avfilter_af_acrossfade_inputs, | |
| 651 | − .outputs = avfilter_af_acrossfade_outputs, | |
| 646 | + FILTER_INPUTS(avfilter_af_acrossfade_inputs), | |
| 647 | + FILTER_OUTPUTS(avfilter_af_acrossfade_outputs), | |
| 652 | 648 | }; |
| 653 | 649 | |
| 654 | 650 | #endif /* CONFIG_ACROSSFADE_FILTER */ |
| @@ -1400,7 +1400,6 @@ static const AVFilterPad inputs[] = { · 1399 unmodified lines | ||
| 1400 | 1400 | .type = AVMEDIA_TYPE_AUDIO, |
| 1401 | 1401 | .config_props = config_input, |
| 1402 | 1402 | }, |
| 1403 | − { NULL } | |
| 1404 | 1403 | }; |
| 1405 | 1404 | |
| 1406 | 1405 | static const AVFilterPad outputs[] = { |
| @@ -1408,7 +1407,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 1408 | 1407 | .name = "default", |
| 1409 | 1408 | .type = AVMEDIA_TYPE_AUDIO, |
| 1410 | 1409 | }, |
| 1411 | − { NULL } | |
| 1412 | 1410 | }; |
| 1413 | 1411 | |
| 1414 | 1412 | const AVFilter ff_af_afftdn = { |
| @@ -1419,8 +1417,8 @@ const AVFilter ff_af_afftdn = { · 4 unmodified lines | ||
| 1419 | 1417 | .priv_class = &afftdn_class, |
| 1420 | 1418 | .activate = activate, |
| 1421 | 1419 | .uninit = uninit, |
| 1422 | − .inputs = inputs, | |
| 1423 | − .outputs = outputs, | |
| 1420 | + FILTER_INPUTS(inputs), | |
| 1421 | + FILTER_OUTPUTS(outputs), | |
| 1424 | 1422 | .process_command = process_command, |
| 1425 | 1423 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 1426 | 1424 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -466,7 +466,6 @@ static const AVFilterPad inputs[] = { · 465 unmodified lines | ||
| 466 | 466 | .type = AVMEDIA_TYPE_AUDIO, |
| 467 | 467 | .config_props = config_input, |
| 468 | 468 | }, |
| 469 | − { NULL } | |
| 470 | 469 | }; |
| 471 | 470 | |
| 472 | 471 | static const AVFilterPad outputs[] = { |
| @@ -474,7 +473,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 474 | 473 | .name = "default", |
| 475 | 474 | .type = AVMEDIA_TYPE_AUDIO, |
| 476 | 475 | }, |
| 477 | − { NULL } | |
| 478 | 476 | }; |
| 479 | 477 | |
| 480 | 478 | const AVFilter ff_af_afftfilt = { |
| @@ -482,8 +480,8 @@ const AVFilter ff_af_afftfilt = { · 1 unmodified line | ||
| 482 | 480 | .description = NULL_IF_CONFIG_SMALL("Apply arbitrary expressions to samples in frequency domain."), |
| 483 | 481 | .priv_size = sizeof(AFFTFiltContext), |
| 484 | 482 | .priv_class = &afftfilt_class, |
| 485 | − .inputs = inputs, | |
| 486 | − .outputs = outputs, | |
| 483 | + FILTER_INPUTS(inputs), | |
| 484 | + FILTER_OUTPUTS(outputs), | |
| 487 | 485 | .activate = activate, |
| 488 | 486 | .query_formats = query_formats, |
| 489 | 487 | .uninit = uninit, |
| @@ -146,7 +146,6 @@ static const AVFilterPad avfilter_af_aformat_inputs[] = { · 145 unmodified lines | ||
| 146 | 146 | .name = "default", |
| 147 | 147 | .type = AVMEDIA_TYPE_AUDIO, |
| 148 | 148 | }, |
| 149 | − { NULL } | |
| 150 | 149 | }; |
| 151 | 150 | |
| 152 | 151 | static const AVFilterPad avfilter_af_aformat_outputs[] = { |
| @@ -154,7 +153,6 @@ static const AVFilterPad avfilter_af_aformat_outputs[] = { · 1 unmodified line | ||
| 154 | 153 | .name = "default", |
| 155 | 154 | .type = AVMEDIA_TYPE_AUDIO |
| 156 | 155 | }, |
| 157 | − { NULL } | |
| 158 | 156 | }; |
| 159 | 157 | |
| 160 | 158 | const AVFilter ff_af_aformat = { |
| @@ -165,6 +163,6 @@ const AVFilter ff_af_aformat = { · 4 unmodified lines | ||
| 165 | 163 | .query_formats = query_formats, |
| 166 | 164 | .priv_size = sizeof(AFormatContext), |
| 167 | 165 | .priv_class = &aformat_class, |
| 168 | − .inputs = avfilter_af_aformat_inputs, | |
| 169 | − .outputs = avfilter_af_aformat_outputs, | |
| 166 | + FILTER_INPUTS(avfilter_af_aformat_inputs), | |
| 167 | + FILTER_OUTPUTS(avfilter_af_aformat_outputs), | |
| 170 | 168 | }; |
| @@ -367,7 +367,6 @@ static const AVFilterPad inputs[] = { · 366 unmodified lines | ||
| 367 | 367 | .filter_frame = filter_frame, |
| 368 | 368 | .config_props = config_input, |
| 369 | 369 | }, |
| 370 | − { NULL } | |
| 371 | 370 | }; |
| 372 | 371 | |
| 373 | 372 | static const AVFilterPad outputs[] = { |
| @@ -375,7 +374,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 375 | 374 | .name = "default", |
| 376 | 375 | .type = AVMEDIA_TYPE_AUDIO, |
| 377 | 376 | }, |
| 378 | − { NULL } | |
| 379 | 377 | }; |
| 380 | 378 | |
| 381 | 379 | const AVFilter ff_af_afreqshift = { |
| @@ -385,8 +383,8 @@ const AVFilter ff_af_afreqshift = { · 3 unmodified lines | ||
| 385 | 383 | .priv_size = sizeof(AFreqShift), |
| 386 | 384 | .priv_class = &afreqshift_class, |
| 387 | 385 | .uninit = uninit, |
| 388 | − .inputs = inputs, | |
| 389 | − .outputs = outputs, | |
| 386 | + FILTER_INPUTS(inputs), | |
| 387 | + FILTER_OUTPUTS(outputs), | |
| 390 | 388 | .process_command = ff_filter_process_command, |
| 391 | 389 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 392 | 390 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -407,8 +405,8 @@ const AVFilter ff_af_aphaseshift = { · 14 unmodified lines | ||
| 407 | 405 | .priv_size = sizeof(AFreqShift), |
| 408 | 406 | .priv_class = &aphaseshift_class, |
| 409 | 407 | .uninit = uninit, |
| 410 | − .inputs = inputs, | |
| 411 | − .outputs = outputs, | |
| 408 | + FILTER_INPUTS(inputs), | |
| 409 | + FILTER_OUTPUTS(outputs), | |
| 412 | 410 | .process_command = ff_filter_process_command, |
| 413 | 411 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 414 | 412 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -1311,7 +1311,6 @@ static const AVFilterPad inputs[] = { · 1310 unmodified lines | ||
| 1311 | 1311 | .name = "default", |
| 1312 | 1312 | .type = AVMEDIA_TYPE_AUDIO, |
| 1313 | 1313 | }, |
| 1314 | − { NULL } | |
| 1315 | 1314 | }; |
| 1316 | 1315 | |
| 1317 | 1316 | static const AVFilterPad outputs[] = { |
| @@ -1320,7 +1319,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 1320 | 1319 | .type = AVMEDIA_TYPE_AUDIO, |
| 1321 | 1320 | .config_props = config_output, |
| 1322 | 1321 | }, |
| 1323 | − { NULL } | |
| 1324 | 1322 | }; |
| 1325 | 1323 | |
| 1326 | 1324 | const AVFilter ff_af_afwtdn = { |
| @@ -1331,8 +1329,8 @@ const AVFilter ff_af_afwtdn = { · 4 unmodified lines | ||
| 1331 | 1329 | .priv_class = &afwtdn_class, |
| 1332 | 1330 | .activate = activate, |
| 1333 | 1331 | .uninit = uninit, |
| 1334 | − .inputs = inputs, | |
| 1335 | − .outputs = outputs, | |
| 1332 | + FILTER_INPUTS(inputs), | |
| 1333 | + FILTER_OUTPUTS(outputs), | |
| 1336 | 1334 | .process_command = process_command, |
| 1337 | 1335 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 1338 | 1336 | }; |
| @@ -240,7 +240,6 @@ static const AVFilterPad inputs[] = { · 239 unmodified lines | ||
| 240 | 240 | .filter_frame = filter_frame, |
| 241 | 241 | .config_props = agate_config_input, |
| 242 | 242 | }, |
| 243 | − { NULL } | |
| 244 | 243 | }; |
| 245 | 244 | |
| 246 | 245 | static const AVFilterPad outputs[] = { |
| @@ -248,7 +247,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 248 | 247 | .name = "default", |
| 249 | 248 | .type = AVMEDIA_TYPE_AUDIO, |
| 250 | 249 | }, |
| 251 | − { NULL } | |
| 252 | 250 | }; |
| 253 | 251 | |
| 254 | 252 | const AVFilter ff_af_agate = { |
| @@ -257,8 +255,8 @@ const AVFilter ff_af_agate = { · 2 unmodified lines | ||
| 257 | 255 | .query_formats = query_formats, |
| 258 | 256 | .priv_size = sizeof(AudioGateContext), |
| 259 | 257 | .priv_class = &agate_class, |
| 260 | − .inputs = inputs, | |
| 261 | − .outputs = outputs, | |
| 258 | + FILTER_INPUTS(inputs), | |
| 259 | + FILTER_OUTPUTS(outputs), | |
| 262 | 260 | .process_command = ff_filter_process_command, |
| 263 | 261 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 264 | 262 | }; |
| @@ -413,7 +411,6 @@ static const AVFilterPad sidechaingate_inputs[] = { · 148 unmodified lines | ||
| 413 | 411 | .name = "sidechain", |
| 414 | 412 | .type = AVMEDIA_TYPE_AUDIO, |
| 415 | 413 | }, |
| 416 | − { NULL } | |
| 417 | 414 | }; |
| 418 | 415 | |
| 419 | 416 | static const AVFilterPad sidechaingate_outputs[] = { |
| @@ -422,7 +419,6 @@ static const AVFilterPad sidechaingate_outputs[] = { · 2 unmodified lines | ||
| 422 | 419 | .type = AVMEDIA_TYPE_AUDIO, |
| 423 | 420 | .config_props = scconfig_output, |
| 424 | 421 | }, |
| 425 | − { NULL } | |
| 426 | 422 | }; |
| 427 | 423 | |
| 428 | 424 | const AVFilter ff_af_sidechaingate = { |
| @@ -433,8 +429,8 @@ const AVFilter ff_af_sidechaingate = { · 4 unmodified lines | ||
| 433 | 429 | .query_formats = scquery_formats, |
| 434 | 430 | .activate = activate, |
| 435 | 431 | .uninit = uninit, |
| 436 | − .inputs = sidechaingate_inputs, | |
| 437 | − .outputs = sidechaingate_outputs, | |
| 432 | + FILTER_INPUTS(sidechaingate_inputs), | |
| 433 | + FILTER_OUTPUTS(sidechaingate_outputs), | |
| 438 | 434 | .process_command = ff_filter_process_command, |
| 439 | 435 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 440 | 436 | }; |
| @@ -1518,7 +1518,6 @@ static const AVFilterPad inputs[] = { · 1517 unmodified lines | ||
| 1518 | 1518 | .type = AVMEDIA_TYPE_AUDIO, |
| 1519 | 1519 | .filter_frame = filter_frame, |
| 1520 | 1520 | }, |
| 1521 | − { NULL } | |
| 1522 | 1521 | }; |
| 1523 | 1522 | |
| 1524 | 1523 | #define OFFSET(x) offsetof(AudioIIRContext, x) |
| @@ -1574,7 +1573,7 @@ const AVFilter ff_af_aiir = { · 49 unmodified lines | ||
| 1574 | 1573 | .init = init, |
| 1575 | 1574 | .uninit = uninit, |
| 1576 | 1575 | .query_formats = query_formats, |
| 1577 | − .inputs = inputs, | |
| 1576 | + FILTER_INPUTS(inputs), | |
| 1578 | 1577 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | |
| 1579 | 1578 | AVFILTER_FLAG_SLICE_THREADS, |
| 1580 | 1579 | }; |
| @@ -337,7 +337,6 @@ static const AVFilterPad alimiter_inputs[] = { · 336 unmodified lines | ||
| 337 | 337 | .filter_frame = filter_frame, |
| 338 | 338 | .config_props = config_input, |
| 339 | 339 | }, |
| 340 | − { NULL } | |
| 341 | 340 | }; |
| 342 | 341 | |
| 343 | 342 | static const AVFilterPad alimiter_outputs[] = { |
| @@ -345,7 +344,6 @@ static const AVFilterPad alimiter_outputs[] = { · 1 unmodified line | ||
| 345 | 344 | .name = "default", |
| 346 | 345 | .type = AVMEDIA_TYPE_AUDIO, |
| 347 | 346 | }, |
| 348 | − { NULL } | |
| 349 | 347 | }; |
| 350 | 348 | |
| 351 | 349 | const AVFilter ff_af_alimiter = { |
| @@ -356,6 +354,6 @@ const AVFilter ff_af_alimiter = { · 4 unmodified lines | ||
| 356 | 354 | .init = init, |
| 357 | 355 | .uninit = uninit, |
| 358 | 356 | .query_formats = query_formats, |
| 359 | − .inputs = alimiter_inputs, | |
| 360 | − .outputs = alimiter_outputs, | |
| 357 | + FILTER_INPUTS(alimiter_inputs), | |
| 358 | + FILTER_OUTPUTS(alimiter_outputs), | |
| 361 | 359 | }; |
| @@ -342,7 +342,6 @@ static const AVFilterPad amerge_outputs[] = { · 341 unmodified lines | ||
| 342 | 342 | .type = AVMEDIA_TYPE_AUDIO, |
| 343 | 343 | .config_props = config_output, |
| 344 | 344 | }, |
| 345 | − { NULL } | |
| 346 | 345 | }; |
| 347 | 346 | |
| 348 | 347 | const AVFilter ff_af_amerge = { |
| @@ -355,7 +354,7 @@ const AVFilter ff_af_amerge = { · 6 unmodified lines | ||
| 355 | 354 | .query_formats = query_formats, |
| 356 | 355 | .activate = activate, |
| 357 | 356 | .inputs = NULL, |
| 358 | − .outputs = amerge_outputs, | |
| 357 | + FILTER_OUTPUTS(amerge_outputs), | |
| 359 | 358 | .priv_class = &amerge_class, |
| 360 | 359 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 361 | 360 | }; |
| @@ -634,7 +634,6 @@ static const AVFilterPad avfilter_af_amix_outputs[] = { · 633 unmodified lines | ||
| 634 | 634 | .type = AVMEDIA_TYPE_AUDIO, |
| 635 | 635 | .config_props = config_output, |
| 636 | 636 | }, |
| 637 | − { NULL } | |
| 638 | 637 | }; |
| 639 | 638 | |
| 640 | 639 | const AVFilter ff_af_amix = { |
| @@ -647,7 +646,7 @@ const AVFilter ff_af_amix = { · 6 unmodified lines | ||
| 647 | 646 | .activate = activate, |
| 648 | 647 | .query_formats = query_formats, |
| 649 | 648 | .inputs = NULL, |
| 650 | − .outputs = avfilter_af_amix_outputs, | |
| 649 | + FILTER_OUTPUTS(avfilter_af_amix_outputs), | |
| 651 | 650 | .process_command = process_command, |
| 652 | 651 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 653 | 652 | }; |
| @@ -179,7 +179,6 @@ static const AVFilterPad inputs[] = { · 178 unmodified lines | ||
| 179 | 179 | .name = "multiply1", |
| 180 | 180 | .type = AVMEDIA_TYPE_AUDIO, |
| 181 | 181 | }, |
| 182 | − { NULL } | |
| 183 | 182 | }; |
| 184 | 183 | |
| 185 | 184 | static const AVFilterPad outputs[] = { |
| @@ -188,7 +187,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 188 | 187 | .type = AVMEDIA_TYPE_AUDIO, |
| 189 | 188 | .config_props = config_output, |
| 190 | 189 | }, |
| 191 | − { NULL } | |
| 192 | 190 | }; |
| 193 | 191 | |
| 194 | 192 | const AVFilter ff_af_amultiply = { |
| @@ -199,6 +197,6 @@ const AVFilter ff_af_amultiply = { · 4 unmodified lines | ||
| 199 | 197 | .uninit = uninit, |
| 200 | 198 | .activate = activate, |
| 201 | 199 | .query_formats = query_formats, |
| 202 | − .inputs = inputs, | |
| 203 | − .outputs = outputs, | |
| 200 | + FILTER_INPUTS(inputs), | |
| 201 | + FILTER_OUTPUTS(outputs), | |
| 204 | 202 | }; |
| @@ -761,7 +761,6 @@ static const AVFilterPad inputs[] = { · 760 unmodified lines | ||
| 761 | 761 | .config_props = config_input, |
| 762 | 762 | .filter_frame = filter_frame, |
| 763 | 763 | }, |
| 764 | − { NULL } | |
| 765 | 764 | }; |
| 766 | 765 | |
| 767 | 766 | const AVFilter ff_af_anequalizer = { |
| @@ -772,7 +771,7 @@ const AVFilter ff_af_anequalizer = { · 4 unmodified lines | ||
| 772 | 771 | .init = init, |
| 773 | 772 | .uninit = uninit, |
| 774 | 773 | .query_formats = query_formats, |
| 775 | − .inputs = inputs, | |
| 774 | + FILTER_INPUTS(inputs), | |
| 776 | 775 | .outputs = NULL, |
| 777 | 776 | .process_command = process_command, |
| 778 | 777 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | |
| @@ -388,7 +388,6 @@ static const AVFilterPad inputs[] = { · 387 unmodified lines | ||
| 388 | 388 | .type = AVMEDIA_TYPE_AUDIO, |
| 389 | 389 | .filter_frame = filter_frame, |
| 390 | 390 | }, |
| 391 | − { NULL } | |
| 392 | 391 | }; |
| 393 | 392 | |
| 394 | 393 | static const AVFilterPad outputs[] = { |
| @@ -398,7 +397,6 @@ static const AVFilterPad outputs[] = { · 3 unmodified lines | ||
| 398 | 397 | .config_props = config_output, |
| 399 | 398 | .request_frame = request_frame, |
| 400 | 399 | }, |
| 401 | − { NULL } | |
| 402 | 400 | }; |
| 403 | 401 | |
| 404 | 402 | const AVFilter ff_af_anlmdn = { |
| @@ -408,8 +406,8 @@ const AVFilter ff_af_anlmdn = { · 3 unmodified lines | ||
| 408 | 406 | .priv_size = sizeof(AudioNLMeansContext), |
| 409 | 407 | .priv_class = &anlmdn_class, |
| 410 | 408 | .uninit = uninit, |
| 411 | − .inputs = inputs, | |
| 412 | − .outputs = outputs, | |
| 409 | + FILTER_INPUTS(inputs), | |
| 410 | + FILTER_OUTPUTS(outputs), | |
| 413 | 411 | .process_command = process_command, |
| 414 | 412 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 415 | 413 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -288,7 +288,6 @@ static const AVFilterPad inputs[] = { · 287 unmodified lines | ||
| 288 | 288 | .name = "desired", |
| 289 | 289 | .type = AVMEDIA_TYPE_AUDIO, |
| 290 | 290 | }, |
| 291 | − { NULL } | |
| 292 | 291 | }; |
| 293 | 292 | |
| 294 | 293 | static const AVFilterPad outputs[] = { |
| @@ -297,7 +296,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 297 | 296 | .type = AVMEDIA_TYPE_AUDIO, |
| 298 | 297 | .config_props = config_output, |
| 299 | 298 | }, |
| 300 | − { NULL } | |
| 301 | 299 | }; |
| 302 | 300 | |
| 303 | 301 | const AVFilter ff_af_anlms = { |
| @@ -309,8 +307,8 @@ const AVFilter ff_af_anlms = { · 5 unmodified lines | ||
| 309 | 307 | .uninit = uninit, |
| 310 | 308 | .activate = activate, |
| 311 | 309 | .query_formats = query_formats, |
| 312 | − .inputs = inputs, | |
| 313 | − .outputs = outputs, | |
| 310 | + FILTER_INPUTS(inputs), | |
| 311 | + FILTER_OUTPUTS(outputs), | |
| 314 | 312 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 315 | 313 | .process_command = ff_filter_process_command, |
| 316 | 314 | }; |
| @@ -32,7 +32,6 @@ static const AVFilterPad avfilter_af_anull_inputs[] = { · 31 unmodified lines | ||
| 32 | 32 | .name = "default", |
| 33 | 33 | .type = AVMEDIA_TYPE_AUDIO, |
| 34 | 34 | }, |
| 35 | − { NULL } | |
| 36 | 35 | }; |
| 37 | 36 | |
| 38 | 37 | static const AVFilterPad avfilter_af_anull_outputs[] = { |
| @@ -40,12 +39,11 @@ static const AVFilterPad avfilter_af_anull_outputs[] = { · 1 unmodified line | ||
| 40 | 39 | .name = "default", |
| 41 | 40 | .type = AVMEDIA_TYPE_AUDIO, |
| 42 | 41 | }, |
| 43 | − { NULL } | |
| 44 | 42 | }; |
| 45 | 43 | |
| 46 | 44 | const AVFilter ff_af_anull = { |
| 47 | 45 | .name = "anull", |
| 48 | 46 | .description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."), |
| 49 | − .inputs = avfilter_af_anull_inputs, | |
| 50 | − .outputs = avfilter_af_anull_outputs, | |
| 47 | + FILTER_INPUTS(avfilter_af_anull_inputs), | |
| 48 | + FILTER_OUTPUTS(avfilter_af_anull_outputs), | |
| 51 | 49 | }; |
| @@ -155,7 +155,6 @@ static const AVFilterPad apad_inputs[] = { · 154 unmodified lines | ||
| 155 | 155 | .type = AVMEDIA_TYPE_AUDIO, |
| 156 | 156 | .filter_frame = filter_frame, |
| 157 | 157 | }, |
| 158 | − { NULL } | |
| 159 | 158 | }; |
| 160 | 159 | |
| 161 | 160 | static const AVFilterPad apad_outputs[] = { |
| @@ -165,7 +164,6 @@ static const AVFilterPad apad_outputs[] = { · 3 unmodified lines | ||
| 165 | 164 | .config_props = config_output, |
| 166 | 165 | .type = AVMEDIA_TYPE_AUDIO, |
| 167 | 166 | }, |
| 168 | − { NULL } | |
| 169 | 167 | }; |
| 170 | 168 | |
| 171 | 169 | const AVFilter ff_af_apad = { |
| @@ -173,8 +171,8 @@ const AVFilter ff_af_apad = { · 1 unmodified line | ||
| 173 | 171 | .description = NULL_IF_CONFIG_SMALL("Pad audio with silence."), |
| 174 | 172 | .init = init, |
| 175 | 173 | .priv_size = sizeof(APadContext), |
| 176 | − .inputs = apad_inputs, | |
| 177 | − .outputs = apad_outputs, | |
| 174 | + FILTER_INPUTS(apad_inputs), | |
| 175 | + FILTER_OUTPUTS(apad_outputs), | |
| 178 | 176 | .priv_class = &apad_class, |
| 179 | 177 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 180 | 178 | }; |
| @@ -265,7 +265,6 @@ static const AVFilterPad aphaser_inputs[] = { · 264 unmodified lines | ||
| 265 | 265 | .type = AVMEDIA_TYPE_AUDIO, |
| 266 | 266 | .filter_frame = filter_frame, |
| 267 | 267 | }, |
| 268 | − { NULL } | |
| 269 | 268 | }; |
| 270 | 269 | |
| 271 | 270 | static const AVFilterPad aphaser_outputs[] = { |
| @@ -274,7 +273,6 @@ static const AVFilterPad aphaser_outputs[] = { · 2 unmodified lines | ||
| 274 | 273 | .type = AVMEDIA_TYPE_AUDIO, |
| 275 | 274 | .config_props = config_output, |
| 276 | 275 | }, |
| 277 | − { NULL } | |
| 278 | 276 | }; |
| 279 | 277 | |
| 280 | 278 | const AVFilter ff_af_aphaser = { |
| @@ -284,7 +282,7 @@ const AVFilter ff_af_aphaser = { · 3 unmodified lines | ||
| 284 | 282 | .priv_size = sizeof(AudioPhaserContext), |
| 285 | 283 | .init = init, |
| 286 | 284 | .uninit = uninit, |
| 287 | − .inputs = aphaser_inputs, | |
| 288 | − .outputs = aphaser_outputs, | |
| 285 | + FILTER_INPUTS(aphaser_inputs), | |
| 286 | + FILTER_OUTPUTS(aphaser_outputs), | |
| 289 | 287 | .priv_class = &aphaser_class, |
| 290 | 288 | }; |
| @@ -235,7 +235,6 @@ static const AVFilterPad inputs[] = { · 234 unmodified lines | ||
| 235 | 235 | .config_props = config_input, |
| 236 | 236 | .filter_frame = filter_frame, |
| 237 | 237 | }, |
| 238 | − { NULL } | |
| 239 | 238 | }; |
| 240 | 239 | |
| 241 | 240 | static const AVFilterPad outputs[] = { |
| @@ -243,7 +242,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 243 | 242 | .name = "default", |
| 244 | 243 | .type = AVMEDIA_TYPE_AUDIO, |
| 245 | 244 | }, |
| 246 | − { NULL } | |
| 247 | 245 | }; |
| 248 | 246 | |
| 249 | 247 | const AVFilter ff_af_apulsator = { |
| @@ -252,6 +250,6 @@ const AVFilter ff_af_apulsator = { · 2 unmodified lines | ||
| 252 | 250 | .priv_size = sizeof(AudioPulsatorContext), |
| 253 | 251 | .priv_class = &apulsator_class, |
| 254 | 252 | .query_formats = query_formats, |
| 255 | − .inputs = inputs, | |
| 256 | − .outputs = outputs, | |
| 253 | + FILTER_INPUTS(inputs), | |
| 254 | + FILTER_OUTPUTS(outputs), | |
| 257 | 255 | }; |
| @@ -329,7 +329,6 @@ static const AVFilterPad aresample_inputs[] = { · 328 unmodified lines | ||
| 329 | 329 | .type = AVMEDIA_TYPE_AUDIO, |
| 330 | 330 | .filter_frame = filter_frame, |
| 331 | 331 | }, |
| 332 | − { NULL } | |
| 333 | 332 | }; |
| 334 | 333 | |
| 335 | 334 | static const AVFilterPad aresample_outputs[] = { |
| @@ -339,7 +338,6 @@ static const AVFilterPad aresample_outputs[] = { · 3 unmodified lines | ||
| 339 | 338 | .request_frame = request_frame, |
| 340 | 339 | .type = AVMEDIA_TYPE_AUDIO, |
| 341 | 340 | }, |
| 342 | − { NULL } | |
| 343 | 341 | }; |
| 344 | 342 | |
| 345 | 343 | const AVFilter ff_af_aresample = { |
| @@ -350,6 +348,6 @@ const AVFilter ff_af_aresample = { · 4 unmodified lines | ||
| 350 | 348 | .query_formats = query_formats, |
| 351 | 349 | .priv_size = sizeof(AResampleContext), |
| 352 | 350 | .priv_class = &aresample_class, |
| 353 | − .inputs = aresample_inputs, | |
| 354 | − .outputs = aresample_outputs, | |
| 351 | + FILTER_INPUTS(aresample_inputs), | |
| 352 | + FILTER_OUTPUTS(aresample_outputs), | |
| 355 | 353 | }; |
| @@ -1584,7 +1584,6 @@ static const AVFilterPad inputs[] = { · 1583 unmodified lines | ||
| 1584 | 1584 | .type = AVMEDIA_TYPE_AUDIO, |
| 1585 | 1585 | .config_props = config_input, |
| 1586 | 1586 | }, |
| 1587 | − { NULL } | |
| 1588 | 1587 | }; |
| 1589 | 1588 | |
| 1590 | 1589 | static const AVFilterPad outputs[] = { |
| @@ -1592,7 +1591,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 1592 | 1591 | .name = "default", |
| 1593 | 1592 | .type = AVMEDIA_TYPE_AUDIO, |
| 1594 | 1593 | }, |
| 1595 | − { NULL } | |
| 1596 | 1594 | }; |
| 1597 | 1595 | |
| 1598 | 1596 | #define OFFSET(x) offsetof(AudioRNNContext, x) |
| @@ -1616,8 +1614,8 @@ const AVFilter ff_af_arnndn = { · 17 unmodified lines | ||
| 1616 | 1614 | .activate = activate, |
| 1617 | 1615 | .init = init, |
| 1618 | 1616 | .uninit = uninit, |
| 1619 | − .inputs = inputs, | |
| 1620 | − .outputs = outputs, | |
| 1617 | + FILTER_INPUTS(inputs), | |
| 1618 | + FILTER_OUTPUTS(outputs), | |
| 1621 | 1619 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 1622 | 1620 | AVFILTER_FLAG_SLICE_THREADS, |
| 1623 | 1621 | .process_command = process_command, |
| @@ -106,7 +106,6 @@ static const AVFilterPad asetnsamples_inputs[] = { · 105 unmodified lines | ||
| 106 | 106 | .name = "default", |
| 107 | 107 | .type = AVMEDIA_TYPE_AUDIO, |
| 108 | 108 | }, |
| 109 | − { NULL } | |
| 110 | 109 | }; |
| 111 | 110 | |
| 112 | 111 | static const AVFilterPad asetnsamples_outputs[] = { |
| @@ -114,7 +113,6 @@ static const AVFilterPad asetnsamples_outputs[] = { · 1 unmodified line | ||
| 114 | 113 | .name = "default", |
| 115 | 114 | .type = AVMEDIA_TYPE_AUDIO, |
| 116 | 115 | }, |
| 117 | − { NULL } | |
| 118 | 116 | }; |
| 119 | 117 | |
| 120 | 118 | const AVFilter ff_af_asetnsamples = { |
| @@ -122,7 +120,7 @@ const AVFilter ff_af_asetnsamples = { · 1 unmodified line | ||
| 122 | 120 | .description = NULL_IF_CONFIG_SMALL("Set the number of samples for each output audio frames."), |
| 123 | 121 | .priv_size = sizeof(ASNSContext), |
| 124 | 122 | .priv_class = &asetnsamples_class, |
| 125 | − .inputs = asetnsamples_inputs, | |
| 126 | − .outputs = asetnsamples_outputs, | |
| 123 | + FILTER_INPUTS(asetnsamples_inputs), | |
| 124 | + FILTER_OUTPUTS(asetnsamples_outputs), | |
| 127 | 125 | .activate = activate, |
| 128 | 126 | }; |
| @@ -94,7 +94,6 @@ static const AVFilterPad asetrate_inputs[] = { · 93 unmodified lines | ||
| 94 | 94 | .type = AVMEDIA_TYPE_AUDIO, |
| 95 | 95 | .filter_frame = filter_frame, |
| 96 | 96 | }, |
| 97 | − { NULL } | |
| 98 | 97 | }; |
| 99 | 98 | |
| 100 | 99 | static const AVFilterPad asetrate_outputs[] = { |
| @@ -103,7 +102,6 @@ static const AVFilterPad asetrate_outputs[] = { · 2 unmodified lines | ||
| 103 | 102 | .type = AVMEDIA_TYPE_AUDIO, |
| 104 | 103 | .config_props = config_props, |
| 105 | 104 | }, |
| 106 | − { NULL } | |
| 107 | 105 | }; |
| 108 | 106 | |
| 109 | 107 | const AVFilter ff_af_asetrate = { |
| @@ -112,7 +110,7 @@ const AVFilter ff_af_asetrate = { · 2 unmodified lines | ||
| 112 | 110 | "altering the data."), |
| 113 | 111 | .query_formats = query_formats, |
| 114 | 112 | .priv_size = sizeof(ASetRateContext), |
| 115 | − .inputs = asetrate_inputs, | |
| 116 | − .outputs = asetrate_outputs, | |
| 113 | + FILTER_INPUTS(asetrate_inputs), | |
| 114 | + FILTER_OUTPUTS(asetrate_outputs), | |
| 117 | 115 | .priv_class = &asetrate_class, |
| 118 | 116 | }; |
| @@ -243,7 +243,6 @@ static const AVFilterPad inputs[] = { · 242 unmodified lines | ||
| 243 | 243 | .type = AVMEDIA_TYPE_AUDIO, |
| 244 | 244 | .filter_frame = filter_frame, |
| 245 | 245 | }, |
| 246 | − { NULL } | |
| 247 | 246 | }; |
| 248 | 247 | |
| 249 | 248 | static const AVFilterPad outputs[] = { |
| @@ -251,7 +250,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 251 | 250 | .name = "default", |
| 252 | 251 | .type = AVMEDIA_TYPE_AUDIO, |
| 253 | 252 | }, |
| 254 | − { NULL } | |
| 255 | 253 | }; |
| 256 | 254 | |
| 257 | 255 | const AVFilter ff_af_ashowinfo = { |
| @@ -259,6 +257,6 @@ const AVFilter ff_af_ashowinfo = { · 1 unmodified line | ||
| 259 | 257 | .description = NULL_IF_CONFIG_SMALL("Show textual information for each audio frame."), |
| 260 | 258 | .priv_size = sizeof(AShowInfoContext), |
| 261 | 259 | .uninit = uninit, |
| 262 | − .inputs = inputs, | |
| 263 | − .outputs = outputs, | |
| 260 | + FILTER_INPUTS(inputs), | |
| 261 | + FILTER_OUTPUTS(outputs), | |
| 264 | 262 | }; |
| @@ -451,7 +451,6 @@ static const AVFilterPad inputs[] = { · 450 unmodified lines | ||
| 451 | 451 | .filter_frame = filter_frame, |
| 452 | 452 | .config_props = config_input, |
| 453 | 453 | }, |
| 454 | − { NULL } | |
| 455 | 454 | }; |
| 456 | 455 | |
| 457 | 456 | static const AVFilterPad outputs[] = { |
| @@ -459,7 +458,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 459 | 458 | .name = "default", |
| 460 | 459 | .type = AVMEDIA_TYPE_AUDIO, |
| 461 | 460 | }, |
| 462 | − { NULL } | |
| 463 | 461 | }; |
| 464 | 462 | |
| 465 | 463 | const AVFilter ff_af_asoftclip = { |
| @@ -468,8 +466,8 @@ const AVFilter ff_af_asoftclip = { · 2 unmodified lines | ||
| 468 | 466 | .query_formats = query_formats, |
| 469 | 467 | .priv_size = sizeof(ASoftClipContext), |
| 470 | 468 | .priv_class = &asoftclip_class, |
| 471 | − .inputs = inputs, | |
| 472 | − .outputs = outputs, | |
| 469 | + FILTER_INPUTS(inputs), | |
| 470 | + FILTER_OUTPUTS(outputs), | |
| 473 | 471 | .uninit = uninit, |
| 474 | 472 | .process_command = ff_filter_process_command, |
| 475 | 473 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| @@ -156,7 +156,6 @@ static const AVFilterPad asr_inputs[] = { · 155 unmodified lines | ||
| 156 | 156 | .filter_frame = filter_frame, |
| 157 | 157 | .config_props = config_input, |
| 158 | 158 | }, |
| 159 | − { NULL } | |
| 160 | 159 | }; |
| 161 | 160 | |
| 162 | 161 | static const AVFilterPad asr_outputs[] = { |
| @@ -164,7 +163,6 @@ static const AVFilterPad asr_outputs[] = { · 1 unmodified line | ||
| 164 | 163 | .name = "default", |
| 165 | 164 | .type = AVMEDIA_TYPE_AUDIO, |
| 166 | 165 | }, |
| 167 | − { NULL } | |
| 168 | 166 | }; |
| 169 | 167 | |
| 170 | 168 | const AVFilter ff_af_asr = { |
| @@ -175,6 +173,6 @@ const AVFilter ff_af_asr = { · 4 unmodified lines | ||
| 175 | 173 | .init = asr_init, |
| 176 | 174 | .uninit = asr_uninit, |
| 177 | 175 | .query_formats = query_formats, |
| 178 | − .inputs = asr_inputs, | |
| 179 | − .outputs = asr_outputs, | |
| 176 | + FILTER_INPUTS(asr_inputs), | |
| 177 | + FILTER_OUTPUTS(asr_outputs), | |
| 180 | 178 | }; |
| @@ -815,7 +815,6 @@ static const AVFilterPad astats_inputs[] = { · 814 unmodified lines | ||
| 815 | 815 | .type = AVMEDIA_TYPE_AUDIO, |
| 816 | 816 | .filter_frame = filter_frame, |
| 817 | 817 | }, |
| 818 | − { NULL } | |
| 819 | 818 | }; |
| 820 | 819 | |
| 821 | 820 | static const AVFilterPad astats_outputs[] = { |
| @@ -824,7 +823,6 @@ static const AVFilterPad astats_outputs[] = { · 2 unmodified lines | ||
| 824 | 823 | .type = AVMEDIA_TYPE_AUDIO, |
| 825 | 824 | .config_props = config_output, |
| 826 | 825 | }, |
| 827 | − { NULL } | |
| 828 | 826 | }; |
| 829 | 827 | |
| 830 | 828 | const AVFilter ff_af_astats = { |
| @@ -834,7 +832,7 @@ const AVFilter ff_af_astats = { · 3 unmodified lines | ||
| 834 | 832 | .priv_size = sizeof(AudioStatsContext), |
| 835 | 833 | .priv_class = &astats_class, |
| 836 | 834 | .uninit = uninit, |
| 837 | − .inputs = astats_inputs, | |
| 838 | − .outputs = astats_outputs, | |
| 835 | + FILTER_INPUTS(astats_inputs), | |
| 836 | + FILTER_OUTPUTS(astats_outputs), | |
| 839 | 837 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 840 | 838 | }; |
| @@ -221,7 +221,6 @@ static const AVFilterPad inputs[] = { · 220 unmodified lines | ||
| 221 | 221 | .filter_frame = filter_frame, |
| 222 | 222 | .config_props = config_input, |
| 223 | 223 | }, |
| 224 | − { NULL } | |
| 225 | 224 | }; |
| 226 | 225 | |
| 227 | 226 | static const AVFilterPad outputs[] = { |
| @@ -229,7 +228,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 229 | 228 | .name = "default", |
| 230 | 229 | .type = AVMEDIA_TYPE_AUDIO, |
| 231 | 230 | }, |
| 232 | − { NULL } | |
| 233 | 231 | }; |
| 234 | 232 | |
| 235 | 233 | const AVFilter ff_af_asubboost = { |
| @@ -239,8 +237,8 @@ const AVFilter ff_af_asubboost = { · 3 unmodified lines | ||
| 239 | 237 | .priv_size = sizeof(ASubBoostContext), |
| 240 | 238 | .priv_class = &asubboost_class, |
| 241 | 239 | .uninit = uninit, |
| 242 | − .inputs = inputs, | |
| 243 | − .outputs = outputs, | |
| 240 | + FILTER_INPUTS(inputs), | |
| 241 | + FILTER_OUTPUTS(outputs), | |
| 244 | 242 | .process_command = process_command, |
| 245 | 243 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 246 | 244 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -345,7 +345,6 @@ static const AVFilterPad inputs[] = { · 344 unmodified lines | ||
| 345 | 345 | .filter_frame = filter_frame, |
| 346 | 346 | .config_props = config_input, |
| 347 | 347 | }, |
| 348 | − { NULL } | |
| 349 | 348 | }; |
| 350 | 349 | |
| 351 | 350 | static const AVFilterPad outputs[] = { |
| @@ -353,7 +352,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 353 | 352 | .name = "default", |
| 354 | 353 | .type = AVMEDIA_TYPE_AUDIO, |
| 355 | 354 | }, |
| 356 | − { NULL } | |
| 357 | 355 | }; |
| 358 | 356 | |
| 359 | 357 | const AVFilter ff_af_asupercut = { |
| @@ -363,8 +361,8 @@ const AVFilter ff_af_asupercut = { · 3 unmodified lines | ||
| 363 | 361 | .priv_size = sizeof(ASuperCutContext), |
| 364 | 362 | .priv_class = &asupercut_class, |
| 365 | 363 | .uninit = uninit, |
| 366 | − .inputs = inputs, | |
| 367 | − .outputs = outputs, | |
| 364 | + FILTER_INPUTS(inputs), | |
| 365 | + FILTER_OUTPUTS(outputs), | |
| 368 | 366 | .process_command = process_command, |
| 369 | 367 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 370 | 368 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -386,8 +384,8 @@ const AVFilter ff_af_asubcut = { · 15 unmodified lines | ||
| 386 | 384 | .priv_size = sizeof(ASuperCutContext), |
| 387 | 385 | .priv_class = &asubcut_class, |
| 388 | 386 | .uninit = uninit, |
| 389 | − .inputs = inputs, | |
| 390 | − .outputs = outputs, | |
| 387 | + FILTER_INPUTS(inputs), | |
| 388 | + FILTER_OUTPUTS(outputs), | |
| 391 | 389 | .process_command = process_command, |
| 392 | 390 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 393 | 391 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -411,8 +409,8 @@ const AVFilter ff_af_asuperpass = { · 17 unmodified lines | ||
| 411 | 409 | .priv_size = sizeof(ASuperCutContext), |
| 412 | 410 | .priv_class = &asuperpass_class, |
| 413 | 411 | .uninit = uninit, |
| 414 | − .inputs = inputs, | |
| 415 | − .outputs = outputs, | |
| 412 | + FILTER_INPUTS(inputs), | |
| 413 | + FILTER_OUTPUTS(outputs), | |
| 416 | 414 | .process_command = process_command, |
| 417 | 415 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 418 | 416 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -428,8 +426,8 @@ const AVFilter ff_af_asuperstop = { · 9 unmodified lines | ||
| 428 | 426 | .priv_size = sizeof(ASuperCutContext), |
| 429 | 427 | .priv_class = &asuperstop_class, |
| 430 | 428 | .uninit = uninit, |
| 431 | − .inputs = inputs, | |
| 432 | − .outputs = outputs, | |
| 429 | + FILTER_INPUTS(inputs), | |
| 430 | + FILTER_OUTPUTS(outputs), | |
| 433 | 431 | .process_command = process_command, |
| 434 | 432 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | |
| 435 | 433 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -1173,7 +1173,6 @@ static const AVFilterPad atempo_inputs[] = { · 1172 unmodified lines | ||
| 1173 | 1173 | .filter_frame = filter_frame, |
| 1174 | 1174 | .config_props = config_props, |
| 1175 | 1175 | }, |
| 1176 | − { NULL } | |
| 1177 | 1176 | }; |
| 1178 | 1177 | |
| 1179 | 1178 | static const AVFilterPad atempo_outputs[] = { |
| @@ -1182,7 +1181,6 @@ static const AVFilterPad atempo_outputs[] = { · 2 unmodified lines | ||
| 1182 | 1181 | .request_frame = request_frame, |
| 1183 | 1182 | .type = AVMEDIA_TYPE_AUDIO, |
| 1184 | 1183 | }, |
| 1185 | − { NULL } | |
| 1186 | 1184 | }; |
| 1187 | 1185 | |
| 1188 | 1186 | const AVFilter ff_af_atempo = { |
| @@ -1194,6 +1192,6 @@ const AVFilter ff_af_atempo = { · 5 unmodified lines | ||
| 1194 | 1192 | .process_command = process_command, |
| 1195 | 1193 | .priv_size = sizeof(ATempoContext), |
| 1196 | 1194 | .priv_class = &atempo_class, |
| 1197 | − .inputs = atempo_inputs, | |
| 1198 | − .outputs = atempo_outputs, | |
| 1195 | + FILTER_INPUTS(atempo_inputs), | |
| 1196 | + FILTER_OUTPUTS(atempo_outputs), | |
| 1199 | 1197 | }; |
| @@ -326,7 +326,6 @@ static const AVFilterPad inputs[] = { · 325 unmodified lines | ||
| 326 | 326 | .name = "axcorrelate1", |
| 327 | 327 | .type = AVMEDIA_TYPE_AUDIO, |
| 328 | 328 | }, |
| 329 | − { NULL } | |
| 330 | 329 | }; |
| 331 | 330 | |
| 332 | 331 | static const AVFilterPad outputs[] = { |
| @@ -335,7 +334,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 335 | 334 | .type = AVMEDIA_TYPE_AUDIO, |
| 336 | 335 | .config_props = config_output, |
| 337 | 336 | }, |
| 338 | − { NULL } | |
| 339 | 337 | }; |
| 340 | 338 | |
| 341 | 339 | #define AF AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM |
| @@ -359,6 +357,6 @@ const AVFilter ff_af_axcorrelate = { · 17 unmodified lines | ||
| 359 | 357 | .query_formats = query_formats, |
| 360 | 358 | .activate = activate, |
| 361 | 359 | .uninit = uninit, |
| 362 | − .inputs = inputs, | |
| 363 | − .outputs = outputs, | |
| 360 | + FILTER_INPUTS(inputs), | |
| 361 | + FILTER_OUTPUTS(outputs), | |
| 364 | 362 | }; |
| @@ -839,7 +839,6 @@ static const AVFilterPad inputs[] = { · 838 unmodified lines | ||
| 839 | 839 | .type = AVMEDIA_TYPE_AUDIO, |
| 840 | 840 | .filter_frame = filter_frame, |
| 841 | 841 | }, |
| 842 | − { NULL } | |
| 843 | 842 | }; |
| 844 | 843 | |
| 845 | 844 | static const AVFilterPad outputs[] = { |
| @@ -848,7 +847,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 848 | 847 | .type = AVMEDIA_TYPE_AUDIO, |
| 849 | 848 | .config_props = config_output, |
| 850 | 849 | }, |
| 851 | − { NULL } | |
| 852 | 850 | }; |
| 853 | 851 | |
| 854 | 852 | #define OFFSET(x) offsetof(BiquadsContext, x) |
| @@ -871,8 +869,8 @@ const AVFilter ff_af_##name_ = { \ · 16 unmodified lines | ||
| 871 | 869 | .init = name_##_init, \ |
| 872 | 870 | .uninit = uninit, \ |
| 873 | 871 | .query_formats = query_formats, \ |
| 874 | − .inputs = inputs, \ | |
| 875 | − .outputs = outputs, \ | |
| 872 | + FILTER_INPUTS(inputs), \ | |
| 873 | + FILTER_OUTPUTS(outputs), \ | |
| 876 | 874 | .priv_class = &name_##_class, \ |
| 877 | 875 | .process_command = process_command, \ |
| 878 | 876 | .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, \ |
| @@ -192,7 +192,6 @@ static const AVFilterPad bs2b_inputs[] = { · 191 unmodified lines | ||
| 192 | 192 | .type = AVMEDIA_TYPE_AUDIO, |
| 193 | 193 | .filter_frame = filter_frame, |
| 194 | 194 | }, |
| 195 | − { NULL } | |
| 196 | 195 | }; |
| 197 | 196 | |
| 198 | 197 | static const AVFilterPad bs2b_outputs[] = { |
| @@ -201,7 +200,6 @@ static const AVFilterPad bs2b_outputs[] = { · 2 unmodified lines | ||
| 201 | 200 | .type = AVMEDIA_TYPE_AUDIO, |
| 202 | 201 | .config_props = config_output, |
| 203 | 202 | }, |
| 204 | − { NULL } | |
| 205 | 203 | }; |
| 206 | 204 | |
| 207 | 205 | const AVFilter ff_af_bs2b = { |
| @@ -212,6 +210,6 @@ const AVFilter ff_af_bs2b = { · 4 unmodified lines | ||
| 212 | 210 | .priv_class = &bs2b_class, |
| 213 | 211 | .init = init, |
| 214 | 212 | .uninit = uninit, |
| 215 | − .inputs = bs2b_inputs, | |
| 216 | − .outputs = bs2b_outputs, | |
| 213 | + FILTER_INPUTS(bs2b_inputs), | |
| 214 | + FILTER_OUTPUTS(bs2b_outputs), | |
| 217 | 215 | }; |
| @@ -387,7 +387,6 @@ static const AVFilterPad avfilter_af_channelmap_inputs[] = { · 386 unmodified lines | ||
| 387 | 387 | .filter_frame = channelmap_filter_frame, |
| 388 | 388 | .config_props = channelmap_config_input, |
| 389 | 389 | }, |
| 390 | − { NULL } | |
| 391 | 390 | }; |
| 392 | 391 | |
| 393 | 392 | static const AVFilterPad avfilter_af_channelmap_outputs[] = { |
| @@ -395,7 +394,6 @@ static const AVFilterPad avfilter_af_channelmap_outputs[] = { · 1 unmodified line | ||
| 395 | 394 | .name = "default", |
| 396 | 395 | .type = AVMEDIA_TYPE_AUDIO |
| 397 | 396 | }, |
| 398 | − { NULL } | |
| 399 | 397 | }; |
| 400 | 398 | |
| 401 | 399 | const AVFilter ff_af_channelmap = { |
| @@ -405,6 +403,6 @@ const AVFilter ff_af_channelmap = { · 3 unmodified lines | ||
| 405 | 403 | .query_formats = channelmap_query_formats, |
| 406 | 404 | .priv_size = sizeof(ChannelMapContext), |
| 407 | 405 | .priv_class = &channelmap_class, |
| 408 | − .inputs = avfilter_af_channelmap_inputs, | |
| 409 | − .outputs = avfilter_af_channelmap_outputs, | |
| 406 | + FILTER_INPUTS(avfilter_af_channelmap_inputs), | |
| 407 | + FILTER_OUTPUTS(avfilter_af_channelmap_outputs), | |
| 410 | 408 | }; |
| @@ -164,7 +164,6 @@ static const AVFilterPad avfilter_af_channelsplit_inputs[] = { · 163 unmodified lines | ||
| 164 | 164 | .type = AVMEDIA_TYPE_AUDIO, |
| 165 | 165 | .filter_frame = filter_frame, |
| 166 | 166 | }, |
| 167 | − { NULL } | |
| 168 | 167 | }; |
| 169 | 168 | |
| 170 | 169 | const AVFilter ff_af_channelsplit = { |
| @@ -174,7 +173,7 @@ const AVFilter ff_af_channelsplit = { · 3 unmodified lines | ||
| 174 | 173 | .priv_class = &channelsplit_class, |
| 175 | 174 | .init = init, |
| 176 | 175 | .query_formats = query_formats, |
| 177 | − .inputs = avfilter_af_channelsplit_inputs, | |
| 176 | + FILTER_INPUTS(avfilter_af_channelsplit_inputs), | |
| 178 | 177 | .outputs = NULL, |
| 179 | 178 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 180 | 179 | }; |
| @@ -343,7 +343,6 @@ static const AVFilterPad chorus_inputs[] = { · 342 unmodified lines | ||
| 343 | 343 | .type = AVMEDIA_TYPE_AUDIO, |
| 344 | 344 | .filter_frame = filter_frame, |
| 345 | 345 | }, |
| 346 | − { NULL } | |
| 347 | 346 | }; |
| 348 | 347 | |
| 349 | 348 | static const AVFilterPad chorus_outputs[] = { |
| @@ -353,7 +352,6 @@ static const AVFilterPad chorus_outputs[] = { · 3 unmodified lines | ||
| 353 | 352 | .request_frame = request_frame, |
| 354 | 353 | .config_props = config_output, |
| 355 | 354 | }, |
| 356 | − { NULL } | |
| 357 | 355 | }; |
| 358 | 356 | |
| 359 | 357 | const AVFilter ff_af_chorus = { |
| @@ -364,6 +362,6 @@ const AVFilter ff_af_chorus = { · 4 unmodified lines | ||
| 364 | 362 | .priv_class = &chorus_class, |
| 365 | 363 | .init = init, |
| 366 | 364 | .uninit = uninit, |
| 367 | − .inputs = chorus_inputs, | |
| 368 | − .outputs = chorus_outputs, | |
| 365 | + FILTER_INPUTS(chorus_inputs), | |
| 366 | + FILTER_OUTPUTS(chorus_outputs), | |
| 369 | 367 | }; |
| @@ -558,7 +558,6 @@ static const AVFilterPad compand_inputs[] = { · 557 unmodified lines | ||
| 558 | 558 | .type = AVMEDIA_TYPE_AUDIO, |
| 559 | 559 | .filter_frame = filter_frame, |
| 560 | 560 | }, |
| 561 | − { NULL } | |
| 562 | 561 | }; |
| 563 | 562 | |
| 564 | 563 | static const AVFilterPad compand_outputs[] = { |
| @@ -568,7 +567,6 @@ static const AVFilterPad compand_outputs[] = { · 3 unmodified lines | ||
| 568 | 567 | .config_props = config_output, |
| 569 | 568 | .type = AVMEDIA_TYPE_AUDIO, |
| 570 | 569 | }, |
| 571 | − { NULL } | |
| 572 | 570 | }; |
| 573 | 571 | |
| 574 | 572 | |
| @@ -581,6 +579,6 @@ const AVFilter ff_af_compand = { · 6 unmodified lines | ||
| 581 | 579 | .priv_class = &compand_class, |
| 582 | 580 | .init = init, |
| 583 | 581 | .uninit = uninit, |
| 584 | − .inputs = compand_inputs, | |
| 585 | − .outputs = compand_outputs, | |
| 582 | + FILTER_INPUTS(compand_inputs), | |
| 583 | + FILTER_OUTPUTS(compand_outputs), | |
| 586 | 584 | }; |
| @@ -162,7 +162,6 @@ static const AVFilterPad compensationdelay_inputs[] = { · 161 unmodified lines | ||
| 162 | 162 | .config_props = config_input, |
| 163 | 163 | .filter_frame = filter_frame, |
| 164 | 164 | }, |
| 165 | − { NULL } | |
| 166 | 165 | }; |
| 167 | 166 | |
| 168 | 167 | static const AVFilterPad compensationdelay_outputs[] = { |
| @@ -170,7 +169,6 @@ static const AVFilterPad compensationdelay_outputs[] = { · 1 unmodified line | ||
| 170 | 169 | .name = "default", |
| 171 | 170 | .type = AVMEDIA_TYPE_AUDIO, |
| 172 | 171 | }, |
| 173 | − { NULL } | |
| 174 | 172 | }; |
| 175 | 173 | |
| 176 | 174 | const AVFilter ff_af_compensationdelay = { |
| @@ -180,6 +178,6 @@ const AVFilter ff_af_compensationdelay = { · 3 unmodified lines | ||
| 180 | 178 | .priv_size = sizeof(CompensationDelayContext), |
| 181 | 179 | .priv_class = &compensationdelay_class, |
| 182 | 180 | .uninit = uninit, |
| 183 | − .inputs = compensationdelay_inputs, | |
| 184 | − .outputs = compensationdelay_outputs, | |
| 181 | + FILTER_INPUTS(compensationdelay_inputs), | |
| 182 | + FILTER_OUTPUTS(compensationdelay_outputs), | |
| 185 | 183 | }; |
| @@ -164,7 +164,6 @@ static const AVFilterPad inputs[] = { · 163 unmodified lines | ||
| 164 | 164 | .filter_frame = filter_frame, |
| 165 | 165 | .config_props = config_input, |
| 166 | 166 | }, |
| 167 | − { NULL } | |
| 168 | 167 | }; |
| 169 | 168 | |
| 170 | 169 | static const AVFilterPad outputs[] = { |
| @@ -172,7 +171,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 172 | 171 | .name = "default", |
| 173 | 172 | .type = AVMEDIA_TYPE_AUDIO, |
| 174 | 173 | }, |
| 175 | − { NULL } | |
| 176 | 174 | }; |
| 177 | 175 | |
| 178 | 176 | const AVFilter ff_af_crossfeed = { |
| @@ -181,8 +179,8 @@ const AVFilter ff_af_crossfeed = { · 2 unmodified lines | ||
| 181 | 179 | .query_formats = query_formats, |
| 182 | 180 | .priv_size = sizeof(CrossfeedContext), |
| 183 | 181 | .priv_class = &crossfeed_class, |
| 184 | − .inputs = inputs, | |
| 185 | − .outputs = outputs, | |
| 182 | + FILTER_INPUTS(inputs), | |
| 183 | + FILTER_OUTPUTS(outputs), | |
| 186 | 184 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 187 | 185 | .process_command = process_command, |
| 188 | 186 | }; |
| @@ -433,7 +433,6 @@ static const AVFilterPad inputs[] = { · 432 unmodified lines | ||
| 433 | 433 | .filter_frame = filter_frame, |
| 434 | 434 | .config_props = config_input, |
| 435 | 435 | }, |
| 436 | − { NULL } | |
| 437 | 436 | }; |
| 438 | 437 | |
| 439 | 438 | static const AVFilterPad outputs[] = { |
| @@ -441,7 +440,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 441 | 440 | .name = "default", |
| 442 | 441 | .type = AVMEDIA_TYPE_AUDIO, |
| 443 | 442 | }, |
| 444 | − { NULL } | |
| 445 | 443 | }; |
| 446 | 444 | |
| 447 | 445 | const AVFilter ff_af_crystalizer = { |
| @@ -451,8 +449,8 @@ const AVFilter ff_af_crystalizer = { · 3 unmodified lines | ||
| 451 | 449 | .priv_size = sizeof(CrystalizerContext), |
| 452 | 450 | .priv_class = &crystalizer_class, |
| 453 | 451 | .uninit = uninit, |
| 454 | − .inputs = inputs, | |
| 455 | − .outputs = outputs, | |
| 452 | + FILTER_INPUTS(inputs), | |
| 453 | + FILTER_OUTPUTS(outputs), | |
| 456 | 454 | .process_command = process_command, |
| 457 | 455 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 458 | 456 | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -136,7 +136,6 @@ static const AVFilterPad dcshift_inputs[] = { · 135 unmodified lines | ||
| 136 | 136 | .type = AVMEDIA_TYPE_AUDIO, |
| 137 | 137 | .filter_frame = filter_frame, |
| 138 | 138 | }, |
| 139 | − { NULL } | |
| 140 | 139 | }; |
| 141 | 140 | |
| 142 | 141 | static const AVFilterPad dcshift_outputs[] = { |
| @@ -144,7 +143,6 @@ static const AVFilterPad dcshift_outputs[] = { · 1 unmodified line | ||
| 144 | 143 | .name = "default", |
| 145 | 144 | .type = AVMEDIA_TYPE_AUDIO, |
| 146 | 145 | }, |
| 147 | − { NULL } | |
| 148 | 146 | }; |
| 149 | 147 | |
| 150 | 148 | const AVFilter ff_af_dcshift = { |
| @@ -154,7 +152,7 @@ const AVFilter ff_af_dcshift = { · 3 unmodified lines | ||
| 154 | 152 | .priv_size = sizeof(DCShiftContext), |
| 155 | 153 | .priv_class = &dcshift_class, |
| 156 | 154 | .init = init, |
| 157 | − .inputs = dcshift_inputs, | |
| 158 | − .outputs = dcshift_outputs, | |
| 155 | + FILTER_INPUTS(dcshift_inputs), | |
| 156 | + FILTER_OUTPUTS(dcshift_outputs), | |
| 159 | 157 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 160 | 158 | }; |
| @@ -208,7 +208,6 @@ static const AVFilterPad inputs[] = { · 207 unmodified lines | ||
| 208 | 208 | .filter_frame = filter_frame, |
| 209 | 209 | .config_props = config_input, |
| 210 | 210 | }, |
| 211 | − { NULL } | |
| 212 | 211 | }; |
| 213 | 212 | |
| 214 | 213 | static const AVFilterPad outputs[] = { |
| @@ -216,7 +215,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 216 | 215 | .name = "default", |
| 217 | 216 | .type = AVMEDIA_TYPE_AUDIO, |
| 218 | 217 | }, |
| 219 | − { NULL } | |
| 220 | 218 | }; |
| 221 | 219 | |
| 222 | 220 | const AVFilter ff_af_deesser = { |
| @@ -226,7 +224,7 @@ const AVFilter ff_af_deesser = { · 3 unmodified lines | ||
| 226 | 224 | .priv_size = sizeof(DeesserContext), |
| 227 | 225 | .priv_class = &deesser_class, |
| 228 | 226 | .uninit = uninit, |
| 229 | − .inputs = inputs, | |
| 230 | − .outputs = outputs, | |
| 227 | + FILTER_INPUTS(inputs), | |
| 228 | + FILTER_OUTPUTS(outputs), | |
| 231 | 229 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 232 | 230 | }; |
| @@ -201,7 +201,6 @@ static const AVFilterPad drmeter_inputs[] = { · 200 unmodified lines | ||
| 201 | 201 | .type = AVMEDIA_TYPE_AUDIO, |
| 202 | 202 | .filter_frame = filter_frame, |
| 203 | 203 | }, |
| 204 | − { NULL } | |
| 205 | 204 | }; |
| 206 | 205 | |
| 207 | 206 | static const AVFilterPad drmeter_outputs[] = { |
| @@ -210,7 +209,6 @@ static const AVFilterPad drmeter_outputs[] = { · 2 unmodified lines | ||
| 210 | 209 | .type = AVMEDIA_TYPE_AUDIO, |
| 211 | 210 | .config_props = config_output, |
| 212 | 211 | }, |
| 213 | − { NULL } | |
| 214 | 212 | }; |
| 215 | 213 | |
| 216 | 214 | const AVFilter ff_af_drmeter = { |
| @@ -220,6 +218,6 @@ const AVFilter ff_af_drmeter = { · 3 unmodified lines | ||
| 220 | 218 | .priv_size = sizeof(DRMeterContext), |
| 221 | 219 | .priv_class = &drmeter_class, |
| 222 | 220 | .uninit = uninit, |
| 223 | − .inputs = drmeter_inputs, | |
| 224 | − .outputs = drmeter_outputs, | |
| 221 | + FILTER_INPUTS(drmeter_inputs), | |
| 222 | + FILTER_OUTPUTS(drmeter_outputs), | |
| 225 | 223 | }; |
| @@ -844,7 +844,6 @@ static const AVFilterPad avfilter_af_dynaudnorm_inputs[] = { · 843 unmodified lines | ||
| 844 | 844 | .type = AVMEDIA_TYPE_AUDIO, |
| 845 | 845 | .config_props = config_input, |
| 846 | 846 | }, |
| 847 | − { NULL } | |
| 848 | 847 | }; |
| 849 | 848 | |
| 850 | 849 | static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = { |
| @@ -852,7 +851,6 @@ static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = { · 1 unmodified line | ||
| 852 | 851 | .name = "default", |
| 853 | 852 | .type = AVMEDIA_TYPE_AUDIO, |
| 854 | 853 | }, |
| 855 | − { NULL } | |
| 856 | 854 | }; |
| 857 | 855 | |
| 858 | 856 | const AVFilter ff_af_dynaudnorm = { |
| @@ -863,8 +861,8 @@ const AVFilter ff_af_dynaudnorm = { · 4 unmodified lines | ||
| 863 | 861 | .init = init, |
| 864 | 862 | .uninit = uninit, |
| 865 | 863 | .activate = activate, |
| 866 | − .inputs = avfilter_af_dynaudnorm_inputs, | |
| 867 | − .outputs = avfilter_af_dynaudnorm_outputs, | |
| 864 | + FILTER_INPUTS(avfilter_af_dynaudnorm_inputs), | |
| 865 | + FILTER_OUTPUTS(avfilter_af_dynaudnorm_outputs), | |
| 868 | 866 | .priv_class = &dynaudnorm_class, |
| 869 | 867 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 870 | 868 | .process_command = process_command, |
| @@ -220,7 +220,6 @@ static const AVFilterPad earwax_inputs[] = { · 219 unmodified lines | ||
| 220 | 220 | .filter_frame = filter_frame, |
| 221 | 221 | .config_props = config_input, |
| 222 | 222 | }, |
| 223 | − { NULL } | |
| 224 | 223 | }; |
| 225 | 224 | |
| 226 | 225 | static const AVFilterPad earwax_outputs[] = { |
| @@ -228,7 +227,6 @@ static const AVFilterPad earwax_outputs[] = { · 1 unmodified line | ||
| 228 | 227 | .name = "default", |
| 229 | 228 | .type = AVMEDIA_TYPE_AUDIO, |
| 230 | 229 | }, |
| 231 | − { NULL } | |
| 232 | 230 | }; |
| 233 | 231 | |
| 234 | 232 | const AVFilter ff_af_earwax = { |
| @@ -237,6 +235,6 @@ const AVFilter ff_af_earwax = { · 2 unmodified lines | ||
| 237 | 235 | .query_formats = query_formats, |
| 238 | 236 | .priv_size = sizeof(EarwaxContext), |
| 239 | 237 | .uninit = uninit, |
| 240 | − .inputs = earwax_inputs, | |
| 241 | − .outputs = earwax_outputs, | |
| 238 | + FILTER_INPUTS(earwax_inputs), | |
| 239 | + FILTER_OUTPUTS(earwax_outputs), | |
| 242 | 240 | }; |
| @@ -108,7 +108,6 @@ static const AVFilterPad inputs[] = { · 107 unmodified lines | ||
| 108 | 108 | .type = AVMEDIA_TYPE_AUDIO, |
| 109 | 109 | .filter_frame = filter_frame, |
| 110 | 110 | }, |
| 111 | − { NULL } | |
| 112 | 111 | }; |
| 113 | 112 | |
| 114 | 113 | static const AVFilterPad outputs[] = { |
| @@ -116,7 +115,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 116 | 115 | .name = "default", |
| 117 | 116 | .type = AVMEDIA_TYPE_AUDIO, |
| 118 | 117 | }, |
| 119 | − { NULL } | |
| 120 | 118 | }; |
| 121 | 119 | |
| 122 | 120 | const AVFilter ff_af_extrastereo = { |
| @@ -125,8 +123,8 @@ const AVFilter ff_af_extrastereo = { · 2 unmodified lines | ||
| 125 | 123 | .query_formats = query_formats, |
| 126 | 124 | .priv_size = sizeof(ExtraStereoContext), |
| 127 | 125 | .priv_class = &extrastereo_class, |
| 128 | − .inputs = inputs, | |
| 129 | − .outputs = outputs, | |
| 126 | + FILTER_INPUTS(inputs), | |
| 127 | + FILTER_OUTPUTS(outputs), | |
| 130 | 128 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 131 | 129 | .process_command = ff_filter_process_command, |
| 132 | 130 | }; |
| @@ -944,7 +944,6 @@ static const AVFilterPad firequalizer_inputs[] = { · 943 unmodified lines | ||
| 944 | 944 | .filter_frame = filter_frame, |
| 945 | 945 | .type = AVMEDIA_TYPE_AUDIO, |
| 946 | 946 | }, |
| 947 | − { NULL } | |
| 948 | 947 | }; |
| 949 | 948 | |
| 950 | 949 | static const AVFilterPad firequalizer_outputs[] = { |
| @@ -953,7 +952,6 @@ static const AVFilterPad firequalizer_outputs[] = { · 2 unmodified lines | ||
| 953 | 952 | .request_frame = request_frame, |
| 954 | 953 | .type = AVMEDIA_TYPE_AUDIO, |
| 955 | 954 | }, |
| 956 | − { NULL } | |
| 957 | 955 | }; |
| 958 | 956 | |
| 959 | 957 | const AVFilter ff_af_firequalizer = { |
| @@ -963,7 +961,7 @@ const AVFilter ff_af_firequalizer = { · 3 unmodified lines | ||
| 963 | 961 | .query_formats = query_formats, |
| 964 | 962 | .process_command = process_command, |
| 965 | 963 | .priv_size = sizeof(FIREqualizerContext), |
| 966 | − .inputs = firequalizer_inputs, | |
| 967 | − .outputs = firequalizer_outputs, | |
| 964 | + FILTER_INPUTS(firequalizer_inputs), | |
| 965 | + FILTER_OUTPUTS(firequalizer_outputs), | |
| 968 | 966 | .priv_class = &firequalizer_class, |
| 969 | 967 | }; |
| @@ -209,7 +209,6 @@ static const AVFilterPad flanger_inputs[] = { · 208 unmodified lines | ||
| 209 | 209 | .config_props = config_input, |
| 210 | 210 | .filter_frame = filter_frame, |
| 211 | 211 | }, |
| 212 | − { NULL } | |
| 213 | 212 | }; |
| 214 | 213 | |
| 215 | 214 | static const AVFilterPad flanger_outputs[] = { |
| @@ -217,7 +216,6 @@ static const AVFilterPad flanger_outputs[] = { · 1 unmodified line | ||
| 217 | 216 | .name = "default", |
| 218 | 217 | .type = AVMEDIA_TYPE_AUDIO, |
| 219 | 218 | }, |
| 220 | − { NULL } | |
| 221 | 219 | }; |
| 222 | 220 | |
| 223 | 221 | const AVFilter ff_af_flanger = { |
| @@ -228,6 +226,6 @@ const AVFilter ff_af_flanger = { · 4 unmodified lines | ||
| 228 | 226 | .priv_class = &flanger_class, |
| 229 | 227 | .init = init, |
| 230 | 228 | .uninit = uninit, |
| 231 | − .inputs = flanger_inputs, | |
| 232 | − .outputs = flanger_outputs, | |
| 229 | + FILTER_INPUTS(flanger_inputs), | |
| 230 | + FILTER_OUTPUTS(flanger_outputs), | |
| 233 | 231 | }; |
| @@ -204,7 +204,6 @@ static const AVFilterPad inputs[] = { · 203 unmodified lines | ||
| 204 | 204 | .filter_frame = filter_frame, |
| 205 | 205 | .config_props = config_input, |
| 206 | 206 | }, |
| 207 | − { NULL } | |
| 208 | 207 | }; |
| 209 | 208 | |
| 210 | 209 | static const AVFilterPad outputs[] = { |
| @@ -212,7 +211,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 212 | 211 | .name = "default", |
| 213 | 212 | .type = AVMEDIA_TYPE_AUDIO, |
| 214 | 213 | }, |
| 215 | − { NULL } | |
| 216 | 214 | }; |
| 217 | 215 | |
| 218 | 216 | const AVFilter ff_af_haas = { |
| @@ -222,6 +220,6 @@ const AVFilter ff_af_haas = { · 3 unmodified lines | ||
| 222 | 220 | .priv_size = sizeof(HaasContext), |
| 223 | 221 | .priv_class = &haas_class, |
| 224 | 222 | .uninit = uninit, |
| 225 | − .inputs = inputs, | |
| 226 | − .outputs = outputs, | |
| 223 | + FILTER_INPUTS(inputs), | |
| 224 | + FILTER_OUTPUTS(outputs), | |
| 227 | 225 | }; |
| @@ -1761,7 +1761,6 @@ static const AVFilterPad avfilter_af_hdcd_inputs[] = { · 1760 unmodified lines | ||
| 1761 | 1761 | .filter_frame = filter_frame, |
| 1762 | 1762 | .config_props = config_input, |
| 1763 | 1763 | }, |
| 1764 | − { NULL } | |
| 1765 | 1764 | }; |
| 1766 | 1765 | |
| 1767 | 1766 | static const AVFilterPad avfilter_af_hdcd_outputs[] = { |
| @@ -1769,7 +1768,6 @@ static const AVFilterPad avfilter_af_hdcd_outputs[] = { · 1 unmodified line | ||
| 1769 | 1768 | .name = "default", |
| 1770 | 1769 | .type = AVMEDIA_TYPE_AUDIO, |
| 1771 | 1770 | }, |
| 1772 | − { NULL } | |
| 1773 | 1771 | }; |
| 1774 | 1772 | |
| 1775 | 1773 | const AVFilter ff_af_hdcd = { |
| @@ -1780,6 +1778,6 @@ const AVFilter ff_af_hdcd = { · 4 unmodified lines | ||
| 1780 | 1778 | .init = init, |
| 1781 | 1779 | .uninit = uninit, |
| 1782 | 1780 | .query_formats = query_formats, |
| 1783 | − .inputs = avfilter_af_hdcd_inputs, | |
| 1784 | − .outputs = avfilter_af_hdcd_outputs, | |
| 1781 | + FILTER_INPUTS(avfilter_af_hdcd_inputs), | |
| 1782 | + FILTER_OUTPUTS(avfilter_af_hdcd_outputs), | |
| 1785 | 1783 | }; |
| @@ -759,7 +759,6 @@ static const AVFilterPad outputs[] = { · 758 unmodified lines | ||
| 759 | 759 | .type = AVMEDIA_TYPE_AUDIO, |
| 760 | 760 | .config_props = config_output, |
| 761 | 761 | }, |
| 762 | − { NULL } | |
| 763 | 762 | }; |
| 764 | 763 | |
| 765 | 764 | const AVFilter ff_af_headphone = { |
| @@ -772,6 +771,6 @@ const AVFilter ff_af_headphone = { · 6 unmodified lines | ||
| 772 | 771 | .query_formats = query_formats, |
| 773 | 772 | .activate = activate, |
| 774 | 773 | .inputs = NULL, |
| 775 | − .outputs = outputs, | |
| 774 | + FILTER_OUTPUTS(outputs), | |
| 776 | 775 | .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 777 | 776 | }; |
| @@ -536,7 +536,6 @@ static const AVFilterPad avfilter_af_join_outputs[] = { · 535 unmodified lines | ||
| 536 | 536 | .type = AVMEDIA_TYPE_AUDIO, |
| 537 | 537 | .config_props = join_config_output, |
| 538 | 538 | }, |
| 539 | − { NULL } | |
| 540 | 539 | }; |
| 541 | 540 | |
| 542 | 541 | const AVFilter ff_af_join = { |
| @@ -550,6 +549,6 @@ const AVFilter ff_af_join = { · 7 unmodified lines | ||
| 550 | 549 | .activate = activate, |
| 551 | 550 | .query_formats = join_query_formats, |
| 552 | 551 | .inputs = NULL, |
| 553 | − .outputs = avfilter_af_join_outputs, | |
| 552 | + FILTER_OUTPUTS(avfilter_af_join_outputs), | |
| 554 | 553 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 555 | 554 | }; |
| @@ -774,7 +774,6 @@ static const AVFilterPad ladspa_outputs[] = { · 773 unmodified lines | ||
| 774 | 774 | .config_props = config_output, |
| 775 | 775 | .request_frame = request_frame, |
| 776 | 776 | }, |
| 777 | − { NULL } | |
| 778 | 777 | }; |
| 779 | 778 | |
| 780 | 779 | const AVFilter ff_af_ladspa = { |
| @@ -787,6 +786,6 @@ const AVFilter ff_af_ladspa = { · 6 unmodified lines | ||
| 787 | 786 | .query_formats = query_formats, |
| 788 | 787 | .process_command = process_command, |
| 789 | 788 | .inputs = 0, |
| 790 | − .outputs = ladspa_outputs, | |
| 789 | + FILTER_OUTPUTS(ladspa_outputs), | |
| 791 | 790 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 792 | 791 | }; |
| @@ -896,7 +896,6 @@ static const AVFilterPad avfilter_af_loudnorm_inputs[] = { · 895 unmodified lines | ||
| 896 | 896 | .config_props = config_input, |
| 897 | 897 | .filter_frame = filter_frame, |
| 898 | 898 | }, |
| 899 | − { NULL } | |
| 900 | 899 | }; |
| 901 | 900 | |
| 902 | 901 | static const AVFilterPad avfilter_af_loudnorm_outputs[] = { |
| @@ -905,7 +904,6 @@ static const AVFilterPad avfilter_af_loudnorm_outputs[] = { · 2 unmodified lines | ||
| 905 | 904 | .request_frame = request_frame, |
| 906 | 905 | .type = AVMEDIA_TYPE_AUDIO, |
| 907 | 906 | }, |
| 908 | − { NULL } | |
| 909 | 907 | }; |
| 910 | 908 | |
| 911 | 909 | const AVFilter ff_af_loudnorm = { |
| @@ -916,6 +914,6 @@ const AVFilter ff_af_loudnorm = { · 4 unmodified lines | ||
| 916 | 914 | .query_formats = query_formats, |
| 917 | 915 | .init = init, |
| 918 | 916 | .uninit = uninit, |
| 919 | − .inputs = avfilter_af_loudnorm_inputs, | |
| 920 | − .outputs = avfilter_af_loudnorm_outputs, | |
| 917 | + FILTER_INPUTS(avfilter_af_loudnorm_inputs), | |
| 918 | + FILTER_OUTPUTS(avfilter_af_loudnorm_outputs), | |
| 921 | 919 | }; |
| @@ -574,7 +574,6 @@ static const AVFilterPad lv2_outputs[] = { · 573 unmodified lines | ||
| 574 | 574 | .config_props = config_output, |
| 575 | 575 | .request_frame = request_frame, |
| 576 | 576 | }, |
| 577 | − { NULL } | |
| 578 | 577 | }; |
| 579 | 578 | |
| 580 | 579 | const AVFilter ff_af_lv2 = { |
| @@ -586,6 +585,6 @@ const AVFilter ff_af_lv2 = { · 5 unmodified lines | ||
| 586 | 585 | .uninit = uninit, |
| 587 | 586 | .query_formats = query_formats, |
| 588 | 587 | .inputs = 0, |
| 589 | − .outputs = lv2_outputs, | |
| 588 | + FILTER_OUTPUTS(lv2_outputs), | |
| 590 | 589 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 591 | 590 | }; |
| @@ -638,7 +638,6 @@ static const AVFilterPad mcompand_inputs[] = { · 637 unmodified lines | ||
| 638 | 638 | .type = AVMEDIA_TYPE_AUDIO, |
| 639 | 639 | .filter_frame = filter_frame, |
| 640 | 640 | }, |
| 641 | − { NULL } | |
| 642 | 641 | }; |
| 643 | 642 | |
| 644 | 643 | static const AVFilterPad mcompand_outputs[] = { |
| @@ -648,7 +647,6 @@ static const AVFilterPad mcompand_outputs[] = { · 3 unmodified lines | ||
| 648 | 647 | .request_frame = request_frame, |
| 649 | 648 | .config_props = config_output, |
| 650 | 649 | }, |
| 651 | − { NULL } | |
| 652 | 650 | }; |
| 653 | 651 | |
| 654 | 652 | |
| @@ -660,6 +658,6 @@ const AVFilter ff_af_mcompand = { · 5 unmodified lines | ||
| 660 | 658 | .priv_size = sizeof(MCompandContext), |
| 661 | 659 | .priv_class = &mcompand_class, |
| 662 | 660 | .uninit = uninit, |
| 663 | − .inputs = mcompand_inputs, | |
| 664 | − .outputs = mcompand_outputs, | |
| 661 | + FILTER_INPUTS(mcompand_inputs), | |
| 662 | + FILTER_OUTPUTS(mcompand_outputs), | |
| 665 | 663 | }; |
| @@ -435,7 +435,6 @@ static const AVFilterPad pan_inputs[] = { · 434 unmodified lines | ||
| 435 | 435 | .config_props = config_props, |
| 436 | 436 | .filter_frame = filter_frame, |
| 437 | 437 | }, |
| 438 | − { NULL } | |
| 439 | 438 | }; |
| 440 | 439 | |
| 441 | 440 | static const AVFilterPad pan_outputs[] = { |
| @@ -443,7 +442,6 @@ static const AVFilterPad pan_outputs[] = { · 1 unmodified line | ||
| 443 | 442 | .name = "default", |
| 444 | 443 | .type = AVMEDIA_TYPE_AUDIO, |
| 445 | 444 | }, |
| 446 | − { NULL } | |
| 447 | 445 | }; |
| 448 | 446 | |
| 449 | 447 | const AVFilter ff_af_pan = { |
| @@ -454,6 +452,6 @@ const AVFilter ff_af_pan = { · 4 unmodified lines | ||
| 454 | 452 | .init = init, |
| 455 | 453 | .uninit = uninit, |
| 456 | 454 | .query_formats = query_formats, |
| 457 | − .inputs = pan_inputs, | |
| 458 | − .outputs = pan_outputs, | |
| 455 | + FILTER_INPUTS(pan_inputs), | |
| 456 | + FILTER_OUTPUTS(pan_outputs), | |
| 459 | 457 | }; |
| @@ -592,7 +592,6 @@ static const AVFilterPad replaygain_inputs[] = { · 591 unmodified lines | ||
| 592 | 592 | .filter_frame = filter_frame, |
| 593 | 593 | .config_props = config_input, |
| 594 | 594 | }, |
| 595 | − { NULL } | |
| 596 | 595 | }; |
| 597 | 596 | |
| 598 | 597 | static const AVFilterPad replaygain_outputs[] = { |
| @@ -600,7 +599,6 @@ static const AVFilterPad replaygain_outputs[] = { · 1 unmodified line | ||
| 600 | 599 | .name = "default", |
| 601 | 600 | .type = AVMEDIA_TYPE_AUDIO, |
| 602 | 601 | }, |
| 603 | − { NULL } | |
| 604 | 602 | }; |
| 605 | 603 | |
| 606 | 604 | const AVFilter ff_af_replaygain = { |
| @@ -609,6 +607,6 @@ const AVFilter ff_af_replaygain = { · 2 unmodified lines | ||
| 609 | 607 | .query_formats = query_formats, |
| 610 | 608 | .uninit = uninit, |
| 611 | 609 | .priv_size = sizeof(ReplayGainContext), |
| 612 | − .inputs = replaygain_inputs, | |
| 613 | − .outputs = replaygain_outputs, | |
| 610 | + FILTER_INPUTS(replaygain_inputs), | |
| 611 | + FILTER_OUTPUTS(replaygain_outputs), | |
| 614 | 612 | }; |
| @@ -210,7 +210,6 @@ static const AVFilterPad rubberband_inputs[] = { · 209 unmodified lines | ||
| 210 | 210 | .type = AVMEDIA_TYPE_AUDIO, |
| 211 | 211 | .config_props = config_input, |
| 212 | 212 | }, |
| 213 | − { NULL } | |
| 214 | 213 | }; |
| 215 | 214 | |
| 216 | 215 | static const AVFilterPad rubberband_outputs[] = { |
| @@ -218,7 +217,6 @@ static const AVFilterPad rubberband_outputs[] = { · 1 unmodified line | ||
| 218 | 217 | .name = "default", |
| 219 | 218 | .type = AVMEDIA_TYPE_AUDIO, |
| 220 | 219 | }, |
| 221 | − { NULL } | |
| 222 | 220 | }; |
| 223 | 221 | |
| 224 | 222 | const AVFilter ff_af_rubberband = { |
| @@ -229,7 +227,7 @@ const AVFilter ff_af_rubberband = { · 4 unmodified lines | ||
| 229 | 227 | .priv_class = &rubberband_class, |
| 230 | 228 | .uninit = uninit, |
| 231 | 229 | .activate = activate, |
| 232 | − .inputs = rubberband_inputs, | |
| 233 | − .outputs = rubberband_outputs, | |
| 230 | + FILTER_INPUTS(rubberband_inputs), | |
| 231 | + FILTER_OUTPUTS(rubberband_outputs), | |
| 234 | 232 | .process_command = process_command, |
| 235 | 233 | }; |
| @@ -371,7 +371,6 @@ static const AVFilterPad sidechaincompress_inputs[] = { · 370 unmodified lines | ||
| 371 | 371 | .name = "sidechain", |
| 372 | 372 | .type = AVMEDIA_TYPE_AUDIO, |
| 373 | 373 | }, |
| 374 | − { NULL } | |
| 375 | 374 | }; |
| 376 | 375 | |
| 377 | 376 | static const AVFilterPad sidechaincompress_outputs[] = { |
| @@ -380,7 +379,6 @@ static const AVFilterPad sidechaincompress_outputs[] = { · 2 unmodified lines | ||
| 380 | 379 | .type = AVMEDIA_TYPE_AUDIO, |
| 381 | 380 | .config_props = config_output, |
| 382 | 381 | }, |
| 383 | − { NULL } | |
| 384 | 382 | }; |
| 385 | 383 | |
| 386 | 384 | const AVFilter ff_af_sidechaincompress = { |
| @@ -391,8 +389,8 @@ const AVFilter ff_af_sidechaincompress = { · 4 unmodified lines | ||
| 391 | 389 | .query_formats = query_formats, |
| 392 | 390 | .activate = activate, |
| 393 | 391 | .uninit = uninit, |
| 394 | − .inputs = sidechaincompress_inputs, | |
| 395 | − .outputs = sidechaincompress_outputs, | |
| 392 | + FILTER_INPUTS(sidechaincompress_inputs), | |
| 393 | + FILTER_OUTPUTS(sidechaincompress_outputs), | |
| 396 | 394 | .process_command = process_command, |
| 397 | 395 | }; |
| 398 | 396 | #endif /* CONFIG_SIDECHAINCOMPRESS_FILTER */ |
| @@ -454,7 +452,6 @@ static const AVFilterPad acompressor_inputs[] = { · 55 unmodified lines | ||
| 454 | 452 | .type = AVMEDIA_TYPE_AUDIO, |
| 455 | 453 | .filter_frame = acompressor_filter_frame, |
| 456 | 454 | }, |
| 457 | − { NULL } | |
| 458 | 455 | }; |
| 459 | 456 | |
| 460 | 457 | static const AVFilterPad acompressor_outputs[] = { |
| @@ -463,7 +460,6 @@ static const AVFilterPad acompressor_outputs[] = { · 2 unmodified lines | ||
| 463 | 460 | .type = AVMEDIA_TYPE_AUDIO, |
| 464 | 461 | .config_props = compressor_config_output, |
| 465 | 462 | }, |
| 466 | − { NULL } | |
| 467 | 463 | }; |
| 468 | 464 | |
| 469 | 465 | const AVFilter ff_af_acompressor = { |
| @@ -472,8 +468,8 @@ const AVFilter ff_af_acompressor = { · 2 unmodified lines | ||
| 472 | 468 | .priv_size = sizeof(SidechainCompressContext), |
| 473 | 469 | .priv_class = &acompressor_class, |
| 474 | 470 | .query_formats = acompressor_query_formats, |
| 475 | − .inputs = acompressor_inputs, | |
| 476 | − .outputs = acompressor_outputs, | |
| 471 | + FILTER_INPUTS(acompressor_inputs), | |
| 472 | + FILTER_OUTPUTS(acompressor_outputs), | |
| 477 | 473 | .process_command = process_command, |
| 478 | 474 | }; |
| 479 | 475 | #endif /* CONFIG_ACOMPRESSOR_FILTER */ |
| @@ -240,7 +240,6 @@ static const AVFilterPad silencedetect_inputs[] = { · 239 unmodified lines | ||
| 240 | 240 | .config_props = config_input, |
| 241 | 241 | .filter_frame = filter_frame, |
| 242 | 242 | }, |
| 243 | − { NULL } | |
| 244 | 243 | }; |
| 245 | 244 | |
| 246 | 245 | static const AVFilterPad silencedetect_outputs[] = { |
| @@ -248,7 +247,6 @@ static const AVFilterPad silencedetect_outputs[] = { · 1 unmodified line | ||
| 248 | 247 | .name = "default", |
| 249 | 248 | .type = AVMEDIA_TYPE_AUDIO, |
| 250 | 249 | }, |
| 251 | − { NULL } | |
| 252 | 250 | }; |
| 253 | 251 | |
| 254 | 252 | const AVFilter ff_af_silencedetect = { |
| @@ -257,7 +255,7 @@ const AVFilter ff_af_silencedetect = { · 2 unmodified lines | ||
| 257 | 255 | .priv_size = sizeof(SilenceDetectContext), |
| 258 | 256 | .query_formats = query_formats, |
| 259 | 257 | .uninit = uninit, |
| 260 | − .inputs = silencedetect_inputs, | |
| 261 | − .outputs = silencedetect_outputs, | |
| 258 | + FILTER_INPUTS(silencedetect_inputs), | |
| 259 | + FILTER_OUTPUTS(silencedetect_outputs), | |
| 262 | 260 | .priv_class = &silencedetect_class, |
| 263 | 261 | }; |
| @@ -923,7 +923,6 @@ static const AVFilterPad silenceremove_inputs[] = { · 922 unmodified lines | ||
| 923 | 923 | .config_props = config_input, |
| 924 | 924 | .filter_frame = filter_frame, |
| 925 | 925 | }, |
| 926 | − { NULL } | |
| 927 | 926 | }; |
| 928 | 927 | |
| 929 | 928 | static const AVFilterPad silenceremove_outputs[] = { |
| @@ -932,7 +931,6 @@ static const AVFilterPad silenceremove_outputs[] = { · 2 unmodified lines | ||
| 932 | 931 | .type = AVMEDIA_TYPE_AUDIO, |
| 933 | 932 | .request_frame = request_frame, |
| 934 | 933 | }, |
| 935 | − { NULL } | |
| 936 | 934 | }; |
| 937 | 935 | |
| 938 | 936 | const AVFilter ff_af_silenceremove = { |
| @@ -943,6 +941,6 @@ const AVFilter ff_af_silenceremove = { · 4 unmodified lines | ||
| 943 | 941 | .init = init, |
| 944 | 942 | .uninit = uninit, |
| 945 | 943 | .query_formats = query_formats, |
| 946 | − .inputs = silenceremove_inputs, | |
| 947 | − .outputs = silenceremove_outputs, | |
| 944 | + FILTER_INPUTS(silenceremove_inputs), | |
| 945 | + FILTER_OUTPUTS(silenceremove_outputs), | |
| 948 | 946 | }; |
| @@ -1095,7 +1095,6 @@ static const AVFilterPad inputs[] = { · 1094 unmodified lines | ||
| 1095 | 1095 | .type = AVMEDIA_TYPE_AUDIO, |
| 1096 | 1096 | .config_props = config_input, |
| 1097 | 1097 | }, |
| 1098 | − { NULL } | |
| 1099 | 1098 | }; |
| 1100 | 1099 | |
| 1101 | 1100 | static const AVFilterPad outputs[] = { |
| @@ -1103,7 +1102,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 1103 | 1102 | .name = "default", |
| 1104 | 1103 | .type = AVMEDIA_TYPE_AUDIO, |
| 1105 | 1104 | }, |
| 1106 | − { NULL } | |
| 1107 | 1105 | }; |
| 1108 | 1106 | |
| 1109 | 1107 | const AVFilter ff_af_sofalizer = { |
| @@ -1115,7 +1113,7 @@ const AVFilter ff_af_sofalizer = { · 5 unmodified lines | ||
| 1115 | 1113 | .activate = activate, |
| 1116 | 1114 | .uninit = uninit, |
| 1117 | 1115 | .query_formats = query_formats, |
| 1118 | − .inputs = inputs, | |
| 1119 | − .outputs = outputs, | |
| 1116 | + FILTER_INPUTS(inputs), | |
| 1117 | + FILTER_OUTPUTS(outputs), | |
| 1120 | 1118 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 1121 | 1119 | }; |
| @@ -542,7 +542,6 @@ static const AVFilterPad inputs[] = { · 541 unmodified lines | ||
| 542 | 542 | .type = AVMEDIA_TYPE_AUDIO, |
| 543 | 543 | .config_props = config_input, |
| 544 | 544 | }, |
| 545 | − { NULL } | |
| 546 | 545 | }; |
| 547 | 546 | |
| 548 | 547 | static const AVFilterPad outputs[] = { |
| @@ -550,7 +549,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 550 | 549 | .name = "default", |
| 551 | 550 | .type = AVMEDIA_TYPE_AUDIO, |
| 552 | 551 | }, |
| 553 | − { NULL } | |
| 554 | 552 | }; |
| 555 | 553 | |
| 556 | 554 | const AVFilter ff_af_speechnorm = { |
| @@ -561,7 +559,7 @@ const AVFilter ff_af_speechnorm = { · 4 unmodified lines | ||
| 561 | 559 | .priv_class = &speechnorm_class, |
| 562 | 560 | .activate = activate, |
| 563 | 561 | .uninit = uninit, |
| 564 | − .inputs = inputs, | |
| 565 | − .outputs = outputs, | |
| 562 | + FILTER_INPUTS(inputs), | |
| 563 | + FILTER_OUTPUTS(outputs), | |
| 566 | 564 | .process_command = process_command, |
| 567 | 565 | }; |
| @@ -363,7 +363,6 @@ static const AVFilterPad inputs[] = { · 362 unmodified lines | ||
| 363 | 363 | .filter_frame = filter_frame, |
| 364 | 364 | .config_props = config_input, |
| 365 | 365 | }, |
| 366 | − { NULL } | |
| 367 | 366 | }; |
| 368 | 367 | |
| 369 | 368 | static const AVFilterPad outputs[] = { |
| @@ -371,7 +370,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 371 | 370 | .name = "default", |
| 372 | 371 | .type = AVMEDIA_TYPE_AUDIO, |
| 373 | 372 | }, |
| 374 | − { NULL } | |
| 375 | 373 | }; |
| 376 | 374 | |
| 377 | 375 | const AVFilter ff_af_stereotools = { |
| @@ -381,8 +379,8 @@ const AVFilter ff_af_stereotools = { · 3 unmodified lines | ||
| 381 | 379 | .priv_size = sizeof(StereoToolsContext), |
| 382 | 380 | .priv_class = &stereotools_class, |
| 383 | 381 | .uninit = uninit, |
| 384 | − .inputs = inputs, | |
| 385 | − .outputs = outputs, | |
| 382 | + FILTER_INPUTS(inputs), | |
| 383 | + FILTER_OUTPUTS(outputs), | |
| 386 | 384 | .process_command = process_command, |
| 387 | 385 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 388 | 386 | }; |
| @@ -144,7 +144,6 @@ static const AVFilterPad inputs[] = { · 143 unmodified lines | ||
| 144 | 144 | .filter_frame = filter_frame, |
| 145 | 145 | .config_props = config_input, |
| 146 | 146 | }, |
| 147 | − { NULL } | |
| 148 | 147 | }; |
| 149 | 148 | |
| 150 | 149 | static const AVFilterPad outputs[] = { |
| @@ -152,7 +151,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 152 | 151 | .name = "default", |
| 153 | 152 | .type = AVMEDIA_TYPE_AUDIO, |
| 154 | 153 | }, |
| 155 | − { NULL } | |
| 156 | 154 | }; |
| 157 | 155 | |
| 158 | 156 | const AVFilter ff_af_stereowiden = { |
| @@ -162,8 +160,8 @@ const AVFilter ff_af_stereowiden = { · 3 unmodified lines | ||
| 162 | 160 | .priv_size = sizeof(StereoWidenContext), |
| 163 | 161 | .priv_class = &stereowiden_class, |
| 164 | 162 | .uninit = uninit, |
| 165 | − .inputs = inputs, | |
| 166 | − .outputs = outputs, | |
| 163 | + FILTER_INPUTS(inputs), | |
| 164 | + FILTER_OUTPUTS(outputs), | |
| 167 | 165 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 168 | 166 | .process_command = ff_filter_process_command, |
| 169 | 167 | }; |
| @@ -326,7 +326,6 @@ static const AVFilterPad superequalizer_inputs[] = { · 325 unmodified lines | ||
| 326 | 326 | .type = AVMEDIA_TYPE_AUDIO, |
| 327 | 327 | .config_props = config_input, |
| 328 | 328 | }, |
| 329 | − { NULL } | |
| 330 | 329 | }; |
| 331 | 330 | |
| 332 | 331 | static const AVFilterPad superequalizer_outputs[] = { |
| @@ -335,7 +334,6 @@ static const AVFilterPad superequalizer_outputs[] = { · 2 unmodified lines | ||
| 335 | 334 | .type = AVMEDIA_TYPE_AUDIO, |
| 336 | 335 | .config_props = config_output, |
| 337 | 336 | }, |
| 338 | − { NULL } | |
| 339 | 337 | }; |
| 340 | 338 | |
| 341 | 339 | #define AF AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM |
| @@ -374,6 +372,6 @@ const AVFilter ff_af_superequalizer = { · 32 unmodified lines | ||
| 374 | 372 | .init = init, |
| 375 | 373 | .activate = activate, |
| 376 | 374 | .uninit = uninit, |
| 377 | − .inputs = superequalizer_inputs, | |
| 378 | − .outputs = superequalizer_outputs, | |
| 375 | + FILTER_INPUTS(superequalizer_inputs), | |
| 376 | + FILTER_OUTPUTS(superequalizer_outputs), | |
| 379 | 377 | }; |
| @@ -1770,7 +1770,6 @@ static const AVFilterPad inputs[] = { · 1769 unmodified lines | ||
| 1770 | 1770 | .type = AVMEDIA_TYPE_AUDIO, |
| 1771 | 1771 | .config_props = config_input, |
| 1772 | 1772 | }, |
| 1773 | − { NULL } | |
| 1774 | 1773 | }; |
| 1775 | 1774 | |
| 1776 | 1775 | static const AVFilterPad outputs[] = { |
| @@ -1779,7 +1778,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 1779 | 1778 | .type = AVMEDIA_TYPE_AUDIO, |
| 1780 | 1779 | .config_props = config_output, |
| 1781 | 1780 | }, |
| 1782 | − { NULL } | |
| 1783 | 1781 | }; |
| 1784 | 1782 | |
| 1785 | 1783 | const AVFilter ff_af_surround = { |
| @@ -1791,7 +1789,7 @@ const AVFilter ff_af_surround = { · 5 unmodified lines | ||
| 1791 | 1789 | .init = init, |
| 1792 | 1790 | .uninit = uninit, |
| 1793 | 1791 | .activate = activate, |
| 1794 | − .inputs = inputs, | |
| 1795 | − .outputs = outputs, | |
| 1792 | + FILTER_INPUTS(inputs), | |
| 1793 | + FILTER_OUTPUTS(outputs), | |
| 1796 | 1794 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 1797 | 1795 | }; |
| @@ -136,7 +136,6 @@ static const AVFilterPad avfilter_af_tremolo_inputs[] = { · 135 unmodified lines | ||
| 136 | 136 | .config_props = config_input, |
| 137 | 137 | .filter_frame = filter_frame, |
| 138 | 138 | }, |
| 139 | − { NULL } | |
| 140 | 139 | }; |
| 141 | 140 | |
| 142 | 141 | static const AVFilterPad avfilter_af_tremolo_outputs[] = { |
| @@ -144,7 +143,6 @@ static const AVFilterPad avfilter_af_tremolo_outputs[] = { · 1 unmodified line | ||
| 144 | 143 | .name = "default", |
| 145 | 144 | .type = AVMEDIA_TYPE_AUDIO, |
| 146 | 145 | }, |
| 147 | − { NULL } | |
| 148 | 146 | }; |
| 149 | 147 | |
| 150 | 148 | const AVFilter ff_af_tremolo = { |
| @@ -154,6 +152,6 @@ const AVFilter ff_af_tremolo = { · 3 unmodified lines | ||
| 154 | 152 | .priv_class = &tremolo_class, |
| 155 | 153 | .uninit = uninit, |
| 156 | 154 | .query_formats = query_formats, |
| 157 | − .inputs = avfilter_af_tremolo_inputs, | |
| 158 | − .outputs = avfilter_af_tremolo_outputs, | |
| 155 | + FILTER_INPUTS(avfilter_af_tremolo_inputs), | |
| 156 | + FILTER_OUTPUTS(avfilter_af_tremolo_outputs), | |
| 159 | 157 | }; |
| @@ -174,7 +174,6 @@ static const AVFilterPad avfilter_af_vibrato_inputs[] = { · 173 unmodified lines | ||
| 174 | 174 | .config_props = config_input, |
| 175 | 175 | .filter_frame = filter_frame, |
| 176 | 176 | }, |
| 177 | − { NULL } | |
| 178 | 177 | }; |
| 179 | 178 | |
| 180 | 179 | static const AVFilterPad avfilter_af_vibrato_outputs[] = { |
| @@ -182,7 +181,6 @@ static const AVFilterPad avfilter_af_vibrato_outputs[] = { · 1 unmodified line | ||
| 182 | 181 | .name = "default", |
| 183 | 182 | .type = AVMEDIA_TYPE_AUDIO, |
| 184 | 183 | }, |
| 185 | − { NULL } | |
| 186 | 184 | }; |
| 187 | 185 | |
| 188 | 186 | const AVFilter ff_af_vibrato = { |
| @@ -192,6 +190,6 @@ const AVFilter ff_af_vibrato = { · 3 unmodified lines | ||
| 192 | 190 | .priv_class = &vibrato_class, |
| 193 | 191 | .uninit = uninit, |
| 194 | 192 | .query_formats = query_formats, |
| 195 | − .inputs = avfilter_af_vibrato_inputs, | |
| 196 | − .outputs = avfilter_af_vibrato_outputs, | |
| 193 | + FILTER_INPUTS(avfilter_af_vibrato_inputs), | |
| 194 | + FILTER_OUTPUTS(avfilter_af_vibrato_outputs), | |
| 197 | 195 | }; |
| @@ -452,7 +452,6 @@ static const AVFilterPad avfilter_af_volume_inputs[] = { · 451 unmodified lines | ||
| 452 | 452 | .type = AVMEDIA_TYPE_AUDIO, |
| 453 | 453 | .filter_frame = filter_frame, |
| 454 | 454 | }, |
| 455 | − { NULL } | |
| 456 | 455 | }; |
| 457 | 456 | |
| 458 | 457 | static const AVFilterPad avfilter_af_volume_outputs[] = { |
| @@ -461,7 +460,6 @@ static const AVFilterPad avfilter_af_volume_outputs[] = { · 2 unmodified lines | ||
| 461 | 460 | .type = AVMEDIA_TYPE_AUDIO, |
| 462 | 461 | .config_props = config_output, |
| 463 | 462 | }, |
| 464 | − { NULL } | |
| 465 | 463 | }; |
| 466 | 464 | |
| 467 | 465 | const AVFilter ff_af_volume = { |
| @@ -472,8 +470,8 @@ const AVFilter ff_af_volume = { · 4 unmodified lines | ||
| 472 | 470 | .priv_class = &volume_class, |
| 473 | 471 | .init = init, |
| 474 | 472 | .uninit = uninit, |
| 475 | − .inputs = avfilter_af_volume_inputs, | |
| 476 | − .outputs = avfilter_af_volume_outputs, | |
| 473 | + FILTER_INPUTS(avfilter_af_volume_inputs), | |
| 474 | + FILTER_OUTPUTS(avfilter_af_volume_outputs), | |
| 477 | 475 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 478 | 476 | .process_command = process_command, |
| 479 | 477 | }; |
| @@ -134,7 +134,6 @@ static const AVFilterPad volumedetect_inputs[] = { · 133 unmodified lines | ||
| 134 | 134 | .type = AVMEDIA_TYPE_AUDIO, |
| 135 | 135 | .filter_frame = filter_frame, |
| 136 | 136 | }, |
| 137 | − { NULL } | |
| 138 | 137 | }; |
| 139 | 138 | |
| 140 | 139 | static const AVFilterPad volumedetect_outputs[] = { |
| @@ -142,7 +141,6 @@ static const AVFilterPad volumedetect_outputs[] = { · 1 unmodified line | ||
| 142 | 141 | .name = "default", |
| 143 | 142 | .type = AVMEDIA_TYPE_AUDIO, |
| 144 | 143 | }, |
| 145 | − { NULL } | |
| 146 | 144 | }; |
| 147 | 145 | |
| 148 | 146 | const AVFilter ff_af_volumedetect = { |
| @@ -151,6 +149,6 @@ const AVFilter ff_af_volumedetect = { · 2 unmodified lines | ||
| 151 | 149 | .priv_size = sizeof(VolDetectContext), |
| 152 | 150 | .query_formats = query_formats, |
| 153 | 151 | .uninit = uninit, |
| 154 | − .inputs = volumedetect_inputs, | |
| 155 | − .outputs = volumedetect_outputs, | |
| 152 | + FILTER_INPUTS(volumedetect_inputs), | |
| 153 | + FILTER_OUTPUTS(volumedetect_outputs), | |
| 156 | 154 | }; |
| @@ -34,13 +34,12 @@ static const AVFilterPad avfilter_asink_anullsink_inputs[] = { · 33 unmodified lines | ||
| 34 | 34 | .type = AVMEDIA_TYPE_AUDIO, |
| 35 | 35 | .filter_frame = null_filter_frame, |
| 36 | 36 | }, |
| 37 | − { NULL }, | |
| 38 | 37 | }; |
| 39 | 38 | |
| 40 | 39 | const AVFilter ff_asink_anullsink = { |
| 41 | 40 | .name = "anullsink", |
| 42 | 41 | .description = NULL_IF_CONFIG_SMALL("Do absolutely nothing with the input audio."), |
| 43 | 42 | .priv_size = 0, |
| 44 | − .inputs = avfilter_asink_anullsink_inputs, | |
| 43 | + FILTER_INPUTS(avfilter_asink_anullsink_inputs), | |
| 45 | 44 | .outputs = NULL, |
| 46 | 45 | }; |
| @@ -301,7 +301,6 @@ static const AVFilterPad afirsrc_outputs[] = { · 300 unmodified lines | ||
| 301 | 301 | .request_frame = request_frame, |
| 302 | 302 | .config_props = config_output, |
| 303 | 303 | }, |
| 304 | − { NULL } | |
| 305 | 304 | }; |
| 306 | 305 | |
| 307 | 306 | const AVFilter ff_asrc_afirsrc = { |
| @@ -312,6 +311,6 @@ const AVFilter ff_asrc_afirsrc = { · 4 unmodified lines | ||
| 312 | 311 | .uninit = uninit, |
| 313 | 312 | .priv_size = sizeof(AudioFIRSourceContext), |
| 314 | 313 | .inputs = NULL, |
| 315 | − .outputs = afirsrc_outputs, | |
| 314 | + FILTER_OUTPUTS(afirsrc_outputs), | |
| 316 | 315 | .priv_class = &afirsrc_class, |
| 317 | 316 | }; |
| @@ -230,7 +230,6 @@ static const AVFilterPad anoisesrc_outputs[] = { · 229 unmodified lines | ||
| 230 | 230 | .type = AVMEDIA_TYPE_AUDIO, |
| 231 | 231 | .config_props = config_props, |
| 232 | 232 | }, |
| 233 | − { NULL } | |
| 234 | 233 | }; |
| 235 | 234 | |
| 236 | 235 | const AVFilter ff_asrc_anoisesrc = { |
| @@ -240,6 +239,6 @@ const AVFilter ff_asrc_anoisesrc = { · 3 unmodified lines | ||
| 240 | 239 | .priv_size = sizeof(ANoiseSrcContext), |
| 241 | 240 | .inputs = NULL, |
| 242 | 241 | .activate = activate, |
| 243 | − .outputs = anoisesrc_outputs, | |
| 242 | + FILTER_OUTPUTS(anoisesrc_outputs), | |
| 244 | 243 | .priv_class = &anoisesrc_class, |
| 245 | 244 | }; |
| @@ -134,7 +134,6 @@ static const AVFilterPad avfilter_asrc_anullsrc_outputs[] = { · 133 unmodified lines | ||
| 134 | 134 | .type = AVMEDIA_TYPE_AUDIO, |
| 135 | 135 | .config_props = config_props, |
| 136 | 136 | }, |
| 137 | − { NULL } | |
| 138 | 137 | }; |
| 139 | 138 | |
| 140 | 139 | const AVFilter ff_asrc_anullsrc = { |
| @@ -144,7 +143,7 @@ const AVFilter ff_asrc_anullsrc = { · 3 unmodified lines | ||
| 144 | 143 | .query_formats = query_formats, |
| 145 | 144 | .priv_size = sizeof(ANullContext), |
| 146 | 145 | .inputs = NULL, |
| 147 | − .outputs = avfilter_asrc_anullsrc_outputs, | |
| 146 | + FILTER_OUTPUTS(avfilter_asrc_anullsrc_outputs), | |
| 148 | 147 | .activate = activate, |
| 149 | 148 | .priv_class = &anullsrc_class, |
| 150 | 149 | }; |
| @@ -271,7 +271,6 @@ static const AVFilterPad flite_outputs[] = { · 270 unmodified lines | ||
| 271 | 271 | .config_props = config_props, |
| 272 | 272 | .request_frame = request_frame, |
| 273 | 273 | }, |
| 274 | − { NULL } | |
| 275 | 274 | }; |
| 276 | 275 | |
| 277 | 276 | const AVFilter ff_asrc_flite = { |
| @@ -282,6 +281,6 @@ const AVFilter ff_asrc_flite = { · 4 unmodified lines | ||
| 282 | 281 | .uninit = uninit, |
| 283 | 282 | .priv_size = sizeof(FliteContext), |
| 284 | 283 | .inputs = NULL, |
| 285 | − .outputs = flite_outputs, | |
| 284 | + FILTER_OUTPUTS(flite_outputs), | |
| 286 | 285 | .priv_class = &flite_class, |
| 287 | 286 | }; |
| @@ -171,7 +171,6 @@ static const AVFilterPad hilbert_outputs[] = { · 170 unmodified lines | ||
| 171 | 171 | .request_frame = request_frame, |
| 172 | 172 | .config_props = config_props, |
| 173 | 173 | }, |
| 174 | − { NULL } | |
| 175 | 174 | }; |
| 176 | 175 | |
| 177 | 176 | const AVFilter ff_asrc_hilbert = { |
| @@ -182,6 +181,6 @@ const AVFilter ff_asrc_hilbert = { · 4 unmodified lines | ||
| 182 | 181 | .uninit = uninit, |
| 183 | 182 | .priv_size = sizeof(HilbertContext), |
| 184 | 183 | .inputs = NULL, |
| 185 | − .outputs = hilbert_outputs, | |
| 184 | + FILTER_OUTPUTS(hilbert_outputs), | |
| 186 | 185 | .priv_class = &hilbert_class, |
| 187 | 186 | }; |
| @@ -408,7 +408,6 @@ static const AVFilterPad sinc_outputs[] = { · 407 unmodified lines | ||
| 408 | 408 | .config_props = config_output, |
| 409 | 409 | .request_frame = request_frame, |
| 410 | 410 | }, |
| 411 | − { NULL } | |
| 412 | 411 | }; |
| 413 | 412 | |
| 414 | 413 | #define AF AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM |
| @@ -440,5 +439,5 @@ const AVFilter ff_asrc_sinc = { · 25 unmodified lines | ||
| 440 | 439 | .query_formats = query_formats, |
| 441 | 440 | .uninit = uninit, |
| 442 | 441 | .inputs = NULL, |
| 443 | − .outputs = sinc_outputs, | |
| 442 | + FILTER_OUTPUTS(sinc_outputs), | |
| 444 | 443 | }; |
| @@ -253,7 +253,6 @@ static const AVFilterPad sine_outputs[] = { · 252 unmodified lines | ||
| 253 | 253 | .request_frame = request_frame, |
| 254 | 254 | .config_props = config_props, |
| 255 | 255 | }, |
| 256 | − { NULL } | |
| 257 | 256 | }; |
| 258 | 257 | |
| 259 | 258 | const AVFilter ff_asrc_sine = { |
| @@ -264,6 +263,6 @@ const AVFilter ff_asrc_sine = { · 4 unmodified lines | ||
| 264 | 263 | .uninit = uninit, |
| 265 | 264 | .priv_size = sizeof(SineContext), |
| 266 | 265 | .inputs = NULL, |
| 267 | − .outputs = sine_outputs, | |
| 266 | + FILTER_OUTPUTS(sine_outputs), | |
| 268 | 267 | .priv_class = &sine_class, |
| 269 | 268 | }; |
| @@ -248,7 +248,6 @@ static const AVFilterPad inputs[] = { · 247 unmodified lines | ||
| 248 | 248 | .type = AVMEDIA_TYPE_AUDIO, |
| 249 | 249 | .config_props = config_input, |
| 250 | 250 | }, |
| 251 | − { NULL } | |
| 252 | 251 | }; |
| 253 | 252 | |
| 254 | 253 | static const AVFilterPad outputs[] = { |
| @@ -257,7 +256,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 257 | 256 | .type = AVMEDIA_TYPE_VIDEO, |
| 258 | 257 | .config_props = config_output, |
| 259 | 258 | }, |
| 260 | − { NULL } | |
| 261 | 259 | }; |
| 262 | 260 | |
| 263 | 261 | const AVFilter ff_avf_abitscope = { |
| @@ -265,8 +263,8 @@ const AVFilter ff_avf_abitscope = { · 1 unmodified line | ||
| 265 | 263 | .description = NULL_IF_CONFIG_SMALL("Convert input audio to audio bit scope video output."), |
| 266 | 264 | .query_formats = query_formats, |
| 267 | 265 | .priv_size = sizeof(AudioBitScopeContext), |
| 268 | − .inputs = inputs, | |
| 269 | − .outputs = outputs, | |
| 266 | + FILTER_INPUTS(inputs), | |
| 267 | + FILTER_OUTPUTS(outputs), | |
| 270 | 268 | .activate = activate, |
| 271 | 269 | .priv_class = &abitscope_class, |
| 272 | 270 | }; |
| @@ -412,7 +412,6 @@ static const AVFilterPad ahistogram_inputs[] = { · 411 unmodified lines | ||
| 412 | 412 | .type = AVMEDIA_TYPE_AUDIO, |
| 413 | 413 | .config_props = config_input, |
| 414 | 414 | }, |
| 415 | − { NULL } | |
| 416 | 415 | }; |
| 417 | 416 | |
| 418 | 417 | static const AVFilterPad ahistogram_outputs[] = { |
| @@ -421,7 +420,6 @@ static const AVFilterPad ahistogram_outputs[] = { · 2 unmodified lines | ||
| 421 | 420 | .type = AVMEDIA_TYPE_VIDEO, |
| 422 | 421 | .config_props = config_output, |
| 423 | 422 | }, |
| 424 | − { NULL } | |
| 425 | 423 | }; |
| 426 | 424 | |
| 427 | 425 | const AVFilter ff_avf_ahistogram = { |
| @@ -431,7 +429,7 @@ const AVFilter ff_avf_ahistogram = { · 3 unmodified lines | ||
| 431 | 429 | .query_formats = query_formats, |
| 432 | 430 | .priv_size = sizeof(AudioHistogramContext), |
| 433 | 431 | .activate = activate, |
| 434 | − .inputs = ahistogram_inputs, | |
| 435 | − .outputs = ahistogram_outputs, | |
| 432 | + FILTER_INPUTS(ahistogram_inputs), | |
| 433 | + FILTER_OUTPUTS(ahistogram_outputs), | |
| 436 | 434 | .priv_class = &ahistogram_class, |
| 437 | 435 | }; |
| @@ -380,7 +380,6 @@ static const AVFilterPad inputs[] = { · 379 unmodified lines | ||
| 380 | 380 | .config_props = config_input, |
| 381 | 381 | .filter_frame = filter_frame, |
| 382 | 382 | }, |
| 383 | − { NULL } | |
| 384 | 383 | }; |
| 385 | 384 | |
| 386 | 385 | const AVFilter ff_avf_aphasemeter = { |
| @@ -390,7 +389,7 @@ const AVFilter ff_avf_aphasemeter = { · 3 unmodified lines | ||
| 390 | 389 | .uninit = uninit, |
| 391 | 390 | .query_formats = query_formats, |
| 392 | 391 | .priv_size = sizeof(AudioPhaseMeterContext), |
| 393 | − .inputs = inputs, | |
| 392 | + FILTER_INPUTS(inputs), | |
| 394 | 393 | .outputs = NULL, |
| 395 | 394 | .priv_class = &aphasemeter_class, |
| 396 | 395 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| @@ -403,7 +403,6 @@ static const AVFilterPad audiovectorscope_inputs[] = { · 402 unmodified lines | ||
| 403 | 403 | .type = AVMEDIA_TYPE_AUDIO, |
| 404 | 404 | .config_props = config_input, |
| 405 | 405 | }, |
| 406 | − { NULL } | |
| 407 | 406 | }; |
| 408 | 407 | |
| 409 | 408 | static const AVFilterPad audiovectorscope_outputs[] = { |
| @@ -412,7 +411,6 @@ static const AVFilterPad audiovectorscope_outputs[] = { · 2 unmodified lines | ||
| 412 | 411 | .type = AVMEDIA_TYPE_VIDEO, |
| 413 | 412 | .config_props = config_output, |
| 414 | 413 | }, |
| 415 | − { NULL } | |
| 416 | 414 | }; |
| 417 | 415 | |
| 418 | 416 | const AVFilter ff_avf_avectorscope = { |
| @@ -422,7 +420,7 @@ const AVFilter ff_avf_avectorscope = { · 3 unmodified lines | ||
| 422 | 420 | .query_formats = query_formats, |
| 423 | 421 | .priv_size = sizeof(AudioVectorScopeContext), |
| 424 | 422 | .activate = activate, |
| 425 | − .inputs = audiovectorscope_inputs, | |
| 426 | − .outputs = audiovectorscope_outputs, | |
| 423 | + FILTER_INPUTS(audiovectorscope_inputs), | |
| 424 | + FILTER_OUTPUTS(audiovectorscope_outputs), | |
| 427 | 425 | .priv_class = &avectorscope_class, |
| 428 | 426 | }; |
| @@ -1577,7 +1577,6 @@ static const AVFilterPad showcqt_inputs[] = { · 1576 unmodified lines | ||
| 1577 | 1577 | .type = AVMEDIA_TYPE_AUDIO, |
| 1578 | 1578 | .filter_frame = filter_frame, |
| 1579 | 1579 | }, |
| 1580 | − { NULL } | |
| 1581 | 1580 | }; |
| 1582 | 1581 | |
| 1583 | 1582 | static const AVFilterPad showcqt_outputs[] = { |
| @@ -1587,7 +1586,6 @@ static const AVFilterPad showcqt_outputs[] = { · 3 unmodified lines | ||
| 1587 | 1586 | .config_props = config_output, |
| 1588 | 1587 | .request_frame = request_frame, |
| 1589 | 1588 | }, |
| 1590 | − { NULL } | |
| 1591 | 1589 | }; |
| 1592 | 1590 | |
| 1593 | 1591 | const AVFilter ff_avf_showcqt = { |
| @@ -1597,7 +1595,7 @@ const AVFilter ff_avf_showcqt = { · 3 unmodified lines | ||
| 1597 | 1595 | .uninit = uninit, |
| 1598 | 1596 | .query_formats = query_formats, |
| 1599 | 1597 | .priv_size = sizeof(ShowCQTContext), |
| 1600 | − .inputs = showcqt_inputs, | |
| 1601 | − .outputs = showcqt_outputs, | |
| 1598 | + FILTER_INPUTS(showcqt_inputs), | |
| 1599 | + FILTER_OUTPUTS(showcqt_outputs), | |
| 1602 | 1600 | .priv_class = &showcqt_class, |
| 1603 | 1601 | }; |
| @@ -552,7 +552,6 @@ static const AVFilterPad showfreqs_inputs[] = { · 551 unmodified lines | ||
| 552 | 552 | .name = "default", |
| 553 | 553 | .type = AVMEDIA_TYPE_AUDIO, |
| 554 | 554 | }, |
| 555 | − { NULL } | |
| 556 | 555 | }; |
| 557 | 556 | |
| 558 | 557 | static const AVFilterPad showfreqs_outputs[] = { |
| @@ -561,7 +560,6 @@ static const AVFilterPad showfreqs_outputs[] = { · 2 unmodified lines | ||
| 561 | 560 | .type = AVMEDIA_TYPE_VIDEO, |
| 562 | 561 | .config_props = config_output, |
| 563 | 562 | }, |
| 564 | − { NULL } | |
| 565 | 563 | }; |
| 566 | 564 | |
| 567 | 565 | const AVFilter ff_avf_showfreqs = { |
| @@ -572,7 +570,7 @@ const AVFilter ff_avf_showfreqs = { · 4 unmodified lines | ||
| 572 | 570 | .query_formats = query_formats, |
| 573 | 571 | .priv_size = sizeof(ShowFreqsContext), |
| 574 | 572 | .activate = activate, |
| 575 | − .inputs = showfreqs_inputs, | |
| 576 | − .outputs = showfreqs_outputs, | |
| 573 | + FILTER_INPUTS(showfreqs_inputs), | |
| 574 | + FILTER_OUTPUTS(showfreqs_outputs), | |
| 577 | 575 | .priv_class = &showfreqs_class, |
| 578 | 576 | }; |
| @@ -346,7 +346,6 @@ static const AVFilterPad showspatial_inputs[] = { · 345 unmodified lines | ||
| 346 | 346 | .name = "default", |
| 347 | 347 | .type = AVMEDIA_TYPE_AUDIO, |
| 348 | 348 | }, |
| 349 | − { NULL } | |
| 350 | 349 | }; |
| 351 | 350 | |
| 352 | 351 | static const AVFilterPad showspatial_outputs[] = { |
| @@ -355,7 +354,6 @@ static const AVFilterPad showspatial_outputs[] = { · 2 unmodified lines | ||
| 355 | 354 | .type = AVMEDIA_TYPE_VIDEO, |
| 356 | 355 | .config_props = config_output, |
| 357 | 356 | }, |
| 358 | − { NULL } | |
| 359 | 357 | }; |
| 360 | 358 | |
| 361 | 359 | const AVFilter ff_avf_showspatial = { |
| @@ -364,8 +362,8 @@ const AVFilter ff_avf_showspatial = { · 2 unmodified lines | ||
| 364 | 362 | .uninit = uninit, |
| 365 | 363 | .query_formats = query_formats, |
| 366 | 364 | .priv_size = sizeof(ShowSpatialContext), |
| 367 | − .inputs = showspatial_inputs, | |
| 368 | − .outputs = showspatial_outputs, | |
| 365 | + FILTER_INPUTS(showspatial_inputs), | |
| 366 | + FILTER_OUTPUTS(showspatial_outputs), | |
| 369 | 367 | .activate = spatial_activate, |
| 370 | 368 | .priv_class = &showspatial_class, |
| 371 | 369 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| @@ -1654,7 +1654,6 @@ static const AVFilterPad showspectrum_inputs[] = { · 1653 unmodified lines | ||
| 1654 | 1654 | .name = "default", |
| 1655 | 1655 | .type = AVMEDIA_TYPE_AUDIO, |
| 1656 | 1656 | }, |
| 1657 | − { NULL } | |
| 1658 | 1657 | }; |
| 1659 | 1658 | |
| 1660 | 1659 | static const AVFilterPad showspectrum_outputs[] = { |
| @@ -1663,7 +1662,6 @@ static const AVFilterPad showspectrum_outputs[] = { · 2 unmodified lines | ||
| 1663 | 1662 | .type = AVMEDIA_TYPE_VIDEO, |
| 1664 | 1663 | .config_props = config_output, |
| 1665 | 1664 | }, |
| 1666 | − { NULL } | |
| 1667 | 1665 | }; |
| 1668 | 1666 | |
| 1669 | 1667 | const AVFilter ff_avf_showspectrum = { |
| @@ -1672,8 +1670,8 @@ const AVFilter ff_avf_showspectrum = { · 2 unmodified lines | ||
| 1672 | 1670 | .uninit = uninit, |
| 1673 | 1671 | .query_formats = query_formats, |
| 1674 | 1672 | .priv_size = sizeof(ShowSpectrumContext), |
| 1675 | − .inputs = showspectrum_inputs, | |
| 1676 | − .outputs = showspectrum_outputs, | |
| 1673 | + FILTER_INPUTS(showspectrum_inputs), | |
| 1674 | + FILTER_OUTPUTS(showspectrum_outputs), | |
| 1677 | 1675 | .activate = activate, |
| 1678 | 1676 | .priv_class = &showspectrum_class, |
| 1679 | 1677 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| @@ -1838,7 +1836,6 @@ static const AVFilterPad showspectrumpic_inputs[] = { · 158 unmodified lines | ||
| 1838 | 1836 | .type = AVMEDIA_TYPE_AUDIO, |
| 1839 | 1837 | .filter_frame = showspectrumpic_filter_frame, |
| 1840 | 1838 | }, |
| 1841 | − { NULL } | |
| 1842 | 1839 | }; |
| 1843 | 1840 | |
| 1844 | 1841 | static const AVFilterPad showspectrumpic_outputs[] = { |
| @@ -1848,7 +1845,6 @@ static const AVFilterPad showspectrumpic_outputs[] = { · 3 unmodified lines | ||
| 1848 | 1845 | .config_props = config_output, |
| 1849 | 1846 | .request_frame = showspectrumpic_request_frame, |
| 1850 | 1847 | }, |
| 1851 | − { NULL } | |
| 1852 | 1848 | }; |
| 1853 | 1849 | |
| 1854 | 1850 | const AVFilter ff_avf_showspectrumpic = { |
| @@ -1857,8 +1853,8 @@ const AVFilter ff_avf_showspectrumpic = { · 2 unmodified lines | ||
| 1857 | 1853 | .uninit = uninit, |
| 1858 | 1854 | .query_formats = query_formats, |
| 1859 | 1855 | .priv_size = sizeof(ShowSpectrumContext), |
| 1860 | − .inputs = showspectrumpic_inputs, | |
| 1861 | − .outputs = showspectrumpic_outputs, | |
| 1856 | + FILTER_INPUTS(showspectrumpic_inputs), | |
| 1857 | + FILTER_OUTPUTS(showspectrumpic_outputs), | |
| 1862 | 1858 | .priv_class = &showspectrumpic_class, |
| 1863 | 1859 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 1864 | 1860 | }; |
| @@ -486,7 +486,6 @@ static const AVFilterPad showvolume_inputs[] = { · 485 unmodified lines | ||
| 486 | 486 | .type = AVMEDIA_TYPE_AUDIO, |
| 487 | 487 | .config_props = config_input, |
| 488 | 488 | }, |
| 489 | − { NULL } | |
| 490 | 489 | }; |
| 491 | 490 | |
| 492 | 491 | static const AVFilterPad showvolume_outputs[] = { |
| @@ -495,7 +494,6 @@ static const AVFilterPad showvolume_outputs[] = { · 2 unmodified lines | ||
| 495 | 494 | .type = AVMEDIA_TYPE_VIDEO, |
| 496 | 495 | .config_props = config_output, |
| 497 | 496 | }, |
| 498 | − { NULL } | |
| 499 | 497 | }; |
| 500 | 498 | |
| 501 | 499 | const AVFilter ff_avf_showvolume = { |
| @@ -506,7 +504,7 @@ const AVFilter ff_avf_showvolume = { · 4 unmodified lines | ||
| 506 | 504 | .uninit = uninit, |
| 507 | 505 | .query_formats = query_formats, |
| 508 | 506 | .priv_size = sizeof(ShowVolumeContext), |
| 509 | − .inputs = showvolume_inputs, | |
| 510 | − .outputs = showvolume_outputs, | |
| 507 | + FILTER_INPUTS(showvolume_inputs), | |
| 508 | + FILTER_OUTPUTS(showvolume_outputs), | |
| 511 | 509 | .priv_class = &showvolume_class, |
| 512 | 510 | }; |
| @@ -763,7 +763,6 @@ static const AVFilterPad showwaves_inputs[] = { · 762 unmodified lines | ||
| 763 | 763 | .name = "default", |
| 764 | 764 | .type = AVMEDIA_TYPE_AUDIO, |
| 765 | 765 | }, |
| 766 | − { NULL } | |
| 767 | 766 | }; |
| 768 | 767 | |
| 769 | 768 | static const AVFilterPad showwaves_outputs[] = { |
| @@ -772,7 +771,6 @@ static const AVFilterPad showwaves_outputs[] = { · 2 unmodified lines | ||
| 772 | 771 | .type = AVMEDIA_TYPE_VIDEO, |
| 773 | 772 | .config_props = config_output, |
| 774 | 773 | }, |
| 775 | − { NULL } | |
| 776 | 774 | }; |
| 777 | 775 | |
| 778 | 776 | const AVFilter ff_avf_showwaves = { |
| @@ -782,9 +780,9 @@ const AVFilter ff_avf_showwaves = { · 3 unmodified lines | ||
| 782 | 780 | .uninit = uninit, |
| 783 | 781 | .query_formats = query_formats, |
| 784 | 782 | .priv_size = sizeof(ShowWavesContext), |
| 785 | − .inputs = showwaves_inputs, | |
| 783 | + FILTER_INPUTS(showwaves_inputs), | |
| 786 | 784 | .activate = activate, |
| 787 | − .outputs = showwaves_outputs, | |
| 785 | + FILTER_OUTPUTS(showwaves_outputs), | |
| 788 | 786 | .priv_class = &showwaves_class, |
| 789 | 787 | }; |
| 790 | 788 | |
| @@ -877,7 +875,6 @@ static const AVFilterPad showwavespic_inputs[] = { · 86 unmodified lines | ||
| 877 | 875 | .config_props = showwavespic_config_input, |
| 878 | 876 | .filter_frame = showwavespic_filter_frame, |
| 879 | 877 | }, |
| 880 | − { NULL } | |
| 881 | 878 | }; |
| 882 | 879 | |
| 883 | 880 | static const AVFilterPad showwavespic_outputs[] = { |
| @@ -887,7 +884,6 @@ static const AVFilterPad showwavespic_outputs[] = { · 3 unmodified lines | ||
| 887 | 884 | .config_props = config_output, |
| 888 | 885 | .request_frame = request_frame, |
| 889 | 886 | }, |
| 890 | − { NULL } | |
| 891 | 887 | }; |
| 892 | 888 | |
| 893 | 889 | const AVFilter ff_avf_showwavespic = { |
| @@ -897,8 +893,8 @@ const AVFilter ff_avf_showwavespic = { · 3 unmodified lines | ||
| 897 | 893 | .uninit = uninit, |
| 898 | 894 | .query_formats = query_formats, |
| 899 | 895 | .priv_size = sizeof(ShowWavesContext), |
| 900 | − .inputs = showwavespic_inputs, | |
| 901 | − .outputs = showwavespic_outputs, | |
| 896 | + FILTER_INPUTS(showwavespic_inputs), | |
| 897 | + FILTER_OUTPUTS(showwavespic_outputs), | |
| 902 | 898 | .priv_class = &showwavespic_class, |
| 903 | 899 | }; |
| 904 | 900 | |
| @@ -540,14 +540,20 @@ int avfilter_process_command(AVFilterContext *filter, const char *cmd, const cha · 539 unmodified lines | ||
| 540 | 540 | |
| 541 | 541 | int avfilter_pad_count(const AVFilterPad *pads) |
| 542 | 542 | { |
| 543 | − int count; | |
| 543 | + const AVFilter *filter; | |
| 544 | + void *opaque = NULL; | |
| 544 | 545 | |
| 545 | 546 | if (!pads) |
| 546 | 547 | return 0; |
| 547 | 548 | |
| 548 | − for (count = 0; pads->name; count++) | |
| 549 | − pads++; | |
| 550 | − return count; | |
| 549 | + while (filter = av_filter_iterate(&opaque)) { | |
| 550 | + if (pads == filter->inputs) | |
| 551 | + return filter->nb_inputs; | |
| 552 | + if (pads == filter->outputs) | |
| 553 | + return filter->nb_outputs; | |
| 554 | + } | |
| 555 | + | |
| 556 | + av_assert0(!"AVFilterPad list not from a filter"); | |
| 551 | 557 | } |
| 552 | 558 | |
| 553 | 559 | static const char *default_filter_name(void *filter_ctx) |
| @@ -650,7 +656,7 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name) · 96 unmodified lines | ||
| 650 | 656 | goto err; |
| 651 | 657 | ret->internal->execute = default_execute; |
| 652 | 658 | |
| 653 | − ret->nb_inputs = avfilter_pad_count(filter->inputs); | |
| 659 | + ret->nb_inputs = filter->nb_inputs; | |
| 654 | 660 | if (ret->nb_inputs ) { |
| 655 | 661 | ret->input_pads = av_memdup(filter->inputs, ret->nb_inputs * sizeof(*filter->inputs)); |
| 656 | 662 | if (!ret->input_pads) |
| @@ -660,7 +666,7 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name) · 3 unmodified lines | ||
| 660 | 666 | goto err; |
| 661 | 667 | } |
| 662 | 668 | |
| 663 | − ret->nb_outputs = avfilter_pad_count(filter->outputs); | |
| 669 | + ret->nb_outputs = filter->nb_outputs; | |
| 664 | 670 | if (ret->nb_outputs) { |
| 665 | 671 | ret->output_pads = av_memdup(filter->outputs, ret->nb_outputs * sizeof(*filter->outputs)); |
| 666 | 672 | if (!ret->output_pads) |
| @@ -71,8 +71,7 @@ typedef struct AVFilterFormats AVFilterFormats; · 70 unmodified lines | ||
| 71 | 71 | typedef struct AVFilterChannelLayouts AVFilterChannelLayouts; |
| 72 | 72 | |
| 73 | 73 | /** |
| 74 | − * Get the number of elements in a NULL-terminated array of AVFilterPads (e.g. | |
| 75 | − * AVFilter.inputs/outputs). | |
| 74 | + * Get the number of elements in an AVFilter's inputs or outputs array. | |
| 76 | 75 | */ |
| 77 | 76 | int avfilter_pad_count(const AVFilterPad *pads); |
| 78 | 77 | |
| @@ -156,15 +155,16 @@ typedef struct AVFilter { · 77 unmodified lines | ||
| 156 | 155 | const char *description; |
| 157 | 156 | |
| 158 | 157 | /** |
| 159 | − * List of inputs, terminated by a zeroed element. | |
| 158 | + * List of static inputs. | |
| 160 | 159 | * |
| 161 | 160 | * NULL if there are no (static) inputs. Instances of filters with |
| 162 | 161 | * AVFILTER_FLAG_DYNAMIC_INPUTS set may have more inputs than present in |
| 163 | 162 | * this list. |
| 164 | 163 | */ |
| 165 | 164 | const AVFilterPad *inputs; |
| 165 | + | |
| 166 | 166 | /** |
| 167 | − * List of outputs, terminated by a zeroed element. | |
| 167 | + * List of static outputs. | |
| 168 | 168 | * |
| 169 | 169 | * NULL if there are no (static) outputs. Instances of filters with |
| 170 | 170 | * AVFILTER_FLAG_DYNAMIC_OUTPUTS set may have more outputs than present in |
| @@ -195,6 +195,16 @@ typedef struct AVFilter { · 24 unmodified lines | ||
| 195 | 195 | ***************************************************************** |
| 196 | 196 | */ |
| 197 | 197 | |
| 198 | + /** | |
| 199 | + * The number of entries in the list of inputs. | |
| 200 | + */ | |
| 201 | + uint16_t nb_inputs; | |
| 202 | + | |
| 203 | + /** | |
| 204 | + * The number of entries in the list of outputs. | |
| 205 | + */ | |
| 206 | + uint16_t nb_outputs; | |
| 207 | + | |
| 198 | 208 | /** |
| 199 | 209 | * Filter pre-initialization function |
| 200 | 210 | * |
| @@ -331,7 +331,6 @@ static const AVFilterPad avfilter_vsink_buffer_inputs[] = { · 330 unmodified lines | ||
| 331 | 331 | .name = "default", |
| 332 | 332 | .type = AVMEDIA_TYPE_VIDEO, |
| 333 | 333 | }, |
| 334 | − { NULL } | |
| 335 | 334 | }; |
| 336 | 335 | |
| 337 | 336 | const AVFilter ff_vsink_buffer = { |
| @@ -342,7 +341,7 @@ const AVFilter ff_vsink_buffer = { · 4 unmodified lines | ||
| 342 | 341 | .init = common_init, |
| 343 | 342 | .query_formats = vsink_query_formats, |
| 344 | 343 | .activate = activate, |
| 345 | − .inputs = avfilter_vsink_buffer_inputs, | |
| 344 | + FILTER_INPUTS(avfilter_vsink_buffer_inputs), | |
| 346 | 345 | .outputs = NULL, |
| 347 | 346 | }; |
| 348 | 347 | |
| @@ -351,7 +350,6 @@ static const AVFilterPad avfilter_asink_abuffer_inputs[] = { · 2 unmodified lines | ||
| 351 | 350 | .name = "default", |
| 352 | 351 | .type = AVMEDIA_TYPE_AUDIO, |
| 353 | 352 | }, |
| 354 | − { NULL } | |
| 355 | 353 | }; |
| 356 | 354 | |
| 357 | 355 | const AVFilter ff_asink_abuffer = { |
| @@ -362,6 +360,6 @@ const AVFilter ff_asink_abuffer = { · 4 unmodified lines | ||
| 362 | 360 | .init = common_init, |
| 363 | 361 | .query_formats = asink_query_formats, |
| 364 | 362 | .activate = activate, |
| 365 | − .inputs = avfilter_asink_abuffer_inputs, | |
| 363 | + FILTER_INPUTS(avfilter_asink_abuffer_inputs), | |
| 366 | 364 | .outputs = NULL, |
| 367 | 365 | }; |
| @@ -434,7 +434,6 @@ static const AVFilterPad avfilter_vsrc_buffer_outputs[] = { · 433 unmodified lines | ||
| 434 | 434 | .request_frame = request_frame, |
| 435 | 435 | .config_props = config_props, |
| 436 | 436 | }, |
| 437 | − { NULL } | |
| 438 | 437 | }; |
| 439 | 438 | |
| 440 | 439 | const AVFilter ff_vsrc_buffer = { |
| @@ -447,7 +446,7 @@ const AVFilter ff_vsrc_buffer = { · 6 unmodified lines | ||
| 447 | 446 | .uninit = uninit, |
| 448 | 447 | |
| 449 | 448 | .inputs = NULL, |
| 450 | − .outputs = avfilter_vsrc_buffer_outputs, | |
| 449 | + FILTER_OUTPUTS(avfilter_vsrc_buffer_outputs), | |
| 451 | 450 | .priv_class = &buffer_class, |
| 452 | 451 | }; |
| 453 | 452 | |
| @@ -458,7 +457,6 @@ static const AVFilterPad avfilter_asrc_abuffer_outputs[] = { · 4 unmodified lines | ||
| 458 | 457 | .request_frame = request_frame, |
| 459 | 458 | .config_props = config_props, |
| 460 | 459 | }, |
| 461 | − { NULL } | |
| 462 | 460 | }; |
| 463 | 461 | |
| 464 | 462 | const AVFilter ff_asrc_abuffer = { |
| @@ -471,6 +469,6 @@ const AVFilter ff_asrc_abuffer = { · 6 unmodified lines | ||
| 471 | 469 | .uninit = uninit, |
| 472 | 470 | |
| 473 | 471 | .inputs = NULL, |
| 474 | − .outputs = avfilter_asrc_abuffer_outputs, | |
| 472 | + FILTER_OUTPUTS(avfilter_asrc_abuffer_outputs), | |
| 475 | 473 | .priv_class = &abuffer_class, |
| 476 | 474 | }; |
| @@ -96,7 +96,6 @@ static const AVFilterPad bench_inputs[] = { · 95 unmodified lines | ||
| 96 | 96 | .type = AVMEDIA_TYPE_VIDEO, |
| 97 | 97 | .filter_frame = filter_frame, |
| 98 | 98 | }, |
| 99 | − { NULL } | |
| 100 | 99 | }; |
| 101 | 100 | |
| 102 | 101 | static const AVFilterPad bench_outputs[] = { |
| @@ -104,7 +103,6 @@ static const AVFilterPad bench_outputs[] = { · 1 unmodified line | ||
| 104 | 103 | .name = "default", |
| 105 | 104 | .type = AVMEDIA_TYPE_VIDEO, |
| 106 | 105 | }, |
| 107 | − { NULL } | |
| 108 | 106 | }; |
| 109 | 107 | |
| 110 | 108 | const AVFilter ff_vf_bench = { |
| @@ -112,8 +110,8 @@ const AVFilter ff_vf_bench = { · 1 unmodified line | ||
| 112 | 110 | .description = NULL_IF_CONFIG_SMALL("Benchmark part of a filtergraph."), |
| 113 | 111 | .priv_size = sizeof(BenchContext), |
| 114 | 112 | .init = init, |
| 115 | − .inputs = bench_inputs, | |
| 116 | − .outputs = bench_outputs, | |
| 113 | + FILTER_INPUTS(bench_inputs), | |
| 114 | + FILTER_OUTPUTS(bench_outputs), | |
| 117 | 115 | .priv_class = &bench_class, |
| 118 | 116 | }; |
| 119 | 117 | #endif /* CONFIG_BENCH_FILTER */ |
| @@ -128,7 +126,6 @@ static const AVFilterPad abench_inputs[] = { · 8 unmodified lines | ||
| 128 | 126 | .type = AVMEDIA_TYPE_AUDIO, |
| 129 | 127 | .filter_frame = filter_frame, |
| 130 | 128 | }, |
| 131 | − { NULL } | |
| 132 | 129 | }; |
| 133 | 130 | |
| 134 | 131 | static const AVFilterPad abench_outputs[] = { |
| @@ -136,7 +133,6 @@ static const AVFilterPad abench_outputs[] = { · 1 unmodified line | ||
| 136 | 133 | .name = "default", |
| 137 | 134 | .type = AVMEDIA_TYPE_AUDIO, |
| 138 | 135 | }, |
| 139 | − { NULL } | |
| 140 | 136 | }; |
| 141 | 137 | |
| 142 | 138 | const AVFilter ff_af_abench = { |
| @@ -144,8 +140,8 @@ const AVFilter ff_af_abench = { · 1 unmodified line | ||
| 144 | 140 | .description = NULL_IF_CONFIG_SMALL("Benchmark part of a filtergraph."), |
| 145 | 141 | .priv_size = sizeof(BenchContext), |
| 146 | 142 | .init = init, |
| 147 | − .inputs = abench_inputs, | |
| 148 | − .outputs = abench_outputs, | |
| 143 | + FILTER_INPUTS(abench_inputs), | |
| 144 | + FILTER_OUTPUTS(abench_outputs), | |
| 149 | 145 | .priv_class = &abench_class, |
| 150 | 146 | }; |
| 151 | 147 | #endif /* CONFIG_ABENCH_FILTER */ |
| @@ -103,7 +103,6 @@ static const AVFilterPad cue_inputs[] = { · 102 unmodified lines | ||
| 103 | 103 | .name = "default", |
| 104 | 104 | .type = AVMEDIA_TYPE_VIDEO, |
| 105 | 105 | }, |
| 106 | − { NULL } | |
| 107 | 106 | }; |
| 108 | 107 | |
| 109 | 108 | static const AVFilterPad cue_outputs[] = { |
| @@ -111,7 +110,6 @@ static const AVFilterPad cue_outputs[] = { · 1 unmodified line | ||
| 111 | 110 | .name = "default", |
| 112 | 111 | .type = AVMEDIA_TYPE_VIDEO, |
| 113 | 112 | }, |
| 114 | − { NULL } | |
| 115 | 113 | }; |
| 116 | 114 | |
| 117 | 115 | const AVFilter ff_vf_cue = { |
| @@ -119,8 +117,8 @@ const AVFilter ff_vf_cue = { · 1 unmodified line | ||
| 119 | 117 | .description = NULL_IF_CONFIG_SMALL("Delay filtering to match a cue."), |
| 120 | 118 | .priv_size = sizeof(CueContext), |
| 121 | 119 | .priv_class = &cue_class, |
| 122 | − .inputs = cue_inputs, | |
| 123 | − .outputs = cue_outputs, | |
| 120 | + FILTER_INPUTS(cue_inputs), | |
| 121 | + FILTER_OUTPUTS(cue_outputs), | |
| 124 | 122 | .activate = activate, |
| 125 | 123 | }; |
| 126 | 124 | #endif /* CONFIG_CUE_FILTER */ |
| @@ -134,7 +132,6 @@ static const AVFilterPad acue_inputs[] = { · 7 unmodified lines | ||
| 134 | 132 | .name = "default", |
| 135 | 133 | .type = AVMEDIA_TYPE_AUDIO, |
| 136 | 134 | }, |
| 137 | − { NULL } | |
| 138 | 135 | }; |
| 139 | 136 | |
| 140 | 137 | static const AVFilterPad acue_outputs[] = { |
| @@ -142,7 +139,6 @@ static const AVFilterPad acue_outputs[] = { · 1 unmodified line | ||
| 142 | 139 | .name = "default", |
| 143 | 140 | .type = AVMEDIA_TYPE_AUDIO, |
| 144 | 141 | }, |
| 145 | − { NULL } | |
| 146 | 142 | }; |
| 147 | 143 | |
| 148 | 144 | const AVFilter ff_af_acue = { |
| @@ -150,8 +146,8 @@ const AVFilter ff_af_acue = { · 1 unmodified line | ||
| 150 | 146 | .description = NULL_IF_CONFIG_SMALL("Delay filtering to match a cue."), |
| 151 | 147 | .priv_size = sizeof(CueContext), |
| 152 | 148 | .priv_class = &acue_class, |
| 153 | − .inputs = acue_inputs, | |
| 154 | − .outputs = acue_outputs, | |
| 149 | + FILTER_INPUTS(acue_inputs), | |
| 150 | + FILTER_OUTPUTS(acue_outputs), | |
| 155 | 151 | .activate = activate, |
| 156 | 152 | }; |
| 157 | 153 | #endif /* CONFIG_ACUE_FILTER */ |
| @@ -458,7 +458,6 @@ static const AVFilterPad drawgraph_inputs[] = { · 457 unmodified lines | ||
| 458 | 458 | .type = AVMEDIA_TYPE_VIDEO, |
| 459 | 459 | .filter_frame = filter_frame, |
| 460 | 460 | }, |
| 461 | − { NULL } | |
| 462 | 461 | }; |
| 463 | 462 | |
| 464 | 463 | static const AVFilterPad drawgraph_outputs[] = { |
| @@ -468,7 +467,6 @@ static const AVFilterPad drawgraph_outputs[] = { · 3 unmodified lines | ||
| 468 | 467 | .config_props = config_output, |
| 469 | 468 | .request_frame = request_frame, |
| 470 | 469 | }, |
| 471 | − { NULL } | |
| 472 | 470 | }; |
| 473 | 471 | |
| 474 | 472 | const AVFilter ff_vf_drawgraph = { |
| @@ -479,8 +477,8 @@ const AVFilter ff_vf_drawgraph = { · 4 unmodified lines | ||
| 479 | 477 | .query_formats = query_formats, |
| 480 | 478 | .init = init, |
| 481 | 479 | .uninit = uninit, |
| 482 | − .inputs = drawgraph_inputs, | |
| 483 | − .outputs = drawgraph_outputs, | |
| 480 | + FILTER_INPUTS(drawgraph_inputs), | |
| 481 | + FILTER_OUTPUTS(drawgraph_outputs), | |
| 484 | 482 | }; |
| 485 | 483 | |
| 486 | 484 | #endif // CONFIG_DRAWGRAPH_FILTER |
| @@ -496,7 +494,6 @@ static const AVFilterPad adrawgraph_inputs[] = { · 9 unmodified lines | ||
| 496 | 494 | .type = AVMEDIA_TYPE_AUDIO, |
| 497 | 495 | .filter_frame = filter_frame, |
| 498 | 496 | }, |
| 499 | − { NULL } | |
| 500 | 497 | }; |
| 501 | 498 | |
| 502 | 499 | static const AVFilterPad adrawgraph_outputs[] = { |
| @@ -506,7 +503,6 @@ static const AVFilterPad adrawgraph_outputs[] = { · 3 unmodified lines | ||
| 506 | 503 | .config_props = config_output, |
| 507 | 504 | .request_frame = request_frame, |
| 508 | 505 | }, |
| 509 | − { NULL } | |
| 510 | 506 | }; |
| 511 | 507 | |
| 512 | 508 | const AVFilter ff_avf_adrawgraph = { |
| @@ -517,7 +513,7 @@ const AVFilter ff_avf_adrawgraph = { · 4 unmodified lines | ||
| 517 | 513 | .query_formats = query_formats, |
| 518 | 514 | .init = init, |
| 519 | 515 | .uninit = uninit, |
| 520 | − .inputs = adrawgraph_inputs, | |
| 521 | − .outputs = adrawgraph_outputs, | |
| 516 | + FILTER_INPUTS(adrawgraph_inputs), | |
| 517 | + FILTER_OUTPUTS(adrawgraph_outputs), | |
| 522 | 518 | }; |
| 523 | 519 | #endif // CONFIG_ADRAWGRAPH_FILTER |
| @@ -1017,7 +1017,6 @@ static const AVFilterPad ebur128_inputs[] = { · 1016 unmodified lines | ||
| 1017 | 1017 | .filter_frame = filter_frame, |
| 1018 | 1018 | .config_props = config_audio_input, |
| 1019 | 1019 | }, |
| 1020 | − { NULL } | |
| 1021 | 1020 | }; |
| 1022 | 1021 | |
| 1023 | 1022 | const AVFilter ff_af_ebur128 = { |
| @@ -1027,7 +1026,7 @@ const AVFilter ff_af_ebur128 = { · 3 unmodified lines | ||
| 1027 | 1026 | .init = init, |
| 1028 | 1027 | .uninit = uninit, |
| 1029 | 1028 | .query_formats = query_formats, |
| 1030 | − .inputs = ebur128_inputs, | |
| 1029 | + FILTER_INPUTS(ebur128_inputs), | |
| 1031 | 1030 | .outputs = NULL, |
| 1032 | 1031 | .priv_class = &ebur128_class, |
| 1033 | 1032 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| @@ -395,7 +395,6 @@ static const AVFilterPad graphmonitor_inputs[] = { · 394 unmodified lines | ||
| 395 | 395 | .name = "default", |
| 396 | 396 | .type = AVMEDIA_TYPE_VIDEO, |
| 397 | 397 | }, |
| 398 | − { NULL } | |
| 399 | 398 | }; |
| 400 | 399 | |
| 401 | 400 | static const AVFilterPad graphmonitor_outputs[] = { |
| @@ -404,7 +403,6 @@ static const AVFilterPad graphmonitor_outputs[] = { · 2 unmodified lines | ||
| 404 | 403 | .type = AVMEDIA_TYPE_VIDEO, |
| 405 | 404 | .config_props = config_output, |
| 406 | 405 | }, |
| 407 | − { NULL } | |
| 408 | 406 | }; |
| 409 | 407 | |
| 410 | 408 | const AVFilter ff_vf_graphmonitor = { |
| @@ -414,8 +412,8 @@ const AVFilter ff_vf_graphmonitor = { · 3 unmodified lines | ||
| 414 | 412 | .priv_class = &graphmonitor_class, |
| 415 | 413 | .query_formats = query_formats, |
| 416 | 414 | .activate = activate, |
| 417 | − .inputs = graphmonitor_inputs, | |
| 418 | − .outputs = graphmonitor_outputs, | |
| 415 | + FILTER_INPUTS(graphmonitor_inputs), | |
| 416 | + FILTER_OUTPUTS(graphmonitor_outputs), | |
| 419 | 417 | }; |
| 420 | 418 | |
| 421 | 419 | #endif // CONFIG_GRAPHMONITOR_FILTER |
| @@ -430,7 +428,6 @@ static const AVFilterPad agraphmonitor_inputs[] = { · 8 unmodified lines | ||
| 430 | 428 | .name = "default", |
| 431 | 429 | .type = AVMEDIA_TYPE_AUDIO, |
| 432 | 430 | }, |
| 433 | − { NULL } | |
| 434 | 431 | }; |
| 435 | 432 | |
| 436 | 433 | static const AVFilterPad agraphmonitor_outputs[] = { |
| @@ -439,7 +436,6 @@ static const AVFilterPad agraphmonitor_outputs[] = { · 2 unmodified lines | ||
| 439 | 436 | .type = AVMEDIA_TYPE_VIDEO, |
| 440 | 437 | .config_props = config_output, |
| 441 | 438 | }, |
| 442 | − { NULL } | |
| 443 | 439 | }; |
| 444 | 440 | |
| 445 | 441 | const AVFilter ff_avf_agraphmonitor = { |
| @@ -449,7 +445,7 @@ const AVFilter ff_avf_agraphmonitor = { · 3 unmodified lines | ||
| 449 | 445 | .priv_class = &agraphmonitor_class, |
| 450 | 446 | .query_formats = query_formats, |
| 451 | 447 | .activate = activate, |
| 452 | − .inputs = agraphmonitor_inputs, | |
| 453 | − .outputs = agraphmonitor_outputs, | |
| 448 | + FILTER_INPUTS(agraphmonitor_inputs), | |
| 449 | + FILTER_OUTPUTS(agraphmonitor_outputs), | |
| 454 | 450 | }; |
| 455 | 451 | #endif // CONFIG_AGRAPHMONITOR_FILTER |
| @@ -235,7 +235,6 @@ static const AVFilterPad interleave_outputs[] = { · 234 unmodified lines | ||
| 235 | 235 | .type = AVMEDIA_TYPE_VIDEO, |
| 236 | 236 | .config_props = config_output, |
| 237 | 237 | }, |
| 238 | − { NULL } | |
| 239 | 238 | }; |
| 240 | 239 | |
| 241 | 240 | const AVFilter ff_vf_interleave = { |
| @@ -245,7 +244,7 @@ const AVFilter ff_vf_interleave = { · 3 unmodified lines | ||
| 245 | 244 | .init = init, |
| 246 | 245 | .uninit = uninit, |
| 247 | 246 | .activate = activate, |
| 248 | − .outputs = interleave_outputs, | |
| 247 | + FILTER_OUTPUTS(interleave_outputs), | |
| 249 | 248 | .priv_class = &interleave_class, |
| 250 | 249 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 251 | 250 | }; |
| @@ -263,7 +262,6 @@ static const AVFilterPad ainterleave_outputs[] = { · 11 unmodified lines | ||
| 263 | 262 | .type = AVMEDIA_TYPE_AUDIO, |
| 264 | 263 | .config_props = config_output, |
| 265 | 264 | }, |
| 266 | − { NULL } | |
| 267 | 265 | }; |
| 268 | 266 | |
| 269 | 267 | const AVFilter ff_af_ainterleave = { |
| @@ -273,7 +271,7 @@ const AVFilter ff_af_ainterleave = { · 3 unmodified lines | ||
| 273 | 271 | .init = init, |
| 274 | 272 | .uninit = uninit, |
| 275 | 273 | .activate = activate, |
| 276 | − .outputs = ainterleave_outputs, | |
| 274 | + FILTER_OUTPUTS(ainterleave_outputs), | |
| 277 | 275 | .priv_class = &ainterleave_class, |
| 278 | 276 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 279 | 277 | }; |
| @@ -269,7 +269,6 @@ static const AVFilterPad ainputs[] = { · 268 unmodified lines | ||
| 269 | 269 | .type = AVMEDIA_TYPE_AUDIO, |
| 270 | 270 | .config_props = aconfig_input, |
| 271 | 271 | }, |
| 272 | − { NULL } | |
| 273 | 272 | }; |
| 274 | 273 | |
| 275 | 274 | static const AVFilterPad aoutputs[] = { |
| @@ -277,7 +276,6 @@ static const AVFilterPad aoutputs[] = { · 1 unmodified line | ||
| 277 | 276 | .name = "default", |
| 278 | 277 | .type = AVMEDIA_TYPE_AUDIO, |
| 279 | 278 | }, |
| 280 | − { NULL } | |
| 281 | 279 | }; |
| 282 | 280 | |
| 283 | 281 | const AVFilter ff_af_aloop = { |
| @@ -287,8 +285,8 @@ const AVFilter ff_af_aloop = { · 3 unmodified lines | ||
| 287 | 285 | .priv_class = &aloop_class, |
| 288 | 286 | .activate = aactivate, |
| 289 | 287 | .uninit = auninit, |
| 290 | − .inputs = ainputs, | |
| 291 | − .outputs = aoutputs, | |
| 288 | + FILTER_INPUTS(ainputs), | |
| 289 | + FILTER_OUTPUTS(aoutputs), | |
| 292 | 290 | }; |
| 293 | 291 | #endif /* CONFIG_ALOOP_FILTER */ |
| 294 | 292 | |
| @@ -442,7 +440,6 @@ static const AVFilterPad inputs[] = { · 147 unmodified lines | ||
| 442 | 440 | .name = "default", |
| 443 | 441 | .type = AVMEDIA_TYPE_VIDEO, |
| 444 | 442 | }, |
| 445 | − { NULL } | |
| 446 | 443 | }; |
| 447 | 444 | |
| 448 | 445 | static const AVFilterPad outputs[] = { |
| @@ -450,7 +447,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 450 | 447 | .name = "default", |
| 451 | 448 | .type = AVMEDIA_TYPE_VIDEO, |
| 452 | 449 | }, |
| 453 | − { NULL } | |
| 454 | 450 | }; |
| 455 | 451 | |
| 456 | 452 | const AVFilter ff_vf_loop = { |
| @@ -461,7 +457,7 @@ const AVFilter ff_vf_loop = { · 4 unmodified lines | ||
| 461 | 457 | .init = init, |
| 462 | 458 | .uninit = uninit, |
| 463 | 459 | .activate = activate, |
| 464 | − .inputs = inputs, | |
| 465 | − .outputs = outputs, | |
| 460 | + FILTER_INPUTS(inputs), | |
| 461 | + FILTER_OUTPUTS(outputs), | |
| 466 | 462 | }; |
| 467 | 463 | #endif /* CONFIG_LOOP_FILTER */ |
| @@ -373,7 +373,6 @@ static const AVFilterPad ainputs[] = { · 372 unmodified lines | ||
| 373 | 373 | .type = AVMEDIA_TYPE_AUDIO, |
| 374 | 374 | .filter_frame = filter_frame, |
| 375 | 375 | }, |
| 376 | − { NULL } | |
| 377 | 376 | }; |
| 378 | 377 | |
| 379 | 378 | static const AVFilterPad aoutputs[] = { |
| @@ -381,7 +380,6 @@ static const AVFilterPad aoutputs[] = { · 1 unmodified line | ||
| 381 | 380 | .name = "default", |
| 382 | 381 | .type = AVMEDIA_TYPE_AUDIO, |
| 383 | 382 | }, |
| 384 | − { NULL } | |
| 385 | 383 | }; |
| 386 | 384 | |
| 387 | 385 | const AVFilter ff_af_ametadata = { |
| @@ -391,8 +389,8 @@ const AVFilter ff_af_ametadata = { · 3 unmodified lines | ||
| 391 | 389 | .priv_class = &ametadata_class, |
| 392 | 390 | .init = init, |
| 393 | 391 | .uninit = uninit, |
| 394 | − .inputs = ainputs, | |
| 395 | − .outputs = aoutputs, | |
| 392 | + FILTER_INPUTS(ainputs), | |
| 393 | + FILTER_OUTPUTS(aoutputs), | |
| 396 | 394 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 397 | 395 | }; |
| 398 | 396 | #endif /* CONFIG_AMETADATA_FILTER */ |
| @@ -408,7 +406,6 @@ static const AVFilterPad inputs[] = { · 9 unmodified lines | ||
| 408 | 406 | .type = AVMEDIA_TYPE_VIDEO, |
| 409 | 407 | .filter_frame = filter_frame, |
| 410 | 408 | }, |
| 411 | − { NULL } | |
| 412 | 409 | }; |
| 413 | 410 | |
| 414 | 411 | static const AVFilterPad outputs[] = { |
| @@ -416,7 +413,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 416 | 413 | .name = "default", |
| 417 | 414 | .type = AVMEDIA_TYPE_VIDEO, |
| 418 | 415 | }, |
| 419 | − { NULL } | |
| 420 | 416 | }; |
| 421 | 417 | |
| 422 | 418 | const AVFilter ff_vf_metadata = { |
| @@ -426,8 +422,8 @@ const AVFilter ff_vf_metadata = { · 3 unmodified lines | ||
| 426 | 422 | .priv_class = &metadata_class, |
| 427 | 423 | .init = init, |
| 428 | 424 | .uninit = uninit, |
| 429 | − .inputs = inputs, | |
| 430 | − .outputs = outputs, | |
| 425 | + FILTER_INPUTS(inputs), | |
| 426 | + FILTER_OUTPUTS(outputs), | |
| 431 | 427 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 432 | 428 | }; |
| 433 | 429 | #endif /* CONFIG_METADATA_FILTER */ |
| @@ -122,7 +122,6 @@ static const AVFilterPad aperms_inputs[] = { · 121 unmodified lines | ||
| 122 | 122 | .type = AVMEDIA_TYPE_AUDIO, |
| 123 | 123 | .filter_frame = filter_frame, |
| 124 | 124 | }, |
| 125 | − { NULL } | |
| 126 | 125 | }; |
| 127 | 126 | |
| 128 | 127 | static const AVFilterPad aperms_outputs[] = { |
| @@ -130,7 +129,6 @@ static const AVFilterPad aperms_outputs[] = { · 1 unmodified line | ||
| 130 | 129 | .name = "default", |
| 131 | 130 | .type = AVMEDIA_TYPE_AUDIO, |
| 132 | 131 | }, |
| 133 | − { NULL } | |
| 134 | 132 | }; |
| 135 | 133 | |
| 136 | 134 | const AVFilter ff_af_aperms = { |
| @@ -138,8 +136,8 @@ const AVFilter ff_af_aperms = { · 1 unmodified line | ||
| 138 | 136 | .description = NULL_IF_CONFIG_SMALL("Set permissions for the output audio frame."), |
| 139 | 137 | .init = init, |
| 140 | 138 | .priv_size = sizeof(PermsContext), |
| 141 | − .inputs = aperms_inputs, | |
| 142 | − .outputs = aperms_outputs, | |
| 139 | + FILTER_INPUTS(aperms_inputs), | |
| 140 | + FILTER_OUTPUTS(aperms_outputs), | |
| 143 | 141 | .priv_class = &aperms_class, |
| 144 | 142 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 145 | 143 | }; |
| @@ -156,7 +154,6 @@ static const AVFilterPad perms_inputs[] = { · 10 unmodified lines | ||
| 156 | 154 | .type = AVMEDIA_TYPE_VIDEO, |
| 157 | 155 | .filter_frame = filter_frame, |
| 158 | 156 | }, |
| 159 | − { NULL } | |
| 160 | 157 | }; |
| 161 | 158 | |
| 162 | 159 | static const AVFilterPad perms_outputs[] = { |
| @@ -164,7 +161,6 @@ static const AVFilterPad perms_outputs[] = { · 1 unmodified line | ||
| 164 | 161 | .name = "default", |
| 165 | 162 | .type = AVMEDIA_TYPE_VIDEO, |
| 166 | 163 | }, |
| 167 | − { NULL } | |
| 168 | 164 | }; |
| 169 | 165 | |
| 170 | 166 | const AVFilter ff_vf_perms = { |
| @@ -172,8 +168,8 @@ const AVFilter ff_vf_perms = { · 1 unmodified line | ||
| 172 | 168 | .description = NULL_IF_CONFIG_SMALL("Set permissions for the output video frame."), |
| 173 | 169 | .init = init, |
| 174 | 170 | .priv_size = sizeof(PermsContext), |
| 175 | − .inputs = perms_inputs, | |
| 176 | − .outputs = perms_outputs, | |
| 171 | + FILTER_INPUTS(perms_inputs), | |
| 172 | + FILTER_OUTPUTS(perms_outputs), | |
| 177 | 173 | .priv_class = &perms_class, |
| 178 | 174 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 179 | 175 | }; |
| @@ -81,7 +81,6 @@ static const AVFilterPad avfilter_vf_realtime_inputs[] = { · 80 unmodified lines | ||
| 81 | 81 | .type = AVMEDIA_TYPE_VIDEO, |
| 82 | 82 | .filter_frame = filter_frame, |
| 83 | 83 | }, |
| 84 | − { NULL } | |
| 85 | 84 | }; |
| 86 | 85 | |
| 87 | 86 | static const AVFilterPad avfilter_vf_realtime_outputs[] = { |
| @@ -89,7 +88,6 @@ static const AVFilterPad avfilter_vf_realtime_outputs[] = { · 1 unmodified line | ||
| 89 | 88 | .name = "default", |
| 90 | 89 | .type = AVMEDIA_TYPE_VIDEO, |
| 91 | 90 | }, |
| 92 | − { NULL } | |
| 93 | 91 | }; |
| 94 | 92 | |
| 95 | 93 | const AVFilter ff_vf_realtime = { |
| @@ -97,8 +95,8 @@ const AVFilter ff_vf_realtime = { · 1 unmodified line | ||
| 97 | 95 | .description = NULL_IF_CONFIG_SMALL("Slow down filtering to match realtime."), |
| 98 | 96 | .priv_size = sizeof(RealtimeContext), |
| 99 | 97 | .priv_class = &realtime_class, |
| 100 | − .inputs = avfilter_vf_realtime_inputs, | |
| 101 | − .outputs = avfilter_vf_realtime_outputs, | |
| 98 | + FILTER_INPUTS(avfilter_vf_realtime_inputs), | |
| 99 | + FILTER_OUTPUTS(avfilter_vf_realtime_outputs), | |
| 102 | 100 | }; |
| 103 | 101 | #endif /* CONFIG_REALTIME_FILTER */ |
| 104 | 102 | |
| @@ -113,7 +111,6 @@ static const AVFilterPad arealtime_inputs[] = { · 8 unmodified lines | ||
| 113 | 111 | .type = AVMEDIA_TYPE_AUDIO, |
| 114 | 112 | .filter_frame = filter_frame, |
| 115 | 113 | }, |
| 116 | − { NULL } | |
| 117 | 114 | }; |
| 118 | 115 | |
| 119 | 116 | static const AVFilterPad arealtime_outputs[] = { |
| @@ -121,7 +118,6 @@ static const AVFilterPad arealtime_outputs[] = { · 1 unmodified line | ||
| 121 | 118 | .name = "default", |
| 122 | 119 | .type = AVMEDIA_TYPE_AUDIO, |
| 123 | 120 | }, |
| 124 | − { NULL } | |
| 125 | 121 | }; |
| 126 | 122 | |
| 127 | 123 | const AVFilter ff_af_arealtime = { |
| @@ -129,7 +125,7 @@ const AVFilter ff_af_arealtime = { · 1 unmodified line | ||
| 129 | 125 | .description = NULL_IF_CONFIG_SMALL("Slow down filtering to match realtime."), |
| 130 | 126 | .priv_size = sizeof(RealtimeContext), |
| 131 | 127 | .priv_class = &arealtime_class, |
| 132 | − .inputs = arealtime_inputs, | |
| 133 | − .outputs = arealtime_outputs, | |
| 128 | + FILTER_INPUTS(arealtime_inputs), | |
| 129 | + FILTER_OUTPUTS(arealtime_outputs), | |
| 134 | 130 | }; |
| 135 | 131 | #endif /* CONFIG_AREALTIME_FILTER */ |
| @@ -121,7 +121,6 @@ static const AVFilterPad reverse_inputs[] = { · 120 unmodified lines | ||
| 121 | 121 | .type = AVMEDIA_TYPE_VIDEO, |
| 122 | 122 | .filter_frame = filter_frame, |
| 123 | 123 | }, |
| 124 | − { NULL } | |
| 125 | 124 | }; |
| 126 | 125 | |
| 127 | 126 | static const AVFilterPad reverse_outputs[] = { |
| @@ -130,7 +129,6 @@ static const AVFilterPad reverse_outputs[] = { · 2 unmodified lines | ||
| 130 | 129 | .type = AVMEDIA_TYPE_VIDEO, |
| 131 | 130 | .request_frame = request_frame, |
| 132 | 131 | }, |
| 133 | − { NULL } | |
| 134 | 132 | }; |
| 135 | 133 | |
| 136 | 134 | const AVFilter ff_vf_reverse = { |
| @@ -139,8 +137,8 @@ const AVFilter ff_vf_reverse = { · 2 unmodified lines | ||
| 139 | 137 | .priv_size = sizeof(ReverseContext), |
| 140 | 138 | .init = init, |
| 141 | 139 | .uninit = uninit, |
| 142 | − .inputs = reverse_inputs, | |
| 143 | − .outputs = reverse_outputs, | |
| 140 | + FILTER_INPUTS(reverse_inputs), | |
| 141 | + FILTER_OUTPUTS(reverse_outputs), | |
| 144 | 142 | }; |
| 145 | 143 | |
| 146 | 144 | #endif /* CONFIG_REVERSE_FILTER */ |
| @@ -272,7 +270,6 @@ static const AVFilterPad areverse_inputs[] = { · 125 unmodified lines | ||
| 272 | 270 | .flags = AVFILTERPAD_FLAG_NEEDS_WRITABLE, |
| 273 | 271 | .filter_frame = filter_frame, |
| 274 | 272 | }, |
| 275 | − { NULL } | |
| 276 | 273 | }; |
| 277 | 274 | |
| 278 | 275 | static const AVFilterPad areverse_outputs[] = { |
| @@ -281,7 +278,6 @@ static const AVFilterPad areverse_outputs[] = { · 2 unmodified lines | ||
| 281 | 278 | .type = AVMEDIA_TYPE_AUDIO, |
| 282 | 279 | .request_frame = areverse_request_frame, |
| 283 | 280 | }, |
| 284 | − { NULL } | |
| 285 | 281 | }; |
| 286 | 282 | |
| 287 | 283 | const AVFilter ff_af_areverse = { |
| @@ -291,8 +287,8 @@ const AVFilter ff_af_areverse = { · 3 unmodified lines | ||
| 291 | 287 | .priv_size = sizeof(ReverseContext), |
| 292 | 288 | .init = init, |
| 293 | 289 | .uninit = uninit, |
| 294 | − .inputs = areverse_inputs, | |
| 295 | − .outputs = areverse_outputs, | |
| 290 | + FILTER_INPUTS(areverse_inputs), | |
| 291 | + FILTER_OUTPUTS(areverse_outputs), | |
| 296 | 292 | }; |
| 297 | 293 | |
| 298 | 294 | #endif /* CONFIG_AREVERSE_FILTER */ |
| @@ -277,7 +277,6 @@ static const AVFilterPad segment_inputs[] = { · 276 unmodified lines | ||
| 277 | 277 | .type = AVMEDIA_TYPE_VIDEO, |
| 278 | 278 | .config_props = config_input, |
| 279 | 279 | }, |
| 280 | − { NULL } | |
| 281 | 280 | }; |
| 282 | 281 | |
| 283 | 282 | const AVFilter ff_vf_segment = { |
| @@ -288,7 +287,7 @@ const AVFilter ff_vf_segment = { · 4 unmodified lines | ||
| 288 | 287 | .priv_size = sizeof(SegmentContext), |
| 289 | 288 | .priv_class = &segment_class, |
| 290 | 289 | .activate = activate, |
| 291 | − .inputs = segment_inputs, | |
| 290 | + FILTER_INPUTS(segment_inputs), | |
| 292 | 291 | .outputs = NULL, |
| 293 | 292 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 294 | 293 | }; |
| @@ -317,7 +316,6 @@ static const AVFilterPad asegment_inputs[] = { · 22 unmodified lines | ||
| 317 | 316 | .type = AVMEDIA_TYPE_AUDIO, |
| 318 | 317 | .config_props = config_input, |
| 319 | 318 | }, |
| 320 | − { NULL } | |
| 321 | 319 | }; |
| 322 | 320 | |
| 323 | 321 | const AVFilter ff_af_asegment = { |
| @@ -328,7 +326,7 @@ const AVFilter ff_af_asegment = { · 4 unmodified lines | ||
| 328 | 326 | .priv_size = sizeof(SegmentContext), |
| 329 | 327 | .priv_class = &asegment_class, |
| 330 | 328 | .activate = activate, |
| 331 | − .inputs = asegment_inputs, | |
| 329 | + FILTER_INPUTS(asegment_inputs), | |
| 332 | 330 | .outputs = NULL, |
| 333 | 331 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 334 | 332 | }; |
| @@ -473,7 +473,6 @@ static const AVFilterPad avfilter_af_aselect_inputs[] = { · 472 unmodified lines | ||
| 473 | 473 | .config_props = config_input, |
| 474 | 474 | .filter_frame = filter_frame, |
| 475 | 475 | }, |
| 476 | − { NULL } | |
| 477 | 476 | }; |
| 478 | 477 | |
| 479 | 478 | const AVFilter ff_af_aselect = { |
| @@ -482,7 +481,7 @@ const AVFilter ff_af_aselect = { · 2 unmodified lines | ||
| 482 | 481 | .init = aselect_init, |
| 483 | 482 | .uninit = uninit, |
| 484 | 483 | .priv_size = sizeof(SelectContext), |
| 485 | − .inputs = avfilter_af_aselect_inputs, | |
| 484 | + FILTER_INPUTS(avfilter_af_aselect_inputs), | |
| 486 | 485 | .priv_class = &aselect_class, |
| 487 | 486 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 488 | 487 | }; |
| @@ -529,7 +528,6 @@ static const AVFilterPad avfilter_vf_select_inputs[] = { · 40 unmodified lines | ||
| 529 | 528 | .config_props = config_input, |
| 530 | 529 | .filter_frame = filter_frame, |
| 531 | 530 | }, |
| 532 | − { NULL } | |
| 533 | 531 | }; |
| 534 | 532 | |
| 535 | 533 | const AVFilter ff_vf_select = { |
| @@ -540,7 +538,7 @@ const AVFilter ff_vf_select = { · 4 unmodified lines | ||
| 540 | 538 | .query_formats = query_formats, |
| 541 | 539 | .priv_size = sizeof(SelectContext), |
| 542 | 540 | .priv_class = &select_class, |
| 543 | − .inputs = avfilter_vf_select_inputs, | |
| 541 | + FILTER_INPUTS(avfilter_vf_select_inputs), | |
| 544 | 542 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 545 | 543 | }; |
| 546 | 544 | #endif /* CONFIG_SELECT_FILTER */ |
| @@ -583,7 +583,6 @@ static const AVFilterPad sendcmd_inputs[] = { · 582 unmodified lines | ||
| 583 | 583 | .type = AVMEDIA_TYPE_VIDEO, |
| 584 | 584 | .filter_frame = filter_frame, |
| 585 | 585 | }, |
| 586 | − { NULL } | |
| 587 | 586 | }; |
| 588 | 587 | |
| 589 | 588 | static const AVFilterPad sendcmd_outputs[] = { |
| @@ -591,7 +590,6 @@ static const AVFilterPad sendcmd_outputs[] = { · 1 unmodified line | ||
| 591 | 590 | .name = "default", |
| 592 | 591 | .type = AVMEDIA_TYPE_VIDEO, |
| 593 | 592 | }, |
| 594 | − { NULL } | |
| 595 | 593 | }; |
| 596 | 594 | |
| 597 | 595 | const AVFilter ff_vf_sendcmd = { |
| @@ -600,8 +598,8 @@ const AVFilter ff_vf_sendcmd = { · 2 unmodified lines | ||
| 600 | 598 | .init = init, |
| 601 | 599 | .uninit = uninit, |
| 602 | 600 | .priv_size = sizeof(SendCmdContext), |
| 603 | − .inputs = sendcmd_inputs, | |
| 604 | − .outputs = sendcmd_outputs, | |
| 601 | + FILTER_INPUTS(sendcmd_inputs), | |
| 602 | + FILTER_OUTPUTS(sendcmd_outputs), | |
| 605 | 603 | .priv_class = &sendcmd_class, |
| 606 | 604 | }; |
| 607 | 605 | |
| @@ -618,7 +616,6 @@ static const AVFilterPad asendcmd_inputs[] = { · 10 unmodified lines | ||
| 618 | 616 | .type = AVMEDIA_TYPE_AUDIO, |
| 619 | 617 | .filter_frame = filter_frame, |
| 620 | 618 | }, |
| 621 | − { NULL } | |
| 622 | 619 | }; |
| 623 | 620 | |
| 624 | 621 | static const AVFilterPad asendcmd_outputs[] = { |
| @@ -626,7 +623,6 @@ static const AVFilterPad asendcmd_outputs[] = { · 1 unmodified line | ||
| 626 | 623 | .name = "default", |
| 627 | 624 | .type = AVMEDIA_TYPE_AUDIO, |
| 628 | 625 | }, |
| 629 | − { NULL } | |
| 630 | 626 | }; |
| 631 | 627 | |
| 632 | 628 | const AVFilter ff_af_asendcmd = { |
| @@ -635,8 +631,8 @@ const AVFilter ff_af_asendcmd = { · 2 unmodified lines | ||
| 635 | 631 | .init = init, |
| 636 | 632 | .uninit = uninit, |
| 637 | 633 | .priv_size = sizeof(SendCmdContext), |
| 638 | − .inputs = asendcmd_inputs, | |
| 639 | − .outputs = asendcmd_outputs, | |
| 634 | + FILTER_INPUTS(asendcmd_inputs), | |
| 635 | + FILTER_OUTPUTS(asendcmd_outputs), | |
| 640 | 636 | .priv_class = &asendcmd_class, |
| 641 | 637 | }; |
| 642 | 638 | |
| @@ -130,7 +130,6 @@ static const AVFilterPad ainputs[] = { · 129 unmodified lines | ||
| 130 | 130 | .type = AVMEDIA_TYPE_AUDIO, |
| 131 | 131 | .filter_frame = filter_frame, |
| 132 | 132 | }, |
| 133 | − { NULL } | |
| 134 | 133 | }; |
| 135 | 134 | |
| 136 | 135 | static const AVFilterPad aoutputs[] = { |
| @@ -138,7 +137,6 @@ static const AVFilterPad aoutputs[] = { · 1 unmodified line | ||
| 138 | 137 | .name = "default", |
| 139 | 138 | .type = AVMEDIA_TYPE_AUDIO, |
| 140 | 139 | }, |
| 141 | − { NULL } | |
| 142 | 140 | }; |
| 143 | 141 | |
| 144 | 142 | const AVFilter ff_af_asidedata = { |
| @@ -147,8 +145,8 @@ const AVFilter ff_af_asidedata = { · 2 unmodified lines | ||
| 147 | 145 | .priv_size = sizeof(SideDataContext), |
| 148 | 146 | .priv_class = &asidedata_class, |
| 149 | 147 | .init = init, |
| 150 | − .inputs = ainputs, | |
| 151 | − .outputs = aoutputs, | |
| 148 | + FILTER_INPUTS(ainputs), | |
| 149 | + FILTER_OUTPUTS(aoutputs), | |
| 152 | 150 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 153 | 151 | }; |
| 154 | 152 | #endif /* CONFIG_ASIDEDATA_FILTER */ |
| @@ -164,7 +162,6 @@ static const AVFilterPad inputs[] = { · 9 unmodified lines | ||
| 164 | 162 | .type = AVMEDIA_TYPE_VIDEO, |
| 165 | 163 | .filter_frame = filter_frame, |
| 166 | 164 | }, |
| 167 | − { NULL } | |
| 168 | 165 | }; |
| 169 | 166 | |
| 170 | 167 | static const AVFilterPad outputs[] = { |
| @@ -172,7 +169,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 172 | 169 | .name = "default", |
| 173 | 170 | .type = AVMEDIA_TYPE_VIDEO, |
| 174 | 171 | }, |
| 175 | − { NULL } | |
| 176 | 172 | }; |
| 177 | 173 | |
| 178 | 174 | const AVFilter ff_vf_sidedata = { |
| @@ -181,8 +177,8 @@ const AVFilter ff_vf_sidedata = { · 2 unmodified lines | ||
| 181 | 177 | .priv_size = sizeof(SideDataContext), |
| 182 | 178 | .priv_class = &sidedata_class, |
| 183 | 179 | .init = init, |
| 184 | − .inputs = inputs, | |
| 185 | − .outputs = outputs, | |
| 180 | + FILTER_INPUTS(inputs), | |
| 181 | + FILTER_OUTPUTS(outputs), | |
| 186 | 182 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 187 | 183 | }; |
| 188 | 184 | #endif /* CONFIG_SIDEDATA_FILTER */ |
| @@ -214,7 +214,6 @@ static const AVFilterPad zmq_inputs[] = { · 213 unmodified lines | ||
| 214 | 214 | .type = AVMEDIA_TYPE_VIDEO, |
| 215 | 215 | .filter_frame = filter_frame, |
| 216 | 216 | }, |
| 217 | − { NULL } | |
| 218 | 217 | }; |
| 219 | 218 | |
| 220 | 219 | static const AVFilterPad zmq_outputs[] = { |
| @@ -222,7 +221,6 @@ static const AVFilterPad zmq_outputs[] = { · 1 unmodified line | ||
| 222 | 221 | .name = "default", |
| 223 | 222 | .type = AVMEDIA_TYPE_VIDEO, |
| 224 | 223 | }, |
| 225 | − { NULL } | |
| 226 | 224 | }; |
| 227 | 225 | |
| 228 | 226 | const AVFilter ff_vf_zmq = { |
| @@ -231,8 +229,8 @@ const AVFilter ff_vf_zmq = { · 2 unmodified lines | ||
| 231 | 229 | .init = init, |
| 232 | 230 | .uninit = uninit, |
| 233 | 231 | .priv_size = sizeof(ZMQContext), |
| 234 | − .inputs = zmq_inputs, | |
| 235 | − .outputs = zmq_outputs, | |
| 232 | + FILTER_INPUTS(zmq_inputs), | |
| 233 | + FILTER_OUTPUTS(zmq_outputs), | |
| 236 | 234 | .priv_class = &zmq_class, |
| 237 | 235 | }; |
| 238 | 236 | |
| @@ -249,7 +247,6 @@ static const AVFilterPad azmq_inputs[] = { · 10 unmodified lines | ||
| 249 | 247 | .type = AVMEDIA_TYPE_AUDIO, |
| 250 | 248 | .filter_frame = filter_frame, |
| 251 | 249 | }, |
| 252 | − { NULL } | |
| 253 | 250 | }; |
| 254 | 251 | |
| 255 | 252 | static const AVFilterPad azmq_outputs[] = { |
| @@ -257,7 +254,6 @@ static const AVFilterPad azmq_outputs[] = { · 1 unmodified line | ||
| 257 | 254 | .name = "default", |
| 258 | 255 | .type = AVMEDIA_TYPE_AUDIO, |
| 259 | 256 | }, |
| 260 | − { NULL } | |
| 261 | 257 | }; |
| 262 | 258 | |
| 263 | 259 | const AVFilter ff_af_azmq = { |
| @@ -266,8 +262,8 @@ const AVFilter ff_af_azmq = { · 2 unmodified lines | ||
| 266 | 262 | .init = init, |
| 267 | 263 | .uninit = uninit, |
| 268 | 264 | .priv_size = sizeof(ZMQContext), |
| 269 | − .inputs = azmq_inputs, | |
| 270 | − .outputs = azmq_outputs, | |
| 265 | + FILTER_INPUTS(azmq_inputs), | |
| 266 | + FILTER_OUTPUTS(azmq_outputs), | |
| 271 | 267 | .priv_class = &azmq_class, |
| 272 | 268 | }; |
| 273 | 269 | |
| @@ -116,7 +116,6 @@ static const AVFilterPad avfilter_vf_fifo_inputs[] = { · 115 unmodified lines | ||
| 116 | 116 | .type = AVMEDIA_TYPE_VIDEO, |
| 117 | 117 | .filter_frame = add_to_queue, |
| 118 | 118 | }, |
| 119 | − { NULL } | |
| 120 | 119 | }; |
| 121 | 120 | |
| 122 | 121 | static const AVFilterPad avfilter_vf_fifo_outputs[] = { |
| @@ -125,7 +124,6 @@ static const AVFilterPad avfilter_vf_fifo_outputs[] = { · 2 unmodified lines | ||
| 125 | 124 | .type = AVMEDIA_TYPE_VIDEO, |
| 126 | 125 | .request_frame = request_frame, |
| 127 | 126 | }, |
| 128 | − { NULL } | |
| 129 | 127 | }; |
| 130 | 128 | |
| 131 | 129 | const AVFilter ff_vf_fifo = { |
| @@ -134,8 +132,8 @@ const AVFilter ff_vf_fifo = { · 2 unmodified lines | ||
| 134 | 132 | .init = init, |
| 135 | 133 | .uninit = uninit, |
| 136 | 134 | .priv_size = sizeof(FifoContext), |
| 137 | − .inputs = avfilter_vf_fifo_inputs, | |
| 138 | − .outputs = avfilter_vf_fifo_outputs, | |
| 135 | + FILTER_INPUTS(avfilter_vf_fifo_inputs), | |
| 136 | + FILTER_OUTPUTS(avfilter_vf_fifo_outputs), | |
| 139 | 137 | }; |
| 140 | 138 | |
| 141 | 139 | static const AVFilterPad avfilter_af_afifo_inputs[] = { |
| @@ -144,7 +142,6 @@ static const AVFilterPad avfilter_af_afifo_inputs[] = { · 2 unmodified lines | ||
| 144 | 142 | .type = AVMEDIA_TYPE_AUDIO, |
| 145 | 143 | .filter_frame = add_to_queue, |
| 146 | 144 | }, |
| 147 | − { NULL } | |
| 148 | 145 | }; |
| 149 | 146 | |
| 150 | 147 | static const AVFilterPad avfilter_af_afifo_outputs[] = { |
| @@ -153,7 +150,6 @@ static const AVFilterPad avfilter_af_afifo_outputs[] = { · 2 unmodified lines | ||
| 153 | 150 | .type = AVMEDIA_TYPE_AUDIO, |
| 154 | 151 | .request_frame = request_frame, |
| 155 | 152 | }, |
| 156 | − { NULL } | |
| 157 | 153 | }; |
| 158 | 154 | |
| 159 | 155 | const AVFilter ff_af_afifo = { |
| @@ -162,6 +158,6 @@ const AVFilter ff_af_afifo = { · 2 unmodified lines | ||
| 162 | 158 | .init = init, |
| 163 | 159 | .uninit = uninit, |
| 164 | 160 | .priv_size = sizeof(FifoContext), |
| 165 | − .inputs = avfilter_af_afifo_inputs, | |
| 166 | − .outputs = avfilter_af_afifo_outputs, | |
| 161 | + FILTER_INPUTS(avfilter_af_afifo_inputs), | |
| 162 | + FILTER_OUTPUTS(avfilter_af_afifo_outputs), | |
| 167 | 163 | }; |
| @@ -141,6 +141,12 @@ static av_always_inline int ff_filter_execute(AVFilterContext *ctx, avfilter_act · 140 unmodified lines | ||
| 141 | 141 | return ctx->internal->execute(ctx, func, arg, ret, nb_jobs); |
| 142 | 142 | } |
| 143 | 143 | |
| 144 | +#define FILTER_INOUTPADS(inout, array) \ | |
| 145 | + .inout = array, \ | |
| 146 | + .nb_ ## inout = FF_ARRAY_ELEMS(array) | |
| 147 | +#define FILTER_INPUTS(array) FILTER_INOUTPADS(inputs, (array)) | |
| 148 | +#define FILTER_OUTPUTS(array) FILTER_INOUTPADS(outputs, (array)) | |
| 149 | + | |
| 144 | 150 | /** |
| 145 | 151 | * Tell if an integer is contained in the provided -1-terminated list of integers. |
| 146 | 152 | * This is useful for determining (for instance) if an AVPixelFormat is in an |
| @@ -279,7 +279,6 @@ static const AVFilterPad avfilter_vf_setpts_inputs[] = { · 278 unmodified lines | ||
| 279 | 279 | .type = AVMEDIA_TYPE_VIDEO, |
| 280 | 280 | .config_props = config_input, |
| 281 | 281 | }, |
| 282 | − { NULL } | |
| 283 | 282 | }; |
| 284 | 283 | |
| 285 | 284 | static const AVFilterPad avfilter_vf_setpts_outputs[] = { |
| @@ -287,7 +286,6 @@ static const AVFilterPad avfilter_vf_setpts_outputs[] = { · 1 unmodified line | ||
| 287 | 286 | .name = "default", |
| 288 | 287 | .type = AVMEDIA_TYPE_VIDEO, |
| 289 | 288 | }, |
| 290 | − { NULL } | |
| 291 | 289 | }; |
| 292 | 290 | |
| 293 | 291 | const AVFilter ff_vf_setpts = { |
| @@ -300,8 +298,8 @@ const AVFilter ff_vf_setpts = { · 6 unmodified lines | ||
| 300 | 298 | .priv_size = sizeof(SetPTSContext), |
| 301 | 299 | .priv_class = &setpts_class, |
| 302 | 300 | |
| 303 | − .inputs = avfilter_vf_setpts_inputs, | |
| 304 | − .outputs = avfilter_vf_setpts_outputs, | |
| 301 | + FILTER_INPUTS(avfilter_vf_setpts_inputs), | |
| 302 | + FILTER_OUTPUTS(avfilter_vf_setpts_outputs), | |
| 305 | 303 | }; |
| 306 | 304 | #endif /* CONFIG_SETPTS_FILTER */ |
| 307 | 305 | |
| @@ -319,7 +317,6 @@ static const AVFilterPad asetpts_inputs[] = { · 11 unmodified lines | ||
| 319 | 317 | .type = AVMEDIA_TYPE_AUDIO, |
| 320 | 318 | .config_props = config_input, |
| 321 | 319 | }, |
| 322 | − { NULL } | |
| 323 | 320 | }; |
| 324 | 321 | |
| 325 | 322 | static const AVFilterPad asetpts_outputs[] = { |
| @@ -327,7 +324,6 @@ static const AVFilterPad asetpts_outputs[] = { · 1 unmodified line | ||
| 327 | 324 | .name = "default", |
| 328 | 325 | .type = AVMEDIA_TYPE_AUDIO, |
| 329 | 326 | }, |
| 330 | − { NULL } | |
| 331 | 327 | }; |
| 332 | 328 | |
| 333 | 329 | const AVFilter ff_af_asetpts = { |
| @@ -338,7 +334,7 @@ const AVFilter ff_af_asetpts = { · 4 unmodified lines | ||
| 338 | 334 | .uninit = uninit, |
| 339 | 335 | .priv_size = sizeof(SetPTSContext), |
| 340 | 336 | .priv_class = &asetpts_class, |
| 341 | − .inputs = asetpts_inputs, | |
| 342 | − .outputs = asetpts_outputs, | |
| 337 | + FILTER_INPUTS(asetpts_inputs), | |
| 338 | + FILTER_OUTPUTS(asetpts_outputs), | |
| 343 | 339 | }; |
| 344 | 340 | #endif /* CONFIG_ASETPTS_FILTER */ |
| @@ -167,7 +167,6 @@ static const AVFilterPad avfilter_vf_settb_inputs[] = { · 166 unmodified lines | ||
| 167 | 167 | .name = "default", |
| 168 | 168 | .type = AVMEDIA_TYPE_VIDEO, |
| 169 | 169 | }, |
| 170 | − { NULL } | |
| 171 | 170 | }; |
| 172 | 171 | |
| 173 | 172 | static const AVFilterPad avfilter_vf_settb_outputs[] = { |
| @@ -176,7 +175,6 @@ static const AVFilterPad avfilter_vf_settb_outputs[] = { · 2 unmodified lines | ||
| 176 | 175 | .type = AVMEDIA_TYPE_VIDEO, |
| 177 | 176 | .config_props = config_output_props, |
| 178 | 177 | }, |
| 179 | − { NULL } | |
| 180 | 178 | }; |
| 181 | 179 | |
| 182 | 180 | const AVFilter ff_vf_settb = { |
| @@ -184,8 +182,8 @@ const AVFilter ff_vf_settb = { · 1 unmodified line | ||
| 184 | 182 | .description = NULL_IF_CONFIG_SMALL("Set timebase for the video output link."), |
| 185 | 183 | .priv_size = sizeof(SetTBContext), |
| 186 | 184 | .priv_class = &settb_class, |
| 187 | − .inputs = avfilter_vf_settb_inputs, | |
| 188 | − .outputs = avfilter_vf_settb_outputs, | |
| 185 | + FILTER_INPUTS(avfilter_vf_settb_inputs), | |
| 186 | + FILTER_OUTPUTS(avfilter_vf_settb_outputs), | |
| 189 | 187 | .activate = activate, |
| 190 | 188 | }; |
| 191 | 189 | #endif /* CONFIG_SETTB_FILTER */ |
| @@ -200,7 +198,6 @@ static const AVFilterPad avfilter_af_asettb_inputs[] = { · 8 unmodified lines | ||
| 200 | 198 | .name = "default", |
| 201 | 199 | .type = AVMEDIA_TYPE_AUDIO, |
| 202 | 200 | }, |
| 203 | − { NULL } | |
| 204 | 201 | }; |
| 205 | 202 | |
| 206 | 203 | static const AVFilterPad avfilter_af_asettb_outputs[] = { |
| @@ -209,15 +206,14 @@ static const AVFilterPad avfilter_af_asettb_outputs[] = { · 2 unmodified lines | ||
| 209 | 206 | .type = AVMEDIA_TYPE_AUDIO, |
| 210 | 207 | .config_props = config_output_props, |
| 211 | 208 | }, |
| 212 | − { NULL } | |
| 213 | 209 | }; |
| 214 | 210 | |
| 215 | 211 | const AVFilter ff_af_asettb = { |
| 216 | 212 | .name = "asettb", |
| 217 | 213 | .description = NULL_IF_CONFIG_SMALL("Set timebase for the audio output link."), |
| 218 | 214 | .priv_size = sizeof(SetTBContext), |
| 219 | − .inputs = avfilter_af_asettb_inputs, | |
| 220 | − .outputs = avfilter_af_asettb_outputs, | |
| 215 | + FILTER_INPUTS(avfilter_af_asettb_inputs), | |
| 216 | + FILTER_OUTPUTS(avfilter_af_asettb_outputs), | |
| 221 | 217 | .priv_class = &asettb_class, |
| 222 | 218 | .activate = activate, |
| 223 | 219 | }; |
| @@ -116,7 +116,6 @@ static const AVFilterPad avfilter_vf_split_inputs[] = { · 115 unmodified lines | ||
| 116 | 116 | .type = AVMEDIA_TYPE_VIDEO, |
| 117 | 117 | .filter_frame = filter_frame, |
| 118 | 118 | }, |
| 119 | − { NULL } | |
| 120 | 119 | }; |
| 121 | 120 | |
| 122 | 121 | const AVFilter ff_vf_split = { |
| @@ -126,7 +125,7 @@ const AVFilter ff_vf_split = { · 3 unmodified lines | ||
| 126 | 125 | .priv_class = &split_class, |
| 127 | 126 | .init = split_init, |
| 128 | 127 | .uninit = split_uninit, |
| 129 | − .inputs = avfilter_vf_split_inputs, | |
| 128 | + FILTER_INPUTS(avfilter_vf_split_inputs), | |
| 130 | 129 | .outputs = NULL, |
| 131 | 130 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 132 | 131 | }; |
| @@ -137,7 +136,6 @@ static const AVFilterPad avfilter_af_asplit_inputs[] = { · 4 unmodified lines | ||
| 137 | 136 | .type = AVMEDIA_TYPE_AUDIO, |
| 138 | 137 | .filter_frame = filter_frame, |
| 139 | 138 | }, |
| 140 | − { NULL } | |
| 141 | 139 | }; |
| 142 | 140 | |
| 143 | 141 | const AVFilter ff_af_asplit = { |
| @@ -147,7 +145,7 @@ const AVFilter ff_af_asplit = { · 3 unmodified lines | ||
| 147 | 145 | .priv_class = &asplit_class, |
| 148 | 146 | .init = split_init, |
| 149 | 147 | .uninit = split_uninit, |
| 150 | − .inputs = avfilter_af_asplit_inputs, | |
| 148 | + FILTER_INPUTS(avfilter_af_asplit_inputs), | |
| 151 | 149 | .outputs = NULL, |
| 152 | 150 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 153 | 151 | }; |
| @@ -195,7 +195,6 @@ static const AVFilterPad trim_inputs[] = { · 194 unmodified lines | ||
| 195 | 195 | .filter_frame = trim_filter_frame, |
| 196 | 196 | .config_props = config_input, |
| 197 | 197 | }, |
| 198 | − { NULL } | |
| 199 | 198 | }; |
| 200 | 199 | |
| 201 | 200 | static const AVFilterPad trim_outputs[] = { |
| @@ -203,7 +202,6 @@ static const AVFilterPad trim_outputs[] = { · 1 unmodified line | ||
| 203 | 202 | .name = "default", |
| 204 | 203 | .type = AVMEDIA_TYPE_VIDEO, |
| 205 | 204 | }, |
| 206 | − { NULL } | |
| 207 | 205 | }; |
| 208 | 206 | |
| 209 | 207 | const AVFilter ff_vf_trim = { |
| @@ -212,8 +210,8 @@ const AVFilter ff_vf_trim = { · 2 unmodified lines | ||
| 212 | 210 | .init = init, |
| 213 | 211 | .priv_size = sizeof(TrimContext), |
| 214 | 212 | .priv_class = &trim_class, |
| 215 | − .inputs = trim_inputs, | |
| 216 | − .outputs = trim_outputs, | |
| 213 | + FILTER_INPUTS(trim_inputs), | |
| 214 | + FILTER_OUTPUTS(trim_outputs), | |
| 217 | 215 | }; |
| 218 | 216 | #endif // CONFIG_TRIM_FILTER |
| 219 | 217 | |
| @@ -350,7 +348,6 @@ static const AVFilterPad atrim_inputs[] = { · 130 unmodified lines | ||
| 350 | 348 | .filter_frame = atrim_filter_frame, |
| 351 | 349 | .config_props = config_input, |
| 352 | 350 | }, |
| 353 | − { NULL } | |
| 354 | 351 | }; |
| 355 | 352 | |
| 356 | 353 | static const AVFilterPad atrim_outputs[] = { |
| @@ -358,7 +355,6 @@ static const AVFilterPad atrim_outputs[] = { · 1 unmodified line | ||
| 358 | 355 | .name = "default", |
| 359 | 356 | .type = AVMEDIA_TYPE_AUDIO, |
| 360 | 357 | }, |
| 361 | − { NULL } | |
| 362 | 358 | }; |
| 363 | 359 | |
| 364 | 360 | const AVFilter ff_af_atrim = { |
| @@ -367,7 +363,7 @@ const AVFilter ff_af_atrim = { · 2 unmodified lines | ||
| 367 | 363 | .init = init, |
| 368 | 364 | .priv_size = sizeof(TrimContext), |
| 369 | 365 | .priv_class = &atrim_class, |
| 370 | − .inputs = atrim_inputs, | |
| 371 | − .outputs = atrim_outputs, | |
| 366 | + FILTER_INPUTS(atrim_inputs), | |
| 367 | + FILTER_OUTPUTS(atrim_outputs), | |
| 372 | 368 | }; |
| 373 | 369 | #endif // CONFIG_ATRIM_FILTER |
| @@ -532,7 +532,6 @@ static const AVFilterPad spectrumsynth_inputs[] = { · 531 unmodified lines | ||
| 532 | 532 | .name = "phase", |
| 533 | 533 | .type = AVMEDIA_TYPE_VIDEO, |
| 534 | 534 | }, |
| 535 | − { NULL } | |
| 536 | 535 | }; |
| 537 | 536 | |
| 538 | 537 | static const AVFilterPad spectrumsynth_outputs[] = { |
| @@ -541,7 +540,6 @@ static const AVFilterPad spectrumsynth_outputs[] = { · 2 unmodified lines | ||
| 541 | 540 | .type = AVMEDIA_TYPE_AUDIO, |
| 542 | 541 | .config_props = config_output, |
| 543 | 542 | }, |
| 544 | − { NULL } | |
| 545 | 543 | }; |
| 546 | 544 | |
| 547 | 545 | const AVFilter ff_vaf_spectrumsynth = { |
| @@ -551,7 +549,7 @@ const AVFilter ff_vaf_spectrumsynth = { · 3 unmodified lines | ||
| 551 | 549 | .query_formats = query_formats, |
| 552 | 550 | .activate = activate, |
| 553 | 551 | .priv_size = sizeof(SpectrumSynthContext), |
| 554 | − .inputs = spectrumsynth_inputs, | |
| 555 | − .outputs = spectrumsynth_outputs, | |
| 552 | + FILTER_INPUTS(spectrumsynth_inputs), | |
| 553 | + FILTER_OUTPUTS(spectrumsynth_outputs), | |
| 556 | 554 | .priv_class = &spectrumsynth_class, |
| 557 | 555 | }; |
| @@ -244,7 +244,6 @@ static const AVFilterPad addroi_inputs[] = { · 243 unmodified lines | ||
| 244 | 244 | .config_props = addroi_config_input, |
| 245 | 245 | .filter_frame = addroi_filter_frame, |
| 246 | 246 | }, |
| 247 | − { NULL } | |
| 248 | 247 | }; |
| 249 | 248 | |
| 250 | 249 | static const AVFilterPad addroi_outputs[] = { |
| @@ -252,7 +251,6 @@ static const AVFilterPad addroi_outputs[] = { · 1 unmodified line | ||
| 252 | 251 | .name = "default", |
| 253 | 252 | .type = AVMEDIA_TYPE_VIDEO, |
| 254 | 253 | }, |
| 255 | − { NULL } | |
| 256 | 254 | }; |
| 257 | 255 | |
| 258 | 256 | const AVFilter ff_vf_addroi = { |
| @@ -264,6 +262,6 @@ const AVFilter ff_vf_addroi = { · 5 unmodified lines | ||
| 264 | 262 | .priv_size = sizeof(AddROIContext), |
| 265 | 263 | .priv_class = &addroi_class, |
| 266 | 264 | |
| 267 | − .inputs = addroi_inputs, | |
| 268 | − .outputs = addroi_outputs, | |
| 265 | + FILTER_INPUTS(addroi_inputs), | |
| 266 | + FILTER_OUTPUTS(addroi_outputs), | |
| 269 | 267 | }; |
| @@ -170,7 +170,6 @@ static const AVFilterPad alphamerge_inputs[] = { · 169 unmodified lines | ||
| 170 | 170 | .name = "alpha", |
| 171 | 171 | .type = AVMEDIA_TYPE_VIDEO, |
| 172 | 172 | }, |
| 173 | − { NULL } | |
| 174 | 173 | }; |
| 175 | 174 | |
| 176 | 175 | static const AVFilterPad alphamerge_outputs[] = { |
| @@ -179,7 +178,6 @@ static const AVFilterPad alphamerge_outputs[] = { · 2 unmodified lines | ||
| 179 | 178 | .type = AVMEDIA_TYPE_VIDEO, |
| 180 | 179 | .config_props = config_output, |
| 181 | 180 | }, |
| 182 | − { NULL } | |
| 183 | 181 | }; |
| 184 | 182 | |
| 185 | 183 | static const AVOption alphamerge_options[] = { |
| @@ -197,8 +195,8 @@ const AVFilter ff_vf_alphamerge = { · 11 unmodified lines | ||
| 197 | 195 | .priv_class = &alphamerge_class, |
| 198 | 196 | .init = init, |
| 199 | 197 | .query_formats = query_formats, |
| 200 | − .inputs = alphamerge_inputs, | |
| 201 | − .outputs = alphamerge_outputs, | |
| 198 | + FILTER_INPUTS(alphamerge_inputs), | |
| 199 | + FILTER_OUTPUTS(alphamerge_outputs), | |
| 202 | 200 | .uninit = uninit, |
| 203 | 201 | .activate = activate, |
| 204 | 202 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| @@ -297,7 +297,6 @@ static const AVFilterPad inputs[] = { · 296 unmodified lines | ||
| 297 | 297 | .type = AVMEDIA_TYPE_VIDEO, |
| 298 | 298 | .filter_frame = filter_frame, |
| 299 | 299 | }, |
| 300 | − { NULL } | |
| 301 | 300 | }; |
| 302 | 301 | |
| 303 | 302 | static const AVFilterPad outputs[] = { |
| @@ -306,7 +305,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 306 | 305 | .type = AVMEDIA_TYPE_VIDEO, |
| 307 | 306 | .config_props = config_output, |
| 308 | 307 | }, |
| 309 | − { NULL } | |
| 310 | 308 | }; |
| 311 | 309 | |
| 312 | 310 | AVFILTER_DEFINE_CLASS(amplify); |
| @@ -317,8 +315,8 @@ const AVFilter ff_vf_amplify = { · 4 unmodified lines | ||
| 317 | 315 | .priv_size = sizeof(AmplifyContext), |
| 318 | 316 | .priv_class = &lify_class, |
| 319 | 317 | .query_formats = query_formats, |
| 320 | − .outputs = outputs, | |
| 321 | − .inputs = inputs, | |
| 318 | + FILTER_OUTPUTS(outputs), | |
| 319 | + FILTER_INPUTS(inputs), | |
| 322 | 320 | .init = init, |
| 323 | 321 | .uninit = uninit, |
| 324 | 322 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -173,7 +173,6 @@ static const AVFilterPad avfilter_vf_setdar_inputs[] = { · 172 unmodified lines | ||
| 173 | 173 | .type = AVMEDIA_TYPE_VIDEO, |
| 174 | 174 | .filter_frame = filter_frame, |
| 175 | 175 | }, |
| 176 | − { NULL } | |
| 177 | 176 | }; |
| 178 | 177 | |
| 179 | 178 | static const AVFilterPad avfilter_vf_setdar_outputs[] = { |
| @@ -182,7 +181,6 @@ static const AVFilterPad avfilter_vf_setdar_outputs[] = { · 2 unmodified lines | ||
| 182 | 181 | .type = AVMEDIA_TYPE_VIDEO, |
| 183 | 182 | .config_props = setdar_config_props, |
| 184 | 183 | }, |
| 185 | − { NULL } | |
| 186 | 184 | }; |
| 187 | 185 | |
| 188 | 186 | const AVFilter ff_vf_setdar = { |
| @@ -190,8 +188,8 @@ const AVFilter ff_vf_setdar = { · 1 unmodified line | ||
| 190 | 188 | .description = NULL_IF_CONFIG_SMALL("Set the frame display aspect ratio."), |
| 191 | 189 | .priv_size = sizeof(AspectContext), |
| 192 | 190 | .priv_class = &setdar_class, |
| 193 | − .inputs = avfilter_vf_setdar_inputs, | |
| 194 | − .outputs = avfilter_vf_setdar_outputs, | |
| 191 | + FILTER_INPUTS(avfilter_vf_setdar_inputs), | |
| 192 | + FILTER_OUTPUTS(avfilter_vf_setdar_outputs), | |
| 195 | 193 | }; |
| 196 | 194 | |
| 197 | 195 | #endif /* CONFIG_SETDAR_FILTER */ |
| @@ -237,7 +235,6 @@ static const AVFilterPad avfilter_vf_setsar_inputs[] = { · 39 unmodified lines | ||
| 237 | 235 | .type = AVMEDIA_TYPE_VIDEO, |
| 238 | 236 | .filter_frame = filter_frame, |
| 239 | 237 | }, |
| 240 | − { NULL } | |
| 241 | 238 | }; |
| 242 | 239 | |
| 243 | 240 | static const AVFilterPad avfilter_vf_setsar_outputs[] = { |
| @@ -246,7 +243,6 @@ static const AVFilterPad avfilter_vf_setsar_outputs[] = { · 2 unmodified lines | ||
| 246 | 243 | .type = AVMEDIA_TYPE_VIDEO, |
| 247 | 244 | .config_props = setsar_config_props, |
| 248 | 245 | }, |
| 249 | − { NULL } | |
| 250 | 246 | }; |
| 251 | 247 | |
| 252 | 248 | const AVFilter ff_vf_setsar = { |
| @@ -254,8 +250,8 @@ const AVFilter ff_vf_setsar = { · 1 unmodified line | ||
| 254 | 250 | .description = NULL_IF_CONFIG_SMALL("Set the pixel sample aspect ratio."), |
| 255 | 251 | .priv_size = sizeof(AspectContext), |
| 256 | 252 | .priv_class = &setsar_class, |
| 257 | − .inputs = avfilter_vf_setsar_inputs, | |
| 258 | − .outputs = avfilter_vf_setsar_outputs, | |
| 253 | + FILTER_INPUTS(avfilter_vf_setsar_inputs), | |
| 254 | + FILTER_OUTPUTS(avfilter_vf_setsar_outputs), | |
| 259 | 255 | }; |
| 260 | 256 | |
| 261 | 257 | #endif /* CONFIG_SETSAR_FILTER */ |
| @@ -557,7 +557,6 @@ static const AVFilterPad inputs[] = { · 556 unmodified lines | ||
| 557 | 557 | .filter_frame = filter_frame, |
| 558 | 558 | .config_props = config_input, |
| 559 | 559 | }, |
| 560 | − { NULL } | |
| 561 | 560 | }; |
| 562 | 561 | |
| 563 | 562 | static const AVFilterPad outputs[] = { |
| @@ -566,7 +565,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 566 | 565 | .type = AVMEDIA_TYPE_VIDEO, |
| 567 | 566 | .request_frame = request_frame, |
| 568 | 567 | }, |
| 569 | − { NULL } | |
| 570 | 568 | }; |
| 571 | 569 | |
| 572 | 570 | const AVFilter ff_vf_atadenoise = { |
| @@ -577,8 +575,8 @@ const AVFilter ff_vf_atadenoise = { · 4 unmodified lines | ||
| 577 | 575 | .init = init, |
| 578 | 576 | .uninit = uninit, |
| 579 | 577 | .query_formats = query_formats, |
| 580 | − .inputs = inputs, | |
| 581 | − .outputs = outputs, | |
| 578 | + FILTER_INPUTS(inputs), | |
| 579 | + FILTER_OUTPUTS(outputs), | |
| 582 | 580 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 583 | 581 | .process_command = process_command, |
| 584 | 582 | }; |
| @@ -304,7 +304,6 @@ static const AVFilterPad avgblur_inputs[] = { · 303 unmodified lines | ||
| 304 | 304 | .config_props = config_input, |
| 305 | 305 | .filter_frame = filter_frame, |
| 306 | 306 | }, |
| 307 | − { NULL } | |
| 308 | 307 | }; |
| 309 | 308 | |
| 310 | 309 | static const AVFilterPad avgblur_outputs[] = { |
| @@ -312,7 +311,6 @@ static const AVFilterPad avgblur_outputs[] = { · 1 unmodified line | ||
| 312 | 311 | .name = "default", |
| 313 | 312 | .type = AVMEDIA_TYPE_VIDEO, |
| 314 | 313 | }, |
| 315 | − { NULL } | |
| 316 | 314 | }; |
| 317 | 315 | |
| 318 | 316 | const AVFilter ff_vf_avgblur = { |
| @@ -322,8 +320,8 @@ const AVFilter ff_vf_avgblur = { · 3 unmodified lines | ||
| 322 | 320 | .priv_class = &avgblur_class, |
| 323 | 321 | .uninit = uninit, |
| 324 | 322 | .query_formats = query_formats, |
| 325 | − .inputs = avgblur_inputs, | |
| 326 | − .outputs = avgblur_outputs, | |
| 323 | + FILTER_INPUTS(avgblur_inputs), | |
| 324 | + FILTER_OUTPUTS(avgblur_outputs), | |
| 327 | 325 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 328 | 326 | .process_command = ff_filter_process_command, |
| 329 | 327 | }; |
| @@ -311,7 +311,6 @@ static const AVFilterPad avgblur_opencl_inputs[] = { · 310 unmodified lines | ||
| 311 | 311 | .filter_frame = &avgblur_opencl_filter_frame, |
| 312 | 312 | .config_props = &ff_opencl_filter_config_input, |
| 313 | 313 | }, |
| 314 | − { NULL } | |
| 315 | 314 | }; |
| 316 | 315 | |
| 317 | 316 | |
| @@ -321,7 +320,6 @@ static const AVFilterPad avgblur_opencl_outputs[] = { · 3 unmodified lines | ||
| 321 | 320 | .type = AVMEDIA_TYPE_VIDEO, |
| 322 | 321 | .config_props = &ff_opencl_filter_config_output, |
| 323 | 322 | }, |
| 324 | − { NULL } | |
| 325 | 323 | }; |
| 326 | 324 | |
| 327 | 325 | |
| @@ -348,8 +346,8 @@ const AVFilter ff_vf_avgblur_opencl = { · 20 unmodified lines | ||
| 348 | 346 | .init = &ff_opencl_filter_init, |
| 349 | 347 | .uninit = &avgblur_opencl_uninit, |
| 350 | 348 | .query_formats = &ff_opencl_filter_query_formats, |
| 351 | − .inputs = avgblur_opencl_inputs, | |
| 352 | − .outputs = avgblur_opencl_outputs, | |
| 349 | + FILTER_INPUTS(avgblur_opencl_inputs), | |
| 350 | + FILTER_OUTPUTS(avgblur_opencl_outputs), | |
| 353 | 351 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 354 | 352 | }; |
| 355 | 353 | |
| @@ -387,8 +385,8 @@ const AVFilter ff_vf_boxblur_opencl = { · 31 unmodified lines | ||
| 387 | 385 | .init = &ff_opencl_filter_init, |
| 388 | 386 | .uninit = &avgblur_opencl_uninit, |
| 389 | 387 | .query_formats = &ff_opencl_filter_query_formats, |
| 390 | − .inputs = avgblur_opencl_inputs, | |
| 391 | − .outputs = avgblur_opencl_outputs, | |
| 388 | + FILTER_INPUTS(avgblur_opencl_inputs), | |
| 389 | + FILTER_OUTPUTS(avgblur_opencl_outputs), | |
| 392 | 390 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 393 | 391 | }; |
| 394 | 392 | |
| @@ -386,7 +386,6 @@ static const AVFilterPad avgblur_vulkan_inputs[] = { · 385 unmodified lines | ||
| 386 | 386 | .filter_frame = &avgblur_vulkan_filter_frame, |
| 387 | 387 | .config_props = &ff_vk_filter_config_input, |
| 388 | 388 | }, |
| 389 | − { NULL } | |
| 390 | 389 | }; |
| 391 | 390 | |
| 392 | 391 | static const AVFilterPad avgblur_vulkan_outputs[] = { |
| @@ -395,7 +394,6 @@ static const AVFilterPad avgblur_vulkan_outputs[] = { · 2 unmodified lines | ||
| 395 | 394 | .type = AVMEDIA_TYPE_VIDEO, |
| 396 | 395 | .config_props = &ff_vk_filter_config_output, |
| 397 | 396 | }, |
| 398 | − { NULL } | |
| 399 | 397 | }; |
| 400 | 398 | |
| 401 | 399 | const AVFilter ff_vf_avgblur_vulkan = { |
| @@ -405,8 +403,8 @@ const AVFilter ff_vf_avgblur_vulkan = { · 3 unmodified lines | ||
| 405 | 403 | .init = &ff_vk_filter_init, |
| 406 | 404 | .uninit = &avgblur_vulkan_uninit, |
| 407 | 405 | .query_formats = &ff_vk_filter_query_formats, |
| 408 | − .inputs = avgblur_vulkan_inputs, | |
| 409 | − .outputs = avgblur_vulkan_outputs, | |
| 406 | + FILTER_INPUTS(avgblur_vulkan_inputs), | |
| 407 | + FILTER_OUTPUTS(avgblur_vulkan_outputs), | |
| 410 | 408 | .priv_class = &avgblur_vulkan_class, |
| 411 | 409 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 412 | 410 | }; |
| @@ -138,7 +138,6 @@ static const AVFilterPad bbox_inputs[] = { · 137 unmodified lines | ||
| 138 | 138 | .type = AVMEDIA_TYPE_VIDEO, |
| 139 | 139 | .filter_frame = filter_frame, |
| 140 | 140 | }, |
| 141 | − { NULL } | |
| 142 | 141 | }; |
| 143 | 142 | |
| 144 | 143 | static const AVFilterPad bbox_outputs[] = { |
| @@ -147,7 +146,6 @@ static const AVFilterPad bbox_outputs[] = { · 2 unmodified lines | ||
| 147 | 146 | .type = AVMEDIA_TYPE_VIDEO, |
| 148 | 147 | .config_props = config_output, |
| 149 | 148 | }, |
| 150 | − { NULL } | |
| 151 | 149 | }; |
| 152 | 150 | |
| 153 | 151 | const AVFilter ff_vf_bbox = { |
| @@ -156,8 +154,8 @@ const AVFilter ff_vf_bbox = { · 2 unmodified lines | ||
| 156 | 154 | .priv_size = sizeof(BBoxContext), |
| 157 | 155 | .priv_class = &bbox_class, |
| 158 | 156 | .query_formats = query_formats, |
| 159 | − .inputs = bbox_inputs, | |
| 160 | − .outputs = bbox_outputs, | |
| 157 | + FILTER_INPUTS(bbox_inputs), | |
| 158 | + FILTER_OUTPUTS(bbox_outputs), | |
| 161 | 159 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 162 | 160 | .process_command = ff_filter_process_command, |
| 163 | 161 | }; |
| @@ -368,7 +368,6 @@ static const AVFilterPad bilateral_inputs[] = { · 367 unmodified lines | ||
| 368 | 368 | .config_props = config_input, |
| 369 | 369 | .filter_frame = filter_frame, |
| 370 | 370 | }, |
| 371 | − { NULL } | |
| 372 | 371 | }; |
| 373 | 372 | |
| 374 | 373 | static const AVFilterPad bilateral_outputs[] = { |
| @@ -376,7 +375,6 @@ static const AVFilterPad bilateral_outputs[] = { · 1 unmodified line | ||
| 376 | 375 | .name = "default", |
| 377 | 376 | .type = AVMEDIA_TYPE_VIDEO, |
| 378 | 377 | }, |
| 379 | − { NULL } | |
| 380 | 378 | }; |
| 381 | 379 | |
| 382 | 380 | const AVFilter ff_vf_bilateral = { |
| @@ -386,8 +384,8 @@ const AVFilter ff_vf_bilateral = { · 3 unmodified lines | ||
| 386 | 384 | .priv_class = &bilateral_class, |
| 387 | 385 | .uninit = uninit, |
| 388 | 386 | .query_formats = query_formats, |
| 389 | − .inputs = bilateral_inputs, | |
| 390 | − .outputs = bilateral_outputs, | |
| 387 | + FILTER_INPUTS(bilateral_inputs), | |
| 388 | + FILTER_OUTPUTS(bilateral_outputs), | |
| 391 | 389 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 392 | 390 | .process_command = process_command, |
| 393 | 391 | }; |
| @@ -200,7 +200,6 @@ static const AVFilterPad inputs[] = { · 199 unmodified lines | ||
| 200 | 200 | .filter_frame = filter_frame, |
| 201 | 201 | .config_props = config_input, |
| 202 | 202 | }, |
| 203 | − { NULL } | |
| 204 | 203 | }; |
| 205 | 204 | |
| 206 | 205 | static const AVFilterPad outputs[] = { |
| @@ -208,7 +207,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 208 | 207 | .name = "default", |
| 209 | 208 | .type = AVMEDIA_TYPE_VIDEO, |
| 210 | 209 | }, |
| 211 | − { NULL } | |
| 212 | 210 | }; |
| 213 | 211 | |
| 214 | 212 | const AVFilter ff_vf_bitplanenoise = { |
| @@ -216,8 +214,8 @@ const AVFilter ff_vf_bitplanenoise = { · 1 unmodified line | ||
| 216 | 214 | .description = NULL_IF_CONFIG_SMALL("Measure bit plane noise."), |
| 217 | 215 | .priv_size = sizeof(BPNContext), |
| 218 | 216 | .query_formats = query_formats, |
| 219 | − .inputs = inputs, | |
| 220 | − .outputs = outputs, | |
| 217 | + FILTER_INPUTS(inputs), | |
| 218 | + FILTER_OUTPUTS(outputs), | |
| 221 | 219 | .priv_class = &bitplanenoise_class, |
| 222 | 220 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 223 | 221 | }; |
| @@ -244,7 +244,6 @@ static const AVFilterPad blackdetect_inputs[] = { · 243 unmodified lines | ||
| 244 | 244 | .config_props = config_input, |
| 245 | 245 | .filter_frame = filter_frame, |
| 246 | 246 | }, |
| 247 | − { NULL } | |
| 248 | 247 | }; |
| 249 | 248 | |
| 250 | 249 | static const AVFilterPad blackdetect_outputs[] = { |
| @@ -252,7 +251,6 @@ static const AVFilterPad blackdetect_outputs[] = { · 1 unmodified line | ||
| 252 | 251 | .name = "default", |
| 253 | 252 | .type = AVMEDIA_TYPE_VIDEO, |
| 254 | 253 | }, |
| 255 | − { NULL } | |
| 256 | 254 | }; |
| 257 | 255 | |
| 258 | 256 | const AVFilter ff_vf_blackdetect = { |
| @@ -260,8 +258,8 @@ const AVFilter ff_vf_blackdetect = { · 1 unmodified line | ||
| 260 | 258 | .description = NULL_IF_CONFIG_SMALL("Detect video intervals that are (almost) black."), |
| 261 | 259 | .priv_size = sizeof(BlackDetectContext), |
| 262 | 260 | .query_formats = query_formats, |
| 263 | − .inputs = blackdetect_inputs, | |
| 264 | − .outputs = blackdetect_outputs, | |
| 261 | + FILTER_INPUTS(blackdetect_inputs), | |
| 262 | + FILTER_OUTPUTS(blackdetect_outputs), | |
| 265 | 263 | .uninit = uninit, |
| 266 | 264 | .priv_class = &blackdetect_class, |
| 267 | 265 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| @@ -118,7 +118,6 @@ static const AVFilterPad avfilter_vf_blackframe_inputs[] = { · 117 unmodified lines | ||
| 118 | 118 | .type = AVMEDIA_TYPE_VIDEO, |
| 119 | 119 | .filter_frame = filter_frame, |
| 120 | 120 | }, |
| 121 | − { NULL } | |
| 122 | 121 | }; |
| 123 | 122 | |
| 124 | 123 | static const AVFilterPad avfilter_vf_blackframe_outputs[] = { |
| @@ -126,7 +125,6 @@ static const AVFilterPad avfilter_vf_blackframe_outputs[] = { · 1 unmodified line | ||
| 126 | 125 | .name = "default", |
| 127 | 126 | .type = AVMEDIA_TYPE_VIDEO |
| 128 | 127 | }, |
| 129 | − { NULL } | |
| 130 | 128 | }; |
| 131 | 129 | |
| 132 | 130 | const AVFilter ff_vf_blackframe = { |
| @@ -135,6 +133,6 @@ const AVFilter ff_vf_blackframe = { · 2 unmodified lines | ||
| 135 | 133 | .priv_size = sizeof(BlackFrameContext), |
| 136 | 134 | .priv_class = &blackframe_class, |
| 137 | 135 | .query_formats = query_formats, |
| 138 | − .inputs = avfilter_vf_blackframe_inputs, | |
| 139 | − .outputs = avfilter_vf_blackframe_outputs, | |
| 136 | + FILTER_INPUTS(avfilter_vf_blackframe_inputs), | |
| 137 | + FILTER_OUTPUTS(avfilter_vf_blackframe_outputs), | |
| 140 | 138 | }; |
| @@ -892,7 +892,6 @@ static const AVFilterPad blend_inputs[] = { · 891 unmodified lines | ||
| 892 | 892 | .name = "bottom", |
| 893 | 893 | .type = AVMEDIA_TYPE_VIDEO, |
| 894 | 894 | }, |
| 895 | − { NULL } | |
| 896 | 895 | }; |
| 897 | 896 | |
| 898 | 897 | static const AVFilterPad blend_outputs[] = { |
| @@ -901,7 +900,6 @@ static const AVFilterPad blend_outputs[] = { · 2 unmodified lines | ||
| 901 | 900 | .type = AVMEDIA_TYPE_VIDEO, |
| 902 | 901 | .config_props = config_output, |
| 903 | 902 | }, |
| 904 | − { NULL } | |
| 905 | 903 | }; |
| 906 | 904 | |
| 907 | 905 | const AVFilter ff_vf_blend = { |
| @@ -913,8 +911,8 @@ const AVFilter ff_vf_blend = { · 5 unmodified lines | ||
| 913 | 911 | .priv_size = sizeof(BlendContext), |
| 914 | 912 | .query_formats = query_formats, |
| 915 | 913 | .activate = activate, |
| 916 | − .inputs = blend_inputs, | |
| 917 | − .outputs = blend_outputs, | |
| 914 | + FILTER_INPUTS(blend_inputs), | |
| 915 | + FILTER_OUTPUTS(blend_outputs), | |
| 918 | 916 | .priv_class = &blend_class, |
| 919 | 917 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 920 | 918 | .process_command = process_command, |
| @@ -954,7 +952,6 @@ static const AVFilterPad tblend_inputs[] = { · 33 unmodified lines | ||
| 954 | 952 | .type = AVMEDIA_TYPE_VIDEO, |
| 955 | 953 | .filter_frame = tblend_filter_frame, |
| 956 | 954 | }, |
| 957 | − { NULL } | |
| 958 | 955 | }; |
| 959 | 956 | |
| 960 | 957 | static const AVFilterPad tblend_outputs[] = { |
| @@ -963,7 +960,6 @@ static const AVFilterPad tblend_outputs[] = { · 2 unmodified lines | ||
| 963 | 960 | .type = AVMEDIA_TYPE_VIDEO, |
| 964 | 961 | .config_props = config_output, |
| 965 | 962 | }, |
| 966 | − { NULL } | |
| 967 | 963 | }; |
| 968 | 964 | |
| 969 | 965 | const AVFilter ff_vf_tblend = { |
| @@ -974,8 +970,8 @@ const AVFilter ff_vf_tblend = { · 4 unmodified lines | ||
| 974 | 970 | .query_formats = query_formats, |
| 975 | 971 | .init = init, |
| 976 | 972 | .uninit = uninit, |
| 977 | − .inputs = tblend_inputs, | |
| 978 | − .outputs = tblend_outputs, | |
| 973 | + FILTER_INPUTS(tblend_inputs), | |
| 974 | + FILTER_OUTPUTS(tblend_outputs), | |
| 979 | 975 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 980 | 976 | .process_command = process_command, |
| 981 | 977 | }; |
| @@ -1048,7 +1048,6 @@ static const AVFilterPad bm3d_outputs[] = { · 1047 unmodified lines | ||
| 1048 | 1048 | .type = AVMEDIA_TYPE_VIDEO, |
| 1049 | 1049 | .config_props = config_output, |
| 1050 | 1050 | }, |
| 1051 | − { NULL } | |
| 1052 | 1051 | }; |
| 1053 | 1052 | |
| 1054 | 1053 | const AVFilter ff_vf_bm3d = { |
| @@ -1060,7 +1059,7 @@ const AVFilter ff_vf_bm3d = { · 5 unmodified lines | ||
| 1060 | 1059 | .activate = activate, |
| 1061 | 1060 | .query_formats = query_formats, |
| 1062 | 1061 | .inputs = NULL, |
| 1063 | − .outputs = bm3d_outputs, | |
| 1062 | + FILTER_OUTPUTS(bm3d_outputs), | |
| 1064 | 1063 | .priv_class = &bm3d_class, |
| 1065 | 1064 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 1066 | 1065 | AVFILTER_FLAG_DYNAMIC_INPUTS | |
| @@ -293,7 +293,6 @@ static const AVFilterPad avfilter_vf_boxblur_inputs[] = { · 292 unmodified lines | ||
| 293 | 293 | .config_props = config_input, |
| 294 | 294 | .filter_frame = filter_frame, |
| 295 | 295 | }, |
| 296 | − { NULL } | |
| 297 | 296 | }; |
| 298 | 297 | |
| 299 | 298 | static const AVFilterPad avfilter_vf_boxblur_outputs[] = { |
| @@ -301,7 +300,6 @@ static const AVFilterPad avfilter_vf_boxblur_outputs[] = { · 1 unmodified line | ||
| 301 | 300 | .name = "default", |
| 302 | 301 | .type = AVMEDIA_TYPE_VIDEO, |
| 303 | 302 | }, |
| 304 | − { NULL } | |
| 305 | 303 | }; |
| 306 | 304 | |
| 307 | 305 | const AVFilter ff_vf_boxblur = { |
| @@ -311,7 +309,7 @@ const AVFilter ff_vf_boxblur = { · 3 unmodified lines | ||
| 311 | 309 | .priv_class = &boxblur_class, |
| 312 | 310 | .uninit = uninit, |
| 313 | 311 | .query_formats = query_formats, |
| 314 | − .inputs = avfilter_vf_boxblur_inputs, | |
| 315 | − .outputs = avfilter_vf_boxblur_outputs, | |
| 312 | + FILTER_INPUTS(avfilter_vf_boxblur_inputs), | |
| 313 | + FILTER_OUTPUTS(avfilter_vf_boxblur_outputs), | |
| 316 | 314 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 317 | 315 | }; |
| @@ -392,7 +392,6 @@ static const AVFilterPad avfilter_vf_bwdif_inputs[] = { · 391 unmodified lines | ||
| 392 | 392 | .type = AVMEDIA_TYPE_VIDEO, |
| 393 | 393 | .filter_frame = ff_yadif_filter_frame, |
| 394 | 394 | }, |
| 395 | − { NULL } | |
| 396 | 395 | }; |
| 397 | 396 | |
| 398 | 397 | static const AVFilterPad avfilter_vf_bwdif_outputs[] = { |
| @@ -402,7 +401,6 @@ static const AVFilterPad avfilter_vf_bwdif_outputs[] = { · 3 unmodified lines | ||
| 402 | 401 | .request_frame = ff_yadif_request_frame, |
| 403 | 402 | .config_props = config_props, |
| 404 | 403 | }, |
| 405 | − { NULL } | |
| 406 | 404 | }; |
| 407 | 405 | |
| 408 | 406 | const AVFilter ff_vf_bwdif = { |
| @@ -412,7 +410,7 @@ const AVFilter ff_vf_bwdif = { · 3 unmodified lines | ||
| 412 | 410 | .priv_class = &bwdif_class, |
| 413 | 411 | .uninit = uninit, |
| 414 | 412 | .query_formats = query_formats, |
| 415 | − .inputs = avfilter_vf_bwdif_inputs, | |
| 416 | − .outputs = avfilter_vf_bwdif_outputs, | |
| 413 | + FILTER_INPUTS(avfilter_vf_bwdif_inputs), | |
| 414 | + FILTER_OUTPUTS(avfilter_vf_bwdif_outputs), | |
| 417 | 415 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 418 | 416 | }; |
| @@ -258,7 +258,6 @@ static const AVFilterPad cas_inputs[] = { · 257 unmodified lines | ||
| 258 | 258 | .filter_frame = filter_frame, |
| 259 | 259 | .config_props = config_input, |
| 260 | 260 | }, |
| 261 | − { NULL } | |
| 262 | 261 | }; |
| 263 | 262 | |
| 264 | 263 | static const AVFilterPad cas_outputs[] = { |
| @@ -266,7 +265,6 @@ static const AVFilterPad cas_outputs[] = { · 1 unmodified line | ||
| 266 | 265 | .name = "default", |
| 267 | 266 | .type = AVMEDIA_TYPE_VIDEO, |
| 268 | 267 | }, |
| 269 | − { NULL } | |
| 270 | 268 | }; |
| 271 | 269 | |
| 272 | 270 | #define OFFSET(x) offsetof(CASContext, x) |
| @@ -286,8 +284,8 @@ const AVFilter ff_vf_cas = { · 13 unmodified lines | ||
| 286 | 284 | .priv_size = sizeof(CASContext), |
| 287 | 285 | .priv_class = &cas_class, |
| 288 | 286 | .query_formats = query_formats, |
| 289 | − .inputs = cas_inputs, | |
| 290 | − .outputs = cas_outputs, | |
| 287 | + FILTER_INPUTS(cas_inputs), | |
| 288 | + FILTER_OUTPUTS(cas_outputs), | |
| 291 | 289 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 292 | 290 | .process_command = ff_filter_process_command, |
| 293 | 291 | }; |
| @@ -321,7 +321,6 @@ static const AVFilterPad chromaber_vulkan_inputs[] = { · 320 unmodified lines | ||
| 321 | 321 | .filter_frame = &chromaber_vulkan_filter_frame, |
| 322 | 322 | .config_props = &ff_vk_filter_config_input, |
| 323 | 323 | }, |
| 324 | − { NULL } | |
| 325 | 324 | }; |
| 326 | 325 | |
| 327 | 326 | static const AVFilterPad chromaber_vulkan_outputs[] = { |
| @@ -330,7 +329,6 @@ static const AVFilterPad chromaber_vulkan_outputs[] = { · 2 unmodified lines | ||
| 330 | 329 | .type = AVMEDIA_TYPE_VIDEO, |
| 331 | 330 | .config_props = &ff_vk_filter_config_output, |
| 332 | 331 | }, |
| 333 | − { NULL } | |
| 334 | 332 | }; |
| 335 | 333 | |
| 336 | 334 | const AVFilter ff_vf_chromaber_vulkan = { |
| @@ -340,8 +338,8 @@ const AVFilter ff_vf_chromaber_vulkan = { · 3 unmodified lines | ||
| 340 | 338 | .init = &ff_vk_filter_init, |
| 341 | 339 | .uninit = &chromaber_vulkan_uninit, |
| 342 | 340 | .query_formats = &ff_vk_filter_query_formats, |
| 343 | − .inputs = chromaber_vulkan_inputs, | |
| 344 | − .outputs = chromaber_vulkan_outputs, | |
| 341 | + FILTER_INPUTS(chromaber_vulkan_inputs), | |
| 342 | + FILTER_OUTPUTS(chromaber_vulkan_outputs), | |
| 345 | 343 | .priv_class = &chromaber_vulkan_class, |
| 346 | 344 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 347 | 345 | }; |
| @@ -371,7 +371,6 @@ static const AVFilterPad chromakey_inputs[] = { · 370 unmodified lines | ||
| 371 | 371 | .filter_frame = filter_frame, |
| 372 | 372 | .config_props = config_input, |
| 373 | 373 | }, |
| 374 | − { NULL } | |
| 375 | 374 | }; |
| 376 | 375 | |
| 377 | 376 | static const AVFilterPad chromakey_outputs[] = { |
| @@ -380,7 +379,6 @@ static const AVFilterPad chromakey_outputs[] = { · 2 unmodified lines | ||
| 380 | 379 | .type = AVMEDIA_TYPE_VIDEO, |
| 381 | 380 | .config_props = config_output, |
| 382 | 381 | }, |
| 383 | − { NULL } | |
| 384 | 382 | }; |
| 385 | 383 | |
| 386 | 384 | #define OFFSET(x) offsetof(ChromakeyContext, x) |
| @@ -402,8 +400,8 @@ const AVFilter ff_vf_chromakey = { · 15 unmodified lines | ||
| 402 | 400 | .priv_size = sizeof(ChromakeyContext), |
| 403 | 401 | .priv_class = &chromakey_class, |
| 404 | 402 | .query_formats = query_formats, |
| 405 | − .inputs = chromakey_inputs, | |
| 406 | − .outputs = chromakey_outputs, | |
| 403 | + FILTER_INPUTS(chromakey_inputs), | |
| 404 | + FILTER_OUTPUTS(chromakey_outputs), | |
| 407 | 405 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 408 | 406 | .process_command = process_command, |
| 409 | 407 | }; |
| @@ -424,7 +422,6 @@ static const AVFilterPad chromahold_inputs[] = { · 14 unmodified lines | ||
| 424 | 422 | .filter_frame = filter_frame, |
| 425 | 423 | .config_props = config_input, |
| 426 | 424 | }, |
| 427 | − { NULL } | |
| 428 | 425 | }; |
| 429 | 426 | |
| 430 | 427 | static const AVFilterPad chromahold_outputs[] = { |
| @@ -433,7 +430,6 @@ static const AVFilterPad chromahold_outputs[] = { · 2 unmodified lines | ||
| 433 | 430 | .type = AVMEDIA_TYPE_VIDEO, |
| 434 | 431 | .config_props = config_output, |
| 435 | 432 | }, |
| 436 | − { NULL } | |
| 437 | 433 | }; |
| 438 | 434 | |
| 439 | 435 | AVFILTER_DEFINE_CLASS(chromahold); |
| @@ -444,8 +440,8 @@ const AVFilter ff_vf_chromahold = { · 4 unmodified lines | ||
| 444 | 440 | .priv_size = sizeof(ChromakeyContext), |
| 445 | 441 | .priv_class = &chromahold_class, |
| 446 | 442 | .query_formats = query_formats, |
| 447 | − .inputs = chromahold_inputs, | |
| 448 | − .outputs = chromahold_outputs, | |
| 443 | + FILTER_INPUTS(chromahold_inputs), | |
| 444 | + FILTER_OUTPUTS(chromahold_outputs), | |
| 449 | 445 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 450 | 446 | .process_command = process_command, |
| 451 | 447 | }; |
| @@ -264,7 +264,6 @@ static const AVFilterPad inputs[] = { · 263 unmodified lines | ||
| 264 | 264 | .filter_frame = filter_frame, |
| 265 | 265 | .config_props = config_input, |
| 266 | 266 | }, |
| 267 | − { NULL } | |
| 268 | 267 | }; |
| 269 | 268 | |
| 270 | 269 | static const AVFilterPad outputs[] = { |
| @@ -272,7 +271,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 272 | 271 | .name = "default", |
| 273 | 272 | .type = AVMEDIA_TYPE_VIDEO, |
| 274 | 273 | }, |
| 275 | − { NULL } | |
| 276 | 274 | }; |
| 277 | 275 | |
| 278 | 276 | AVFILTER_DEFINE_CLASS(chromanr); |
| @@ -283,8 +281,8 @@ const AVFilter ff_vf_chromanr = { · 4 unmodified lines | ||
| 283 | 281 | .priv_size = sizeof(ChromaNRContext), |
| 284 | 282 | .priv_class = &chromanr_class, |
| 285 | 283 | .query_formats = query_formats, |
| 286 | − .outputs = outputs, | |
| 287 | − .inputs = inputs, | |
| 284 | + FILTER_OUTPUTS(outputs), | |
| 285 | + FILTER_INPUTS(inputs), | |
| 288 | 286 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 289 | 287 | .process_command = ff_filter_process_command, |
| 290 | 288 | }; |
| @@ -429,7 +429,6 @@ static const AVFilterPad inputs[] = { · 428 unmodified lines | ||
| 429 | 429 | .filter_frame = filter_frame, |
| 430 | 430 | .config_props = config_input, |
| 431 | 431 | }, |
| 432 | − { NULL } | |
| 433 | 432 | }; |
| 434 | 433 | |
| 435 | 434 | static const AVFilterPad outputs[] = { |
| @@ -437,7 +436,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 437 | 436 | .name = "default", |
| 438 | 437 | .type = AVMEDIA_TYPE_VIDEO, |
| 439 | 438 | }, |
| 440 | − { NULL } | |
| 441 | 439 | }; |
| 442 | 440 | |
| 443 | 441 | AVFILTER_DEFINE_CLASS(chromashift); |
| @@ -448,8 +446,8 @@ const AVFilter ff_vf_chromashift = { · 4 unmodified lines | ||
| 448 | 446 | .priv_size = sizeof(ChromaShiftContext), |
| 449 | 447 | .priv_class = &chromashift_class, |
| 450 | 448 | .query_formats = query_formats, |
| 451 | − .outputs = outputs, | |
| 452 | − .inputs = inputs, | |
| 449 | + FILTER_OUTPUTS(outputs), | |
| 450 | + FILTER_INPUTS(inputs), | |
| 453 | 451 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 454 | 452 | .process_command = process_command, |
| 455 | 453 | }; |
| @@ -477,8 +475,8 @@ const AVFilter ff_vf_rgbashift = { · 21 unmodified lines | ||
| 477 | 475 | .priv_size = sizeof(ChromaShiftContext), |
| 478 | 476 | .priv_class = &rgbashift_class, |
| 479 | 477 | .query_formats = query_formats, |
| 480 | − .outputs = outputs, | |
| 481 | − .inputs = inputs, | |
| 478 | + FILTER_OUTPUTS(outputs), | |
| 479 | + FILTER_INPUTS(inputs), | |
| 482 | 480 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 483 | 481 | .process_command = process_command, |
| 484 | 482 | }; |
| @@ -1492,7 +1492,6 @@ static const AVFilterPad inputs[] = { · 1491 unmodified lines | ||
| 1492 | 1492 | .filter_frame = filter_frame, |
| 1493 | 1493 | .config_props = config_input, |
| 1494 | 1494 | }, |
| 1495 | − { NULL } | |
| 1496 | 1495 | }; |
| 1497 | 1496 | |
| 1498 | 1497 | static const AVFilterPad outputs[] = { |
| @@ -1501,7 +1500,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 1501 | 1500 | .type = AVMEDIA_TYPE_VIDEO, |
| 1502 | 1501 | .config_props = config_output, |
| 1503 | 1502 | }, |
| 1504 | − { NULL } | |
| 1505 | 1503 | }; |
| 1506 | 1504 | |
| 1507 | 1505 | const AVFilter ff_vf_ciescope = { |
| @@ -1511,6 +1509,6 @@ const AVFilter ff_vf_ciescope = { · 3 unmodified lines | ||
| 1511 | 1509 | .priv_class = &ciescope_class, |
| 1512 | 1510 | .query_formats = query_formats, |
| 1513 | 1511 | .uninit = uninit, |
| 1514 | − .inputs = inputs, | |
| 1515 | − .outputs = outputs, | |
| 1512 | + FILTER_INPUTS(inputs), | |
| 1513 | + FILTER_OUTPUTS(outputs), | |
| 1516 | 1514 | }; |
| @@ -304,7 +304,6 @@ static const AVFilterPad codecview_inputs[] = { · 303 unmodified lines | ||
| 304 | 304 | .filter_frame = filter_frame, |
| 305 | 305 | .config_props = config_input, |
| 306 | 306 | }, |
| 307 | − { NULL } | |
| 308 | 307 | }; |
| 309 | 308 | |
| 310 | 309 | static const AVFilterPad codecview_outputs[] = { |
| @@ -312,7 +311,6 @@ static const AVFilterPad codecview_outputs[] = { · 1 unmodified line | ||
| 312 | 311 | .name = "default", |
| 313 | 312 | .type = AVMEDIA_TYPE_VIDEO, |
| 314 | 313 | }, |
| 315 | − { NULL } | |
| 316 | 314 | }; |
| 317 | 315 | |
| 318 | 316 | const AVFilter ff_vf_codecview = { |
| @@ -320,8 +318,8 @@ const AVFilter ff_vf_codecview = { · 1 unmodified line | ||
| 320 | 318 | .description = NULL_IF_CONFIG_SMALL("Visualize information about some codecs."), |
| 321 | 319 | .priv_size = sizeof(CodecViewContext), |
| 322 | 320 | .query_formats = query_formats, |
| 323 | − .inputs = codecview_inputs, | |
| 324 | − .outputs = codecview_outputs, | |
| 321 | + FILTER_INPUTS(codecview_inputs), | |
| 322 | + FILTER_OUTPUTS(codecview_outputs), | |
| 325 | 323 | .priv_class = &codecview_class, |
| 326 | 324 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 327 | 325 | }; |
| @@ -425,7 +425,6 @@ static const AVFilterPad colorbalance_inputs[] = { · 424 unmodified lines | ||
| 425 | 425 | .type = AVMEDIA_TYPE_VIDEO, |
| 426 | 426 | .filter_frame = filter_frame, |
| 427 | 427 | }, |
| 428 | − { NULL } | |
| 429 | 428 | }; |
| 430 | 429 | |
| 431 | 430 | static const AVFilterPad colorbalance_outputs[] = { |
| @@ -434,7 +433,6 @@ static const AVFilterPad colorbalance_outputs[] = { · 2 unmodified lines | ||
| 434 | 433 | .type = AVMEDIA_TYPE_VIDEO, |
| 435 | 434 | .config_props = config_output, |
| 436 | 435 | }, |
| 437 | − { NULL } | |
| 438 | 436 | }; |
| 439 | 437 | |
| 440 | 438 | const AVFilter ff_vf_colorbalance = { |
| @@ -443,8 +441,8 @@ const AVFilter ff_vf_colorbalance = { · 2 unmodified lines | ||
| 443 | 441 | .priv_size = sizeof(ColorBalanceContext), |
| 444 | 442 | .priv_class = &colorbalance_class, |
| 445 | 443 | .query_formats = query_formats, |
| 446 | − .inputs = colorbalance_inputs, | |
| 447 | − .outputs = colorbalance_outputs, | |
| 444 | + FILTER_INPUTS(colorbalance_inputs), | |
| 445 | + FILTER_OUTPUTS(colorbalance_outputs), | |
| 448 | 446 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 449 | 447 | .process_command = ff_filter_process_command, |
| 450 | 448 | }; |
| @@ -785,7 +785,6 @@ static const AVFilterPad colorchannelmixer_inputs[] = { · 784 unmodified lines | ||
| 785 | 785 | .type = AVMEDIA_TYPE_VIDEO, |
| 786 | 786 | .filter_frame = filter_frame, |
| 787 | 787 | }, |
| 788 | − { NULL } | |
| 789 | 788 | }; |
| 790 | 789 | |
| 791 | 790 | static const AVFilterPad colorchannelmixer_outputs[] = { |
| @@ -794,7 +793,6 @@ static const AVFilterPad colorchannelmixer_outputs[] = { · 2 unmodified lines | ||
| 794 | 793 | .type = AVMEDIA_TYPE_VIDEO, |
| 795 | 794 | .config_props = config_output, |
| 796 | 795 | }, |
| 797 | − { NULL } | |
| 798 | 796 | }; |
| 799 | 797 | |
| 800 | 798 | const AVFilter ff_vf_colorchannelmixer = { |
| @@ -804,8 +802,8 @@ const AVFilter ff_vf_colorchannelmixer = { · 3 unmodified lines | ||
| 804 | 802 | .priv_class = &colorchannelmixer_class, |
| 805 | 803 | .uninit = uninit, |
| 806 | 804 | .query_formats = query_formats, |
| 807 | − .inputs = colorchannelmixer_inputs, | |
| 808 | − .outputs = colorchannelmixer_outputs, | |
| 805 | + FILTER_INPUTS(colorchannelmixer_inputs), | |
| 806 | + FILTER_OUTPUTS(colorchannelmixer_outputs), | |
| 809 | 807 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 810 | 808 | .process_command = process_command, |
| 811 | 809 | }; |
| @@ -726,7 +726,6 @@ static const AVFilterPad colorconstancy_inputs[] = { · 725 unmodified lines | ||
| 726 | 726 | .config_props = config_props, |
| 727 | 727 | .filter_frame = filter_frame, |
| 728 | 728 | }, |
| 729 | − { NULL } | |
| 730 | 729 | }; |
| 731 | 730 | |
| 732 | 731 | static const AVFilterPad colorconstancy_outputs[] = { |
| @@ -734,7 +733,6 @@ static const AVFilterPad colorconstancy_outputs[] = { · 1 unmodified line | ||
| 734 | 733 | .name = "default", |
| 735 | 734 | .type = AVMEDIA_TYPE_VIDEO, |
| 736 | 735 | }, |
| 737 | − { NULL } | |
| 738 | 736 | }; |
| 739 | 737 | |
| 740 | 738 | #if CONFIG_GREYEDGE_FILTER |
| @@ -755,8 +753,8 @@ const AVFilter ff_vf_greyedge = { · 14 unmodified lines | ||
| 755 | 753 | .priv_class = &greyedge_class, |
| 756 | 754 | .query_formats = query_formats, |
| 757 | 755 | .uninit = uninit, |
| 758 | − .inputs = colorconstancy_inputs, | |
| 759 | − .outputs = colorconstancy_outputs, | |
| 756 | + FILTER_INPUTS(colorconstancy_inputs), | |
| 757 | + FILTER_OUTPUTS(colorconstancy_outputs), | |
| 760 | 758 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 761 | 759 | }; |
| 762 | 760 | |
| @@ -362,7 +362,6 @@ static const AVFilterPad colorcontrast_inputs[] = { · 361 unmodified lines | ||
| 362 | 362 | .filter_frame = filter_frame, |
| 363 | 363 | .config_props = config_input, |
| 364 | 364 | }, |
| 365 | − { NULL } | |
| 366 | 365 | }; |
| 367 | 366 | |
| 368 | 367 | static const AVFilterPad colorcontrast_outputs[] = { |
| @@ -370,7 +369,6 @@ static const AVFilterPad colorcontrast_outputs[] = { · 1 unmodified line | ||
| 370 | 369 | .name = "default", |
| 371 | 370 | .type = AVMEDIA_TYPE_VIDEO, |
| 372 | 371 | }, |
| 373 | − { NULL } | |
| 374 | 372 | }; |
| 375 | 373 | |
| 376 | 374 | #define OFFSET(x) offsetof(ColorContrastContext, x) |
| @@ -395,8 +393,8 @@ const AVFilter ff_vf_colorcontrast = { · 18 unmodified lines | ||
| 395 | 393 | .priv_size = sizeof(ColorContrastContext), |
| 396 | 394 | .priv_class = &colorcontrast_class, |
| 397 | 395 | .query_formats = query_formats, |
| 398 | − .inputs = colorcontrast_inputs, | |
| 399 | − .outputs = colorcontrast_outputs, | |
| 396 | + FILTER_INPUTS(colorcontrast_inputs), | |
| 397 | + FILTER_OUTPUTS(colorcontrast_outputs), | |
| 400 | 398 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 401 | 399 | .process_command = ff_filter_process_command, |
| 402 | 400 | }; |
| @@ -389,7 +389,6 @@ static const AVFilterPad colorcorrect_inputs[] = { · 388 unmodified lines | ||
| 389 | 389 | .filter_frame = filter_frame, |
| 390 | 390 | .config_props = config_input, |
| 391 | 391 | }, |
| 392 | − { NULL } | |
| 393 | 392 | }; |
| 394 | 393 | |
| 395 | 394 | static const AVFilterPad colorcorrect_outputs[] = { |
| @@ -397,7 +396,6 @@ static const AVFilterPad colorcorrect_outputs[] = { · 1 unmodified line | ||
| 397 | 396 | .name = "default", |
| 398 | 397 | .type = AVMEDIA_TYPE_VIDEO, |
| 399 | 398 | }, |
| 400 | − { NULL } | |
| 401 | 399 | }; |
| 402 | 400 | |
| 403 | 401 | #define OFFSET(x) offsetof(ColorCorrectContext, x) |
| @@ -425,8 +423,8 @@ const AVFilter ff_vf_colorcorrect = { · 21 unmodified lines | ||
| 425 | 423 | .priv_class = &colorcorrect_class, |
| 426 | 424 | .query_formats = query_formats, |
| 427 | 425 | .uninit = uninit, |
| 428 | − .inputs = colorcorrect_inputs, | |
| 429 | − .outputs = colorcorrect_outputs, | |
| 426 | + FILTER_INPUTS(colorcorrect_inputs), | |
| 427 | + FILTER_OUTPUTS(colorcorrect_outputs), | |
| 430 | 428 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 431 | 429 | .process_command = ff_filter_process_command, |
| 432 | 430 | }; |
| @@ -263,7 +263,6 @@ static const AVFilterPad colorize_inputs[] = { · 262 unmodified lines | ||
| 263 | 263 | .filter_frame = filter_frame, |
| 264 | 264 | .config_props = config_input, |
| 265 | 265 | }, |
| 266 | − { NULL } | |
| 267 | 266 | }; |
| 268 | 267 | |
| 269 | 268 | static const AVFilterPad colorize_outputs[] = { |
| @@ -271,7 +270,6 @@ static const AVFilterPad colorize_outputs[] = { · 1 unmodified line | ||
| 271 | 270 | .name = "default", |
| 272 | 271 | .type = AVMEDIA_TYPE_VIDEO, |
| 273 | 272 | }, |
| 274 | − { NULL } | |
| 275 | 273 | }; |
| 276 | 274 | |
| 277 | 275 | #define OFFSET(x) offsetof(ColorizeContext, x) |
| @@ -293,8 +291,8 @@ const AVFilter ff_vf_colorize = { · 15 unmodified lines | ||
| 293 | 291 | .priv_size = sizeof(ColorizeContext), |
| 294 | 292 | .priv_class = &colorize_class, |
| 295 | 293 | .query_formats = query_formats, |
| 296 | − .inputs = colorize_inputs, | |
| 297 | − .outputs = colorize_outputs, | |
| 294 | + FILTER_INPUTS(colorize_inputs), | |
| 295 | + FILTER_OUTPUTS(colorize_outputs), | |
| 298 | 296 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 299 | 297 | .process_command = ff_filter_process_command, |
| 300 | 298 | }; |
| @@ -179,7 +179,6 @@ static const AVFilterPad colorkey_inputs[] = { · 178 unmodified lines | ||
| 179 | 179 | .flags = AVFILTERPAD_FLAG_NEEDS_WRITABLE, |
| 180 | 180 | .filter_frame = filter_frame, |
| 181 | 181 | }, |
| 182 | − { NULL } | |
| 183 | 182 | }; |
| 184 | 183 | |
| 185 | 184 | static const AVFilterPad colorkey_outputs[] = { |
| @@ -188,7 +187,6 @@ static const AVFilterPad colorkey_outputs[] = { · 2 unmodified lines | ||
| 188 | 187 | .type = AVMEDIA_TYPE_VIDEO, |
| 189 | 188 | .config_props = config_output, |
| 190 | 189 | }, |
| 191 | − { NULL } | |
| 192 | 190 | }; |
| 193 | 191 | |
| 194 | 192 | #define OFFSET(x) offsetof(ColorkeyContext, x) |
| @@ -212,8 +210,8 @@ const AVFilter ff_vf_colorkey = { · 17 unmodified lines | ||
| 212 | 210 | .priv_class = &colorkey_class, |
| 213 | 211 | .query_formats = query_formats, |
| 214 | 212 | .init = init_filter, |
| 215 | − .inputs = colorkey_inputs, | |
| 216 | − .outputs = colorkey_outputs, | |
| 213 | + FILTER_INPUTS(colorkey_inputs), | |
| 214 | + FILTER_OUTPUTS(colorkey_outputs), | |
| 217 | 215 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 218 | 216 | .process_command = ff_filter_process_command, |
| 219 | 217 | }; |
| @@ -237,8 +235,8 @@ const AVFilter ff_vf_colorhold = { · 17 unmodified lines | ||
| 237 | 235 | .priv_class = &colorhold_class, |
| 238 | 236 | .query_formats = query_formats, |
| 239 | 237 | .init = init_filter, |
| 240 | − .inputs = colorkey_inputs, | |
| 241 | − .outputs = colorkey_outputs, | |
| 238 | + FILTER_INPUTS(colorkey_inputs), | |
| 239 | + FILTER_OUTPUTS(colorkey_outputs), | |
| 242 | 240 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 243 | 241 | .process_command = ff_filter_process_command, |
| 244 | 242 | }; |
| @@ -206,7 +206,6 @@ static const AVFilterPad colorkey_opencl_inputs[] = { · 205 unmodified lines | ||
| 206 | 206 | .filter_frame = filter_frame, |
| 207 | 207 | .config_props = &ff_opencl_filter_config_input, |
| 208 | 208 | }, |
| 209 | − { NULL } | |
| 210 | 209 | }; |
| 211 | 210 | |
| 212 | 211 | static const AVFilterPad colorkey_opencl_outputs[] = { |
| @@ -215,7 +214,6 @@ static const AVFilterPad colorkey_opencl_outputs[] = { · 2 unmodified lines | ||
| 215 | 214 | .type = AVMEDIA_TYPE_VIDEO, |
| 216 | 215 | .config_props = &ff_opencl_filter_config_output, |
| 217 | 216 | }, |
| 218 | − { NULL } | |
| 219 | 217 | }; |
| 220 | 218 | |
| 221 | 219 | #define OFFSET(x) offsetof(ColorkeyOpenCLContext, x) |
| @@ -238,7 +236,7 @@ const AVFilter ff_vf_colorkey_opencl = { · 16 unmodified lines | ||
| 238 | 236 | .init = &ff_opencl_filter_init, |
| 239 | 237 | .uninit = &colorkey_opencl_uninit, |
| 240 | 238 | .query_formats = &ff_opencl_filter_query_formats, |
| 241 | − .inputs = colorkey_opencl_inputs, | |
| 242 | − .outputs = colorkey_opencl_outputs, | |
| 239 | + FILTER_INPUTS(colorkey_opencl_inputs), | |
| 240 | + FILTER_OUTPUTS(colorkey_opencl_outputs), | |
| 243 | 241 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE |
| 244 | 242 | }; |
| @@ -301,7 +301,6 @@ static const AVFilterPad colorlevels_inputs[] = { · 300 unmodified lines | ||
| 301 | 301 | .filter_frame = filter_frame, |
| 302 | 302 | .config_props = config_input, |
| 303 | 303 | }, |
| 304 | − { NULL } | |
| 305 | 304 | }; |
| 306 | 305 | |
| 307 | 306 | static const AVFilterPad colorlevels_outputs[] = { |
| @@ -309,7 +308,6 @@ static const AVFilterPad colorlevels_outputs[] = { · 1 unmodified line | ||
| 309 | 308 | .name = "default", |
| 310 | 309 | .type = AVMEDIA_TYPE_VIDEO, |
| 311 | 310 | }, |
| 312 | − { NULL } | |
| 313 | 311 | }; |
| 314 | 312 | |
| 315 | 313 | const AVFilter ff_vf_colorlevels = { |
| @@ -318,8 +316,8 @@ const AVFilter ff_vf_colorlevels = { · 2 unmodified lines | ||
| 318 | 316 | .priv_size = sizeof(ColorLevelsContext), |
| 319 | 317 | .priv_class = &colorlevels_class, |
| 320 | 318 | .query_formats = query_formats, |
| 321 | − .inputs = colorlevels_inputs, | |
| 322 | − .outputs = colorlevels_outputs, | |
| 319 | + FILTER_INPUTS(colorlevels_inputs), | |
| 320 | + FILTER_OUTPUTS(colorlevels_outputs), | |
| 323 | 321 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 324 | 322 | .process_command = ff_filter_process_command, |
| 325 | 323 | }; |
| @@ -493,7 +493,6 @@ static const AVFilterPad colormatrix_inputs[] = { · 492 unmodified lines | ||
| 493 | 493 | .config_props = config_input, |
| 494 | 494 | .filter_frame = filter_frame, |
| 495 | 495 | }, |
| 496 | − { NULL } | |
| 497 | 496 | }; |
| 498 | 497 | |
| 499 | 498 | static const AVFilterPad colormatrix_outputs[] = { |
| @@ -501,7 +500,6 @@ static const AVFilterPad colormatrix_outputs[] = { · 1 unmodified line | ||
| 501 | 500 | .name = "default", |
| 502 | 501 | .type = AVMEDIA_TYPE_VIDEO, |
| 503 | 502 | }, |
| 504 | − { NULL } | |
| 505 | 503 | }; |
| 506 | 504 | |
| 507 | 505 | const AVFilter ff_vf_colormatrix = { |
| @@ -510,8 +508,8 @@ const AVFilter ff_vf_colormatrix = { · 2 unmodified lines | ||
| 510 | 508 | .priv_size = sizeof(ColorMatrixContext), |
| 511 | 509 | .init = init, |
| 512 | 510 | .query_formats = query_formats, |
| 513 | − .inputs = colormatrix_inputs, | |
| 514 | − .outputs = colormatrix_outputs, | |
| 511 | + FILTER_INPUTS(colormatrix_inputs), | |
| 512 | + FILTER_OUTPUTS(colormatrix_outputs), | |
| 515 | 513 | .priv_class = &colormatrix_class, |
| 516 | 514 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 517 | 515 | }; |
| @@ -1057,7 +1057,6 @@ static const AVFilterPad inputs[] = { · 1056 unmodified lines | ||
| 1057 | 1057 | .type = AVMEDIA_TYPE_VIDEO, |
| 1058 | 1058 | .filter_frame = filter_frame, |
| 1059 | 1059 | }, |
| 1060 | − { NULL } | |
| 1061 | 1060 | }; |
| 1062 | 1061 | |
| 1063 | 1062 | static const AVFilterPad outputs[] = { |
| @@ -1066,7 +1065,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 1066 | 1065 | .type = AVMEDIA_TYPE_VIDEO, |
| 1067 | 1066 | .config_props = config_props, |
| 1068 | 1067 | }, |
| 1069 | − { NULL } | |
| 1070 | 1068 | }; |
| 1071 | 1069 | |
| 1072 | 1070 | const AVFilter ff_vf_colorspace = { |
| @@ -1077,7 +1075,7 @@ const AVFilter ff_vf_colorspace = { · 4 unmodified lines | ||
| 1077 | 1075 | .query_formats = query_formats, |
| 1078 | 1076 | .priv_size = sizeof(ColorSpaceContext), |
| 1079 | 1077 | .priv_class = &colorspace_class, |
| 1080 | − .inputs = inputs, | |
| 1081 | − .outputs = outputs, | |
| 1078 | + FILTER_INPUTS(inputs), | |
| 1079 | + FILTER_OUTPUTS(outputs), | |
| 1082 | 1080 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 1083 | 1081 | }; |
| @@ -328,7 +328,6 @@ static const AVFilterPad inputs[] = { · 327 unmodified lines | ||
| 328 | 328 | .filter_frame = filter_frame, |
| 329 | 329 | .config_props = config_input, |
| 330 | 330 | }, |
| 331 | − { NULL } | |
| 332 | 331 | }; |
| 333 | 332 | |
| 334 | 333 | static const AVFilterPad outputs[] = { |
| @@ -336,7 +335,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 336 | 335 | .name = "default", |
| 337 | 336 | .type = AVMEDIA_TYPE_VIDEO, |
| 338 | 337 | }, |
| 339 | − { NULL } | |
| 340 | 338 | }; |
| 341 | 339 | |
| 342 | 340 | #define OFFSET(x) offsetof(ColorTemperatureContext, x) |
| @@ -357,8 +355,8 @@ const AVFilter ff_vf_colortemperature = { · 14 unmodified lines | ||
| 357 | 355 | .priv_size = sizeof(ColorTemperatureContext), |
| 358 | 356 | .priv_class = &colortemperature_class, |
| 359 | 357 | .query_formats = query_formats, |
| 360 | − .inputs = inputs, | |
| 361 | − .outputs = outputs, | |
| 358 | + FILTER_INPUTS(inputs), | |
| 359 | + FILTER_OUTPUTS(outputs), | |
| 362 | 360 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 363 | 361 | .process_command = ff_filter_process_command, |
| 364 | 362 | }; |
| @@ -890,7 +890,6 @@ static const AVFilterPad convolution_inputs[] = { · 889 unmodified lines | ||
| 890 | 890 | .config_props = config_input, |
| 891 | 891 | .filter_frame = filter_frame, |
| 892 | 892 | }, |
| 893 | − { NULL } | |
| 894 | 893 | }; |
| 895 | 894 | |
| 896 | 895 | static const AVFilterPad convolution_outputs[] = { |
| @@ -898,7 +897,6 @@ static const AVFilterPad convolution_outputs[] = { · 1 unmodified line | ||
| 898 | 897 | .name = "default", |
| 899 | 898 | .type = AVMEDIA_TYPE_VIDEO, |
| 900 | 899 | }, |
| 901 | − { NULL } | |
| 902 | 900 | }; |
| 903 | 901 | |
| 904 | 902 | #if CONFIG_CONVOLUTION_FILTER |
| @@ -910,8 +908,8 @@ const AVFilter ff_vf_convolution = { · 5 unmodified lines | ||
| 910 | 908 | .priv_class = &convolution_class, |
| 911 | 909 | .init = init, |
| 912 | 910 | .query_formats = query_formats, |
| 913 | − .inputs = convolution_inputs, | |
| 914 | − .outputs = convolution_outputs, | |
| 911 | + FILTER_INPUTS(convolution_inputs), | |
| 912 | + FILTER_OUTPUTS(convolution_outputs), | |
| 915 | 913 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 916 | 914 | .process_command = process_command, |
| 917 | 915 | }; |
| @@ -939,8 +937,8 @@ const AVFilter ff_vf_prewitt = { · 21 unmodified lines | ||
| 939 | 937 | .priv_class = &prewitt_class, |
| 940 | 938 | .init = init, |
| 941 | 939 | .query_formats = query_formats, |
| 942 | − .inputs = convolution_inputs, | |
| 943 | − .outputs = convolution_outputs, | |
| 940 | + FILTER_INPUTS(convolution_inputs), | |
| 941 | + FILTER_OUTPUTS(convolution_outputs), | |
| 944 | 942 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 945 | 943 | .process_command = process_command, |
| 946 | 944 | }; |
| @@ -959,8 +957,8 @@ const AVFilter ff_vf_sobel = { · 12 unmodified lines | ||
| 959 | 957 | .priv_class = &sobel_class, |
| 960 | 958 | .init = init, |
| 961 | 959 | .query_formats = query_formats, |
| 962 | − .inputs = convolution_inputs, | |
| 963 | − .outputs = convolution_outputs, | |
| 960 | + FILTER_INPUTS(convolution_inputs), | |
| 961 | + FILTER_OUTPUTS(convolution_outputs), | |
| 964 | 962 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 965 | 963 | .process_command = process_command, |
| 966 | 964 | }; |
| @@ -979,8 +977,8 @@ const AVFilter ff_vf_roberts = { · 12 unmodified lines | ||
| 979 | 977 | .priv_class = &roberts_class, |
| 980 | 978 | .init = init, |
| 981 | 979 | .query_formats = query_formats, |
| 982 | − .inputs = convolution_inputs, | |
| 983 | − .outputs = convolution_outputs, | |
| 980 | + FILTER_INPUTS(convolution_inputs), | |
| 981 | + FILTER_OUTPUTS(convolution_outputs), | |
| 984 | 982 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 985 | 983 | .process_command = process_command, |
| 986 | 984 | }; |
| @@ -999,8 +997,8 @@ const AVFilter ff_vf_kirsch = { · 12 unmodified lines | ||
| 999 | 997 | .priv_class = &kirsch_class, |
| 1000 | 998 | .init = init, |
| 1001 | 999 | .query_formats = query_formats, |
| 1002 | − .inputs = convolution_inputs, | |
| 1003 | − .outputs = convolution_outputs, | |
| 1000 | + FILTER_INPUTS(convolution_inputs), | |
| 1001 | + FILTER_OUTPUTS(convolution_outputs), | |
| 1004 | 1002 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 1005 | 1003 | .process_command = process_command, |
| 1006 | 1004 | }; |
| @@ -327,7 +327,6 @@ static const AVFilterPad convolution_opencl_inputs[] = { · 326 unmodified lines | ||
| 327 | 327 | .filter_frame = &convolution_opencl_filter_frame, |
| 328 | 328 | .config_props = &ff_opencl_filter_config_input, |
| 329 | 329 | }, |
| 330 | − { NULL } | |
| 331 | 330 | }; |
| 332 | 331 | |
| 333 | 332 | static const AVFilterPad convolution_opencl_outputs[] = { |
| @@ -336,7 +335,6 @@ static const AVFilterPad convolution_opencl_outputs[] = { · 2 unmodified lines | ||
| 336 | 335 | .type = AVMEDIA_TYPE_VIDEO, |
| 337 | 336 | .config_props = &ff_opencl_filter_config_output, |
| 338 | 337 | }, |
| 339 | − { NULL } | |
| 340 | 338 | }; |
| 341 | 339 | |
| 342 | 340 | #define OFFSET(x) offsetof(ConvolutionOpenCLContext, x) |
| @@ -370,8 +368,8 @@ const AVFilter ff_vf_convolution_opencl = { · 27 unmodified lines | ||
| 370 | 368 | .init = &ff_opencl_filter_init, |
| 371 | 369 | .uninit = &convolution_opencl_uninit, |
| 372 | 370 | .query_formats = &ff_opencl_filter_query_formats, |
| 373 | − .inputs = convolution_opencl_inputs, | |
| 374 | − .outputs = convolution_opencl_outputs, | |
| 371 | + FILTER_INPUTS(convolution_opencl_inputs), | |
| 372 | + FILTER_OUTPUTS(convolution_opencl_outputs), | |
| 375 | 373 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 376 | 374 | }; |
| 377 | 375 | |
| @@ -396,8 +394,8 @@ const AVFilter ff_vf_sobel_opencl = { · 18 unmodified lines | ||
| 396 | 394 | .init = &ff_opencl_filter_init, |
| 397 | 395 | .uninit = &convolution_opencl_uninit, |
| 398 | 396 | .query_formats = &ff_opencl_filter_query_formats, |
| 399 | − .inputs = convolution_opencl_inputs, | |
| 400 | − .outputs = convolution_opencl_outputs, | |
| 397 | + FILTER_INPUTS(convolution_opencl_inputs), | |
| 398 | + FILTER_OUTPUTS(convolution_opencl_outputs), | |
| 401 | 399 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 402 | 400 | }; |
| 403 | 401 | |
| @@ -422,8 +420,8 @@ const AVFilter ff_vf_prewitt_opencl = { · 18 unmodified lines | ||
| 422 | 420 | .init = &ff_opencl_filter_init, |
| 423 | 421 | .uninit = &convolution_opencl_uninit, |
| 424 | 422 | .query_formats = &ff_opencl_filter_query_formats, |
| 425 | − .inputs = convolution_opencl_inputs, | |
| 426 | − .outputs = convolution_opencl_outputs, | |
| 423 | + FILTER_INPUTS(convolution_opencl_inputs), | |
| 424 | + FILTER_OUTPUTS(convolution_opencl_outputs), | |
| 427 | 425 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 428 | 426 | }; |
| 429 | 427 | |
| @@ -448,8 +446,8 @@ const AVFilter ff_vf_roberts_opencl = { · 18 unmodified lines | ||
| 448 | 446 | .init = &ff_opencl_filter_init, |
| 449 | 447 | .uninit = &convolution_opencl_uninit, |
| 450 | 448 | .query_formats = &ff_opencl_filter_query_formats, |
| 451 | − .inputs = convolution_opencl_inputs, | |
| 452 | − .outputs = convolution_opencl_outputs, | |
| 449 | + FILTER_INPUTS(convolution_opencl_inputs), | |
| 450 | + FILTER_OUTPUTS(convolution_opencl_outputs), | |
| 453 | 451 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 454 | 452 | }; |
| 455 | 453 | |
| @@ -645,7 +645,6 @@ static const AVFilterPad convolve_inputs[] = { · 644 unmodified lines | ||
| 645 | 645 | .type = AVMEDIA_TYPE_VIDEO, |
| 646 | 646 | .config_props = config_input_impulse, |
| 647 | 647 | }, |
| 648 | − { NULL } | |
| 649 | 648 | }; |
| 650 | 649 | |
| 651 | 650 | static const AVFilterPad convolve_outputs[] = { |
| @@ -654,7 +653,6 @@ static const AVFilterPad convolve_outputs[] = { · 2 unmodified lines | ||
| 654 | 653 | .type = AVMEDIA_TYPE_VIDEO, |
| 655 | 654 | .config_props = config_output, |
| 656 | 655 | }, |
| 657 | − { NULL } | |
| 658 | 656 | }; |
| 659 | 657 | |
| 660 | 658 | #if CONFIG_CONVOLVE_FILTER |
| @@ -671,8 +669,8 @@ const AVFilter ff_vf_convolve = { · 10 unmodified lines | ||
| 671 | 669 | .activate = activate, |
| 672 | 670 | .priv_size = sizeof(ConvolveContext), |
| 673 | 671 | .priv_class = &convolve_class, |
| 674 | − .inputs = convolve_inputs, | |
| 675 | − .outputs = convolve_outputs, | |
| 672 | + FILTER_INPUTS(convolve_inputs), | |
| 673 | + FILTER_OUTPUTS(convolve_outputs), | |
| 676 | 674 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 677 | 675 | }; |
| 678 | 676 | |
| @@ -701,8 +699,8 @@ const AVFilter ff_vf_deconvolve = { · 22 unmodified lines | ||
| 701 | 699 | .activate = activate, |
| 702 | 700 | .priv_size = sizeof(ConvolveContext), |
| 703 | 701 | .priv_class = &deconvolve_class, |
| 704 | − .inputs = convolve_inputs, | |
| 705 | − .outputs = convolve_outputs, | |
| 702 | + FILTER_INPUTS(convolve_inputs), | |
| 703 | + FILTER_OUTPUTS(convolve_outputs), | |
| 706 | 704 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 707 | 705 | }; |
| 708 | 706 | |
| @@ -70,7 +70,6 @@ static const AVFilterPad avfilter_vf_copy_inputs[] = { · 69 unmodified lines | ||
| 70 | 70 | .type = AVMEDIA_TYPE_VIDEO, |
| 71 | 71 | .filter_frame = filter_frame, |
| 72 | 72 | }, |
| 73 | − { NULL } | |
| 74 | 73 | }; |
| 75 | 74 | |
| 76 | 75 | static const AVFilterPad avfilter_vf_copy_outputs[] = { |
| @@ -78,13 +77,12 @@ static const AVFilterPad avfilter_vf_copy_outputs[] = { · 1 unmodified line | ||
| 78 | 77 | .name = "default", |
| 79 | 78 | .type = AVMEDIA_TYPE_VIDEO, |
| 80 | 79 | }, |
| 81 | − { NULL } | |
| 82 | 80 | }; |
| 83 | 81 | |
| 84 | 82 | const AVFilter ff_vf_copy = { |
| 85 | 83 | .name = "copy", |
| 86 | 84 | .description = NULL_IF_CONFIG_SMALL("Copy the input video unchanged to the output."), |
| 87 | − .inputs = avfilter_vf_copy_inputs, | |
| 88 | − .outputs = avfilter_vf_copy_outputs, | |
| 85 | + FILTER_INPUTS(avfilter_vf_copy_inputs), | |
| 86 | + FILTER_OUTPUTS(avfilter_vf_copy_outputs), | |
| 89 | 87 | .query_formats = query_formats, |
| 90 | 88 | }; |
| @@ -608,7 +608,6 @@ static const AVFilterPad vf_coreimage_inputs[] = { · 607 unmodified lines | ||
| 608 | 608 | .filter_frame = filter_frame, |
| 609 | 609 | .config_props = config_input, |
| 610 | 610 | }, |
| 611 | − { NULL } | |
| 612 | 611 | }; |
| 613 | 612 | |
| 614 | 613 | static const AVFilterPad vf_coreimage_outputs[] = { |
| @@ -616,7 +615,6 @@ static const AVFilterPad vf_coreimage_outputs[] = { · 1 unmodified line | ||
| 616 | 615 | .name = "default", |
| 617 | 616 | .type = AVMEDIA_TYPE_VIDEO, |
| 618 | 617 | }, |
| 619 | − { NULL } | |
| 620 | 618 | }; |
| 621 | 619 | |
| 622 | 620 | static const AVFilterPad vsrc_coreimagesrc_outputs[] = { |
| @@ -626,7 +624,6 @@ static const AVFilterPad vsrc_coreimagesrc_outputs[] = { · 3 unmodified lines | ||
| 626 | 624 | .request_frame = request_frame, |
| 627 | 625 | .config_props = config_output, |
| 628 | 626 | }, |
| 629 | − { NULL } | |
| 630 | 627 | }; |
| 631 | 628 | |
| 632 | 629 | #define OFFSET(x) offsetof(CoreImageContext, x) |
| @@ -663,8 +660,8 @@ const AVFilter ff_vf_coreimage = { · 30 unmodified lines | ||
| 663 | 660 | .uninit = uninit, |
| 664 | 661 | .priv_size = sizeof(CoreImageContext), |
| 665 | 662 | .priv_class = &coreimage_class, |
| 666 | − .inputs = vf_coreimage_inputs, | |
| 667 | − .outputs = vf_coreimage_outputs, | |
| 663 | + FILTER_INPUTS(vf_coreimage_inputs), | |
| 664 | + FILTER_OUTPUTS(vf_coreimage_outputs), | |
| 668 | 665 | .query_formats = query_formats, |
| 669 | 666 | }; |
| 670 | 667 | |
| @@ -685,6 +682,6 @@ const AVFilter ff_vsrc_coreimagesrc = { · 14 unmodified lines | ||
| 685 | 682 | .priv_size = sizeof(CoreImageContext), |
| 686 | 683 | .priv_class = &coreimagesrc_class, |
| 687 | 684 | .inputs = NULL, |
| 688 | − .outputs = vsrc_coreimagesrc_outputs, | |
| 685 | + FILTER_OUTPUTS(vsrc_coreimagesrc_outputs), | |
| 689 | 686 | .query_formats = query_formats_src, |
| 690 | 687 | }; |
| @@ -236,7 +236,6 @@ static const AVFilterPad cover_rect_inputs[] = { · 235 unmodified lines | ||
| 236 | 236 | .config_props = config_input, |
| 237 | 237 | .filter_frame = filter_frame, |
| 238 | 238 | }, |
| 239 | − { NULL } | |
| 240 | 239 | }; |
| 241 | 240 | |
| 242 | 241 | static const AVFilterPad cover_rect_outputs[] = { |
| @@ -244,7 +243,6 @@ static const AVFilterPad cover_rect_outputs[] = { · 1 unmodified line | ||
| 244 | 243 | .name = "default", |
| 245 | 244 | .type = AVMEDIA_TYPE_VIDEO, |
| 246 | 245 | }, |
| 247 | − { NULL } | |
| 248 | 246 | }; |
| 249 | 247 | |
| 250 | 248 | const AVFilter ff_vf_cover_rect = { |
| @@ -254,7 +252,7 @@ const AVFilter ff_vf_cover_rect = { · 3 unmodified lines | ||
| 254 | 252 | .init = init, |
| 255 | 253 | .uninit = uninit, |
| 256 | 254 | .query_formats = query_formats, |
| 257 | − .inputs = cover_rect_inputs, | |
| 258 | − .outputs = cover_rect_outputs, | |
| 255 | + FILTER_INPUTS(cover_rect_inputs), | |
| 256 | + FILTER_OUTPUTS(cover_rect_outputs), | |
| 259 | 257 | .priv_class = &cover_rect_class, |
| 260 | 258 | }; |
| @@ -380,7 +380,6 @@ static const AVFilterPad avfilter_vf_crop_inputs[] = { · 379 unmodified lines | ||
| 380 | 380 | .filter_frame = filter_frame, |
| 381 | 381 | .config_props = config_input, |
| 382 | 382 | }, |
| 383 | − { NULL } | |
| 384 | 383 | }; |
| 385 | 384 | |
| 386 | 385 | static const AVFilterPad avfilter_vf_crop_outputs[] = { |
| @@ -389,7 +388,6 @@ static const AVFilterPad avfilter_vf_crop_outputs[] = { · 2 unmodified lines | ||
| 389 | 388 | .type = AVMEDIA_TYPE_VIDEO, |
| 390 | 389 | .config_props = config_output, |
| 391 | 390 | }, |
| 392 | − { NULL } | |
| 393 | 391 | }; |
| 394 | 392 | |
| 395 | 393 | const AVFilter ff_vf_crop = { |
| @@ -399,7 +397,7 @@ const AVFilter ff_vf_crop = { · 3 unmodified lines | ||
| 399 | 397 | .priv_class = &crop_class, |
| 400 | 398 | .query_formats = query_formats, |
| 401 | 399 | .uninit = uninit, |
| 402 | − .inputs = avfilter_vf_crop_inputs, | |
| 403 | − .outputs = avfilter_vf_crop_outputs, | |
| 400 | + FILTER_INPUTS(avfilter_vf_crop_inputs), | |
| 401 | + FILTER_OUTPUTS(avfilter_vf_crop_outputs), | |
| 404 | 402 | .process_command = process_command, |
| 405 | 403 | }; |
| @@ -260,7 +260,6 @@ static const AVFilterPad avfilter_vf_cropdetect_inputs[] = { · 259 unmodified lines | ||
| 260 | 260 | .config_props = config_input, |
| 261 | 261 | .filter_frame = filter_frame, |
| 262 | 262 | }, |
| 263 | − { NULL } | |
| 264 | 263 | }; |
| 265 | 264 | |
| 266 | 265 | static const AVFilterPad avfilter_vf_cropdetect_outputs[] = { |
| @@ -268,7 +267,6 @@ static const AVFilterPad avfilter_vf_cropdetect_outputs[] = { · 1 unmodified line | ||
| 268 | 267 | .name = "default", |
| 269 | 268 | .type = AVMEDIA_TYPE_VIDEO |
| 270 | 269 | }, |
| 271 | − { NULL } | |
| 272 | 270 | }; |
| 273 | 271 | |
| 274 | 272 | const AVFilter ff_vf_cropdetect = { |
| @@ -278,7 +276,7 @@ const AVFilter ff_vf_cropdetect = { · 3 unmodified lines | ||
| 278 | 276 | .priv_class = &cropdetect_class, |
| 279 | 277 | .init = init, |
| 280 | 278 | .query_formats = query_formats, |
| 281 | − .inputs = avfilter_vf_cropdetect_inputs, | |
| 282 | − .outputs = avfilter_vf_cropdetect_outputs, | |
| 279 | + FILTER_INPUTS(avfilter_vf_cropdetect_inputs), | |
| 280 | + FILTER_OUTPUTS(avfilter_vf_cropdetect_outputs), | |
| 283 | 281 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 284 | 282 | }; |
| @@ -800,7 +800,6 @@ static const AVFilterPad curves_inputs[] = { · 799 unmodified lines | ||
| 800 | 800 | .filter_frame = filter_frame, |
| 801 | 801 | .config_props = config_input, |
| 802 | 802 | }, |
| 803 | − { NULL } | |
| 804 | 803 | }; |
| 805 | 804 | |
| 806 | 805 | static const AVFilterPad curves_outputs[] = { |
| @@ -808,7 +807,6 @@ static const AVFilterPad curves_outputs[] = { · 1 unmodified line | ||
| 808 | 807 | .name = "default", |
| 809 | 808 | .type = AVMEDIA_TYPE_VIDEO, |
| 810 | 809 | }, |
| 811 | − { NULL } | |
| 812 | 810 | }; |
| 813 | 811 | |
| 814 | 812 | const AVFilter ff_vf_curves = { |
| @@ -818,8 +816,8 @@ const AVFilter ff_vf_curves = { · 3 unmodified lines | ||
| 818 | 816 | .init = curves_init, |
| 819 | 817 | .uninit = curves_uninit, |
| 820 | 818 | .query_formats = query_formats, |
| 821 | − .inputs = curves_inputs, | |
| 822 | − .outputs = curves_outputs, | |
| 819 | + FILTER_INPUTS(curves_inputs), | |
| 820 | + FILTER_OUTPUTS(curves_outputs), | |
| 823 | 821 | .priv_class = &curves_class, |
| 824 | 822 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 825 | 823 | .process_command = process_command, |
| @@ -438,7 +438,6 @@ static const AVFilterPad inputs[] = { · 437 unmodified lines | ||
| 438 | 438 | .filter_frame = filter_frame, |
| 439 | 439 | .config_props = config_input, |
| 440 | 440 | }, |
| 441 | − { NULL } | |
| 442 | 441 | }; |
| 443 | 442 | |
| 444 | 443 | static const AVFilterPad outputs[] = { |
| @@ -447,7 +446,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 447 | 446 | .type = AVMEDIA_TYPE_VIDEO, |
| 448 | 447 | .config_props = config_output, |
| 449 | 448 | }, |
| 450 | − { NULL } | |
| 451 | 449 | }; |
| 452 | 450 | |
| 453 | 451 | const AVFilter ff_vf_datascope = { |
| @@ -456,8 +454,8 @@ const AVFilter ff_vf_datascope = { · 2 unmodified lines | ||
| 456 | 454 | .priv_size = sizeof(DatascopeContext), |
| 457 | 455 | .priv_class = &datascope_class, |
| 458 | 456 | .query_formats = query_formats, |
| 459 | − .inputs = inputs, | |
| 460 | − .outputs = outputs, | |
| 457 | + FILTER_INPUTS(inputs), | |
| 458 | + FILTER_OUTPUTS(outputs), | |
| 461 | 459 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 462 | 460 | .process_command = process_command, |
| 463 | 461 | }; |
| @@ -728,7 +726,6 @@ static const AVFilterPad pixscope_inputs[] = { · 264 unmodified lines | ||
| 728 | 726 | .filter_frame = pixscope_filter_frame, |
| 729 | 727 | .config_props = pixscope_config_input, |
| 730 | 728 | }, |
| 731 | − { NULL } | |
| 732 | 729 | }; |
| 733 | 730 | |
| 734 | 731 | static const AVFilterPad pixscope_outputs[] = { |
| @@ -736,7 +733,6 @@ static const AVFilterPad pixscope_outputs[] = { · 1 unmodified line | ||
| 736 | 733 | .name = "default", |
| 737 | 734 | .type = AVMEDIA_TYPE_VIDEO, |
| 738 | 735 | }, |
| 739 | − { NULL } | |
| 740 | 736 | }; |
| 741 | 737 | |
| 742 | 738 | const AVFilter ff_vf_pixscope = { |
| @@ -745,8 +741,8 @@ const AVFilter ff_vf_pixscope = { · 2 unmodified lines | ||
| 745 | 741 | .priv_size = sizeof(PixscopeContext), |
| 746 | 742 | .priv_class = &pixscope_class, |
| 747 | 743 | .query_formats = query_formats, |
| 748 | − .inputs = pixscope_inputs, | |
| 749 | − .outputs = pixscope_outputs, | |
| 744 | + FILTER_INPUTS(pixscope_inputs), | |
| 745 | + FILTER_OUTPUTS(pixscope_outputs), | |
| 750 | 746 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 751 | 747 | .process_command = pixscope_process_command, |
| 752 | 748 | }; |
| @@ -1134,7 +1130,6 @@ static const AVFilterPad oscilloscope_inputs[] = { · 381 unmodified lines | ||
| 1134 | 1130 | .filter_frame = oscilloscope_filter_frame, |
| 1135 | 1131 | .config_props = oscilloscope_config_input, |
| 1136 | 1132 | }, |
| 1137 | − { NULL } | |
| 1138 | 1133 | }; |
| 1139 | 1134 | |
| 1140 | 1135 | static const AVFilterPad oscilloscope_outputs[] = { |
| @@ -1142,7 +1137,6 @@ static const AVFilterPad oscilloscope_outputs[] = { · 1 unmodified line | ||
| 1142 | 1137 | .name = "default", |
| 1143 | 1138 | .type = AVMEDIA_TYPE_VIDEO, |
| 1144 | 1139 | }, |
| 1145 | − { NULL } | |
| 1146 | 1140 | }; |
| 1147 | 1141 | |
| 1148 | 1142 | const AVFilter ff_vf_oscilloscope = { |
| @@ -1152,8 +1146,8 @@ const AVFilter ff_vf_oscilloscope = { · 3 unmodified lines | ||
| 1152 | 1146 | .priv_class = &oscilloscope_class, |
| 1153 | 1147 | .query_formats = query_formats, |
| 1154 | 1148 | .uninit = oscilloscope_uninit, |
| 1155 | − .inputs = oscilloscope_inputs, | |
| 1156 | − .outputs = oscilloscope_outputs, | |
| 1149 | + FILTER_INPUTS(oscilloscope_inputs), | |
| 1150 | + FILTER_OUTPUTS(oscilloscope_outputs), | |
| 1157 | 1151 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 1158 | 1152 | .process_command = oscilloscope_process_command, |
| 1159 | 1153 | }; |
| @@ -281,7 +281,6 @@ static const AVFilterPad dblur_inputs[] = { · 280 unmodified lines | ||
| 281 | 281 | .config_props = config_input, |
| 282 | 282 | .filter_frame = filter_frame, |
| 283 | 283 | }, |
| 284 | − { NULL } | |
| 285 | 284 | }; |
| 286 | 285 | |
| 287 | 286 | static const AVFilterPad dblur_outputs[] = { |
| @@ -289,7 +288,6 @@ static const AVFilterPad dblur_outputs[] = { · 1 unmodified line | ||
| 289 | 288 | .name = "default", |
| 290 | 289 | .type = AVMEDIA_TYPE_VIDEO, |
| 291 | 290 | }, |
| 292 | − { NULL } | |
| 293 | 291 | }; |
| 294 | 292 | |
| 295 | 293 | const AVFilter ff_vf_dblur = { |
| @@ -299,8 +297,8 @@ const AVFilter ff_vf_dblur = { · 3 unmodified lines | ||
| 299 | 297 | .priv_class = &dblur_class, |
| 300 | 298 | .uninit = uninit, |
| 301 | 299 | .query_formats = query_formats, |
| 302 | − .inputs = dblur_inputs, | |
| 303 | − .outputs = dblur_outputs, | |
| 300 | + FILTER_INPUTS(dblur_inputs), | |
| 301 | + FILTER_OUTPUTS(dblur_outputs), | |
| 304 | 302 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 305 | 303 | .process_command = ff_filter_process_command, |
| 306 | 304 | }; |
| @@ -811,7 +811,6 @@ static const AVFilterPad dctdnoiz_inputs[] = { · 810 unmodified lines | ||
| 811 | 811 | .filter_frame = filter_frame, |
| 812 | 812 | .config_props = config_input, |
| 813 | 813 | }, |
| 814 | − { NULL } | |
| 815 | 814 | }; |
| 816 | 815 | |
| 817 | 816 | static const AVFilterPad dctdnoiz_outputs[] = { |
| @@ -819,7 +818,6 @@ static const AVFilterPad dctdnoiz_outputs[] = { · 1 unmodified line | ||
| 819 | 818 | .name = "default", |
| 820 | 819 | .type = AVMEDIA_TYPE_VIDEO, |
| 821 | 820 | }, |
| 822 | − { NULL } | |
| 823 | 821 | }; |
| 824 | 822 | |
| 825 | 823 | const AVFilter ff_vf_dctdnoiz = { |
| @@ -829,8 +827,8 @@ const AVFilter ff_vf_dctdnoiz = { · 3 unmodified lines | ||
| 829 | 827 | .init = init, |
| 830 | 828 | .uninit = uninit, |
| 831 | 829 | .query_formats = query_formats, |
| 832 | − .inputs = dctdnoiz_inputs, | |
| 833 | − .outputs = dctdnoiz_outputs, | |
| 830 | + FILTER_INPUTS(dctdnoiz_inputs), | |
| 831 | + FILTER_OUTPUTS(dctdnoiz_outputs), | |
| 834 | 832 | .priv_class = &dctdnoiz_class, |
| 835 | 833 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 836 | 834 | }; |
| @@ -456,7 +456,6 @@ static const AVFilterPad avfilter_vf_deband_inputs[] = { · 455 unmodified lines | ||
| 456 | 456 | .config_props = config_input, |
| 457 | 457 | .filter_frame = filter_frame, |
| 458 | 458 | }, |
| 459 | − { NULL } | |
| 460 | 459 | }; |
| 461 | 460 | |
| 462 | 461 | static const AVFilterPad avfilter_vf_deband_outputs[] = { |
| @@ -464,7 +463,6 @@ static const AVFilterPad avfilter_vf_deband_outputs[] = { · 1 unmodified line | ||
| 464 | 463 | .name = "default", |
| 465 | 464 | .type = AVMEDIA_TYPE_VIDEO, |
| 466 | 465 | }, |
| 467 | − { NULL } | |
| 468 | 466 | }; |
| 469 | 467 | |
| 470 | 468 | const AVFilter ff_vf_deband = { |
| @@ -474,8 +472,8 @@ const AVFilter ff_vf_deband = { · 3 unmodified lines | ||
| 474 | 472 | .priv_class = &deband_class, |
| 475 | 473 | .uninit = uninit, |
| 476 | 474 | .query_formats = query_formats, |
| 477 | − .inputs = avfilter_vf_deband_inputs, | |
| 478 | − .outputs = avfilter_vf_deband_outputs, | |
| 475 | + FILTER_INPUTS(avfilter_vf_deband_inputs), | |
| 476 | + FILTER_OUTPUTS(avfilter_vf_deband_outputs), | |
| 479 | 477 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 480 | 478 | .process_command = process_command, |
| 481 | 479 | }; |
| @@ -398,7 +398,6 @@ static const AVFilterPad inputs[] = { · 397 unmodified lines | ||
| 398 | 398 | .type = AVMEDIA_TYPE_VIDEO, |
| 399 | 399 | .filter_frame = filter_frame, |
| 400 | 400 | }, |
| 401 | − { NULL } | |
| 402 | 401 | }; |
| 403 | 402 | |
| 404 | 403 | static const AVFilterPad outputs[] = { |
| @@ -407,7 +406,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 407 | 406 | .type = AVMEDIA_TYPE_VIDEO, |
| 408 | 407 | .config_props = config_output, |
| 409 | 408 | }, |
| 410 | − { NULL } | |
| 411 | 409 | }; |
| 412 | 410 | |
| 413 | 411 | AVFILTER_DEFINE_CLASS(deblock); |
| @@ -418,8 +416,8 @@ const AVFilter ff_vf_deblock = { · 4 unmodified lines | ||
| 418 | 416 | .priv_size = sizeof(DeblockContext), |
| 419 | 417 | .priv_class = &deblock_class, |
| 420 | 418 | .query_formats = query_formats, |
| 421 | − .inputs = inputs, | |
| 422 | − .outputs = outputs, | |
| 419 | + FILTER_INPUTS(inputs), | |
| 420 | + FILTER_OUTPUTS(outputs), | |
| 423 | 421 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 424 | 422 | .process_command = process_command, |
| 425 | 423 | }; |
| @@ -428,7 +428,6 @@ static const AVFilterPad decimate_outputs[] = { · 427 unmodified lines | ||
| 428 | 428 | .type = AVMEDIA_TYPE_VIDEO, |
| 429 | 429 | .config_props = config_output, |
| 430 | 430 | }, |
| 431 | − { NULL } | |
| 432 | 431 | }; |
| 433 | 432 | |
| 434 | 433 | const AVFilter ff_vf_decimate = { |
| @@ -439,7 +438,7 @@ const AVFilter ff_vf_decimate = { · 4 unmodified lines | ||
| 439 | 438 | .uninit = decimate_uninit, |
| 440 | 439 | .priv_size = sizeof(DecimateContext), |
| 441 | 440 | .query_formats = query_formats, |
| 442 | − .outputs = decimate_outputs, | |
| 441 | + FILTER_OUTPUTS(decimate_outputs), | |
| 443 | 442 | .priv_class = &decimate_class, |
| 444 | 443 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 445 | 444 | }; |
| @@ -384,7 +384,6 @@ static const AVFilterPad inputs[] = { · 383 unmodified lines | ||
| 384 | 384 | .name = "default", |
| 385 | 385 | .type = AVMEDIA_TYPE_VIDEO, |
| 386 | 386 | }, |
| 387 | − { NULL } | |
| 388 | 387 | }; |
| 389 | 388 | |
| 390 | 389 | static const AVFilterPad outputs[] = { |
| @@ -393,7 +392,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 393 | 392 | .type = AVMEDIA_TYPE_VIDEO, |
| 394 | 393 | .config_props = config_output, |
| 395 | 394 | }, |
| 396 | − { NULL } | |
| 397 | 395 | }; |
| 398 | 396 | |
| 399 | 397 | AVFILTER_DEFINE_CLASS(dedot); |
| @@ -406,7 +404,7 @@ const AVFilter ff_vf_dedot = { · 6 unmodified lines | ||
| 406 | 404 | .query_formats = query_formats, |
| 407 | 405 | .activate = activate, |
| 408 | 406 | .uninit = uninit, |
| 409 | − .inputs = inputs, | |
| 410 | − .outputs = outputs, | |
| 407 | + FILTER_INPUTS(inputs), | |
| 408 | + FILTER_OUTPUTS(outputs), | |
| 411 | 409 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 412 | 410 | }; |
| @@ -451,7 +451,6 @@ static const AVFilterPad inputs[] = { · 450 unmodified lines | ||
| 451 | 451 | .filter_frame = filter_frame, |
| 452 | 452 | .config_props = config_input, |
| 453 | 453 | }, |
| 454 | − { NULL } | |
| 455 | 454 | }; |
| 456 | 455 | |
| 457 | 456 | static const AVFilterPad outputs[] = { |
| @@ -460,7 +459,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 460 | 459 | .type = AVMEDIA_TYPE_VIDEO, |
| 461 | 460 | .request_frame = request_frame, |
| 462 | 461 | }, |
| 463 | − { NULL } | |
| 464 | 462 | }; |
| 465 | 463 | |
| 466 | 464 | const AVFilter ff_vf_deflicker = { |
| @@ -470,6 +468,6 @@ const AVFilter ff_vf_deflicker = { · 3 unmodified lines | ||
| 470 | 468 | .priv_class = &deflicker_class, |
| 471 | 469 | .uninit = uninit, |
| 472 | 470 | .query_formats = query_formats, |
| 473 | − .inputs = inputs, | |
| 474 | − .outputs = outputs, | |
| 471 | + FILTER_INPUTS(inputs), | |
| 472 | + FILTER_OUTPUTS(outputs), | |
| 475 | 473 | }; |
| @@ -576,7 +576,6 @@ static const AVFilterPad qsvdeint_inputs[] = { · 575 unmodified lines | ||
| 576 | 576 | .type = AVMEDIA_TYPE_VIDEO, |
| 577 | 577 | .filter_frame = qsvdeint_filter_frame, |
| 578 | 578 | }, |
| 579 | − { NULL } | |
| 580 | 579 | }; |
| 581 | 580 | |
| 582 | 581 | static const AVFilterPad qsvdeint_outputs[] = { |
| @@ -586,7 +585,6 @@ static const AVFilterPad qsvdeint_outputs[] = { · 3 unmodified lines | ||
| 586 | 585 | .config_props = qsvdeint_config_props, |
| 587 | 586 | .request_frame = qsvdeint_request_frame, |
| 588 | 587 | }, |
| 589 | − { NULL } | |
| 590 | 588 | }; |
| 591 | 589 | |
| 592 | 590 | const AVFilter ff_vf_deinterlace_qsv = { |
| @@ -599,8 +597,8 @@ const AVFilter ff_vf_deinterlace_qsv = { · 6 unmodified lines | ||
| 599 | 597 | .priv_size = sizeof(QSVDeintContext), |
| 600 | 598 | .priv_class = &qsvdeint_class, |
| 601 | 599 | |
| 602 | − .inputs = qsvdeint_inputs, | |
| 603 | − .outputs = qsvdeint_outputs, | |
| 600 | + FILTER_INPUTS(qsvdeint_inputs), | |
| 601 | + FILTER_OUTPUTS(qsvdeint_outputs), | |
| 604 | 602 | |
| 605 | 603 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 606 | 604 | }; |
| @@ -369,7 +369,6 @@ static const AVFilterPad deint_vaapi_inputs[] = { · 368 unmodified lines | ||
| 369 | 369 | .filter_frame = &deint_vaapi_filter_frame, |
| 370 | 370 | .config_props = &ff_vaapi_vpp_config_input, |
| 371 | 371 | }, |
| 372 | − { NULL } | |
| 373 | 372 | }; |
| 374 | 373 | |
| 375 | 374 | static const AVFilterPad deint_vaapi_outputs[] = { |
| @@ -378,7 +377,6 @@ static const AVFilterPad deint_vaapi_outputs[] = { · 2 unmodified lines | ||
| 378 | 377 | .type = AVMEDIA_TYPE_VIDEO, |
| 379 | 378 | .config_props = &deint_vaapi_config_output, |
| 380 | 379 | }, |
| 381 | − { NULL } | |
| 382 | 380 | }; |
| 383 | 381 | |
| 384 | 382 | const AVFilter ff_vf_deinterlace_vaapi = { |
| @@ -388,8 +386,8 @@ const AVFilter ff_vf_deinterlace_vaapi = { · 3 unmodified lines | ||
| 388 | 386 | .init = &deint_vaapi_init, |
| 389 | 387 | .uninit = &ff_vaapi_vpp_ctx_uninit, |
| 390 | 388 | .query_formats = &ff_vaapi_vpp_query_formats, |
| 391 | − .inputs = deint_vaapi_inputs, | |
| 392 | − .outputs = deint_vaapi_outputs, | |
| 389 | + FILTER_INPUTS(deint_vaapi_inputs), | |
| 390 | + FILTER_OUTPUTS(deint_vaapi_outputs), | |
| 393 | 391 | .priv_class = &deint_vaapi_class, |
| 394 | 392 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 395 | 393 | }; |
| @@ -163,7 +163,6 @@ static const AVFilterPad dejudder_inputs[] = { · 162 unmodified lines | ||
| 163 | 163 | .type = AVMEDIA_TYPE_VIDEO, |
| 164 | 164 | .filter_frame = filter_frame, |
| 165 | 165 | }, |
| 166 | − { NULL } | |
| 167 | 166 | }; |
| 168 | 167 | |
| 169 | 168 | static const AVFilterPad dejudder_outputs[] = { |
| @@ -172,7 +171,6 @@ static const AVFilterPad dejudder_outputs[] = { · 2 unmodified lines | ||
| 172 | 171 | .type = AVMEDIA_TYPE_VIDEO, |
| 173 | 172 | .config_props = config_out_props, |
| 174 | 173 | }, |
| 175 | − { NULL } | |
| 176 | 174 | }; |
| 177 | 175 | |
| 178 | 176 | const AVFilter ff_vf_dejudder = { |
| @@ -180,8 +178,8 @@ const AVFilter ff_vf_dejudder = { · 1 unmodified line | ||
| 180 | 178 | .description = NULL_IF_CONFIG_SMALL("Remove judder produced by pullup."), |
| 181 | 179 | .priv_size = sizeof(DejudderContext), |
| 182 | 180 | .priv_class = &dejudder_class, |
| 183 | − .inputs = dejudder_inputs, | |
| 184 | − .outputs = dejudder_outputs, | |
| 181 | + FILTER_INPUTS(dejudder_inputs), | |
| 182 | + FILTER_OUTPUTS(dejudder_outputs), | |
| 185 | 183 | .init = dejudder_init, |
| 186 | 184 | .uninit = dejudder_uninit, |
| 187 | 185 | }; |
| @@ -384,7 +384,6 @@ static const AVFilterPad avfilter_vf_delogo_inputs[] = { · 383 unmodified lines | ||
| 384 | 384 | .filter_frame = filter_frame, |
| 385 | 385 | .config_props = config_input, |
| 386 | 386 | }, |
| 387 | − { NULL } | |
| 388 | 387 | }; |
| 389 | 388 | |
| 390 | 389 | static const AVFilterPad avfilter_vf_delogo_outputs[] = { |
| @@ -392,7 +391,6 @@ static const AVFilterPad avfilter_vf_delogo_outputs[] = { · 1 unmodified line | ||
| 392 | 391 | .name = "default", |
| 393 | 392 | .type = AVMEDIA_TYPE_VIDEO, |
| 394 | 393 | }, |
| 395 | − { NULL } | |
| 396 | 394 | }; |
| 397 | 395 | |
| 398 | 396 | const AVFilter ff_vf_delogo = { |
| @@ -403,7 +401,7 @@ const AVFilter ff_vf_delogo = { · 4 unmodified lines | ||
| 403 | 401 | .init = init, |
| 404 | 402 | .uninit = uninit, |
| 405 | 403 | .query_formats = query_formats, |
| 406 | − .inputs = avfilter_vf_delogo_inputs, | |
| 407 | − .outputs = avfilter_vf_delogo_outputs, | |
| 404 | + FILTER_INPUTS(avfilter_vf_delogo_inputs), | |
| 405 | + FILTER_OUTPUTS(avfilter_vf_delogo_outputs), | |
| 408 | 406 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 409 | 407 | }; |
| @@ -112,7 +112,6 @@ static const AVFilterPad derain_inputs[] = { · 111 unmodified lines | ||
| 112 | 112 | .type = AVMEDIA_TYPE_VIDEO, |
| 113 | 113 | .filter_frame = filter_frame, |
| 114 | 114 | }, |
| 115 | − { NULL } | |
| 116 | 115 | }; |
| 117 | 116 | |
| 118 | 117 | static const AVFilterPad derain_outputs[] = { |
| @@ -120,7 +119,6 @@ static const AVFilterPad derain_outputs[] = { · 1 unmodified line | ||
| 120 | 119 | .name = "default", |
| 121 | 120 | .type = AVMEDIA_TYPE_VIDEO, |
| 122 | 121 | }, |
| 123 | − { NULL } | |
| 124 | 122 | }; |
| 125 | 123 | |
| 126 | 124 | const AVFilter ff_vf_derain = { |
| @@ -130,8 +128,8 @@ const AVFilter ff_vf_derain = { · 3 unmodified lines | ||
| 130 | 128 | .init = init, |
| 131 | 129 | .uninit = uninit, |
| 132 | 130 | .query_formats = query_formats, |
| 133 | − .inputs = derain_inputs, | |
| 134 | − .outputs = derain_outputs, | |
| 131 | + FILTER_INPUTS(derain_inputs), | |
| 132 | + FILTER_OUTPUTS(derain_outputs), | |
| 135 | 133 | .priv_class = &derain_class, |
| 136 | 134 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 137 | 135 | }; |
| @@ -537,7 +537,6 @@ static const AVFilterPad deshake_inputs[] = { · 536 unmodified lines | ||
| 537 | 537 | .filter_frame = filter_frame, |
| 538 | 538 | .config_props = config_props, |
| 539 | 539 | }, |
| 540 | − { NULL } | |
| 541 | 540 | }; |
| 542 | 541 | |
| 543 | 542 | static const AVFilterPad deshake_outputs[] = { |
| @@ -545,7 +544,6 @@ static const AVFilterPad deshake_outputs[] = { · 1 unmodified line | ||
| 545 | 544 | .name = "default", |
| 546 | 545 | .type = AVMEDIA_TYPE_VIDEO, |
| 547 | 546 | }, |
| 548 | − { NULL } | |
| 549 | 547 | }; |
| 550 | 548 | |
| 551 | 549 | const AVFilter ff_vf_deshake = { |
| @@ -555,7 +553,7 @@ const AVFilter ff_vf_deshake = { · 3 unmodified lines | ||
| 555 | 553 | .init = init, |
| 556 | 554 | .uninit = uninit, |
| 557 | 555 | .query_formats = query_formats, |
| 558 | − .inputs = deshake_inputs, | |
| 559 | − .outputs = deshake_outputs, | |
| 556 | + FILTER_INPUTS(deshake_inputs), | |
| 557 | + FILTER_OUTPUTS(deshake_outputs), | |
| 560 | 558 | .priv_class = &deshake_class, |
| 561 | 559 | }; |
| @@ -2141,7 +2141,6 @@ static const AVFilterPad deshake_opencl_inputs[] = { · 2140 unmodified lines | ||
| 2141 | 2141 | .type = AVMEDIA_TYPE_VIDEO, |
| 2142 | 2142 | .config_props = &ff_opencl_filter_config_input, |
| 2143 | 2143 | }, |
| 2144 | − { NULL } | |
| 2145 | 2144 | }; |
| 2146 | 2145 | |
| 2147 | 2146 | static const AVFilterPad deshake_opencl_outputs[] = { |
| @@ -2150,7 +2149,6 @@ static const AVFilterPad deshake_opencl_outputs[] = { · 2 unmodified lines | ||
| 2150 | 2149 | .type = AVMEDIA_TYPE_VIDEO, |
| 2151 | 2150 | .config_props = &ff_opencl_filter_config_output, |
| 2152 | 2151 | }, |
| 2153 | − { NULL } | |
| 2154 | 2152 | }; |
| 2155 | 2153 | |
| 2156 | 2154 | #define OFFSET(x) offsetof(DeshakeOpenCLContext, x) |
| @@ -2196,7 +2194,7 @@ const AVFilter ff_vf_deshake_opencl = { · 39 unmodified lines | ||
| 2196 | 2194 | .uninit = &deshake_opencl_uninit, |
| 2197 | 2195 | .query_formats = &ff_opencl_filter_query_formats, |
| 2198 | 2196 | .activate = activate, |
| 2199 | − .inputs = deshake_opencl_inputs, | |
| 2200 | − .outputs = deshake_opencl_outputs, | |
| 2197 | + FILTER_INPUTS(deshake_opencl_inputs), | |
| 2198 | + FILTER_OUTPUTS(deshake_opencl_outputs), | |
| 2201 | 2199 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE |
| 2202 | 2200 | }; |
| @@ -134,7 +134,6 @@ static const AVFilterPad despill_inputs[] = { · 133 unmodified lines | ||
| 134 | 134 | .flags = AVFILTERPAD_FLAG_NEEDS_WRITABLE, |
| 135 | 135 | .filter_frame = filter_frame, |
| 136 | 136 | }, |
| 137 | − { NULL } | |
| 138 | 137 | }; |
| 139 | 138 | |
| 140 | 139 | static const AVFilterPad despill_outputs[] = { |
| @@ -143,7 +142,6 @@ static const AVFilterPad despill_outputs[] = { · 2 unmodified lines | ||
| 143 | 142 | .type = AVMEDIA_TYPE_VIDEO, |
| 144 | 143 | .config_props = config_output, |
| 145 | 144 | }, |
| 146 | − { NULL } | |
| 147 | 145 | }; |
| 148 | 146 | |
| 149 | 147 | #define OFFSET(x) offsetof(DespillContext, x) |
| @@ -171,8 +169,8 @@ const AVFilter ff_vf_despill = { · 21 unmodified lines | ||
| 171 | 169 | .priv_size = sizeof(DespillContext), |
| 172 | 170 | .priv_class = &despill_class, |
| 173 | 171 | .query_formats = query_formats, |
| 174 | − .inputs = despill_inputs, | |
| 175 | − .outputs = despill_outputs, | |
| 172 | + FILTER_INPUTS(despill_inputs), | |
| 173 | + FILTER_OUTPUTS(despill_outputs), | |
| 176 | 174 | .process_command = ff_filter_process_command, |
| 177 | 175 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 178 | 176 | }; |
| @@ -360,7 +360,6 @@ static const AVFilterPad detelecine_inputs[] = { · 359 unmodified lines | ||
| 360 | 360 | .filter_frame = filter_frame, |
| 361 | 361 | .config_props = config_input, |
| 362 | 362 | }, |
| 363 | − { NULL } | |
| 364 | 363 | }; |
| 365 | 364 | |
| 366 | 365 | static const AVFilterPad detelecine_outputs[] = { |
| @@ -369,7 +368,6 @@ static const AVFilterPad detelecine_outputs[] = { · 2 unmodified lines | ||
| 369 | 368 | .type = AVMEDIA_TYPE_VIDEO, |
| 370 | 369 | .config_props = config_output, |
| 371 | 370 | }, |
| 372 | − { NULL } | |
| 373 | 371 | }; |
| 374 | 372 | |
| 375 | 373 | const AVFilter ff_vf_detelecine = { |
| @@ -380,6 +378,6 @@ const AVFilter ff_vf_detelecine = { · 4 unmodified lines | ||
| 380 | 378 | .init = init, |
| 381 | 379 | .uninit = uninit, |
| 382 | 380 | .query_formats = query_formats, |
| 383 | − .inputs = detelecine_inputs, | |
| 384 | − .outputs = detelecine_outputs, | |
| 381 | + FILTER_INPUTS(detelecine_inputs), | |
| 382 | + FILTER_OUTPUTS(detelecine_outputs), | |
| 385 | 383 | }; |
| @@ -388,7 +388,6 @@ static const AVFilterPad displace_inputs[] = { · 387 unmodified lines | ||
| 388 | 388 | .name = "ymap", |
| 389 | 389 | .type = AVMEDIA_TYPE_VIDEO, |
| 390 | 390 | }, |
| 391 | − { NULL } | |
| 392 | 391 | }; |
| 393 | 392 | |
| 394 | 393 | static const AVFilterPad displace_outputs[] = { |
| @@ -397,7 +396,6 @@ static const AVFilterPad displace_outputs[] = { · 2 unmodified lines | ||
| 397 | 396 | .type = AVMEDIA_TYPE_VIDEO, |
| 398 | 397 | .config_props = config_output, |
| 399 | 398 | }, |
| 400 | − { NULL } | |
| 401 | 399 | }; |
| 402 | 400 | |
| 403 | 401 | const AVFilter ff_vf_displace = { |
| @@ -407,8 +405,8 @@ const AVFilter ff_vf_displace = { · 3 unmodified lines | ||
| 407 | 405 | .uninit = uninit, |
| 408 | 406 | .query_formats = query_formats, |
| 409 | 407 | .activate = activate, |
| 410 | − .inputs = displace_inputs, | |
| 411 | − .outputs = displace_outputs, | |
| 408 | + FILTER_INPUTS(displace_inputs), | |
| 409 | + FILTER_OUTPUTS(displace_outputs), | |
| 412 | 410 | .priv_class = &displace_class, |
| 413 | 411 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 414 | 412 | }; |
| @@ -308,7 +308,6 @@ static const AVFilterPad dnn_classify_inputs[] = { · 307 unmodified lines | ||
| 308 | 308 | .name = "default", |
| 309 | 309 | .type = AVMEDIA_TYPE_VIDEO, |
| 310 | 310 | }, |
| 311 | − { NULL } | |
| 312 | 311 | }; |
| 313 | 312 | |
| 314 | 313 | static const AVFilterPad dnn_classify_outputs[] = { |
| @@ -316,7 +315,6 @@ static const AVFilterPad dnn_classify_outputs[] = { · 1 unmodified line | ||
| 316 | 315 | .name = "default", |
| 317 | 316 | .type = AVMEDIA_TYPE_VIDEO, |
| 318 | 317 | }, |
| 319 | − { NULL } | |
| 320 | 318 | }; |
| 321 | 319 | |
| 322 | 320 | const AVFilter ff_vf_dnn_classify = { |
| @@ -326,8 +324,8 @@ const AVFilter ff_vf_dnn_classify = { · 3 unmodified lines | ||
| 326 | 324 | .init = dnn_classify_init, |
| 327 | 325 | .uninit = dnn_classify_uninit, |
| 328 | 326 | .query_formats = dnn_classify_query_formats, |
| 329 | − .inputs = dnn_classify_inputs, | |
| 330 | − .outputs = dnn_classify_outputs, | |
| 327 | + FILTER_INPUTS(dnn_classify_inputs), | |
| 328 | + FILTER_OUTPUTS(dnn_classify_outputs), | |
| 331 | 329 | .priv_class = &dnn_classify_class, |
| 332 | 330 | .activate = dnn_classify_activate, |
| 333 | 331 | }; |
| @@ -518,7 +518,6 @@ static const AVFilterPad dnn_detect_inputs[] = { · 517 unmodified lines | ||
| 518 | 518 | .name = "default", |
| 519 | 519 | .type = AVMEDIA_TYPE_VIDEO, |
| 520 | 520 | }, |
| 521 | − { NULL } | |
| 522 | 521 | }; |
| 523 | 522 | |
| 524 | 523 | static const AVFilterPad dnn_detect_outputs[] = { |
| @@ -526,7 +525,6 @@ static const AVFilterPad dnn_detect_outputs[] = { · 1 unmodified line | ||
| 526 | 525 | .name = "default", |
| 527 | 526 | .type = AVMEDIA_TYPE_VIDEO, |
| 528 | 527 | }, |
| 529 | − { NULL } | |
| 530 | 528 | }; |
| 531 | 529 | |
| 532 | 530 | const AVFilter ff_vf_dnn_detect = { |
| @@ -536,8 +534,8 @@ const AVFilter ff_vf_dnn_detect = { · 3 unmodified lines | ||
| 536 | 534 | .init = dnn_detect_init, |
| 537 | 535 | .uninit = dnn_detect_uninit, |
| 538 | 536 | .query_formats = dnn_detect_query_formats, |
| 539 | − .inputs = dnn_detect_inputs, | |
| 540 | − .outputs = dnn_detect_outputs, | |
| 537 | + FILTER_INPUTS(dnn_detect_inputs), | |
| 538 | + FILTER_OUTPUTS(dnn_detect_outputs), | |
| 541 | 539 | .priv_class = &dnn_detect_class, |
| 542 | 540 | .activate = dnn_detect_activate, |
| 543 | 541 | }; |
| @@ -434,7 +434,6 @@ static const AVFilterPad dnn_processing_inputs[] = { · 433 unmodified lines | ||
| 434 | 434 | .type = AVMEDIA_TYPE_VIDEO, |
| 435 | 435 | .config_props = config_input, |
| 436 | 436 | }, |
| 437 | − { NULL } | |
| 438 | 437 | }; |
| 439 | 438 | |
| 440 | 439 | static const AVFilterPad dnn_processing_outputs[] = { |
| @@ -443,7 +442,6 @@ static const AVFilterPad dnn_processing_outputs[] = { · 2 unmodified lines | ||
| 443 | 442 | .type = AVMEDIA_TYPE_VIDEO, |
| 444 | 443 | .config_props = config_output, |
| 445 | 444 | }, |
| 446 | − { NULL } | |
| 447 | 445 | }; |
| 448 | 446 | |
| 449 | 447 | const AVFilter ff_vf_dnn_processing = { |
| @@ -453,8 +451,8 @@ const AVFilter ff_vf_dnn_processing = { · 3 unmodified lines | ||
| 453 | 451 | .init = init, |
| 454 | 452 | .uninit = uninit, |
| 455 | 453 | .query_formats = query_formats, |
| 456 | − .inputs = dnn_processing_inputs, | |
| 457 | − .outputs = dnn_processing_outputs, | |
| 454 | + FILTER_INPUTS(dnn_processing_inputs), | |
| 455 | + FILTER_OUTPUTS(dnn_processing_outputs), | |
| 458 | 456 | .priv_class = &dnn_processing_class, |
| 459 | 457 | .activate = activate, |
| 460 | 458 | }; |
| @@ -388,7 +388,6 @@ static const AVFilterPad drawbox_inputs[] = { · 387 unmodified lines | ||
| 388 | 388 | .config_props = config_input, |
| 389 | 389 | .filter_frame = filter_frame, |
| 390 | 390 | }, |
| 391 | − { NULL } | |
| 392 | 391 | }; |
| 393 | 392 | |
| 394 | 393 | static const AVFilterPad drawbox_outputs[] = { |
| @@ -396,7 +395,6 @@ static const AVFilterPad drawbox_outputs[] = { · 1 unmodified line | ||
| 396 | 395 | .name = "default", |
| 397 | 396 | .type = AVMEDIA_TYPE_VIDEO, |
| 398 | 397 | }, |
| 399 | − { NULL } | |
| 400 | 398 | }; |
| 401 | 399 | |
| 402 | 400 | const AVFilter ff_vf_drawbox = { |
| @@ -406,8 +404,8 @@ const AVFilter ff_vf_drawbox = { · 3 unmodified lines | ||
| 406 | 404 | .priv_class = &drawbox_class, |
| 407 | 405 | .init = init, |
| 408 | 406 | .query_formats = query_formats, |
| 409 | − .inputs = drawbox_inputs, | |
| 410 | − .outputs = drawbox_outputs, | |
| 407 | + FILTER_INPUTS(drawbox_inputs), | |
| 408 | + FILTER_OUTPUTS(drawbox_outputs), | |
| 411 | 409 | .process_command = process_command, |
| 412 | 410 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 413 | 411 | }; |
| @@ -472,7 +470,6 @@ static const AVFilterPad drawgrid_inputs[] = { · 58 unmodified lines | ||
| 472 | 470 | .config_props = config_input, |
| 473 | 471 | .filter_frame = drawgrid_filter_frame, |
| 474 | 472 | }, |
| 475 | − { NULL } | |
| 476 | 473 | }; |
| 477 | 474 | |
| 478 | 475 | static const AVFilterPad drawgrid_outputs[] = { |
| @@ -480,7 +477,6 @@ static const AVFilterPad drawgrid_outputs[] = { · 1 unmodified line | ||
| 480 | 477 | .name = "default", |
| 481 | 478 | .type = AVMEDIA_TYPE_VIDEO, |
| 482 | 479 | }, |
| 483 | − { NULL } | |
| 484 | 480 | }; |
| 485 | 481 | |
| 486 | 482 | const AVFilter ff_vf_drawgrid = { |
| @@ -490,8 +486,8 @@ const AVFilter ff_vf_drawgrid = { · 3 unmodified lines | ||
| 490 | 486 | .priv_class = &drawgrid_class, |
| 491 | 487 | .init = init, |
| 492 | 488 | .query_formats = query_formats, |
| 493 | − .inputs = drawgrid_inputs, | |
| 494 | − .outputs = drawgrid_outputs, | |
| 489 | + FILTER_INPUTS(drawgrid_inputs), | |
| 490 | + FILTER_OUTPUTS(drawgrid_outputs), | |
| 495 | 491 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 496 | 492 | .process_command = process_command, |
| 497 | 493 | }; |
| @@ -1619,7 +1619,6 @@ static const AVFilterPad avfilter_vf_drawtext_inputs[] = { · 1618 unmodified lines | ||
| 1619 | 1619 | .filter_frame = filter_frame, |
| 1620 | 1620 | .config_props = config_input, |
| 1621 | 1621 | }, |
| 1622 | − { NULL } | |
| 1623 | 1622 | }; |
| 1624 | 1623 | |
| 1625 | 1624 | static const AVFilterPad avfilter_vf_drawtext_outputs[] = { |
| @@ -1627,7 +1626,6 @@ static const AVFilterPad avfilter_vf_drawtext_outputs[] = { · 1 unmodified line | ||
| 1627 | 1626 | .name = "default", |
| 1628 | 1627 | .type = AVMEDIA_TYPE_VIDEO, |
| 1629 | 1628 | }, |
| 1630 | − { NULL } | |
| 1631 | 1629 | }; |
| 1632 | 1630 | |
| 1633 | 1631 | const AVFilter ff_vf_drawtext = { |
| @@ -1638,8 +1636,8 @@ const AVFilter ff_vf_drawtext = { · 4 unmodified lines | ||
| 1638 | 1636 | .init = init, |
| 1639 | 1637 | .uninit = uninit, |
| 1640 | 1638 | .query_formats = query_formats, |
| 1641 | − .inputs = avfilter_vf_drawtext_inputs, | |
| 1642 | − .outputs = avfilter_vf_drawtext_outputs, | |
| 1639 | + FILTER_INPUTS(avfilter_vf_drawtext_inputs), | |
| 1640 | + FILTER_OUTPUTS(avfilter_vf_drawtext_outputs), | |
| 1643 | 1641 | .process_command = command, |
| 1644 | 1642 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 1645 | 1643 | }; |
| @@ -416,7 +416,6 @@ static const AVFilterPad edgedetect_inputs[] = { · 415 unmodified lines | ||
| 416 | 416 | .config_props = config_props, |
| 417 | 417 | .filter_frame = filter_frame, |
| 418 | 418 | }, |
| 419 | − { NULL } | |
| 420 | 419 | }; |
| 421 | 420 | |
| 422 | 421 | static const AVFilterPad edgedetect_outputs[] = { |
| @@ -424,7 +423,6 @@ static const AVFilterPad edgedetect_outputs[] = { · 1 unmodified line | ||
| 424 | 423 | .name = "default", |
| 425 | 424 | .type = AVMEDIA_TYPE_VIDEO, |
| 426 | 425 | }, |
| 427 | − { NULL } | |
| 428 | 426 | }; |
| 429 | 427 | |
| 430 | 428 | const AVFilter ff_vf_edgedetect = { |
| @@ -434,8 +432,8 @@ const AVFilter ff_vf_edgedetect = { · 3 unmodified lines | ||
| 434 | 432 | .init = init, |
| 435 | 433 | .uninit = uninit, |
| 436 | 434 | .query_formats = query_formats, |
| 437 | − .inputs = edgedetect_inputs, | |
| 438 | − .outputs = edgedetect_outputs, | |
| 435 | + FILTER_INPUTS(edgedetect_inputs), | |
| 436 | + FILTER_OUTPUTS(edgedetect_outputs), | |
| 439 | 437 | .priv_class = &edgedetect_class, |
| 440 | 438 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 441 | 439 | }; |
| @@ -239,7 +239,6 @@ static const AVFilterPad elbg_inputs[] = { · 238 unmodified lines | ||
| 239 | 239 | .config_props = config_input, |
| 240 | 240 | .filter_frame = filter_frame, |
| 241 | 241 | }, |
| 242 | − { NULL } | |
| 243 | 242 | }; |
| 244 | 243 | |
| 245 | 244 | static const AVFilterPad elbg_outputs[] = { |
| @@ -247,7 +246,6 @@ static const AVFilterPad elbg_outputs[] = { · 1 unmodified line | ||
| 247 | 246 | .name = "default", |
| 248 | 247 | .type = AVMEDIA_TYPE_VIDEO, |
| 249 | 248 | }, |
| 250 | − { NULL } | |
| 251 | 249 | }; |
| 252 | 250 | |
| 253 | 251 | const AVFilter ff_vf_elbg = { |
| @@ -258,6 +256,6 @@ const AVFilter ff_vf_elbg = { · 4 unmodified lines | ||
| 258 | 256 | .query_formats = query_formats, |
| 259 | 257 | .init = init, |
| 260 | 258 | .uninit = uninit, |
| 261 | − .inputs = elbg_inputs, | |
| 262 | − .outputs = elbg_outputs, | |
| 259 | + FILTER_INPUTS(elbg_inputs), | |
| 260 | + FILTER_OUTPUTS(elbg_outputs), | |
| 263 | 261 | }; |
| @@ -179,7 +179,6 @@ static const AVFilterPad inputs[] = { · 178 unmodified lines | ||
| 179 | 179 | .filter_frame = filter_frame, |
| 180 | 180 | .config_props = config_input, |
| 181 | 181 | }, |
| 182 | − { NULL } | |
| 183 | 182 | }; |
| 184 | 183 | |
| 185 | 184 | static const AVFilterPad outputs[] = { |
| @@ -187,7 +186,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 187 | 186 | .name = "default", |
| 188 | 187 | .type = AVMEDIA_TYPE_VIDEO, |
| 189 | 188 | }, |
| 190 | − { NULL } | |
| 191 | 189 | }; |
| 192 | 190 | |
| 193 | 191 | const AVFilter ff_vf_entropy = { |
| @@ -196,8 +194,8 @@ const AVFilter ff_vf_entropy = { · 2 unmodified lines | ||
| 196 | 194 | .priv_size = sizeof(EntropyContext), |
| 197 | 195 | .uninit = uninit, |
| 198 | 196 | .query_formats = query_formats, |
| 199 | − .inputs = inputs, | |
| 200 | − .outputs = outputs, | |
| 197 | + FILTER_INPUTS(inputs), | |
| 198 | + FILTER_OUTPUTS(outputs), | |
| 201 | 199 | .priv_class = &entropy_class, |
| 202 | 200 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 203 | 201 | }; |
| @@ -260,7 +260,6 @@ static const AVFilterPad inputs[] = { · 259 unmodified lines | ||
| 260 | 260 | .type = AVMEDIA_TYPE_VIDEO, |
| 261 | 261 | .filter_frame = filter_frame, |
| 262 | 262 | }, |
| 263 | − { NULL } | |
| 264 | 263 | }; |
| 265 | 264 | |
| 266 | 265 | static const AVFilterPad outputs[] = { |
| @@ -269,14 +268,13 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 269 | 268 | .type = AVMEDIA_TYPE_VIDEO, |
| 270 | 269 | .config_props = config_output, |
| 271 | 270 | }, |
| 272 | − { NULL } | |
| 273 | 271 | }; |
| 274 | 272 | |
| 275 | 273 | const AVFilter ff_vf_epx = { |
| 276 | 274 | .name = "epx", |
| 277 | 275 | .description = NULL_IF_CONFIG_SMALL("Scale the input using EPX algorithm."), |
| 278 | − .inputs = inputs, | |
| 279 | − .outputs = outputs, | |
| 276 | + FILTER_INPUTS(inputs), | |
| 277 | + FILTER_OUTPUTS(outputs), | |
| 280 | 278 | .query_formats = query_formats, |
| 281 | 279 | .priv_size = sizeof(EPXContext), |
| 282 | 280 | .priv_class = &epx_class, |
| @@ -335,7 +335,6 @@ static const AVFilterPad eq_inputs[] = { · 334 unmodified lines | ||
| 335 | 335 | .filter_frame = filter_frame, |
| 336 | 336 | .config_props = config_props, |
| 337 | 337 | }, |
| 338 | − { NULL } | |
| 339 | 338 | }; |
| 340 | 339 | |
| 341 | 340 | static const AVFilterPad eq_outputs[] = { |
| @@ -343,7 +342,6 @@ static const AVFilterPad eq_outputs[] = { · 1 unmodified line | ||
| 343 | 342 | .name = "default", |
| 344 | 343 | .type = AVMEDIA_TYPE_VIDEO, |
| 345 | 344 | }, |
| 346 | − { NULL } | |
| 347 | 345 | }; |
| 348 | 346 | |
| 349 | 347 | #define OFFSET(x) offsetof(EQContext, x) |
| @@ -379,8 +377,8 @@ const AVFilter ff_vf_eq = { · 29 unmodified lines | ||
| 379 | 377 | .description = NULL_IF_CONFIG_SMALL("Adjust brightness, contrast, gamma, and saturation."), |
| 380 | 378 | .priv_size = sizeof(EQContext), |
| 381 | 379 | .priv_class = &eq_class, |
| 382 | − .inputs = eq_inputs, | |
| 383 | − .outputs = eq_outputs, | |
| 380 | + FILTER_INPUTS(eq_inputs), | |
| 381 | + FILTER_OUTPUTS(eq_outputs), | |
| 384 | 382 | .process_command = process_command, |
| 385 | 383 | .query_formats = query_formats, |
| 386 | 384 | .init = initialize, |
| @@ -559,7 +559,6 @@ static const AVFilterPad estdif_inputs[] = { · 558 unmodified lines | ||
| 559 | 559 | .filter_frame = filter_frame, |
| 560 | 560 | .config_props = config_input, |
| 561 | 561 | }, |
| 562 | − { NULL } | |
| 563 | 562 | }; |
| 564 | 563 | |
| 565 | 564 | static const AVFilterPad estdif_outputs[] = { |
| @@ -569,7 +568,6 @@ static const AVFilterPad estdif_outputs[] = { · 3 unmodified lines | ||
| 569 | 568 | .config_props = config_output, |
| 570 | 569 | .request_frame = request_frame, |
| 571 | 570 | }, |
| 572 | − { NULL } | |
| 573 | 571 | }; |
| 574 | 572 | |
| 575 | 573 | const AVFilter ff_vf_estdif = { |
| @@ -579,8 +577,8 @@ const AVFilter ff_vf_estdif = { · 3 unmodified lines | ||
| 579 | 577 | .priv_class = &estdif_class, |
| 580 | 578 | .uninit = uninit, |
| 581 | 579 | .query_formats = query_formats, |
| 582 | − .inputs = estdif_inputs, | |
| 583 | − .outputs = estdif_outputs, | |
| 580 | + FILTER_INPUTS(estdif_inputs), | |
| 581 | + FILTER_OUTPUTS(estdif_outputs), | |
| 584 | 582 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 585 | 583 | .process_command = ff_filter_process_command, |
| 586 | 584 | }; |
| @@ -103,7 +103,6 @@ static const AVFilterPad exposure_inputs[] = { · 102 unmodified lines | ||
| 103 | 103 | .filter_frame = filter_frame, |
| 104 | 104 | .config_props = config_input, |
| 105 | 105 | }, |
| 106 | − { NULL } | |
| 107 | 106 | }; |
| 108 | 107 | |
| 109 | 108 | static const AVFilterPad exposure_outputs[] = { |
| @@ -111,7 +110,6 @@ static const AVFilterPad exposure_outputs[] = { · 1 unmodified line | ||
| 111 | 110 | .name = "default", |
| 112 | 111 | .type = AVMEDIA_TYPE_VIDEO, |
| 113 | 112 | }, |
| 114 | − { NULL } | |
| 115 | 113 | }; |
| 116 | 114 | |
| 117 | 115 | #define OFFSET(x) offsetof(ExposureContext, x) |
| @@ -131,8 +129,8 @@ const AVFilter ff_vf_exposure = { · 13 unmodified lines | ||
| 131 | 129 | .priv_size = sizeof(ExposureContext), |
| 132 | 130 | .priv_class = &exposure_class, |
| 133 | 131 | .query_formats = query_formats, |
| 134 | − .inputs = exposure_inputs, | |
| 135 | − .outputs = exposure_outputs, | |
| 132 | + FILTER_INPUTS(exposure_inputs), | |
| 133 | + FILTER_OUTPUTS(exposure_outputs), | |
| 136 | 134 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 137 | 135 | .process_command = ff_filter_process_command, |
| 138 | 136 | }; |
| @@ -376,7 +376,6 @@ static const AVFilterPad extractplanes_inputs[] = { · 375 unmodified lines | ||
| 376 | 376 | .filter_frame = filter_frame, |
| 377 | 377 | .config_props = config_input, |
| 378 | 378 | }, |
| 379 | − { NULL } | |
| 380 | 379 | }; |
| 381 | 380 | |
| 382 | 381 | const AVFilter ff_vf_extractplanes = { |
| @@ -387,7 +386,7 @@ const AVFilter ff_vf_extractplanes = { · 4 unmodified lines | ||
| 387 | 386 | .init = init, |
| 388 | 387 | .uninit = uninit, |
| 389 | 388 | .query_formats = query_formats, |
| 390 | − .inputs = extractplanes_inputs, | |
| 389 | + FILTER_INPUTS(extractplanes_inputs), | |
| 391 | 390 | .outputs = NULL, |
| 392 | 391 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 393 | 392 | }; |
| @@ -411,7 +410,7 @@ const AVFilter ff_vf_alphaextract = { · 17 unmodified lines | ||
| 411 | 410 | .init = init_alphaextract, |
| 412 | 411 | .uninit = uninit, |
| 413 | 412 | .query_formats = query_formats, |
| 414 | − .inputs = extractplanes_inputs, | |
| 413 | + FILTER_INPUTS(extractplanes_inputs), | |
| 415 | 414 | .outputs = NULL, |
| 416 | 415 | .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, |
| 417 | 416 | }; |
| @@ -555,7 +555,6 @@ static const AVFilterPad avfilter_vf_fade_inputs[] = { · 554 unmodified lines | ||
| 555 | 555 | .config_props = config_input, |
| 556 | 556 | .filter_frame = filter_frame, |
| 557 | 557 | }, |
| 558 | − { NULL } | |
| 559 | 558 | }; |
| 560 | 559 | |
| 561 | 560 | static const AVFilterPad avfilter_vf_fade_outputs[] = { |
| @@ -563,7 +562,6 @@ static const AVFilterPad avfilter_vf_fade_outputs[] = { · 1 unmodified line | ||
| 563 | 562 | .name = "default", |
| 564 | 563 | .type = AVMEDIA_TYPE_VIDEO, |
| 565 | 564 | }, |
| 566 | − { NULL } | |
| 567 | 565 | }; |
| 568 | 566 | |
| 569 | 567 | const AVFilter ff_vf_fade = { |
| @@ -573,8 +571,8 @@ const AVFilter ff_vf_fade = { · 3 unmodified lines | ||
| 573 | 571 | .priv_size = sizeof(FadeContext), |
| 574 | 572 | .priv_class = &fade_class, |
| 575 | 573 | .query_formats = query_formats, |
| 576 | − .inputs = avfilter_vf_fade_inputs, | |
| 577 | − .outputs = avfilter_vf_fade_outputs, | |
| 574 | + FILTER_INPUTS(avfilter_vf_fade_inputs), | |
| 575 | + FILTER_OUTPUTS(avfilter_vf_fade_outputs), | |
| 578 | 576 | .flags = AVFILTER_FLAG_SLICE_THREADS | |
| 579 | 577 | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 580 | 578 | }; |
| @@ -669,7 +669,6 @@ static const AVFilterPad fftdnoiz_inputs[] = { · 668 unmodified lines | ||
| 669 | 669 | .filter_frame = filter_frame, |
| 670 | 670 | .config_props = config_input, |
| 671 | 671 | }, |
| 672 | − { NULL } | |
| 673 | 672 | }; |
| 674 | 673 | |
| 675 | 674 | static const AVFilterPad fftdnoiz_outputs[] = { |
| @@ -678,7 +677,6 @@ static const AVFilterPad fftdnoiz_outputs[] = { · 2 unmodified lines | ||
| 678 | 677 | .type = AVMEDIA_TYPE_VIDEO, |
| 679 | 678 | .request_frame = request_frame, |
| 680 | 679 | }, |
| 681 | − { NULL } | |
| 682 | 680 | }; |
| 683 | 681 | |
| 684 | 682 | const AVFilter ff_vf_fftdnoiz = { |
| @@ -688,8 +686,8 @@ const AVFilter ff_vf_fftdnoiz = { · 3 unmodified lines | ||
| 688 | 686 | .init = init, |
| 689 | 687 | .uninit = uninit, |
| 690 | 688 | .query_formats = query_formats, |
| 691 | − .inputs = fftdnoiz_inputs, | |
| 692 | − .outputs = fftdnoiz_outputs, | |
| 689 | + FILTER_INPUTS(fftdnoiz_inputs), | |
| 690 | + FILTER_OUTPUTS(fftdnoiz_outputs), | |
| 693 | 691 | .priv_class = &fftdnoiz_class, |
| 694 | 692 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 695 | 693 | }; |
| @@ -414,7 +414,6 @@ static const AVFilterPad fftfilt_inputs[] = { · 413 unmodified lines | ||
| 414 | 414 | .config_props = config_props, |
| 415 | 415 | .filter_frame = filter_frame, |
| 416 | 416 | }, |
| 417 | − { NULL } | |
| 418 | 417 | }; |
| 419 | 418 | |
| 420 | 419 | static const AVFilterPad fftfilt_outputs[] = { |
| @@ -422,7 +421,6 @@ static const AVFilterPad fftfilt_outputs[] = { · 1 unmodified line | ||
| 422 | 421 | .name = "default", |
| 423 | 422 | .type = AVMEDIA_TYPE_VIDEO, |
| 424 | 423 | }, |
| 425 | − { NULL } | |
| 426 | 424 | }; |
| 427 | 425 | |
| 428 | 426 | const AVFilter ff_vf_fftfilt = { |
| @@ -430,8 +428,8 @@ const AVFilter ff_vf_fftfilt = { · 1 unmodified line | ||
| 430 | 428 | .description = NULL_IF_CONFIG_SMALL("Apply arbitrary expressions to pixels in frequency domain."), |
| 431 | 429 | .priv_size = sizeof(FFTFILTContext), |
| 432 | 430 | .priv_class = &fftfilt_class, |
| 433 | − .inputs = fftfilt_inputs, | |
| 434 | − .outputs = fftfilt_outputs, | |
| 431 | + FILTER_INPUTS(fftfilt_inputs), | |
| 432 | + FILTER_OUTPUTS(fftfilt_outputs), | |
| 435 | 433 | .query_formats = query_formats, |
| 436 | 434 | .init = initialize, |
| 437 | 435 | .uninit = uninit, |
| @@ -89,7 +89,6 @@ static const AVFilterPad field_inputs[] = { · 88 unmodified lines | ||
| 89 | 89 | .type = AVMEDIA_TYPE_VIDEO, |
| 90 | 90 | .filter_frame = filter_frame, |
| 91 | 91 | }, |
| 92 | − { NULL } | |
| 93 | 92 | }; |
| 94 | 93 | |
| 95 | 94 | static const AVFilterPad field_outputs[] = { |
| @@ -98,14 +97,13 @@ static const AVFilterPad field_outputs[] = { · 2 unmodified lines | ||
| 98 | 97 | .type = AVMEDIA_TYPE_VIDEO, |
| 99 | 98 | .config_props = config_props_output, |
| 100 | 99 | }, |
| 101 | − { NULL } | |
| 102 | 100 | }; |
| 103 | 101 | |
| 104 | 102 | const AVFilter ff_vf_field = { |
| 105 | 103 | .name = "field", |
| 106 | 104 | .description = NULL_IF_CONFIG_SMALL("Extract a field from the input video."), |
| 107 | 105 | .priv_size = sizeof(FieldContext), |
| 108 | − .inputs = field_inputs, | |
| 109 | − .outputs = field_outputs, | |
| 106 | + FILTER_INPUTS(field_inputs), | |
| 107 | + FILTER_OUTPUTS(field_outputs), | |
| 110 | 108 | .priv_class = &field_class, |
| 111 | 109 | }; |
| @@ -284,7 +284,6 @@ static const AVFilterPad inputs[] = { · 283 unmodified lines | ||
| 284 | 284 | .config_props = config_input, |
| 285 | 285 | .filter_frame = filter_frame, |
| 286 | 286 | }, |
| 287 | − { NULL } | |
| 288 | 287 | }; |
| 289 | 288 | |
| 290 | 289 | static const AVFilterPad outputs[] = { |
| @@ -293,7 +292,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 293 | 292 | .type = AVMEDIA_TYPE_VIDEO, |
| 294 | 293 | .request_frame = request_frame, |
| 295 | 294 | }, |
| 296 | − { NULL } | |
| 297 | 295 | }; |
| 298 | 296 | |
| 299 | 297 | const AVFilter ff_vf_fieldhint = { |
| @@ -304,6 +302,6 @@ const AVFilter ff_vf_fieldhint = { · 4 unmodified lines | ||
| 304 | 302 | .init = init, |
| 305 | 303 | .uninit = uninit, |
| 306 | 304 | .query_formats = query_formats, |
| 307 | − .inputs = inputs, | |
| 308 | − .outputs = outputs, | |
| 305 | + FILTER_INPUTS(inputs), | |
| 306 | + FILTER_OUTPUTS(outputs), | |
| 309 | 307 | }; |
| @@ -1037,7 +1037,6 @@ static const AVFilterPad fieldmatch_outputs[] = { · 1036 unmodified lines | ||
| 1037 | 1037 | .type = AVMEDIA_TYPE_VIDEO, |
| 1038 | 1038 | .config_props = config_output, |
| 1039 | 1039 | }, |
| 1040 | − { NULL } | |
| 1041 | 1040 | }; |
| 1042 | 1041 | |
| 1043 | 1042 | const AVFilter ff_vf_fieldmatch = { |
| @@ -1049,7 +1048,7 @@ const AVFilter ff_vf_fieldmatch = { · 5 unmodified lines | ||
| 1049 | 1048 | .activate = activate, |
| 1050 | 1049 | .uninit = fieldmatch_uninit, |
| 1051 | 1050 | .inputs = NULL, |
| 1052 | − .outputs = fieldmatch_outputs, | |
| 1051 | + FILTER_OUTPUTS(fieldmatch_outputs), | |
| 1053 | 1052 | .priv_class = &fieldmatch_class, |
| 1054 | 1053 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 1055 | 1054 | }; |
| @@ -171,7 +171,6 @@ static const AVFilterPad avfilter_vf_fieldorder_inputs[] = { · 170 unmodified lines | ||
| 171 | 171 | .config_props = config_input, |
| 172 | 172 | .filter_frame = filter_frame, |
| 173 | 173 | }, |
| 174 | − { NULL } | |
| 175 | 174 | }; |
| 176 | 175 | |
| 177 | 176 | static const AVFilterPad avfilter_vf_fieldorder_outputs[] = { |
| @@ -179,7 +178,6 @@ static const AVFilterPad avfilter_vf_fieldorder_outputs[] = { · 1 unmodified line | ||
| 179 | 178 | .name = "default", |
| 180 | 179 | .type = AVMEDIA_TYPE_VIDEO, |
| 181 | 180 | }, |
| 182 | − { NULL } | |
| 183 | 181 | }; |
| 184 | 182 | |
| 185 | 183 | const AVFilter ff_vf_fieldorder = { |
| @@ -188,7 +186,7 @@ const AVFilter ff_vf_fieldorder = { · 2 unmodified lines | ||
| 188 | 186 | .priv_size = sizeof(FieldOrderContext), |
| 189 | 187 | .priv_class = &fieldorder_class, |
| 190 | 188 | .query_formats = query_formats, |
| 191 | − .inputs = avfilter_vf_fieldorder_inputs, | |
| 192 | − .outputs = avfilter_vf_fieldorder_outputs, | |
| 189 | + FILTER_INPUTS(avfilter_vf_fieldorder_inputs), | |
| 190 | + FILTER_OUTPUTS(avfilter_vf_fieldorder_outputs), | |
| 193 | 191 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 194 | 192 | }; |
| @@ -709,7 +709,6 @@ static const AVFilterPad fillborders_inputs[] = { · 708 unmodified lines | ||
| 709 | 709 | .config_props = config_input, |
| 710 | 710 | .filter_frame = filter_frame, |
| 711 | 711 | }, |
| 712 | − { NULL } | |
| 713 | 712 | }; |
| 714 | 713 | |
| 715 | 714 | static const AVFilterPad fillborders_outputs[] = { |
| @@ -717,7 +716,6 @@ static const AVFilterPad fillborders_outputs[] = { · 1 unmodified line | ||
| 717 | 716 | .name = "default", |
| 718 | 717 | .type = AVMEDIA_TYPE_VIDEO, |
| 719 | 718 | }, |
| 720 | − { NULL } | |
| 721 | 719 | }; |
| 722 | 720 | |
| 723 | 721 | const AVFilter ff_vf_fillborders = { |
| @@ -726,8 +724,8 @@ const AVFilter ff_vf_fillborders = { · 2 unmodified lines | ||
| 726 | 724 | .priv_size = sizeof(FillBordersContext), |
| 727 | 725 | .priv_class = &fillborders_class, |
| 728 | 726 | .query_formats = query_formats, |
| 729 | − .inputs = fillborders_inputs, | |
| 730 | − .outputs = fillborders_outputs, | |
| 727 | + FILTER_INPUTS(fillborders_inputs), | |
| 728 | + FILTER_OUTPUTS(fillborders_outputs), | |
| 731 | 729 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 732 | 730 | .process_command = process_command, |
| 733 | 731 | }; |
| @@ -290,7 +290,6 @@ static const AVFilterPad foc_inputs[] = { · 289 unmodified lines | ||
| 290 | 290 | .config_props = config_input, |
| 291 | 291 | .filter_frame = filter_frame, |
| 292 | 292 | }, |
| 293 | − { NULL } | |
| 294 | 293 | }; |
| 295 | 294 | |
| 296 | 295 | static const AVFilterPad foc_outputs[] = { |
| @@ -298,7 +297,6 @@ static const AVFilterPad foc_outputs[] = { · 1 unmodified line | ||
| 298 | 297 | .name = "default", |
| 299 | 298 | .type = AVMEDIA_TYPE_VIDEO, |
| 300 | 299 | }, |
| 301 | − { NULL } | |
| 302 | 300 | }; |
| 303 | 301 | |
| 304 | 302 | const AVFilter ff_vf_find_rect = { |
| @@ -308,7 +306,7 @@ const AVFilter ff_vf_find_rect = { · 3 unmodified lines | ||
| 308 | 306 | .init = init, |
| 309 | 307 | .uninit = uninit, |
| 310 | 308 | .query_formats = query_formats, |
| 311 | − .inputs = foc_inputs, | |
| 312 | − .outputs = foc_outputs, | |
| 309 | + FILTER_INPUTS(foc_inputs), | |
| 310 | + FILTER_OUTPUTS(foc_outputs), | |
| 313 | 311 | .priv_class = &find_rect_class, |
| 314 | 312 | }; |
| @@ -385,7 +385,6 @@ static const AVFilterPad floodfill_inputs[] = { · 384 unmodified lines | ||
| 385 | 385 | .filter_frame = filter_frame, |
| 386 | 386 | .config_props = config_input, |
| 387 | 387 | }, |
| 388 | − { NULL } | |
| 389 | 388 | }; |
| 390 | 389 | |
| 391 | 390 | static const AVFilterPad floodfill_outputs[] = { |
| @@ -393,7 +392,6 @@ static const AVFilterPad floodfill_outputs[] = { · 1 unmodified line | ||
| 393 | 392 | .name = "default", |
| 394 | 393 | .type = AVMEDIA_TYPE_VIDEO, |
| 395 | 394 | }, |
| 396 | − { NULL } | |
| 397 | 395 | }; |
| 398 | 396 | |
| 399 | 397 | #define OFFSET(x) offsetof(FloodfillContext, x) |
| @@ -422,7 +420,7 @@ const AVFilter ff_vf_floodfill = { · 22 unmodified lines | ||
| 422 | 420 | .priv_class = &floodfill_class, |
| 423 | 421 | .query_formats = query_formats, |
| 424 | 422 | .uninit = uninit, |
| 425 | − .inputs = floodfill_inputs, | |
| 426 | − .outputs = floodfill_outputs, | |
| 423 | + FILTER_INPUTS(floodfill_inputs), | |
| 424 | + FILTER_OUTPUTS(floodfill_outputs), | |
| 427 | 425 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 428 | 426 | }; |
| @@ -151,7 +151,6 @@ static const AVFilterPad avfilter_vf_format_inputs[] = { · 150 unmodified lines | ||
| 151 | 151 | .type = AVMEDIA_TYPE_VIDEO, |
| 152 | 152 | .get_buffer.video = ff_null_get_video_buffer, |
| 153 | 153 | }, |
| 154 | − { NULL } | |
| 155 | 154 | }; |
| 156 | 155 | |
| 157 | 156 | static const AVFilterPad avfilter_vf_format_outputs[] = { |
| @@ -159,7 +158,6 @@ static const AVFilterPad avfilter_vf_format_outputs[] = { · 1 unmodified line | ||
| 159 | 158 | .name = "default", |
| 160 | 159 | .type = AVMEDIA_TYPE_VIDEO |
| 161 | 160 | }, |
| 162 | − { NULL } | |
| 163 | 161 | }; |
| 164 | 162 | |
| 165 | 163 | const AVFilter ff_vf_format = { |
| @@ -174,8 +172,8 @@ const AVFilter ff_vf_format = { · 8 unmodified lines | ||
| 174 | 172 | .priv_size = sizeof(FormatContext), |
| 175 | 173 | .priv_class = &format_class, |
| 176 | 174 | |
| 177 | − .inputs = avfilter_vf_format_inputs, | |
| 178 | − .outputs = avfilter_vf_format_outputs, | |
| 175 | + FILTER_INPUTS(avfilter_vf_format_inputs), | |
| 176 | + FILTER_OUTPUTS(avfilter_vf_format_outputs), | |
| 179 | 177 | }; |
| 180 | 178 | #endif /* CONFIG_FORMAT_FILTER */ |
| 181 | 179 | |
| @@ -190,7 +188,6 @@ static const AVFilterPad avfilter_vf_noformat_inputs[] = { · 8 unmodified lines | ||
| 190 | 188 | .type = AVMEDIA_TYPE_VIDEO, |
| 191 | 189 | .get_buffer.video = ff_null_get_video_buffer, |
| 192 | 190 | }, |
| 193 | − { NULL } | |
| 194 | 191 | }; |
| 195 | 192 | |
| 196 | 193 | static const AVFilterPad avfilter_vf_noformat_outputs[] = { |
| @@ -198,7 +195,6 @@ static const AVFilterPad avfilter_vf_noformat_outputs[] = { · 1 unmodified line | ||
| 198 | 195 | .name = "default", |
| 199 | 196 | .type = AVMEDIA_TYPE_VIDEO |
| 200 | 197 | }, |
| 201 | − { NULL } | |
| 202 | 198 | }; |
| 203 | 199 | |
| 204 | 200 | const AVFilter ff_vf_noformat = { |
| @@ -213,7 +209,7 @@ const AVFilter ff_vf_noformat = { · 8 unmodified lines | ||
| 213 | 209 | .priv_size = sizeof(FormatContext), |
| 214 | 210 | .priv_class = &noformat_class, |
| 215 | 211 | |
| 216 | − .inputs = avfilter_vf_noformat_inputs, | |
| 217 | − .outputs = avfilter_vf_noformat_outputs, | |
| 212 | + FILTER_INPUTS(avfilter_vf_noformat_inputs), | |
| 213 | + FILTER_OUTPUTS(avfilter_vf_noformat_outputs), | |
| 218 | 214 | }; |
| 219 | 215 | #endif /* CONFIG_NOFORMAT_FILTER */ |
| @@ -370,7 +370,6 @@ static const AVFilterPad avfilter_vf_fps_inputs[] = { · 369 unmodified lines | ||
| 370 | 370 | .name = "default", |
| 371 | 371 | .type = AVMEDIA_TYPE_VIDEO, |
| 372 | 372 | }, |
| 373 | − { NULL } | |
| 374 | 373 | }; |
| 375 | 374 | |
| 376 | 375 | static const AVFilterPad avfilter_vf_fps_outputs[] = { |
| @@ -379,7 +378,6 @@ static const AVFilterPad avfilter_vf_fps_outputs[] = { · 2 unmodified lines | ||
| 379 | 378 | .type = AVMEDIA_TYPE_VIDEO, |
| 380 | 379 | .config_props = config_props, |
| 381 | 380 | }, |
| 382 | − { NULL } | |
| 383 | 381 | }; |
| 384 | 382 | |
| 385 | 383 | const AVFilter ff_vf_fps = { |
| @@ -390,6 +388,6 @@ const AVFilter ff_vf_fps = { · 4 unmodified lines | ||
| 390 | 388 | .priv_size = sizeof(FPSContext), |
| 391 | 389 | .priv_class = &fps_class, |
| 392 | 390 | .activate = activate, |
| 393 | − .inputs = avfilter_vf_fps_inputs, | |
| 394 | − .outputs = avfilter_vf_fps_outputs, | |
| 391 | + FILTER_INPUTS(avfilter_vf_fps_inputs), | |
| 392 | + FILTER_OUTPUTS(avfilter_vf_fps_outputs), | |
| 395 | 393 | }; |
| @@ -454,7 +454,6 @@ static const AVFilterPad framepack_inputs[] = { · 453 unmodified lines | ||
| 454 | 454 | .name = "right", |
| 455 | 455 | .type = AVMEDIA_TYPE_VIDEO, |
| 456 | 456 | }, |
| 457 | − { NULL } | |
| 458 | 457 | }; |
| 459 | 458 | |
| 460 | 459 | static const AVFilterPad framepack_outputs[] = { |
| @@ -463,7 +462,6 @@ static const AVFilterPad framepack_outputs[] = { · 2 unmodified lines | ||
| 463 | 462 | .type = AVMEDIA_TYPE_VIDEO, |
| 464 | 463 | .config_props = config_output, |
| 465 | 464 | }, |
| 466 | − { NULL } | |
| 467 | 465 | }; |
| 468 | 466 | |
| 469 | 467 | const AVFilter ff_vf_framepack = { |
| @@ -472,8 +470,8 @@ const AVFilter ff_vf_framepack = { · 2 unmodified lines | ||
| 472 | 470 | .priv_size = sizeof(FramepackContext), |
| 473 | 471 | .priv_class = &framepack_class, |
| 474 | 472 | .query_formats = query_formats, |
| 475 | − .inputs = framepack_inputs, | |
| 476 | − .outputs = framepack_outputs, | |
| 473 | + FILTER_INPUTS(framepack_inputs), | |
| 474 | + FILTER_OUTPUTS(framepack_outputs), | |
| 477 | 475 | .activate = activate, |
| 478 | 476 | .uninit = framepack_uninit, |
| 479 | 477 | }; |
| @@ -427,7 +427,6 @@ static const AVFilterPad framerate_inputs[] = { · 426 unmodified lines | ||
| 427 | 427 | .type = AVMEDIA_TYPE_VIDEO, |
| 428 | 428 | .config_props = config_input, |
| 429 | 429 | }, |
| 430 | − { NULL } | |
| 431 | 430 | }; |
| 432 | 431 | |
| 433 | 432 | static const AVFilterPad framerate_outputs[] = { |
| @@ -436,7 +435,6 @@ static const AVFilterPad framerate_outputs[] = { · 2 unmodified lines | ||
| 436 | 435 | .type = AVMEDIA_TYPE_VIDEO, |
| 437 | 436 | .config_props = config_output, |
| 438 | 437 | }, |
| 439 | − { NULL } | |
| 440 | 438 | }; |
| 441 | 439 | |
| 442 | 440 | const AVFilter ff_vf_framerate = { |
| @@ -447,8 +445,8 @@ const AVFilter ff_vf_framerate = { · 4 unmodified lines | ||
| 447 | 445 | .init = init, |
| 448 | 446 | .uninit = uninit, |
| 449 | 447 | .query_formats = query_formats, |
| 450 | − .inputs = framerate_inputs, | |
| 451 | − .outputs = framerate_outputs, | |
| 448 | + FILTER_INPUTS(framerate_inputs), | |
| 449 | + FILTER_OUTPUTS(framerate_outputs), | |
| 452 | 450 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 453 | 451 | .activate = activate, |
| 454 | 452 | }; |
| @@ -77,7 +77,6 @@ static const AVFilterPad framestep_inputs[] = { · 76 unmodified lines | ||
| 77 | 77 | .type = AVMEDIA_TYPE_VIDEO, |
| 78 | 78 | .filter_frame = filter_frame, |
| 79 | 79 | }, |
| 80 | − { NULL } | |
| 81 | 80 | }; |
| 82 | 81 | |
| 83 | 82 | static const AVFilterPad framestep_outputs[] = { |
| @@ -86,7 +85,6 @@ static const AVFilterPad framestep_outputs[] = { · 2 unmodified lines | ||
| 86 | 85 | .type = AVMEDIA_TYPE_VIDEO, |
| 87 | 86 | .config_props = config_output_props, |
| 88 | 87 | }, |
| 89 | − { NULL } | |
| 90 | 88 | }; |
| 91 | 89 | |
| 92 | 90 | const AVFilter ff_vf_framestep = { |
| @@ -94,7 +92,7 @@ const AVFilter ff_vf_framestep = { · 1 unmodified line | ||
| 94 | 92 | .description = NULL_IF_CONFIG_SMALL("Select one frame every N frames."), |
| 95 | 93 | .priv_size = sizeof(FrameStepContext), |
| 96 | 94 | .priv_class = &framestep_class, |
| 97 | − .inputs = framestep_inputs, | |
| 98 | − .outputs = framestep_outputs, | |
| 95 | + FILTER_INPUTS(framestep_inputs), | |
| 96 | + FILTER_OUTPUTS(framestep_outputs), | |
| 99 | 97 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 100 | 98 | }; |
| @@ -207,7 +207,6 @@ static const AVFilterPad freezedetect_inputs[] = { · 206 unmodified lines | ||
| 207 | 207 | .type = AVMEDIA_TYPE_VIDEO, |
| 208 | 208 | .config_props = config_input, |
| 209 | 209 | }, |
| 210 | − { NULL } | |
| 211 | 210 | }; |
| 212 | 211 | |
| 213 | 212 | static const AVFilterPad freezedetect_outputs[] = { |
| @@ -215,7 +214,6 @@ static const AVFilterPad freezedetect_outputs[] = { · 1 unmodified line | ||
| 215 | 214 | .name = "default", |
| 216 | 215 | .type = AVMEDIA_TYPE_VIDEO, |
| 217 | 216 | }, |
| 218 | − { NULL } | |
| 219 | 217 | }; |
| 220 | 218 | |
| 221 | 219 | const AVFilter ff_vf_freezedetect = { |
| @@ -225,7 +223,7 @@ const AVFilter ff_vf_freezedetect = { · 3 unmodified lines | ||
| 225 | 223 | .priv_class = &freezedetect_class, |
| 226 | 224 | .uninit = uninit, |
| 227 | 225 | .query_formats = query_formats, |
| 228 | − .inputs = freezedetect_inputs, | |
| 229 | − .outputs = freezedetect_outputs, | |
| 226 | + FILTER_INPUTS(freezedetect_inputs), | |
| 227 | + FILTER_OUTPUTS(freezedetect_outputs), | |
| 230 | 228 | .activate = activate, |
| 231 | 229 | }; |
| @@ -142,7 +142,6 @@ static const AVFilterPad freezeframes_inputs[] = { · 141 unmodified lines | ||
| 142 | 142 | .name = "replace", |
| 143 | 143 | .type = AVMEDIA_TYPE_VIDEO, |
| 144 | 144 | }, |
| 145 | − { NULL }, | |
| 146 | 145 | }; |
| 147 | 146 | |
| 148 | 147 | static const AVFilterPad freezeframes_outputs[] = { |
| @@ -151,7 +150,6 @@ static const AVFilterPad freezeframes_outputs[] = { · 2 unmodified lines | ||
| 151 | 150 | .type = AVMEDIA_TYPE_VIDEO, |
| 152 | 151 | .config_props = config_output, |
| 153 | 152 | }, |
| 154 | − { NULL }, | |
| 155 | 153 | }; |
| 156 | 154 | |
| 157 | 155 | const AVFilter ff_vf_freezeframes = { |
| @@ -159,8 +157,8 @@ const AVFilter ff_vf_freezeframes = { · 1 unmodified line | ||
| 159 | 157 | .description = NULL_IF_CONFIG_SMALL("Freeze video frames."), |
| 160 | 158 | .priv_size = sizeof(FreezeFramesContext), |
| 161 | 159 | .priv_class = &freezeframes_class, |
| 162 | − .inputs = freezeframes_inputs, | |
| 163 | − .outputs = freezeframes_outputs, | |
| 160 | + FILTER_INPUTS(freezeframes_inputs), | |
| 161 | + FILTER_OUTPUTS(freezeframes_outputs), | |
| 164 | 162 | .activate = activate, |
| 165 | 163 | .uninit = uninit, |
| 166 | 164 | }; |
| @@ -402,7 +402,6 @@ static const AVFilterPad avfilter_vf_frei0r_inputs[] = { · 401 unmodified lines | ||
| 402 | 402 | .config_props = config_input_props, |
| 403 | 403 | .filter_frame = filter_frame, |
| 404 | 404 | }, |
| 405 | − { NULL } | |
| 406 | 405 | }; |
| 407 | 406 | |
| 408 | 407 | static const AVFilterPad avfilter_vf_frei0r_outputs[] = { |
| @@ -410,7 +409,6 @@ static const AVFilterPad avfilter_vf_frei0r_outputs[] = { · 1 unmodified line | ||
| 410 | 409 | .name = "default", |
| 411 | 410 | .type = AVMEDIA_TYPE_VIDEO, |
| 412 | 411 | }, |
| 413 | − { NULL } | |
| 414 | 412 | }; |
| 415 | 413 | |
| 416 | 414 | const AVFilter ff_vf_frei0r = { |
| @@ -421,8 +419,8 @@ const AVFilter ff_vf_frei0r = { · 4 unmodified lines | ||
| 421 | 419 | .uninit = uninit, |
| 422 | 420 | .priv_size = sizeof(Frei0rContext), |
| 423 | 421 | .priv_class = &frei0r_class, |
| 424 | − .inputs = avfilter_vf_frei0r_inputs, | |
| 425 | − .outputs = avfilter_vf_frei0r_outputs, | |
| 422 | + FILTER_INPUTS(avfilter_vf_frei0r_inputs), | |
| 423 | + FILTER_OUTPUTS(avfilter_vf_frei0r_outputs), | |
| 426 | 424 | .process_command = process_command, |
| 427 | 425 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 428 | 426 | }; |
| @@ -498,7 +496,6 @@ static const AVFilterPad avfilter_vsrc_frei0r_src_outputs[] = { · 69 unmodified lines | ||
| 498 | 496 | .request_frame = source_request_frame, |
| 499 | 497 | .config_props = source_config_props |
| 500 | 498 | }, |
| 501 | − { NULL } | |
| 502 | 499 | }; |
| 503 | 500 | |
| 504 | 501 | const AVFilter ff_vsrc_frei0r_src = { |
| @@ -510,5 +507,5 @@ const AVFilter ff_vsrc_frei0r_src = { · 5 unmodified lines | ||
| 510 | 507 | .uninit = uninit, |
| 511 | 508 | .query_formats = query_formats, |
| 512 | 509 | .inputs = NULL, |
| 513 | − .outputs = avfilter_vsrc_frei0r_src_outputs, | |
| 510 | + FILTER_OUTPUTS(avfilter_vsrc_frei0r_src_outputs), | |
| 514 | 511 | }; |
| @@ -653,7 +653,6 @@ static const AVFilterPad fspp_inputs[] = { · 652 unmodified lines | ||
| 653 | 653 | .config_props = config_input, |
| 654 | 654 | .filter_frame = filter_frame, |
| 655 | 655 | }, |
| 656 | − { NULL } | |
| 657 | 656 | }; |
| 658 | 657 | |
| 659 | 658 | static const AVFilterPad fspp_outputs[] = { |
| @@ -661,7 +660,6 @@ static const AVFilterPad fspp_outputs[] = { · 1 unmodified line | ||
| 661 | 660 | .name = "default", |
| 662 | 661 | .type = AVMEDIA_TYPE_VIDEO, |
| 663 | 662 | }, |
| 664 | − { NULL } | |
| 665 | 663 | }; |
| 666 | 664 | |
| 667 | 665 | const AVFilter ff_vf_fspp = { |
| @@ -670,8 +668,8 @@ const AVFilter ff_vf_fspp = { · 2 unmodified lines | ||
| 670 | 668 | .priv_size = sizeof(FSPPContext), |
| 671 | 669 | .uninit = uninit, |
| 672 | 670 | .query_formats = query_formats, |
| 673 | − .inputs = fspp_inputs, | |
| 674 | − .outputs = fspp_outputs, | |
| 671 | + FILTER_INPUTS(fspp_inputs), | |
| 672 | + FILTER_OUTPUTS(fspp_outputs), | |
| 675 | 673 | .priv_class = &fspp_class, |
| 676 | 674 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 677 | 675 | }; |
| @@ -385,7 +385,6 @@ static const AVFilterPad gblur_inputs[] = { · 384 unmodified lines | ||
| 385 | 385 | .config_props = config_input, |
| 386 | 386 | .filter_frame = filter_frame, |
| 387 | 387 | }, |
| 388 | − { NULL } | |
| 389 | 388 | }; |
| 390 | 389 | |
| 391 | 390 | static const AVFilterPad gblur_outputs[] = { |
| @@ -393,7 +392,6 @@ static const AVFilterPad gblur_outputs[] = { · 1 unmodified line | ||
| 393 | 392 | .name = "default", |
| 394 | 393 | .type = AVMEDIA_TYPE_VIDEO, |
| 395 | 394 | }, |
| 396 | − { NULL } | |
| 397 | 395 | }; |
| 398 | 396 | |
| 399 | 397 | const AVFilter ff_vf_gblur = { |
| @@ -403,8 +401,8 @@ const AVFilter ff_vf_gblur = { · 3 unmodified lines | ||
| 403 | 401 | .priv_class = &gblur_class, |
| 404 | 402 | .uninit = uninit, |
| 405 | 403 | .query_formats = query_formats, |
| 406 | − .inputs = gblur_inputs, | |
| 407 | − .outputs = gblur_outputs, | |
| 404 | + FILTER_INPUTS(gblur_inputs), | |
| 405 | + FILTER_OUTPUTS(gblur_outputs), | |
| 408 | 406 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 409 | 407 | .process_command = ff_filter_process_command, |
| 410 | 408 | }; |
| @@ -476,7 +476,6 @@ static const AVFilterPad geq_inputs[] = { · 475 unmodified lines | ||
| 476 | 476 | .config_props = geq_config_props, |
| 477 | 477 | .filter_frame = geq_filter_frame, |
| 478 | 478 | }, |
| 479 | − { NULL } | |
| 480 | 479 | }; |
| 481 | 480 | |
| 482 | 481 | static const AVFilterPad geq_outputs[] = { |
| @@ -484,7 +483,6 @@ static const AVFilterPad geq_outputs[] = { · 1 unmodified line | ||
| 484 | 483 | .name = "default", |
| 485 | 484 | .type = AVMEDIA_TYPE_VIDEO, |
| 486 | 485 | }, |
| 487 | − { NULL } | |
| 488 | 486 | }; |
| 489 | 487 | |
| 490 | 488 | const AVFilter ff_vf_geq = { |
| @@ -494,8 +492,8 @@ const AVFilter ff_vf_geq = { · 3 unmodified lines | ||
| 494 | 492 | .init = geq_init, |
| 495 | 493 | .uninit = geq_uninit, |
| 496 | 494 | .query_formats = geq_query_formats, |
| 497 | − .inputs = geq_inputs, | |
| 498 | − .outputs = geq_outputs, | |
| 495 | + FILTER_INPUTS(geq_inputs), | |
| 496 | + FILTER_OUTPUTS(geq_outputs), | |
| 499 | 497 | .priv_class = &geq_class, |
| 500 | 498 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 501 | 499 | }; |
| @@ -237,7 +237,6 @@ static const AVFilterPad avfilter_vf_gradfun_inputs[] = { · 236 unmodified lines | ||
| 237 | 237 | .config_props = config_input, |
| 238 | 238 | .filter_frame = filter_frame, |
| 239 | 239 | }, |
| 240 | − { NULL } | |
| 241 | 240 | }; |
| 242 | 241 | |
| 243 | 242 | static const AVFilterPad avfilter_vf_gradfun_outputs[] = { |
| @@ -245,7 +244,6 @@ static const AVFilterPad avfilter_vf_gradfun_outputs[] = { · 1 unmodified line | ||
| 245 | 244 | .name = "default", |
| 246 | 245 | .type = AVMEDIA_TYPE_VIDEO, |
| 247 | 246 | }, |
| 248 | − { NULL } | |
| 249 | 247 | }; |
| 250 | 248 | |
| 251 | 249 | const AVFilter ff_vf_gradfun = { |
| @@ -256,7 +254,7 @@ const AVFilter ff_vf_gradfun = { · 4 unmodified lines | ||
| 256 | 254 | .init = init, |
| 257 | 255 | .uninit = uninit, |
| 258 | 256 | .query_formats = query_formats, |
| 259 | − .inputs = avfilter_vf_gradfun_inputs, | |
| 260 | − .outputs = avfilter_vf_gradfun_outputs, | |
| 257 | + FILTER_INPUTS(avfilter_vf_gradfun_inputs), | |
| 258 | + FILTER_OUTPUTS(avfilter_vf_gradfun_outputs), | |
| 261 | 259 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 262 | 260 | }; |
| @@ -486,7 +486,6 @@ static const AVFilterPad guided_outputs[] = { · 485 unmodified lines | ||
| 486 | 486 | .type = AVMEDIA_TYPE_VIDEO, |
| 487 | 487 | .config_props = config_output, |
| 488 | 488 | }, |
| 489 | − { NULL } | |
| 490 | 489 | }; |
| 491 | 490 | |
| 492 | 491 | const AVFilter ff_vf_guided = { |
| @@ -499,7 +498,7 @@ const AVFilter ff_vf_guided = { · 6 unmodified lines | ||
| 499 | 498 | .priv_class = &guided_class, |
| 500 | 499 | .activate = activate, |
| 501 | 500 | .inputs = NULL, |
| 502 | − .outputs = guided_outputs, | |
| 501 | + FILTER_OUTPUTS(guided_outputs), | |
| 503 | 502 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_SLICE_THREADS | |
| 504 | 503 | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 505 | 504 | .process_command = process_command, |
| @@ -235,7 +235,6 @@ static const AVFilterPad avfilter_vf_hflip_inputs[] = { · 234 unmodified lines | ||
| 235 | 235 | .filter_frame = filter_frame, |
| 236 | 236 | .config_props = config_props, |
| 237 | 237 | }, |
| 238 | − { NULL } | |
| 239 | 238 | }; |
| 240 | 239 | |
| 241 | 240 | static const AVFilterPad avfilter_vf_hflip_outputs[] = { |
| @@ -243,7 +242,6 @@ static const AVFilterPad avfilter_vf_hflip_outputs[] = { · 1 unmodified line | ||
| 243 | 242 | .name = "default", |
| 244 | 243 | .type = AVMEDIA_TYPE_VIDEO, |
| 245 | 244 | }, |
| 246 | − { NULL } | |
| 247 | 245 | }; |
| 248 | 246 | |
| 249 | 247 | const AVFilter ff_vf_hflip = { |
| @@ -252,7 +250,7 @@ const AVFilter ff_vf_hflip = { · 2 unmodified lines | ||
| 252 | 250 | .priv_size = sizeof(FlipContext), |
| 253 | 251 | .priv_class = &hflip_class, |
| 254 | 252 | .query_formats = query_formats, |
| 255 | − .inputs = avfilter_vf_hflip_inputs, | |
| 256 | − .outputs = avfilter_vf_hflip_outputs, | |
| 253 | + FILTER_INPUTS(avfilter_vf_hflip_inputs), | |
| 254 | + FILTER_OUTPUTS(avfilter_vf_hflip_outputs), | |
| 257 | 255 | .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 258 | 256 | }; |
| @@ -256,7 +256,6 @@ static const AVFilterPad histeq_inputs[] = { · 255 unmodified lines | ||
| 256 | 256 | .config_props = config_input, |
| 257 | 257 | .filter_frame = filter_frame, |
| 258 | 258 | }, |
| 259 | − { NULL } | |
| 260 | 259 | }; |
| 261 | 260 | |
| 262 | 261 | static const AVFilterPad histeq_outputs[] = { |
| @@ -264,7 +263,6 @@ static const AVFilterPad histeq_outputs[] = { · 1 unmodified line | ||
| 264 | 263 | .name = "default", |
| 265 | 264 | .type = AVMEDIA_TYPE_VIDEO, |
| 266 | 265 | }, |
| 267 | − { NULL } | |
| 268 | 266 | }; |
| 269 | 267 | |
| 270 | 268 | const AVFilter ff_vf_histeq = { |
| @@ -273,8 +271,8 @@ const AVFilter ff_vf_histeq = { · 2 unmodified lines | ||
| 273 | 271 | .priv_size = sizeof(HisteqContext), |
| 274 | 272 | .init = init, |
| 275 | 273 | .query_formats = query_formats, |
| 276 | − .inputs = histeq_inputs, | |
| 277 | − .outputs = histeq_outputs, | |
| 274 | + FILTER_INPUTS(histeq_inputs), | |
| 275 | + FILTER_OUTPUTS(histeq_outputs), | |
| 278 | 276 | .priv_class = &histeq_class, |
| 279 | 277 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 280 | 278 | }; |
| @@ -488,7 +488,6 @@ static const AVFilterPad inputs[] = { · 487 unmodified lines | ||
| 488 | 488 | .filter_frame = filter_frame, |
| 489 | 489 | .config_props = config_input, |
| 490 | 490 | }, |
| 491 | − { NULL } | |
| 492 | 491 | }; |
| 493 | 492 | |
| 494 | 493 | static const AVFilterPad outputs[] = { |
| @@ -497,7 +496,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 497 | 496 | .type = AVMEDIA_TYPE_VIDEO, |
| 498 | 497 | .config_props = config_output, |
| 499 | 498 | }, |
| 500 | − { NULL } | |
| 501 | 499 | }; |
| 502 | 500 | |
| 503 | 501 | #if CONFIG_HISTOGRAM_FILTER |
| @@ -507,8 +505,8 @@ const AVFilter ff_vf_histogram = { · 3 unmodified lines | ||
| 507 | 505 | .description = NULL_IF_CONFIG_SMALL("Compute and draw a histogram."), |
| 508 | 506 | .priv_size = sizeof(HistogramContext), |
| 509 | 507 | .query_formats = query_formats, |
| 510 | − .inputs = inputs, | |
| 511 | − .outputs = outputs, | |
| 508 | + FILTER_INPUTS(inputs), | |
| 509 | + FILTER_OUTPUTS(outputs), | |
| 512 | 510 | .priv_class = &histogram_class, |
| 513 | 511 | }; |
| 514 | 512 | |
| @@ -549,8 +547,8 @@ const AVFilter ff_vf_thistogram = { · 34 unmodified lines | ||
| 549 | 547 | .description = NULL_IF_CONFIG_SMALL("Compute and draw a temporal histogram."), |
| 550 | 548 | .priv_size = sizeof(HistogramContext), |
| 551 | 549 | .query_formats = query_formats, |
| 552 | − .inputs = inputs, | |
| 553 | − .outputs = outputs, | |
| 550 | + FILTER_INPUTS(inputs), | |
| 551 | + FILTER_OUTPUTS(outputs), | |
| 554 | 552 | .uninit = uninit, |
| 555 | 553 | .priv_class = &thistogram_class, |
| 556 | 554 | }; |
| @@ -383,7 +383,6 @@ static const AVFilterPad avfilter_vf_hqdn3d_inputs[] = { · 382 unmodified lines | ||
| 383 | 383 | .config_props = config_input, |
| 384 | 384 | .filter_frame = filter_frame, |
| 385 | 385 | }, |
| 386 | − { NULL } | |
| 387 | 386 | }; |
| 388 | 387 | |
| 389 | 388 | |
| @@ -392,7 +391,6 @@ static const AVFilterPad avfilter_vf_hqdn3d_outputs[] = { · 2 unmodified lines | ||
| 392 | 391 | .name = "default", |
| 393 | 392 | .type = AVMEDIA_TYPE_VIDEO |
| 394 | 393 | }, |
| 395 | − { NULL } | |
| 396 | 394 | }; |
| 397 | 395 | |
| 398 | 396 | const AVFilter ff_vf_hqdn3d = { |
| @@ -403,8 +401,8 @@ const AVFilter ff_vf_hqdn3d = { · 4 unmodified lines | ||
| 403 | 401 | .init = init, |
| 404 | 402 | .uninit = uninit, |
| 405 | 403 | .query_formats = query_formats, |
| 406 | − .inputs = avfilter_vf_hqdn3d_inputs, | |
| 407 | − .outputs = avfilter_vf_hqdn3d_outputs, | |
| 404 | + FILTER_INPUTS(avfilter_vf_hqdn3d_inputs), | |
| 405 | + FILTER_OUTPUTS(avfilter_vf_hqdn3d_outputs), | |
| 408 | 406 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 409 | 407 | .process_command = process_command, |
| 410 | 408 | }; |
| @@ -539,7 +539,6 @@ static const AVFilterPad hqx_inputs[] = { · 538 unmodified lines | ||
| 539 | 539 | .type = AVMEDIA_TYPE_VIDEO, |
| 540 | 540 | .filter_frame = filter_frame, |
| 541 | 541 | }, |
| 542 | − { NULL } | |
| 543 | 542 | }; |
| 544 | 543 | |
| 545 | 544 | static const AVFilterPad hqx_outputs[] = { |
| @@ -548,7 +547,6 @@ static const AVFilterPad hqx_outputs[] = { · 2 unmodified lines | ||
| 548 | 547 | .type = AVMEDIA_TYPE_VIDEO, |
| 549 | 548 | .config_props = config_output, |
| 550 | 549 | }, |
| 551 | − { NULL } | |
| 552 | 550 | }; |
| 553 | 551 | |
| 554 | 552 | const AVFilter ff_vf_hqx = { |
| @@ -557,8 +555,8 @@ const AVFilter ff_vf_hqx = { · 2 unmodified lines | ||
| 557 | 555 | .priv_size = sizeof(HQXContext), |
| 558 | 556 | .init = init, |
| 559 | 557 | .query_formats = query_formats, |
| 560 | − .inputs = hqx_inputs, | |
| 561 | − .outputs = hqx_outputs, | |
| 558 | + FILTER_INPUTS(hqx_inputs), | |
| 559 | + FILTER_OUTPUTS(hqx_outputs), | |
| 562 | 560 | .priv_class = &hqx_class, |
| 563 | 561 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 564 | 562 | }; |
| @@ -502,7 +502,6 @@ static const AVFilterPad hue_inputs[] = { · 501 unmodified lines | ||
| 502 | 502 | .filter_frame = filter_frame, |
| 503 | 503 | .config_props = config_props, |
| 504 | 504 | }, |
| 505 | − { NULL } | |
| 506 | 505 | }; |
| 507 | 506 | |
| 508 | 507 | static const AVFilterPad hue_outputs[] = { |
| @@ -510,7 +509,6 @@ static const AVFilterPad hue_outputs[] = { · 1 unmodified line | ||
| 510 | 509 | .name = "default", |
| 511 | 510 | .type = AVMEDIA_TYPE_VIDEO, |
| 512 | 511 | }, |
| 513 | − { NULL } | |
| 514 | 512 | }; |
| 515 | 513 | |
| 516 | 514 | const AVFilter ff_vf_hue = { |
| @@ -521,8 +519,8 @@ const AVFilter ff_vf_hue = { · 4 unmodified lines | ||
| 521 | 519 | .uninit = uninit, |
| 522 | 520 | .query_formats = query_formats, |
| 523 | 521 | .process_command = process_command, |
| 524 | − .inputs = hue_inputs, | |
| 525 | − .outputs = hue_outputs, | |
| 522 | + FILTER_INPUTS(hue_inputs), | |
| 523 | + FILTER_OUTPUTS(hue_outputs), | |
| 526 | 524 | .priv_class = &hue_class, |
| 527 | 525 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 528 | 526 | }; |
| @@ -180,7 +180,6 @@ static const AVFilterPad hwdownload_inputs[] = { · 179 unmodified lines | ||
| 180 | 180 | .config_props = hwdownload_config_input, |
| 181 | 181 | .filter_frame = hwdownload_filter_frame, |
| 182 | 182 | }, |
| 183 | − { NULL } | |
| 184 | 183 | }; |
| 185 | 184 | |
| 186 | 185 | static const AVFilterPad hwdownload_outputs[] = { |
| @@ -189,7 +188,6 @@ static const AVFilterPad hwdownload_outputs[] = { · 2 unmodified lines | ||
| 189 | 188 | .type = AVMEDIA_TYPE_VIDEO, |
| 190 | 189 | .config_props = hwdownload_config_output, |
| 191 | 190 | }, |
| 192 | − { NULL } | |
| 193 | 191 | }; |
| 194 | 192 | |
| 195 | 193 | const AVFilter ff_vf_hwdownload = { |
| @@ -199,7 +197,7 @@ const AVFilter ff_vf_hwdownload = { · 3 unmodified lines | ||
| 199 | 197 | .query_formats = hwdownload_query_formats, |
| 200 | 198 | .priv_size = sizeof(HWDownloadContext), |
| 201 | 199 | .priv_class = &hwdownload_class, |
| 202 | − .inputs = hwdownload_inputs, | |
| 203 | − .outputs = hwdownload_outputs, | |
| 200 | + FILTER_INPUTS(hwdownload_inputs), | |
| 201 | + FILTER_OUTPUTS(hwdownload_outputs), | |
| 204 | 202 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 205 | 203 | }; |
| @@ -407,7 +407,6 @@ static const AVFilterPad hwmap_inputs[] = { · 406 unmodified lines | ||
| 407 | 407 | .get_buffer.video = hwmap_get_buffer, |
| 408 | 408 | .filter_frame = hwmap_filter_frame, |
| 409 | 409 | }, |
| 410 | − { NULL } | |
| 411 | 410 | }; |
| 412 | 411 | |
| 413 | 412 | static const AVFilterPad hwmap_outputs[] = { |
| @@ -416,7 +415,6 @@ static const AVFilterPad hwmap_outputs[] = { · 2 unmodified lines | ||
| 416 | 415 | .type = AVMEDIA_TYPE_VIDEO, |
| 417 | 416 | .config_props = hwmap_config_output, |
| 418 | 417 | }, |
| 419 | − { NULL } | |
| 420 | 418 | }; |
| 421 | 419 | |
| 422 | 420 | const AVFilter ff_vf_hwmap = { |
| @@ -426,7 +424,7 @@ const AVFilter ff_vf_hwmap = { · 3 unmodified lines | ||
| 426 | 424 | .priv_size = sizeof(HWMapContext), |
| 427 | 425 | .priv_class = &hwmap_class, |
| 428 | 426 | .query_formats = hwmap_query_formats, |
| 429 | − .inputs = hwmap_inputs, | |
| 430 | − .outputs = hwmap_outputs, | |
| 427 | + FILTER_INPUTS(hwmap_inputs), | |
| 428 | + FILTER_OUTPUTS(hwmap_outputs), | |
| 431 | 429 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 432 | 430 | }; |
| @@ -238,7 +238,6 @@ static const AVFilterPad hwupload_inputs[] = { · 237 unmodified lines | ||
| 238 | 238 | .type = AVMEDIA_TYPE_VIDEO, |
| 239 | 239 | .filter_frame = hwupload_filter_frame, |
| 240 | 240 | }, |
| 241 | − { NULL } | |
| 242 | 241 | }; |
| 243 | 242 | |
| 244 | 243 | static const AVFilterPad hwupload_outputs[] = { |
| @@ -247,7 +246,6 @@ static const AVFilterPad hwupload_outputs[] = { · 2 unmodified lines | ||
| 247 | 246 | .type = AVMEDIA_TYPE_VIDEO, |
| 248 | 247 | .config_props = hwupload_config_output, |
| 249 | 248 | }, |
| 250 | − { NULL } | |
| 251 | 249 | }; |
| 252 | 250 | |
| 253 | 251 | const AVFilter ff_vf_hwupload = { |
| @@ -257,7 +255,7 @@ const AVFilter ff_vf_hwupload = { · 3 unmodified lines | ||
| 257 | 255 | .query_formats = hwupload_query_formats, |
| 258 | 256 | .priv_size = sizeof(HWUploadContext), |
| 259 | 257 | .priv_class = &hwupload_class, |
| 260 | − .inputs = hwupload_inputs, | |
| 261 | − .outputs = hwupload_outputs, | |
| 258 | + FILTER_INPUTS(hwupload_inputs), | |
| 259 | + FILTER_OUTPUTS(hwupload_outputs), | |
| 262 | 260 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 263 | 261 | }; |
| @@ -171,7 +171,6 @@ static const AVFilterPad cudaupload_inputs[] = { · 170 unmodified lines | ||
| 171 | 171 | .type = AVMEDIA_TYPE_VIDEO, |
| 172 | 172 | .filter_frame = cudaupload_filter_frame, |
| 173 | 173 | }, |
| 174 | − { NULL } | |
| 175 | 174 | }; |
| 176 | 175 | |
| 177 | 176 | static const AVFilterPad cudaupload_outputs[] = { |
| @@ -180,7 +179,6 @@ static const AVFilterPad cudaupload_outputs[] = { · 2 unmodified lines | ||
| 180 | 179 | .type = AVMEDIA_TYPE_VIDEO, |
| 181 | 180 | .config_props = cudaupload_config_output, |
| 182 | 181 | }, |
| 183 | − { NULL } | |
| 184 | 182 | }; |
| 185 | 183 | |
| 186 | 184 | const AVFilter ff_vf_hwupload_cuda = { |
| @@ -195,8 +193,8 @@ const AVFilter ff_vf_hwupload_cuda = { · 8 unmodified lines | ||
| 195 | 193 | .priv_size = sizeof(CudaUploadContext), |
| 196 | 194 | .priv_class = &cudaupload_class, |
| 197 | 195 | |
| 198 | − .inputs = cudaupload_inputs, | |
| 199 | − .outputs = cudaupload_outputs, | |
| 196 | + FILTER_INPUTS(cudaupload_inputs), | |
| 197 | + FILTER_OUTPUTS(cudaupload_outputs), | |
| 200 | 198 | |
| 201 | 199 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 202 | 200 | }; |
| @@ -362,7 +362,6 @@ static const AVFilterPad hysteresis_inputs[] = { · 361 unmodified lines | ||
| 362 | 362 | .name = "alt", |
| 363 | 363 | .type = AVMEDIA_TYPE_VIDEO, |
| 364 | 364 | }, |
| 365 | − { NULL } | |
| 366 | 365 | }; |
| 367 | 366 | |
| 368 | 367 | static const AVFilterPad hysteresis_outputs[] = { |
| @@ -371,7 +370,6 @@ static const AVFilterPad hysteresis_outputs[] = { · 2 unmodified lines | ||
| 371 | 370 | .type = AVMEDIA_TYPE_VIDEO, |
| 372 | 371 | .config_props = config_output, |
| 373 | 372 | }, |
| 374 | − { NULL } | |
| 375 | 373 | }; |
| 376 | 374 | |
| 377 | 375 | const AVFilter ff_vf_hysteresis = { |
| @@ -382,8 +380,8 @@ const AVFilter ff_vf_hysteresis = { · 4 unmodified lines | ||
| 382 | 380 | .uninit = uninit, |
| 383 | 381 | .query_formats = query_formats, |
| 384 | 382 | .activate = activate, |
| 385 | − .inputs = hysteresis_inputs, | |
| 386 | − .outputs = hysteresis_outputs, | |
| 383 | + FILTER_INPUTS(hysteresis_inputs), | |
| 384 | + FILTER_OUTPUTS(hysteresis_outputs), | |
| 387 | 385 | .priv_class = &hysteresis_class, |
| 388 | 386 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 389 | 387 | }; |
| @@ -390,7 +390,6 @@ static const AVFilterPad identity_inputs[] = { · 389 unmodified lines | ||
| 390 | 390 | .type = AVMEDIA_TYPE_VIDEO, |
| 391 | 391 | .config_props = config_input_ref, |
| 392 | 392 | }, |
| 393 | − { NULL } | |
| 394 | 393 | }; |
| 395 | 394 | |
| 396 | 395 | static const AVFilterPad identity_outputs[] = { |
| @@ -399,7 +398,6 @@ static const AVFilterPad identity_outputs[] = { · 2 unmodified lines | ||
| 399 | 398 | .type = AVMEDIA_TYPE_VIDEO, |
| 400 | 399 | .config_props = config_output, |
| 401 | 400 | }, |
| 402 | − { NULL } | |
| 403 | 401 | }; |
| 404 | 402 | |
| 405 | 403 | static const AVOption options[] = { |
| @@ -421,8 +419,8 @@ const AVFilter ff_vf_identity = { · 15 unmodified lines | ||
| 421 | 419 | .activate = activate, |
| 422 | 420 | .priv_size = sizeof(IdentityContext), |
| 423 | 421 | .priv_class = &identity_class, |
| 424 | − .inputs = identity_inputs, | |
| 425 | − .outputs = identity_outputs, | |
| 422 | + FILTER_INPUTS(identity_inputs), | |
| 423 | + FILTER_OUTPUTS(identity_outputs), | |
| 426 | 424 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 427 | 425 | }; |
| 428 | 426 | |
| @@ -443,8 +441,8 @@ const AVFilter ff_vf_msad = { · 14 unmodified lines | ||
| 443 | 441 | .activate = activate, |
| 444 | 442 | .priv_size = sizeof(IdentityContext), |
| 445 | 443 | .priv_class = &msad_class, |
| 446 | − .inputs = identity_inputs, | |
| 447 | − .outputs = identity_outputs, | |
| 444 | + FILTER_INPUTS(identity_inputs), | |
| 445 | + FILTER_OUTPUTS(identity_outputs), | |
| 448 | 446 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 449 | 447 | }; |
| 450 | 448 | |
| @@ -425,7 +425,6 @@ static const AVFilterPad idet_inputs[] = { · 424 unmodified lines | ||
| 425 | 425 | .type = AVMEDIA_TYPE_VIDEO, |
| 426 | 426 | .filter_frame = filter_frame, |
| 427 | 427 | }, |
| 428 | − { NULL } | |
| 429 | 428 | }; |
| 430 | 429 | |
| 431 | 430 | static const AVFilterPad idet_outputs[] = { |
| @@ -434,7 +433,6 @@ static const AVFilterPad idet_outputs[] = { · 2 unmodified lines | ||
| 434 | 433 | .type = AVMEDIA_TYPE_VIDEO, |
| 435 | 434 | .request_frame = request_frame |
| 436 | 435 | }, |
| 437 | − { NULL } | |
| 438 | 436 | }; |
| 439 | 437 | |
| 440 | 438 | const AVFilter ff_vf_idet = { |
| @@ -444,7 +442,7 @@ const AVFilter ff_vf_idet = { · 3 unmodified lines | ||
| 444 | 442 | .init = init, |
| 445 | 443 | .uninit = uninit, |
| 446 | 444 | .query_formats = query_formats, |
| 447 | − .inputs = idet_inputs, | |
| 448 | − .outputs = idet_outputs, | |
| 445 | + FILTER_INPUTS(idet_inputs), | |
| 446 | + FILTER_OUTPUTS(idet_outputs), | |
| 449 | 447 | .priv_class = &idet_class, |
| 450 | 448 | }; |
| @@ -187,7 +187,6 @@ static const AVFilterPad inputs[] = { · 186 unmodified lines | ||
| 187 | 187 | .filter_frame = filter_frame, |
| 188 | 188 | .config_props = config_input, |
| 189 | 189 | }, |
| 190 | − { NULL } | |
| 191 | 190 | }; |
| 192 | 191 | |
| 193 | 192 | static const AVFilterPad outputs[] = { |
| @@ -195,7 +194,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 195 | 194 | .name = "default", |
| 196 | 195 | .type = AVMEDIA_TYPE_VIDEO, |
| 197 | 196 | }, |
| 198 | − { NULL } | |
| 199 | 197 | }; |
| 200 | 198 | |
| 201 | 199 | const AVFilter ff_vf_il = { |
| @@ -203,8 +201,8 @@ const AVFilter ff_vf_il = { · 1 unmodified line | ||
| 203 | 201 | .description = NULL_IF_CONFIG_SMALL("Deinterleave or interleave fields."), |
| 204 | 202 | .priv_size = sizeof(IlContext), |
| 205 | 203 | .query_formats = query_formats, |
| 206 | − .inputs = inputs, | |
| 207 | − .outputs = outputs, | |
| 204 | + FILTER_INPUTS(inputs), | |
| 205 | + FILTER_OUTPUTS(outputs), | |
| 208 | 206 | .priv_class = &il_class, |
| 209 | 207 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 210 | 208 | .process_command = ff_filter_process_command, |
| @@ -292,7 +292,6 @@ static const AVFilterPad kerndeint_inputs[] = { · 291 unmodified lines | ||
| 292 | 292 | .filter_frame = filter_frame, |
| 293 | 293 | .config_props = config_props, |
| 294 | 294 | }, |
| 295 | − { NULL } | |
| 296 | 295 | }; |
| 297 | 296 | |
| 298 | 297 | static const AVFilterPad kerndeint_outputs[] = { |
| @@ -300,7 +299,6 @@ static const AVFilterPad kerndeint_outputs[] = { · 1 unmodified line | ||
| 300 | 299 | .name = "default", |
| 301 | 300 | .type = AVMEDIA_TYPE_VIDEO, |
| 302 | 301 | }, |
| 303 | − { NULL } | |
| 304 | 302 | }; |
| 305 | 303 | |
| 306 | 304 | |
| @@ -311,6 +309,6 @@ const AVFilter ff_vf_kerndeint = { · 4 unmodified lines | ||
| 311 | 309 | .priv_class = &kerndeint_class, |
| 312 | 310 | .uninit = uninit, |
| 313 | 311 | .query_formats = query_formats, |
| 314 | − .inputs = kerndeint_inputs, | |
| 315 | − .outputs = kerndeint_outputs, | |
| 312 | + FILTER_INPUTS(kerndeint_inputs), | |
| 313 | + FILTER_OUTPUTS(kerndeint_outputs), | |
| 316 | 314 | }; |
| @@ -203,7 +203,6 @@ static const AVFilterPad inputs[] = { · 202 unmodified lines | ||
| 203 | 203 | .type = AVMEDIA_TYPE_VIDEO, |
| 204 | 204 | .filter_frame = filter_frame, |
| 205 | 205 | }, |
| 206 | − { NULL } | |
| 207 | 206 | }; |
| 208 | 207 | |
| 209 | 208 | static const AVFilterPad outputs[] = { |
| @@ -212,7 +211,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 212 | 211 | .type = AVMEDIA_TYPE_VIDEO, |
| 213 | 212 | .config_props = config_output, |
| 214 | 213 | }, |
| 215 | − { NULL } | |
| 216 | 214 | }; |
| 217 | 215 | |
| 218 | 216 | AVFILTER_DEFINE_CLASS(lagfun); |
| @@ -224,8 +222,8 @@ const AVFilter ff_vf_lagfun = { · 5 unmodified lines | ||
| 224 | 222 | .priv_class = &lagfun_class, |
| 225 | 223 | .query_formats = query_formats, |
| 226 | 224 | .uninit = uninit, |
| 227 | − .outputs = outputs, | |
| 228 | − .inputs = inputs, | |
| 225 | + FILTER_OUTPUTS(outputs), | |
| 226 | + FILTER_INPUTS(inputs), | |
| 229 | 227 | .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 230 | 228 | .process_command = ff_filter_process_command, |
| 231 | 229 | }; |
| @@ -343,7 +343,6 @@ static const AVFilterPad lenscorrection_inputs[] = { · 342 unmodified lines | ||
| 343 | 343 | .type = AVMEDIA_TYPE_VIDEO, |
| 344 | 344 | .filter_frame = filter_frame, |
| 345 | 345 | }, |
| 346 | − { NULL } | |
| 347 | 346 | }; |
| 348 | 347 | |
| 349 | 348 | static const AVFilterPad lenscorrection_outputs[] = { |
| @@ -352,7 +351,6 @@ static const AVFilterPad lenscorrection_outputs[] = { · 2 unmodified lines | ||
| 352 | 351 | .type = AVMEDIA_TYPE_VIDEO, |
| 353 | 352 | .config_props = config_output, |
| 354 | 353 | }, |
| 355 | − { NULL } | |
| 356 | 354 | }; |
| 357 | 355 | |
| 358 | 356 | const AVFilter ff_vf_lenscorrection = { |
| @@ -360,8 +358,8 @@ const AVFilter ff_vf_lenscorrection = { · 1 unmodified line | ||
| 360 | 358 | .description = NULL_IF_CONFIG_SMALL("Rectify the image by correcting for lens distortion."), |
| 361 | 359 | .priv_size = sizeof(LenscorrectionCtx), |
| 362 | 360 | .query_formats = query_formats, |
| 363 | − .inputs = lenscorrection_inputs, | |
| 364 | − .outputs = lenscorrection_outputs, | |
| 361 | + FILTER_INPUTS(lenscorrection_inputs), | |
| 362 | + FILTER_OUTPUTS(lenscorrection_outputs), | |
| 365 | 363 | .priv_class = &lenscorrection_class, |
| 366 | 364 | .uninit = uninit, |
| 367 | 365 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -519,7 +519,6 @@ static const AVFilterPad lensfun_inputs[] = { · 518 unmodified lines | ||
| 519 | 519 | .config_props = config_props, |
| 520 | 520 | .filter_frame = filter_frame, |
| 521 | 521 | }, |
| 522 | − { NULL } | |
| 523 | 522 | }; |
| 524 | 523 | |
| 525 | 524 | static const AVFilterPad lensfun_outputs[] = { |
| @@ -527,7 +526,6 @@ static const AVFilterPad lensfun_outputs[] = { · 1 unmodified line | ||
| 527 | 526 | .name = "default", |
| 528 | 527 | .type = AVMEDIA_TYPE_VIDEO, |
| 529 | 528 | }, |
| 530 | − { NULL } | |
| 531 | 529 | }; |
| 532 | 530 | |
| 533 | 531 | const AVFilter ff_vf_lensfun = { |
| @@ -537,8 +535,8 @@ const AVFilter ff_vf_lensfun = { · 3 unmodified lines | ||
| 537 | 535 | .init = init, |
| 538 | 536 | .uninit = uninit, |
| 539 | 537 | .query_formats = query_formats, |
| 540 | − .inputs = lensfun_inputs, | |
| 541 | − .outputs = lensfun_outputs, | |
| 538 | + FILTER_INPUTS(lensfun_inputs), | |
| 539 | + FILTER_OUTPUTS(lensfun_outputs), | |
| 542 | 540 | .priv_class = &lensfun_class, |
| 543 | 541 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 544 | 542 | }; |
| @@ -413,7 +413,6 @@ static const AVFilterPad avfilter_vf_ocv_inputs[] = { · 412 unmodified lines | ||
| 413 | 413 | .type = AVMEDIA_TYPE_VIDEO, |
| 414 | 414 | .filter_frame = filter_frame, |
| 415 | 415 | }, |
| 416 | − { NULL } | |
| 417 | 416 | }; |
| 418 | 417 | |
| 419 | 418 | static const AVFilterPad avfilter_vf_ocv_outputs[] = { |
| @@ -421,7 +420,6 @@ static const AVFilterPad avfilter_vf_ocv_outputs[] = { · 1 unmodified line | ||
| 421 | 420 | .name = "default", |
| 422 | 421 | .type = AVMEDIA_TYPE_VIDEO, |
| 423 | 422 | }, |
| 424 | − { NULL } | |
| 425 | 423 | }; |
| 426 | 424 | |
| 427 | 425 | const AVFilter ff_vf_ocv = { |
| @@ -432,6 +430,6 @@ const AVFilter ff_vf_ocv = { · 4 unmodified lines | ||
| 432 | 430 | .query_formats = query_formats, |
| 433 | 431 | .init = init, |
| 434 | 432 | .uninit = uninit, |
| 435 | − .inputs = avfilter_vf_ocv_inputs, | |
| 436 | − .outputs = avfilter_vf_ocv_outputs, | |
| 433 | + FILTER_INPUTS(avfilter_vf_ocv_inputs), | |
| 434 | + FILTER_OUTPUTS(avfilter_vf_ocv_outputs), | |
| 437 | 435 | }; |
| @@ -350,7 +350,6 @@ static const AVFilterPad libvmaf_inputs[] = { · 349 unmodified lines | ||
| 350 | 350 | .type = AVMEDIA_TYPE_VIDEO, |
| 351 | 351 | .config_props = config_input_ref, |
| 352 | 352 | }, |
| 353 | − { NULL } | |
| 354 | 353 | }; |
| 355 | 354 | |
| 356 | 355 | static const AVFilterPad libvmaf_outputs[] = { |
| @@ -359,7 +358,6 @@ static const AVFilterPad libvmaf_outputs[] = { · 2 unmodified lines | ||
| 359 | 358 | .type = AVMEDIA_TYPE_VIDEO, |
| 360 | 359 | .config_props = config_output, |
| 361 | 360 | }, |
| 362 | − { NULL } | |
| 363 | 361 | }; |
| 364 | 362 | |
| 365 | 363 | const AVFilter ff_vf_libvmaf = { |
| @@ -372,6 +370,6 @@ const AVFilter ff_vf_libvmaf = { · 6 unmodified lines | ||
| 372 | 370 | .activate = activate, |
| 373 | 371 | .priv_size = sizeof(LIBVMAFContext), |
| 374 | 372 | .priv_class = &libvmaf_class, |
| 375 | − .inputs = libvmaf_inputs, | |
| 376 | − .outputs = libvmaf_outputs, | |
| 373 | + FILTER_INPUTS(libvmaf_inputs), | |
| 374 | + FILTER_OUTPUTS(libvmaf_outputs), | |
| 377 | 375 | }; |
| @@ -246,7 +246,6 @@ static const AVFilterPad inputs[] = { · 245 unmodified lines | ||
| 246 | 246 | .filter_frame = filter_frame, |
| 247 | 247 | .config_props = config_input, |
| 248 | 248 | }, |
| 249 | − { NULL } | |
| 250 | 249 | }; |
| 251 | 250 | |
| 252 | 251 | static const AVFilterPad outputs[] = { |
| @@ -254,7 +253,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 254 | 253 | .name = "default", |
| 255 | 254 | .type = AVMEDIA_TYPE_VIDEO, |
| 256 | 255 | }, |
| 257 | − { NULL } | |
| 258 | 256 | }; |
| 259 | 257 | |
| 260 | 258 | const AVFilter ff_vf_limiter = { |
| @@ -264,8 +262,8 @@ const AVFilter ff_vf_limiter = { · 3 unmodified lines | ||
| 264 | 262 | .priv_class = &limiter_class, |
| 265 | 263 | .init = init, |
| 266 | 264 | .query_formats = query_formats, |
| 267 | − .inputs = inputs, | |
| 268 | − .outputs = outputs, | |
| 265 | + FILTER_INPUTS(inputs), | |
| 266 | + FILTER_OUTPUTS(outputs), | |
| 269 | 267 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 270 | 268 | .process_command = process_command, |
| 271 | 269 | }; |
| @@ -176,7 +176,6 @@ static const AVFilterPad lumakey_inputs[] = { · 175 unmodified lines | ||
| 176 | 176 | .filter_frame = filter_frame, |
| 177 | 177 | .config_props = config_input, |
| 178 | 178 | }, |
| 179 | − { NULL } | |
| 180 | 179 | }; |
| 181 | 180 | |
| 182 | 181 | static const AVFilterPad lumakey_outputs[] = { |
| @@ -184,7 +183,6 @@ static const AVFilterPad lumakey_outputs[] = { · 1 unmodified line | ||
| 184 | 183 | .name = "default", |
| 185 | 184 | .type = AVMEDIA_TYPE_VIDEO, |
| 186 | 185 | }, |
| 187 | − { NULL } | |
| 188 | 186 | }; |
| 189 | 187 | |
| 190 | 188 | #define OFFSET(x) offsetof(LumakeyContext, x) |
| @@ -205,8 +203,8 @@ const AVFilter ff_vf_lumakey = { · 14 unmodified lines | ||
| 205 | 203 | .priv_size = sizeof(LumakeyContext), |
| 206 | 204 | .priv_class = &lumakey_class, |
| 207 | 205 | .query_formats = query_formats, |
| 208 | − .inputs = lumakey_inputs, | |
| 209 | − .outputs = lumakey_outputs, | |
| 206 | + FILTER_INPUTS(lumakey_inputs), | |
| 207 | + FILTER_OUTPUTS(lumakey_outputs), | |
| 210 | 208 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 211 | 209 | .process_command = process_command, |
| 212 | 210 | }; |
| @@ -580,13 +580,11 @@ static const AVFilterPad inputs[] = { · 579 unmodified lines | ||
| 580 | 580 | .filter_frame = filter_frame, |
| 581 | 581 | .config_props = config_props, |
| 582 | 582 | }, |
| 583 | − { NULL } | |
| 584 | 583 | }; |
| 585 | 584 | static const AVFilterPad outputs[] = { |
| 586 | 585 | { .name = "default", |
| 587 | 586 | .type = AVMEDIA_TYPE_VIDEO, |
| 588 | 587 | }, |
| 589 | − { NULL } | |
| 590 | 588 | }; |
| 591 | 589 | |
| 592 | 590 | #define DEFINE_LUT_FILTER(name_, description_) \ |
| @@ -598,8 +596,8 @@ static const AVFilterPad outputs[] = { · 5 unmodified lines | ||
| 598 | 596 | .init = name_##_init, \ |
| 599 | 597 | .uninit = uninit, \ |
| 600 | 598 | .query_formats = query_formats, \ |
| 601 | − .inputs = inputs, \ | |
| 602 | − .outputs = outputs, \ | |
| 599 | + FILTER_INPUTS(inputs), \ | |
| 600 | + FILTER_OUTPUTS(outputs), \ | |
| 603 | 601 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | \ |
| 604 | 602 | AVFILTER_FLAG_SLICE_THREADS, \ |
| 605 | 603 | .process_command = process_command, \ |
| @@ -534,7 +534,6 @@ static const AVFilterPad inputs[] = { · 533 unmodified lines | ||
| 534 | 534 | .type = AVMEDIA_TYPE_VIDEO, |
| 535 | 535 | .config_props = config_inputy, |
| 536 | 536 | }, |
| 537 | − { NULL } | |
| 538 | 537 | }; |
| 539 | 538 | |
| 540 | 539 | static const AVFilterPad outputs[] = { |
| @@ -543,7 +542,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 543 | 542 | .type = AVMEDIA_TYPE_VIDEO, |
| 544 | 543 | .config_props = lut2_config_output, |
| 545 | 544 | }, |
| 546 | − { NULL } | |
| 547 | 545 | }; |
| 548 | 546 | |
| 549 | 547 | static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, |
| @@ -570,8 +568,8 @@ const AVFilter ff_vf_lut2 = { · 20 unmodified lines | ||
| 570 | 568 | .uninit = uninit, |
| 571 | 569 | .query_formats = query_formats, |
| 572 | 570 | .activate = activate, |
| 573 | − .inputs = inputs, | |
| 574 | − .outputs = outputs, | |
| 571 | + FILTER_INPUTS(inputs), | |
| 572 | + FILTER_OUTPUTS(outputs), | |
| 575 | 573 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 576 | 574 | AVFILTER_FLAG_SLICE_THREADS, |
| 577 | 575 | .process_command = process_command, |
| @@ -642,7 +640,6 @@ static const AVFilterPad tlut2_inputs[] = { · 64 unmodified lines | ||
| 642 | 640 | .filter_frame = tlut2_filter_frame, |
| 643 | 641 | .config_props = config_inputx, |
| 644 | 642 | }, |
| 645 | − { NULL } | |
| 646 | 643 | }; |
| 647 | 644 | |
| 648 | 645 | static const AVFilterPad tlut2_outputs[] = { |
| @@ -651,7 +648,6 @@ static const AVFilterPad tlut2_outputs[] = { · 2 unmodified lines | ||
| 651 | 648 | .type = AVMEDIA_TYPE_VIDEO, |
| 652 | 649 | .config_props = config_output, |
| 653 | 650 | }, |
| 654 | − { NULL } | |
| 655 | 651 | }; |
| 656 | 652 | |
| 657 | 653 | const AVFilter ff_vf_tlut2 = { |
| @@ -662,8 +658,8 @@ const AVFilter ff_vf_tlut2 = { · 4 unmodified lines | ||
| 662 | 658 | .query_formats = query_formats, |
| 663 | 659 | .init = init, |
| 664 | 660 | .uninit = uninit, |
| 665 | − .inputs = tlut2_inputs, | |
| 666 | − .outputs = tlut2_outputs, | |
| 661 | + FILTER_INPUTS(tlut2_inputs), | |
| 662 | + FILTER_OUTPUTS(tlut2_outputs), | |
| 667 | 663 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 668 | 664 | AVFILTER_FLAG_SLICE_THREADS, |
| 669 | 665 | .process_command = process_command, |
| @@ -1340,7 +1340,6 @@ static const AVFilterPad lut3d_inputs[] = { · 1339 unmodified lines | ||
| 1340 | 1340 | .filter_frame = filter_frame, |
| 1341 | 1341 | .config_props = config_input, |
| 1342 | 1342 | }, |
| 1343 | − { NULL } | |
| 1344 | 1343 | }; |
| 1345 | 1344 | |
| 1346 | 1345 | static const AVFilterPad lut3d_outputs[] = { |
| @@ -1348,7 +1347,6 @@ static const AVFilterPad lut3d_outputs[] = { · 1 unmodified line | ||
| 1348 | 1347 | .name = "default", |
| 1349 | 1348 | .type = AVMEDIA_TYPE_VIDEO, |
| 1350 | 1349 | }, |
| 1351 | − { NULL } | |
| 1352 | 1350 | }; |
| 1353 | 1351 | |
| 1354 | 1352 | const AVFilter ff_vf_lut3d = { |
| @@ -1358,8 +1356,8 @@ const AVFilter ff_vf_lut3d = { · 3 unmodified lines | ||
| 1358 | 1356 | .init = lut3d_init, |
| 1359 | 1357 | .uninit = lut3d_uninit, |
| 1360 | 1358 | .query_formats = query_formats, |
| 1361 | − .inputs = lut3d_inputs, | |
| 1362 | − .outputs = lut3d_outputs, | |
| 1359 | + FILTER_INPUTS(lut3d_inputs), | |
| 1360 | + FILTER_OUTPUTS(lut3d_outputs), | |
| 1363 | 1361 | .priv_class = &lut3d_class, |
| 1364 | 1362 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 1365 | 1363 | .process_command = process_command, |
| @@ -1606,7 +1604,6 @@ static const AVFilterPad haldclut_inputs[] = { · 240 unmodified lines | ||
| 1606 | 1604 | .type = AVMEDIA_TYPE_VIDEO, |
| 1607 | 1605 | .config_props = config_clut, |
| 1608 | 1606 | }, |
| 1609 | − { NULL } | |
| 1610 | 1607 | }; |
| 1611 | 1608 | |
| 1612 | 1609 | static const AVFilterPad haldclut_outputs[] = { |
| @@ -1615,7 +1612,6 @@ static const AVFilterPad haldclut_outputs[] = { · 2 unmodified lines | ||
| 1615 | 1612 | .type = AVMEDIA_TYPE_VIDEO, |
| 1616 | 1613 | .config_props = config_output, |
| 1617 | 1614 | }, |
| 1618 | − { NULL } | |
| 1619 | 1615 | }; |
| 1620 | 1616 | |
| 1621 | 1617 | const AVFilter ff_vf_haldclut = { |
| @@ -1627,8 +1623,8 @@ const AVFilter ff_vf_haldclut = { · 5 unmodified lines | ||
| 1627 | 1623 | .uninit = haldclut_uninit, |
| 1628 | 1624 | .query_formats = query_formats, |
| 1629 | 1625 | .activate = activate, |
| 1630 | − .inputs = haldclut_inputs, | |
| 1631 | − .outputs = haldclut_outputs, | |
| 1626 | + FILTER_INPUTS(haldclut_inputs), | |
| 1627 | + FILTER_OUTPUTS(haldclut_outputs), | |
| 1632 | 1628 | .priv_class = &haldclut_class, |
| 1633 | 1629 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 1634 | 1630 | .process_command = process_command, |
| @@ -2273,7 +2269,6 @@ static const AVFilterPad lut1d_inputs[] = { · 638 unmodified lines | ||
| 2273 | 2269 | .filter_frame = filter_frame_1d, |
| 2274 | 2270 | .config_props = config_input_1d, |
| 2275 | 2271 | }, |
| 2276 | − { NULL } | |
| 2277 | 2272 | }; |
| 2278 | 2273 | |
| 2279 | 2274 | static const AVFilterPad lut1d_outputs[] = { |
| @@ -2281,7 +2276,6 @@ static const AVFilterPad lut1d_outputs[] = { · 1 unmodified line | ||
| 2281 | 2276 | .name = "default", |
| 2282 | 2277 | .type = AVMEDIA_TYPE_VIDEO, |
| 2283 | 2278 | }, |
| 2284 | − { NULL } | |
| 2285 | 2279 | }; |
| 2286 | 2280 | |
| 2287 | 2281 | const AVFilter ff_vf_lut1d = { |
| @@ -2290,8 +2284,8 @@ const AVFilter ff_vf_lut1d = { · 2 unmodified lines | ||
| 2290 | 2284 | .priv_size = sizeof(LUT1DContext), |
| 2291 | 2285 | .init = lut1d_init, |
| 2292 | 2286 | .query_formats = query_formats, |
| 2293 | − .inputs = lut1d_inputs, | |
| 2294 | − .outputs = lut1d_outputs, | |
| 2287 | + FILTER_INPUTS(lut1d_inputs), | |
| 2288 | + FILTER_OUTPUTS(lut1d_outputs), | |
| 2295 | 2289 | .priv_class = &lut1d_class, |
| 2296 | 2290 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 2297 | 2291 | .process_command = lut1d_process_command, |
| @@ -304,7 +304,6 @@ static const AVFilterPad maskedclamp_inputs[] = { · 303 unmodified lines | ||
| 304 | 304 | .name = "bright", |
| 305 | 305 | .type = AVMEDIA_TYPE_VIDEO, |
| 306 | 306 | }, |
| 307 | − { NULL } | |
| 308 | 307 | }; |
| 309 | 308 | |
| 310 | 309 | static const AVFilterPad maskedclamp_outputs[] = { |
| @@ -313,7 +312,6 @@ static const AVFilterPad maskedclamp_outputs[] = { · 2 unmodified lines | ||
| 313 | 312 | .type = AVMEDIA_TYPE_VIDEO, |
| 314 | 313 | .config_props = config_output, |
| 315 | 314 | }, |
| 316 | − { NULL } | |
| 317 | 315 | }; |
| 318 | 316 | |
| 319 | 317 | const AVFilter ff_vf_maskedclamp = { |
| @@ -323,8 +321,8 @@ const AVFilter ff_vf_maskedclamp = { · 3 unmodified lines | ||
| 323 | 321 | .uninit = uninit, |
| 324 | 322 | .activate = activate, |
| 325 | 323 | .query_formats = query_formats, |
| 326 | − .inputs = maskedclamp_inputs, | |
| 327 | − .outputs = maskedclamp_outputs, | |
| 324 | + FILTER_INPUTS(maskedclamp_inputs), | |
| 325 | + FILTER_OUTPUTS(maskedclamp_outputs), | |
| 328 | 326 | .priv_class = &maskedclamp_class, |
| 329 | 327 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 330 | 328 | .process_command = ff_filter_process_command, |
| @@ -305,7 +305,6 @@ static const AVFilterPad maskedmerge_inputs[] = { · 304 unmodified lines | ||
| 305 | 305 | .name = "mask", |
| 306 | 306 | .type = AVMEDIA_TYPE_VIDEO, |
| 307 | 307 | }, |
| 308 | − { NULL } | |
| 309 | 308 | }; |
| 310 | 309 | |
| 311 | 310 | static const AVFilterPad maskedmerge_outputs[] = { |
| @@ -314,7 +313,6 @@ static const AVFilterPad maskedmerge_outputs[] = { · 2 unmodified lines | ||
| 314 | 313 | .type = AVMEDIA_TYPE_VIDEO, |
| 315 | 314 | .config_props = config_output, |
| 316 | 315 | }, |
| 317 | − { NULL } | |
| 318 | 316 | }; |
| 319 | 317 | |
| 320 | 318 | const AVFilter ff_vf_maskedmerge = { |
| @@ -324,8 +322,8 @@ const AVFilter ff_vf_maskedmerge = { · 3 unmodified lines | ||
| 324 | 322 | .uninit = uninit, |
| 325 | 323 | .query_formats = query_formats, |
| 326 | 324 | .activate = activate, |
| 327 | − .inputs = maskedmerge_inputs, | |
| 328 | − .outputs = maskedmerge_outputs, | |
| 325 | + FILTER_INPUTS(maskedmerge_inputs), | |
| 326 | + FILTER_OUTPUTS(maskedmerge_outputs), | |
| 329 | 327 | .priv_class = &maskedmerge_class, |
| 330 | 328 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 331 | 329 | .process_command = ff_filter_process_command, |
| @@ -313,7 +313,6 @@ static const AVFilterPad maskedminmax_inputs[] = { · 312 unmodified lines | ||
| 313 | 313 | .name = "filter2", |
| 314 | 314 | .type = AVMEDIA_TYPE_VIDEO, |
| 315 | 315 | }, |
| 316 | − { NULL } | |
| 317 | 316 | }; |
| 318 | 317 | |
| 319 | 318 | static const AVFilterPad maskedminmax_outputs[] = { |
| @@ -322,7 +321,6 @@ static const AVFilterPad maskedminmax_outputs[] = { · 2 unmodified lines | ||
| 322 | 321 | .type = AVMEDIA_TYPE_VIDEO, |
| 323 | 322 | .config_props = config_output, |
| 324 | 323 | }, |
| 325 | − { NULL } | |
| 326 | 324 | }; |
| 327 | 325 | |
| 328 | 326 | #define maskedmin_options maskedminmax_options |
| @@ -337,8 +335,8 @@ const AVFilter ff_vf_maskedmin = { · 8 unmodified lines | ||
| 337 | 335 | .uninit = uninit, |
| 338 | 336 | .activate = activate, |
| 339 | 337 | .query_formats = query_formats, |
| 340 | − .inputs = maskedminmax_inputs, | |
| 341 | − .outputs = maskedminmax_outputs, | |
| 338 | + FILTER_INPUTS(maskedminmax_inputs), | |
| 339 | + FILTER_OUTPUTS(maskedminmax_outputs), | |
| 342 | 340 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 343 | 341 | .process_command = ff_filter_process_command, |
| 344 | 342 | }; |
| @@ -355,8 +353,8 @@ const AVFilter ff_vf_maskedmax = { · 10 unmodified lines | ||
| 355 | 353 | .uninit = uninit, |
| 356 | 354 | .activate = activate, |
| 357 | 355 | .query_formats = query_formats, |
| 358 | − .inputs = maskedminmax_inputs, | |
| 359 | − .outputs = maskedminmax_outputs, | |
| 356 | + FILTER_INPUTS(maskedminmax_inputs), | |
| 357 | + FILTER_OUTPUTS(maskedminmax_outputs), | |
| 360 | 358 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 361 | 359 | .process_command = ff_filter_process_command, |
| 362 | 360 | }; |
| @@ -270,7 +270,6 @@ static const AVFilterPad maskedthreshold_inputs[] = { · 269 unmodified lines | ||
| 270 | 270 | .name = "reference", |
| 271 | 271 | .type = AVMEDIA_TYPE_VIDEO, |
| 272 | 272 | }, |
| 273 | − { NULL } | |
| 274 | 273 | }; |
| 275 | 274 | |
| 276 | 275 | static const AVFilterPad maskedthreshold_outputs[] = { |
| @@ -279,7 +278,6 @@ static const AVFilterPad maskedthreshold_outputs[] = { · 2 unmodified lines | ||
| 279 | 278 | .type = AVMEDIA_TYPE_VIDEO, |
| 280 | 279 | .config_props = config_output, |
| 281 | 280 | }, |
| 282 | − { NULL } | |
| 283 | 281 | }; |
| 284 | 282 | |
| 285 | 283 | AVFILTER_DEFINE_CLASS(maskedthreshold); |
| @@ -292,8 +290,8 @@ const AVFilter ff_vf_maskedthreshold = { · 6 unmodified lines | ||
| 292 | 290 | .uninit = uninit, |
| 293 | 291 | .activate = activate, |
| 294 | 292 | .query_formats = query_formats, |
| 295 | − .inputs = maskedthreshold_inputs, | |
| 296 | − .outputs = maskedthreshold_outputs, | |
| 293 | + FILTER_INPUTS(maskedthreshold_inputs), | |
| 294 | + FILTER_OUTPUTS(maskedthreshold_outputs), | |
| 297 | 295 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 298 | 296 | .process_command = ff_filter_process_command, |
| 299 | 297 | }; |
| @@ -298,7 +298,6 @@ static const AVFilterPad maskfun_inputs[] = { · 297 unmodified lines | ||
| 298 | 298 | .filter_frame = filter_frame, |
| 299 | 299 | .config_props = config_input, |
| 300 | 300 | }, |
| 301 | − { NULL } | |
| 302 | 301 | }; |
| 303 | 302 | |
| 304 | 303 | static const AVFilterPad maskfun_outputs[] = { |
| @@ -306,7 +305,6 @@ static const AVFilterPad maskfun_outputs[] = { · 1 unmodified line | ||
| 306 | 305 | .name = "default", |
| 307 | 306 | .type = AVMEDIA_TYPE_VIDEO, |
| 308 | 307 | }, |
| 309 | − { NULL } | |
| 310 | 308 | }; |
| 311 | 309 | |
| 312 | 310 | const AVFilter ff_vf_maskfun = { |
| @@ -315,8 +313,8 @@ const AVFilter ff_vf_maskfun = { · 2 unmodified lines | ||
| 315 | 313 | .priv_size = sizeof(MaskFunContext), |
| 316 | 314 | .query_formats = query_formats, |
| 317 | 315 | .uninit = uninit, |
| 318 | − .inputs = maskfun_inputs, | |
| 319 | − .outputs = maskfun_outputs, | |
| 316 | + FILTER_INPUTS(maskfun_inputs), | |
| 317 | + FILTER_OUTPUTS(maskfun_outputs), | |
| 320 | 318 | .priv_class = &maskfun_class, |
| 321 | 319 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 322 | 320 | .process_command = process_command, |
| @@ -290,7 +290,6 @@ static const AVFilterPad mcdeint_inputs[] = { · 289 unmodified lines | ||
| 290 | 290 | .filter_frame = filter_frame, |
| 291 | 291 | .config_props = config_props, |
| 292 | 292 | }, |
| 293 | − { NULL } | |
| 294 | 293 | }; |
| 295 | 294 | |
| 296 | 295 | static const AVFilterPad mcdeint_outputs[] = { |
| @@ -298,7 +297,6 @@ static const AVFilterPad mcdeint_outputs[] = { · 1 unmodified line | ||
| 298 | 297 | .name = "default", |
| 299 | 298 | .type = AVMEDIA_TYPE_VIDEO, |
| 300 | 299 | }, |
| 301 | − { NULL } | |
| 302 | 300 | }; |
| 303 | 301 | |
| 304 | 302 | const AVFilter ff_vf_mcdeint = { |
| @@ -307,7 +305,7 @@ const AVFilter ff_vf_mcdeint = { · 2 unmodified lines | ||
| 307 | 305 | .priv_size = sizeof(MCDeintContext), |
| 308 | 306 | .uninit = uninit, |
| 309 | 307 | .query_formats = query_formats, |
| 310 | − .inputs = mcdeint_inputs, | |
| 311 | − .outputs = mcdeint_outputs, | |
| 308 | + FILTER_INPUTS(mcdeint_inputs), | |
| 309 | + FILTER_OUTPUTS(mcdeint_outputs), | |
| 312 | 310 | .priv_class = &mcdeint_class, |
| 313 | 311 | }; |
| @@ -273,7 +273,6 @@ static const AVFilterPad median_inputs[] = { · 272 unmodified lines | ||
| 273 | 273 | .config_props = config_input, |
| 274 | 274 | .filter_frame = filter_frame, |
| 275 | 275 | }, |
| 276 | − { NULL } | |
| 277 | 276 | }; |
| 278 | 277 | |
| 279 | 278 | static const AVFilterPad median_outputs[] = { |
| @@ -281,7 +280,6 @@ static const AVFilterPad median_outputs[] = { · 1 unmodified line | ||
| 281 | 280 | .name = "default", |
| 282 | 281 | .type = AVMEDIA_TYPE_VIDEO, |
| 283 | 282 | }, |
| 284 | − { NULL } | |
| 285 | 283 | }; |
| 286 | 284 | |
| 287 | 285 | const AVFilter ff_vf_median = { |
| @@ -291,8 +289,8 @@ const AVFilter ff_vf_median = { · 3 unmodified lines | ||
| 291 | 289 | .priv_class = &median_class, |
| 292 | 290 | .uninit = uninit, |
| 293 | 291 | .query_formats = query_formats, |
| 294 | − .inputs = median_inputs, | |
| 295 | − .outputs = median_outputs, | |
| 292 | + FILTER_INPUTS(median_inputs), | |
| 293 | + FILTER_OUTPUTS(median_outputs), | |
| 296 | 294 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 297 | 295 | .process_command = process_command, |
| 298 | 296 | }; |
| @@ -293,7 +293,6 @@ static const AVFilterPad mergeplanes_outputs[] = { · 292 unmodified lines | ||
| 293 | 293 | .type = AVMEDIA_TYPE_VIDEO, |
| 294 | 294 | .config_props = config_output, |
| 295 | 295 | }, |
| 296 | − { NULL } | |
| 297 | 296 | }; |
| 298 | 297 | |
| 299 | 298 | const AVFilter ff_vf_mergeplanes = { |
| @@ -306,6 +305,6 @@ const AVFilter ff_vf_mergeplanes = { · 6 unmodified lines | ||
| 306 | 305 | .query_formats = query_formats, |
| 307 | 306 | .activate = activate, |
| 308 | 307 | .inputs = NULL, |
| 309 | − .outputs = mergeplanes_outputs, | |
| 308 | + FILTER_OUTPUTS(mergeplanes_outputs), | |
| 310 | 309 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 311 | 310 | }; |
| @@ -353,7 +353,6 @@ static const AVFilterPad mestimate_inputs[] = { · 352 unmodified lines | ||
| 353 | 353 | .filter_frame = filter_frame, |
| 354 | 354 | .config_props = config_input, |
| 355 | 355 | }, |
| 356 | − { NULL } | |
| 357 | 356 | }; |
| 358 | 357 | |
| 359 | 358 | static const AVFilterPad mestimate_outputs[] = { |
| @@ -361,7 +360,6 @@ static const AVFilterPad mestimate_outputs[] = { · 1 unmodified line | ||
| 361 | 360 | .name = "default", |
| 362 | 361 | .type = AVMEDIA_TYPE_VIDEO, |
| 363 | 362 | }, |
| 364 | − { NULL } | |
| 365 | 363 | }; |
| 366 | 364 | |
| 367 | 365 | const AVFilter ff_vf_mestimate = { |
| @@ -371,6 +369,6 @@ const AVFilter ff_vf_mestimate = { · 3 unmodified lines | ||
| 371 | 369 | .priv_class = &mestimate_class, |
| 372 | 370 | .uninit = uninit, |
| 373 | 371 | .query_formats = query_formats, |
| 374 | − .inputs = mestimate_inputs, | |
| 375 | − .outputs = mestimate_outputs, | |
| 372 | + FILTER_INPUTS(mestimate_inputs), | |
| 373 | + FILTER_OUTPUTS(mestimate_outputs), | |
| 376 | 374 | }; |
| @@ -363,7 +363,6 @@ static const AVFilterPad midequalizer_inputs[] = { · 362 unmodified lines | ||
| 363 | 363 | .type = AVMEDIA_TYPE_VIDEO, |
| 364 | 364 | .config_props = config_input1, |
| 365 | 365 | }, |
| 366 | − { NULL } | |
| 367 | 366 | }; |
| 368 | 367 | |
| 369 | 368 | static const AVFilterPad midequalizer_outputs[] = { |
| @@ -372,7 +371,6 @@ static const AVFilterPad midequalizer_outputs[] = { · 2 unmodified lines | ||
| 372 | 371 | .type = AVMEDIA_TYPE_VIDEO, |
| 373 | 372 | .config_props = config_output, |
| 374 | 373 | }, |
| 375 | − { NULL } | |
| 376 | 374 | }; |
| 377 | 375 | |
| 378 | 376 | const AVFilter ff_vf_midequalizer = { |
| @@ -382,8 +380,8 @@ const AVFilter ff_vf_midequalizer = { · 3 unmodified lines | ||
| 382 | 380 | .uninit = uninit, |
| 383 | 381 | .query_formats = query_formats, |
| 384 | 382 | .activate = activate, |
| 385 | − .inputs = midequalizer_inputs, | |
| 386 | − .outputs = midequalizer_outputs, | |
| 383 | + FILTER_INPUTS(midequalizer_inputs), | |
| 384 | + FILTER_OUTPUTS(midequalizer_outputs), | |
| 387 | 385 | .priv_class = &midequalizer_class, |
| 388 | 386 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 389 | 387 | }; |
| @@ -1242,7 +1242,6 @@ static const AVFilterPad minterpolate_inputs[] = { · 1241 unmodified lines | ||
| 1242 | 1242 | .filter_frame = filter_frame, |
| 1243 | 1243 | .config_props = config_input, |
| 1244 | 1244 | }, |
| 1245 | − { NULL } | |
| 1246 | 1245 | }; |
| 1247 | 1246 | |
| 1248 | 1247 | static const AVFilterPad minterpolate_outputs[] = { |
| @@ -1251,7 +1250,6 @@ static const AVFilterPad minterpolate_outputs[] = { · 2 unmodified lines | ||
| 1251 | 1250 | .type = AVMEDIA_TYPE_VIDEO, |
| 1252 | 1251 | .config_props = config_output, |
| 1253 | 1252 | }, |
| 1254 | − { NULL } | |
| 1255 | 1253 | }; |
| 1256 | 1254 | |
| 1257 | 1255 | const AVFilter ff_vf_minterpolate = { |
| @@ -1261,6 +1259,6 @@ const AVFilter ff_vf_minterpolate = { · 3 unmodified lines | ||
| 1261 | 1259 | .priv_class = &minterpolate_class, |
| 1262 | 1260 | .uninit = uninit, |
| 1263 | 1261 | .query_formats = query_formats, |
| 1264 | − .inputs = minterpolate_inputs, | |
| 1265 | − .outputs = minterpolate_outputs, | |
| 1262 | + FILTER_INPUTS(minterpolate_inputs), | |
| 1263 | + FILTER_OUTPUTS(minterpolate_outputs), | |
| 1266 | 1264 | }; |
| @@ -222,7 +222,6 @@ static const AVFilterPad misc_vaapi_inputs[] = { · 221 unmodified lines | ||
| 222 | 222 | .filter_frame = &misc_vaapi_filter_frame, |
| 223 | 223 | .config_props = &ff_vaapi_vpp_config_input, |
| 224 | 224 | }, |
| 225 | − { NULL } | |
| 226 | 225 | }; |
| 227 | 226 | |
| 228 | 227 | static const AVFilterPad misc_vaapi_outputs[] = { |
| @@ -231,7 +230,6 @@ static const AVFilterPad misc_vaapi_outputs[] = { · 2 unmodified lines | ||
| 231 | 230 | .type = AVMEDIA_TYPE_VIDEO, |
| 232 | 231 | .config_props = &ff_vaapi_vpp_config_output, |
| 233 | 232 | }, |
| 234 | − { NULL } | |
| 235 | 233 | }; |
| 236 | 234 | |
| 237 | 235 | const AVFilter ff_vf_denoise_vaapi = { |
| @@ -241,8 +239,8 @@ const AVFilter ff_vf_denoise_vaapi = { · 3 unmodified lines | ||
| 241 | 239 | .init = &denoise_vaapi_init, |
| 242 | 240 | .uninit = &ff_vaapi_vpp_ctx_uninit, |
| 243 | 241 | .query_formats = &ff_vaapi_vpp_query_formats, |
| 244 | − .inputs = misc_vaapi_inputs, | |
| 245 | − .outputs = misc_vaapi_outputs, | |
| 242 | + FILTER_INPUTS(misc_vaapi_inputs), | |
| 243 | + FILTER_OUTPUTS(misc_vaapi_outputs), | |
| 246 | 244 | .priv_class = &denoise_vaapi_class, |
| 247 | 245 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 248 | 246 | }; |
| @@ -254,8 +252,8 @@ const AVFilter ff_vf_sharpness_vaapi = { · 5 unmodified lines | ||
| 254 | 252 | .init = &sharpness_vaapi_init, |
| 255 | 253 | .uninit = &ff_vaapi_vpp_ctx_uninit, |
| 256 | 254 | .query_formats = &ff_vaapi_vpp_query_formats, |
| 257 | − .inputs = misc_vaapi_inputs, | |
| 258 | − .outputs = misc_vaapi_outputs, | |
| 255 | + FILTER_INPUTS(misc_vaapi_inputs), | |
| 256 | + FILTER_OUTPUTS(misc_vaapi_outputs), | |
| 259 | 257 | .priv_class = &sharpness_vaapi_class, |
| 260 | 258 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 261 | 259 | }; |
| @@ -353,7 +353,6 @@ static const AVFilterPad outputs[] = { · 352 unmodified lines | ||
| 353 | 353 | .type = AVMEDIA_TYPE_VIDEO, |
| 354 | 354 | .config_props = config_output, |
| 355 | 355 | }, |
| 356 | − { NULL } | |
| 357 | 356 | }; |
| 358 | 357 | |
| 359 | 358 | #if CONFIG_MIX_FILTER |
| @@ -365,7 +364,7 @@ const AVFilter ff_vf_mix = { · 5 unmodified lines | ||
| 365 | 364 | .priv_size = sizeof(MixContext), |
| 366 | 365 | .priv_class = &mix_class, |
| 367 | 366 | .query_formats = query_formats, |
| 368 | − .outputs = outputs, | |
| 367 | + FILTER_OUTPUTS(outputs), | |
| 369 | 368 | .init = init, |
| 370 | 369 | .uninit = uninit, |
| 371 | 370 | .activate = activate, |
| @@ -432,7 +431,6 @@ static const AVFilterPad inputs[] = { · 60 unmodified lines | ||
| 432 | 431 | .type = AVMEDIA_TYPE_VIDEO, |
| 433 | 432 | .filter_frame = tmix_filter_frame, |
| 434 | 433 | }, |
| 435 | − { NULL } | |
| 436 | 434 | }; |
| 437 | 435 | |
| 438 | 436 | AVFILTER_DEFINE_CLASS(tmix); |
| @@ -443,8 +441,8 @@ const AVFilter ff_vf_tmix = { · 4 unmodified lines | ||
| 443 | 441 | .priv_size = sizeof(MixContext), |
| 444 | 442 | .priv_class = &tmix_class, |
| 445 | 443 | .query_formats = query_formats, |
| 446 | − .outputs = outputs, | |
| 447 | − .inputs = inputs, | |
| 444 | + FILTER_OUTPUTS(outputs), | |
| 445 | + FILTER_INPUTS(inputs), | |
| 448 | 446 | .init = init, |
| 449 | 447 | .uninit = uninit, |
| 450 | 448 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -271,7 +271,6 @@ static const AVFilterPad monochrome_inputs[] = { · 270 unmodified lines | ||
| 271 | 271 | .filter_frame = filter_frame, |
| 272 | 272 | .config_props = config_input, |
| 273 | 273 | }, |
| 274 | − { NULL } | |
| 275 | 274 | }; |
| 276 | 275 | |
| 277 | 276 | static const AVFilterPad monochrome_outputs[] = { |
| @@ -279,7 +278,6 @@ static const AVFilterPad monochrome_outputs[] = { · 1 unmodified line | ||
| 279 | 278 | .name = "default", |
| 280 | 279 | .type = AVMEDIA_TYPE_VIDEO, |
| 281 | 280 | }, |
| 282 | − { NULL } | |
| 283 | 281 | }; |
| 284 | 282 | |
| 285 | 283 | #define OFFSET(x) offsetof(MonochromeContext, x) |
| @@ -301,8 +299,8 @@ const AVFilter ff_vf_monochrome = { · 15 unmodified lines | ||
| 301 | 299 | .priv_size = sizeof(MonochromeContext), |
| 302 | 300 | .priv_class = &monochrome_class, |
| 303 | 301 | .query_formats = query_formats, |
| 304 | − .inputs = monochrome_inputs, | |
| 305 | − .outputs = monochrome_outputs, | |
| 302 | + FILTER_INPUTS(monochrome_inputs), | |
| 303 | + FILTER_OUTPUTS(monochrome_outputs), | |
| 306 | 304 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 307 | 305 | .process_command = ff_filter_process_command, |
| 308 | 306 | }; |
| @@ -228,7 +228,6 @@ static const AVFilterPad mpdecimate_inputs[] = { · 227 unmodified lines | ||
| 228 | 228 | .config_props = config_input, |
| 229 | 229 | .filter_frame = filter_frame, |
| 230 | 230 | }, |
| 231 | − { NULL } | |
| 232 | 231 | }; |
| 233 | 232 | |
| 234 | 233 | static const AVFilterPad mpdecimate_outputs[] = { |
| @@ -236,7 +235,6 @@ static const AVFilterPad mpdecimate_outputs[] = { · 1 unmodified line | ||
| 236 | 235 | .name = "default", |
| 237 | 236 | .type = AVMEDIA_TYPE_VIDEO, |
| 238 | 237 | }, |
| 239 | − { NULL } | |
| 240 | 238 | }; |
| 241 | 239 | |
| 242 | 240 | const AVFilter ff_vf_mpdecimate = { |
| @@ -247,6 +245,6 @@ const AVFilter ff_vf_mpdecimate = { · 4 unmodified lines | ||
| 247 | 245 | .priv_size = sizeof(DecimateContext), |
| 248 | 246 | .priv_class = &mpdecimate_class, |
| 249 | 247 | .query_formats = query_formats, |
| 250 | − .inputs = mpdecimate_inputs, | |
| 251 | − .outputs = mpdecimate_outputs, | |
| 248 | + FILTER_INPUTS(mpdecimate_inputs), | |
| 249 | + FILTER_OUTPUTS(mpdecimate_outputs), | |
| 252 | 250 | }; |
| @@ -342,7 +342,6 @@ static const AVFilterPad neighbor_inputs[] = { · 341 unmodified lines | ||
| 342 | 342 | .filter_frame = filter_frame, |
| 343 | 343 | .config_props = config_input, |
| 344 | 344 | }, |
| 345 | − { NULL } | |
| 346 | 345 | }; |
| 347 | 346 | |
| 348 | 347 | static const AVFilterPad neighbor_outputs[] = { |
| @@ -350,7 +349,6 @@ static const AVFilterPad neighbor_outputs[] = { · 1 unmodified line | ||
| 350 | 349 | .name = "default", |
| 351 | 350 | .type = AVMEDIA_TYPE_VIDEO, |
| 352 | 351 | }, |
| 353 | − { NULL } | |
| 354 | 352 | }; |
| 355 | 353 | |
| 356 | 354 | #define OFFSET(x) offsetof(NContext, x) |
| @@ -365,8 +363,8 @@ const AVFilter ff_vf_##name_ = { \ · 8 unmodified lines | ||
| 365 | 363 | .priv_size = sizeof(NContext), \ |
| 366 | 364 | .priv_class = &name_##_class, \ |
| 367 | 365 | .query_formats = query_formats, \ |
| 368 | − .inputs = neighbor_inputs, \ | |
| 369 | − .outputs = neighbor_outputs, \ | |
| 366 | + FILTER_INPUTS(neighbor_inputs), \ | |
| 367 | + FILTER_OUTPUTS(neighbor_outputs), \ | |
| 370 | 368 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC| \ |
| 371 | 369 | AVFILTER_FLAG_SLICE_THREADS, \ |
| 372 | 370 | .process_command = ff_filter_process_command, \ |
| @@ -245,7 +245,6 @@ static const AVFilterPad neighbor_opencl_inputs[] = { · 244 unmodified lines | ||
| 245 | 245 | .filter_frame = &neighbor_opencl_filter_frame, |
| 246 | 246 | .config_props = &ff_opencl_filter_config_input, |
| 247 | 247 | }, |
| 248 | − { NULL } | |
| 249 | 248 | }; |
| 250 | 249 | |
| 251 | 250 | static const AVFilterPad neighbor_opencl_outputs[] = { |
| @@ -254,7 +253,6 @@ static const AVFilterPad neighbor_opencl_outputs[] = { · 2 unmodified lines | ||
| 254 | 253 | .type = AVMEDIA_TYPE_VIDEO, |
| 255 | 254 | .config_props = &ff_opencl_filter_config_output, |
| 256 | 255 | }, |
| 257 | − { NULL } | |
| 258 | 256 | }; |
| 259 | 257 | |
| 260 | 258 | #define OFFSET(x) offsetof(NeighborOpenCLContext, x) |
| @@ -281,8 +279,8 @@ const AVFilter ff_vf_erosion_opencl = { · 20 unmodified lines | ||
| 281 | 279 | .init = &ff_opencl_filter_init, |
| 282 | 280 | .uninit = &neighbor_opencl_uninit, |
| 283 | 281 | .query_formats = &ff_opencl_filter_query_formats, |
| 284 | − .inputs = neighbor_opencl_inputs, | |
| 285 | − .outputs = neighbor_opencl_outputs, | |
| 282 | + FILTER_INPUTS(neighbor_opencl_inputs), | |
| 283 | + FILTER_OUTPUTS(neighbor_opencl_outputs), | |
| 286 | 284 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 287 | 285 | }; |
| 288 | 286 | |
| @@ -309,8 +307,8 @@ const AVFilter ff_vf_dilation_opencl = { · 20 unmodified lines | ||
| 309 | 307 | .init = &ff_opencl_filter_init, |
| 310 | 308 | .uninit = &neighbor_opencl_uninit, |
| 311 | 309 | .query_formats = &ff_opencl_filter_query_formats, |
| 312 | − .inputs = neighbor_opencl_inputs, | |
| 313 | − .outputs = neighbor_opencl_outputs, | |
| 310 | + FILTER_INPUTS(neighbor_opencl_inputs), | |
| 311 | + FILTER_OUTPUTS(neighbor_opencl_outputs), | |
| 314 | 312 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 315 | 313 | }; |
| 316 | 314 | |
| @@ -563,7 +563,6 @@ static const AVFilterPad nlmeans_inputs[] = { · 562 unmodified lines | ||
| 563 | 563 | .config_props = config_input, |
| 564 | 564 | .filter_frame = filter_frame, |
| 565 | 565 | }, |
| 566 | − { NULL } | |
| 567 | 566 | }; |
| 568 | 567 | |
| 569 | 568 | static const AVFilterPad nlmeans_outputs[] = { |
| @@ -571,7 +570,6 @@ static const AVFilterPad nlmeans_outputs[] = { · 1 unmodified line | ||
| 571 | 570 | .name = "default", |
| 572 | 571 | .type = AVMEDIA_TYPE_VIDEO, |
| 573 | 572 | }, |
| 574 | − { NULL } | |
| 575 | 573 | }; |
| 576 | 574 | |
| 577 | 575 | const AVFilter ff_vf_nlmeans = { |
| @@ -581,8 +579,8 @@ const AVFilter ff_vf_nlmeans = { · 3 unmodified lines | ||
| 581 | 579 | .init = init, |
| 582 | 580 | .uninit = uninit, |
| 583 | 581 | .query_formats = query_formats, |
| 584 | − .inputs = nlmeans_inputs, | |
| 585 | − .outputs = nlmeans_outputs, | |
| 582 | + FILTER_INPUTS(nlmeans_inputs), | |
| 583 | + FILTER_OUTPUTS(nlmeans_outputs), | |
| 586 | 584 | .priv_class = &nlmeans_class, |
| 587 | 585 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 588 | 586 | }; |
| @@ -417,7 +417,6 @@ static const AVFilterPad nlmeans_opencl_inputs[] = { · 416 unmodified lines | ||
| 417 | 417 | .filter_frame = &nlmeans_opencl_filter_frame, |
| 418 | 418 | .config_props = &ff_opencl_filter_config_input, |
| 419 | 419 | }, |
| 420 | − { NULL } | |
| 421 | 420 | }; |
| 422 | 421 | |
| 423 | 422 | static const AVFilterPad nlmeans_opencl_outputs[] = { |
| @@ -426,7 +425,6 @@ static const AVFilterPad nlmeans_opencl_outputs[] = { · 2 unmodified lines | ||
| 426 | 425 | .type = AVMEDIA_TYPE_VIDEO, |
| 427 | 426 | .config_props = &ff_opencl_filter_config_output, |
| 428 | 427 | }, |
| 429 | − { NULL } | |
| 430 | 428 | }; |
| 431 | 429 | |
| 432 | 430 | const AVFilter ff_vf_nlmeans_opencl = { |
| @@ -437,7 +435,7 @@ const AVFilter ff_vf_nlmeans_opencl = { · 4 unmodified lines | ||
| 437 | 435 | .init = &ff_opencl_filter_init, |
| 438 | 436 | .uninit = &nlmeans_opencl_uninit, |
| 439 | 437 | .query_formats = &ff_opencl_filter_query_formats, |
| 440 | − .inputs = nlmeans_opencl_inputs, | |
| 441 | − .outputs = nlmeans_opencl_outputs, | |
| 438 | + FILTER_INPUTS(nlmeans_opencl_inputs), | |
| 439 | + FILTER_OUTPUTS(nlmeans_opencl_outputs), | |
| 442 | 440 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 443 | 441 | }; |
| @@ -1141,7 +1141,6 @@ static const AVFilterPad inputs[] = { · 1140 unmodified lines | ||
| 1141 | 1141 | .filter_frame = filter_frame, |
| 1142 | 1142 | .config_props = config_input, |
| 1143 | 1143 | }, |
| 1144 | − { NULL } | |
| 1145 | 1144 | }; |
| 1146 | 1145 | |
| 1147 | 1146 | static const AVFilterPad outputs[] = { |
| @@ -1151,7 +1150,6 @@ static const AVFilterPad outputs[] = { · 3 unmodified lines | ||
| 1151 | 1150 | .config_props = config_output, |
| 1152 | 1151 | .request_frame = request_frame, |
| 1153 | 1152 | }, |
| 1154 | − { NULL } | |
| 1155 | 1153 | }; |
| 1156 | 1154 | |
| 1157 | 1155 | const AVFilter ff_vf_nnedi = { |
| @@ -1162,8 +1160,8 @@ const AVFilter ff_vf_nnedi = { · 4 unmodified lines | ||
| 1162 | 1160 | .init = init, |
| 1163 | 1161 | .uninit = uninit, |
| 1164 | 1162 | .query_formats = query_formats, |
| 1165 | − .inputs = inputs, | |
| 1166 | − .outputs = outputs, | |
| 1163 | + FILTER_INPUTS(inputs), | |
| 1164 | + FILTER_OUTPUTS(outputs), | |
| 1167 | 1165 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 1168 | 1166 | .process_command = ff_filter_process_command, |
| 1169 | 1167 | }; |
| @@ -327,7 +327,6 @@ static const AVFilterPad noise_inputs[] = { · 326 unmodified lines | ||
| 327 | 327 | .filter_frame = filter_frame, |
| 328 | 328 | .config_props = config_input, |
| 329 | 329 | }, |
| 330 | − { NULL } | |
| 331 | 330 | }; |
| 332 | 331 | |
| 333 | 332 | static const AVFilterPad noise_outputs[] = { |
| @@ -335,7 +334,6 @@ static const AVFilterPad noise_outputs[] = { · 1 unmodified line | ||
| 335 | 334 | .name = "default", |
| 336 | 335 | .type = AVMEDIA_TYPE_VIDEO, |
| 337 | 336 | }, |
| 338 | − { NULL } | |
| 339 | 337 | }; |
| 340 | 338 | |
| 341 | 339 | const AVFilter ff_vf_noise = { |
| @@ -345,8 +343,8 @@ const AVFilter ff_vf_noise = { · 3 unmodified lines | ||
| 345 | 343 | .init = init, |
| 346 | 344 | .uninit = uninit, |
| 347 | 345 | .query_formats = query_formats, |
| 348 | − .inputs = noise_inputs, | |
| 349 | − .outputs = noise_outputs, | |
| 346 | + FILTER_INPUTS(noise_inputs), | |
| 347 | + FILTER_OUTPUTS(noise_outputs), | |
| 350 | 348 | .priv_class = &noise_class, |
| 351 | 349 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 352 | 350 | }; |
| @@ -516,7 +516,6 @@ static const AVFilterPad inputs[] = { · 515 unmodified lines | ||
| 516 | 516 | .filter_frame = filter_frame, |
| 517 | 517 | .config_props = config_input, |
| 518 | 518 | }, |
| 519 | − { NULL } | |
| 520 | 519 | }; |
| 521 | 520 | |
| 522 | 521 | static const AVFilterPad outputs[] = { |
| @@ -524,7 +523,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 524 | 523 | .name = "default", |
| 525 | 524 | .type = AVMEDIA_TYPE_VIDEO, |
| 526 | 525 | }, |
| 527 | − { NULL } | |
| 528 | 526 | }; |
| 529 | 527 | |
| 530 | 528 | const AVFilter ff_vf_normalize = { |
| @@ -534,8 +532,8 @@ const AVFilter ff_vf_normalize = { · 3 unmodified lines | ||
| 534 | 532 | .priv_class = &normalize_class, |
| 535 | 533 | .uninit = uninit, |
| 536 | 534 | .query_formats = query_formats, |
| 537 | − .inputs = inputs, | |
| 538 | − .outputs = outputs, | |
| 535 | + FILTER_INPUTS(inputs), | |
| 536 | + FILTER_OUTPUTS(outputs), | |
| 539 | 537 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 540 | 538 | .process_command = ff_filter_process_command, |
| 541 | 539 | }; |
| @@ -31,7 +31,6 @@ static const AVFilterPad avfilter_vf_null_inputs[] = { · 30 unmodified lines | ||
| 31 | 31 | .name = "default", |
| 32 | 32 | .type = AVMEDIA_TYPE_VIDEO, |
| 33 | 33 | }, |
| 34 | − { NULL } | |
| 35 | 34 | }; |
| 36 | 35 | |
| 37 | 36 | static const AVFilterPad avfilter_vf_null_outputs[] = { |
| @@ -39,12 +38,11 @@ static const AVFilterPad avfilter_vf_null_outputs[] = { · 1 unmodified line | ||
| 39 | 38 | .name = "default", |
| 40 | 39 | .type = AVMEDIA_TYPE_VIDEO, |
| 41 | 40 | }, |
| 42 | − { NULL } | |
| 43 | 41 | }; |
| 44 | 42 | |
| 45 | 43 | const AVFilter ff_vf_null = { |
| 46 | 44 | .name = "null", |
| 47 | 45 | .description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."), |
| 48 | − .inputs = avfilter_vf_null_inputs, | |
| 49 | − .outputs = avfilter_vf_null_outputs, | |
| 46 | + FILTER_INPUTS(avfilter_vf_null_inputs), | |
| 47 | + FILTER_OUTPUTS(avfilter_vf_null_outputs), | |
| 50 | 48 | }; |
| @@ -132,7 +132,6 @@ static const AVFilterPad ocr_inputs[] = { · 131 unmodified lines | ||
| 132 | 132 | .type = AVMEDIA_TYPE_VIDEO, |
| 133 | 133 | .filter_frame = filter_frame, |
| 134 | 134 | }, |
| 135 | − { NULL } | |
| 136 | 135 | }; |
| 137 | 136 | |
| 138 | 137 | static const AVFilterPad ocr_outputs[] = { |
| @@ -140,7 +139,6 @@ static const AVFilterPad ocr_outputs[] = { · 1 unmodified line | ||
| 140 | 139 | .name = "default", |
| 141 | 140 | .type = AVMEDIA_TYPE_VIDEO, |
| 142 | 141 | }, |
| 143 | − { NULL } | |
| 144 | 142 | }; |
| 145 | 143 | |
| 146 | 144 | const AVFilter ff_vf_ocr = { |
| @@ -151,6 +149,6 @@ const AVFilter ff_vf_ocr = { · 4 unmodified lines | ||
| 151 | 149 | .query_formats = query_formats, |
| 152 | 150 | .init = init, |
| 153 | 151 | .uninit = uninit, |
| 154 | − .inputs = ocr_inputs, | |
| 155 | − .outputs = ocr_outputs, | |
| 152 | + FILTER_INPUTS(ocr_inputs), | |
| 153 | + FILTER_OUTPUTS(ocr_outputs), | |
| 156 | 154 | }; |
| @@ -1094,7 +1094,6 @@ static const AVFilterPad avfilter_vf_overlay_inputs[] = { · 1093 unmodified lines | ||
| 1094 | 1094 | .type = AVMEDIA_TYPE_VIDEO, |
| 1095 | 1095 | .config_props = config_input_overlay, |
| 1096 | 1096 | }, |
| 1097 | − { NULL } | |
| 1098 | 1097 | }; |
| 1099 | 1098 | |
| 1100 | 1099 | static const AVFilterPad avfilter_vf_overlay_outputs[] = { |
| @@ -1103,7 +1102,6 @@ static const AVFilterPad avfilter_vf_overlay_outputs[] = { · 2 unmodified lines | ||
| 1103 | 1102 | .type = AVMEDIA_TYPE_VIDEO, |
| 1104 | 1103 | .config_props = config_output, |
| 1105 | 1104 | }, |
| 1106 | − { NULL } | |
| 1107 | 1105 | }; |
| 1108 | 1106 | |
| 1109 | 1107 | const AVFilter ff_vf_overlay = { |
| @@ -1117,8 +1115,8 @@ const AVFilter ff_vf_overlay = { · 7 unmodified lines | ||
| 1117 | 1115 | .query_formats = query_formats, |
| 1118 | 1116 | .activate = activate, |
| 1119 | 1117 | .process_command = process_command, |
| 1120 | − .inputs = avfilter_vf_overlay_inputs, | |
| 1121 | − .outputs = avfilter_vf_overlay_outputs, | |
| 1118 | + FILTER_INPUTS(avfilter_vf_overlay_inputs), | |
| 1119 | + FILTER_OUTPUTS(avfilter_vf_overlay_outputs), | |
| 1122 | 1120 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 1123 | 1121 | AVFILTER_FLAG_SLICE_THREADS, |
| 1124 | 1122 | }; |
| @@ -565,7 +565,6 @@ static const AVFilterPad overlay_cuda_inputs[] = { · 564 unmodified lines | ||
| 565 | 565 | .type = AVMEDIA_TYPE_VIDEO, |
| 566 | 566 | .config_props = config_input_overlay, |
| 567 | 567 | }, |
| 568 | − { NULL } | |
| 569 | 568 | }; |
| 570 | 569 | |
| 571 | 570 | static const AVFilterPad overlay_cuda_outputs[] = { |
| @@ -574,7 +573,6 @@ static const AVFilterPad overlay_cuda_outputs[] = { · 2 unmodified lines | ||
| 574 | 573 | .type = AVMEDIA_TYPE_VIDEO, |
| 575 | 574 | .config_props = &overlay_cuda_config_output, |
| 576 | 575 | }, |
| 577 | − { NULL } | |
| 578 | 576 | }; |
| 579 | 577 | |
| 580 | 578 | const AVFilter ff_vf_overlay_cuda = { |
| @@ -586,8 +584,8 @@ const AVFilter ff_vf_overlay_cuda = { · 5 unmodified lines | ||
| 586 | 584 | .uninit = &overlay_cuda_uninit, |
| 587 | 585 | .activate = &overlay_cuda_activate, |
| 588 | 586 | .query_formats = &overlay_cuda_query_formats, |
| 589 | − .inputs = overlay_cuda_inputs, | |
| 590 | − .outputs = overlay_cuda_outputs, | |
| 587 | + FILTER_INPUTS(overlay_cuda_inputs), | |
| 588 | + FILTER_OUTPUTS(overlay_cuda_outputs), | |
| 591 | 589 | .preinit = overlay_cuda_framesync_preinit, |
| 592 | 590 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 593 | 591 | }; |
| @@ -300,7 +300,6 @@ static const AVFilterPad overlay_opencl_inputs[] = { · 299 unmodified lines | ||
| 300 | 300 | .type = AVMEDIA_TYPE_VIDEO, |
| 301 | 301 | .config_props = &ff_opencl_filter_config_input, |
| 302 | 302 | }, |
| 303 | − { NULL } | |
| 304 | 303 | }; |
| 305 | 304 | |
| 306 | 305 | static const AVFilterPad overlay_opencl_outputs[] = { |
| @@ -309,7 +308,6 @@ static const AVFilterPad overlay_opencl_outputs[] = { · 2 unmodified lines | ||
| 309 | 308 | .type = AVMEDIA_TYPE_VIDEO, |
| 310 | 309 | .config_props = &overlay_opencl_config_output, |
| 311 | 310 | }, |
| 312 | − { NULL } | |
| 313 | 311 | }; |
| 314 | 312 | |
| 315 | 313 | const AVFilter ff_vf_overlay_opencl = { |
| @@ -321,7 +319,7 @@ const AVFilter ff_vf_overlay_opencl = { · 5 unmodified lines | ||
| 321 | 319 | .uninit = &overlay_opencl_uninit, |
| 322 | 320 | .query_formats = &ff_opencl_filter_query_formats, |
| 323 | 321 | .activate = &overlay_opencl_activate, |
| 324 | − .inputs = overlay_opencl_inputs, | |
| 325 | − .outputs = overlay_opencl_outputs, | |
| 322 | + FILTER_INPUTS(overlay_opencl_inputs), | |
| 323 | + FILTER_OUTPUTS(overlay_opencl_outputs), | |
| 326 | 324 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 327 | 325 | }; |
| @@ -403,7 +403,6 @@ static const AVFilterPad overlay_qsv_inputs[] = { · 402 unmodified lines | ||
| 403 | 403 | .type = AVMEDIA_TYPE_VIDEO, |
| 404 | 404 | .config_props = config_overlay_input, |
| 405 | 405 | }, |
| 406 | − { NULL } | |
| 407 | 406 | }; |
| 408 | 407 | |
| 409 | 408 | static const AVFilterPad overlay_qsv_outputs[] = { |
| @@ -412,7 +411,6 @@ static const AVFilterPad overlay_qsv_outputs[] = { · 2 unmodified lines | ||
| 412 | 411 | .type = AVMEDIA_TYPE_VIDEO, |
| 413 | 412 | .config_props = config_output, |
| 414 | 413 | }, |
| 415 | − { NULL } | |
| 416 | 414 | }; |
| 417 | 415 | |
| 418 | 416 | const AVFilter ff_vf_overlay_qsv = { |
| @@ -424,8 +422,8 @@ const AVFilter ff_vf_overlay_qsv = { · 5 unmodified lines | ||
| 424 | 422 | .init = overlay_qsv_init, |
| 425 | 423 | .uninit = overlay_qsv_uninit, |
| 426 | 424 | .activate = activate, |
| 427 | − .inputs = overlay_qsv_inputs, | |
| 428 | − .outputs = overlay_qsv_outputs, | |
| 425 | + FILTER_INPUTS(overlay_qsv_inputs), | |
| 426 | + FILTER_OUTPUTS(overlay_qsv_outputs), | |
| 429 | 427 | .priv_class = &overlay_qsv_class, |
| 430 | 428 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 431 | 429 | }; |
| @@ -463,7 +463,6 @@ static const AVFilterPad overlay_vulkan_inputs[] = { · 462 unmodified lines | ||
| 463 | 463 | .type = AVMEDIA_TYPE_VIDEO, |
| 464 | 464 | .config_props = &ff_vk_filter_config_input, |
| 465 | 465 | }, |
| 466 | − { NULL } | |
| 467 | 466 | }; |
| 468 | 467 | |
| 469 | 468 | static const AVFilterPad overlay_vulkan_outputs[] = { |
| @@ -472,7 +471,6 @@ static const AVFilterPad overlay_vulkan_outputs[] = { · 2 unmodified lines | ||
| 472 | 471 | .type = AVMEDIA_TYPE_VIDEO, |
| 473 | 472 | .config_props = &overlay_vulkan_config_output, |
| 474 | 473 | }, |
| 475 | − { NULL } | |
| 476 | 474 | }; |
| 477 | 475 | |
| 478 | 476 | const AVFilter ff_vf_overlay_vulkan = { |
| @@ -483,8 +481,8 @@ const AVFilter ff_vf_overlay_vulkan = { · 4 unmodified lines | ||
| 483 | 481 | .uninit = &overlay_vulkan_uninit, |
| 484 | 482 | .query_formats = &ff_vk_filter_query_formats, |
| 485 | 483 | .activate = &overlay_vulkan_activate, |
| 486 | − .inputs = overlay_vulkan_inputs, | |
| 487 | − .outputs = overlay_vulkan_outputs, | |
| 484 | + FILTER_INPUTS(overlay_vulkan_inputs), | |
| 485 | + FILTER_OUTPUTS(overlay_vulkan_outputs), | |
| 488 | 486 | .priv_class = &overlay_vulkan_class, |
| 489 | 487 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 490 | 488 | }; |
| @@ -351,7 +351,6 @@ static const AVFilterPad owdenoise_inputs[] = { · 350 unmodified lines | ||
| 351 | 351 | .filter_frame = filter_frame, |
| 352 | 352 | .config_props = config_input, |
| 353 | 353 | }, |
| 354 | − { NULL } | |
| 355 | 354 | }; |
| 356 | 355 | |
| 357 | 356 | static const AVFilterPad owdenoise_outputs[] = { |
| @@ -359,7 +358,6 @@ static const AVFilterPad owdenoise_outputs[] = { · 1 unmodified line | ||
| 359 | 358 | .name = "default", |
| 360 | 359 | .type = AVMEDIA_TYPE_VIDEO, |
| 361 | 360 | }, |
| 362 | − { NULL } | |
| 363 | 361 | }; |
| 364 | 362 | |
| 365 | 363 | const AVFilter ff_vf_owdenoise = { |
| @@ -368,8 +366,8 @@ const AVFilter ff_vf_owdenoise = { · 2 unmodified lines | ||
| 368 | 366 | .priv_size = sizeof(OWDenoiseContext), |
| 369 | 367 | .uninit = uninit, |
| 370 | 368 | .query_formats = query_formats, |
| 371 | − .inputs = owdenoise_inputs, | |
| 372 | − .outputs = owdenoise_outputs, | |
| 369 | + FILTER_INPUTS(owdenoise_inputs), | |
| 370 | + FILTER_OUTPUTS(owdenoise_outputs), | |
| 373 | 371 | .priv_class = &owdenoise_class, |
| 374 | 372 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 375 | 373 | }; |
| @@ -441,7 +441,6 @@ static const AVFilterPad avfilter_vf_pad_inputs[] = { · 440 unmodified lines | ||
| 441 | 441 | .get_buffer.video = get_video_buffer, |
| 442 | 442 | .filter_frame = filter_frame, |
| 443 | 443 | }, |
| 444 | − { NULL } | |
| 445 | 444 | }; |
| 446 | 445 | |
| 447 | 446 | static const AVFilterPad avfilter_vf_pad_outputs[] = { |
| @@ -450,7 +449,6 @@ static const AVFilterPad avfilter_vf_pad_outputs[] = { · 2 unmodified lines | ||
| 450 | 449 | .type = AVMEDIA_TYPE_VIDEO, |
| 451 | 450 | .config_props = config_output, |
| 452 | 451 | }, |
| 453 | − { NULL } | |
| 454 | 452 | }; |
| 455 | 453 | |
| 456 | 454 | const AVFilter ff_vf_pad = { |
| @@ -459,6 +457,6 @@ const AVFilter ff_vf_pad = { · 2 unmodified lines | ||
| 459 | 457 | .priv_size = sizeof(PadContext), |
| 460 | 458 | .priv_class = &pad_class, |
| 461 | 459 | .query_formats = query_formats, |
| 462 | − .inputs = avfilter_vf_pad_inputs, | |
| 463 | − .outputs = avfilter_vf_pad_outputs, | |
| 460 | + FILTER_INPUTS(avfilter_vf_pad_inputs), | |
| 461 | + FILTER_OUTPUTS(avfilter_vf_pad_outputs), | |
| 464 | 462 | }; |
| @@ -354,7 +354,6 @@ static const AVFilterPad pad_opencl_inputs[] = { · 353 unmodified lines | ||
| 354 | 354 | .filter_frame = filter_frame, |
| 355 | 355 | .config_props = &ff_opencl_filter_config_input, |
| 356 | 356 | }, |
| 357 | − { NULL } | |
| 358 | 357 | }; |
| 359 | 358 | |
| 360 | 359 | static const AVFilterPad pad_opencl_outputs[] = { |
| @@ -363,7 +362,6 @@ static const AVFilterPad pad_opencl_outputs[] = { · 2 unmodified lines | ||
| 363 | 362 | .type = AVMEDIA_TYPE_VIDEO, |
| 364 | 363 | .config_props = &pad_opencl_config_output, |
| 365 | 364 | }, |
| 366 | − { NULL } | |
| 367 | 365 | }; |
| 368 | 366 | |
| 369 | 367 | #define OFFSET(x) offsetof(PadOpenCLContext, x) |
| @@ -391,7 +389,7 @@ const AVFilter ff_vf_pad_opencl = { · 21 unmodified lines | ||
| 391 | 389 | .init = &ff_opencl_filter_init, |
| 392 | 390 | .uninit = &pad_opencl_uninit, |
| 393 | 391 | .query_formats = &ff_opencl_filter_query_formats, |
| 394 | − .inputs = pad_opencl_inputs, | |
| 395 | − .outputs = pad_opencl_outputs, | |
| 392 | + FILTER_INPUTS(pad_opencl_inputs), | |
| 393 | + FILTER_OUTPUTS(pad_opencl_outputs), | |
| 396 | 394 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE |
| 397 | 395 | }; |
| @@ -557,7 +557,6 @@ static const AVFilterPad palettegen_inputs[] = { · 556 unmodified lines | ||
| 557 | 557 | .type = AVMEDIA_TYPE_VIDEO, |
| 558 | 558 | .filter_frame = filter_frame, |
| 559 | 559 | }, |
| 560 | − { NULL } | |
| 561 | 560 | }; |
| 562 | 561 | |
| 563 | 562 | static const AVFilterPad palettegen_outputs[] = { |
| @@ -567,7 +566,6 @@ static const AVFilterPad palettegen_outputs[] = { · 3 unmodified lines | ||
| 567 | 566 | .config_props = config_output, |
| 568 | 567 | .request_frame = request_frame, |
| 569 | 568 | }, |
| 570 | − { NULL } | |
| 571 | 569 | }; |
| 572 | 570 | |
| 573 | 571 | const AVFilter ff_vf_palettegen = { |
| @@ -576,7 +574,7 @@ const AVFilter ff_vf_palettegen = { · 2 unmodified lines | ||
| 576 | 574 | .priv_size = sizeof(PaletteGenContext), |
| 577 | 575 | .uninit = uninit, |
| 578 | 576 | .query_formats = query_formats, |
| 579 | − .inputs = palettegen_inputs, | |
| 580 | − .outputs = palettegen_outputs, | |
| 577 | + FILTER_INPUTS(palettegen_inputs), | |
| 578 | + FILTER_OUTPUTS(palettegen_outputs), | |
| 581 | 579 | .priv_class = &palettegen_class, |
| 582 | 580 | }; |
| @@ -1118,7 +1118,6 @@ static const AVFilterPad paletteuse_inputs[] = { · 1117 unmodified lines | ||
| 1118 | 1118 | .type = AVMEDIA_TYPE_VIDEO, |
| 1119 | 1119 | .config_props = config_input_palette, |
| 1120 | 1120 | }, |
| 1121 | − { NULL } | |
| 1122 | 1121 | }; |
| 1123 | 1122 | |
| 1124 | 1123 | static const AVFilterPad paletteuse_outputs[] = { |
| @@ -1127,7 +1126,6 @@ static const AVFilterPad paletteuse_outputs[] = { · 2 unmodified lines | ||
| 1127 | 1126 | .type = AVMEDIA_TYPE_VIDEO, |
| 1128 | 1127 | .config_props = config_output, |
| 1129 | 1128 | }, |
| 1130 | − { NULL } | |
| 1131 | 1129 | }; |
| 1132 | 1130 | |
| 1133 | 1131 | const AVFilter ff_vf_paletteuse = { |
| @@ -1138,7 +1136,7 @@ const AVFilter ff_vf_paletteuse = { · 4 unmodified lines | ||
| 1138 | 1136 | .init = init, |
| 1139 | 1137 | .uninit = uninit, |
| 1140 | 1138 | .activate = activate, |
| 1141 | − .inputs = paletteuse_inputs, | |
| 1142 | − .outputs = paletteuse_outputs, | |
| 1139 | + FILTER_INPUTS(paletteuse_inputs), | |
| 1140 | + FILTER_OUTPUTS(paletteuse_outputs), | |
| 1143 | 1141 | .priv_class = &paletteuse_class, |
| 1144 | 1142 | }; |
| @@ -498,7 +498,6 @@ static const AVFilterPad perspective_inputs[] = { · 497 unmodified lines | ||
| 498 | 498 | .filter_frame = filter_frame, |
| 499 | 499 | .config_props = config_input, |
| 500 | 500 | }, |
| 501 | − { NULL } | |
| 502 | 501 | }; |
| 503 | 502 | |
| 504 | 503 | static const AVFilterPad perspective_outputs[] = { |
| @@ -506,7 +505,6 @@ static const AVFilterPad perspective_outputs[] = { · 1 unmodified line | ||
| 506 | 505 | .name = "default", |
| 507 | 506 | .type = AVMEDIA_TYPE_VIDEO, |
| 508 | 507 | }, |
| 509 | − { NULL } | |
| 510 | 508 | }; |
| 511 | 509 | |
| 512 | 510 | const AVFilter ff_vf_perspective = { |
| @@ -516,8 +514,8 @@ const AVFilter ff_vf_perspective = { · 3 unmodified lines | ||
| 516 | 514 | .init = init, |
| 517 | 515 | .uninit = uninit, |
| 518 | 516 | .query_formats = query_formats, |
| 519 | − .inputs = perspective_inputs, | |
| 520 | − .outputs = perspective_outputs, | |
| 517 | + FILTER_INPUTS(perspective_inputs), | |
| 518 | + FILTER_OUTPUTS(perspective_outputs), | |
| 521 | 519 | .priv_class = &perspective_class, |
| 522 | 520 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 523 | 521 | }; |
| @@ -221,7 +221,6 @@ static const AVFilterPad phase_inputs[] = { · 220 unmodified lines | ||
| 221 | 221 | .filter_frame = filter_frame, |
| 222 | 222 | .config_props = config_input, |
| 223 | 223 | }, |
| 224 | − { NULL } | |
| 225 | 224 | }; |
| 226 | 225 | |
| 227 | 226 | static const AVFilterPad phase_outputs[] = { |
| @@ -229,7 +228,6 @@ static const AVFilterPad phase_outputs[] = { · 1 unmodified line | ||
| 229 | 228 | .name = "default", |
| 230 | 229 | .type = AVMEDIA_TYPE_VIDEO, |
| 231 | 230 | }, |
| 232 | − { NULL } | |
| 233 | 231 | }; |
| 234 | 232 | |
| 235 | 233 | const AVFilter ff_vf_phase = { |
| @@ -239,8 +237,8 @@ const AVFilter ff_vf_phase = { · 3 unmodified lines | ||
| 239 | 237 | .priv_class = &phase_class, |
| 240 | 238 | .uninit = uninit, |
| 241 | 239 | .query_formats = query_formats, |
| 242 | − .inputs = phase_inputs, | |
| 243 | − .outputs = phase_outputs, | |
| 240 | + FILTER_INPUTS(phase_inputs), | |
| 241 | + FILTER_OUTPUTS(phase_outputs), | |
| 244 | 242 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 245 | 243 | .process_command = ff_filter_process_command, |
| 246 | 244 | }; |
| @@ -317,7 +317,6 @@ static const AVFilterPad inputs[] = { · 316 unmodified lines | ||
| 317 | 317 | .filter_frame = filter_frame, |
| 318 | 318 | .config_props = config_input, |
| 319 | 319 | }, |
| 320 | − { NULL } | |
| 321 | 320 | }; |
| 322 | 321 | |
| 323 | 322 | static const AVFilterPad outputs[] = { |
| @@ -325,7 +324,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 325 | 324 | .name = "default", |
| 326 | 325 | .type = AVMEDIA_TYPE_VIDEO, |
| 327 | 326 | }, |
| 328 | − { NULL } | |
| 329 | 327 | }; |
| 330 | 328 | |
| 331 | 329 | const AVFilter ff_vf_photosensitivity = { |
| @@ -335,6 +333,6 @@ const AVFilter ff_vf_photosensitivity = { · 3 unmodified lines | ||
| 335 | 333 | .priv_class = &photosensitivity_class, |
| 336 | 334 | .uninit = uninit, |
| 337 | 335 | .query_formats = query_formats, |
| 338 | − .inputs = inputs, | |
| 339 | − .outputs = outputs, | |
| 336 | + FILTER_INPUTS(inputs), | |
| 337 | + FILTER_OUTPUTS(outputs), | |
| 340 | 338 | }; |
| @@ -113,7 +113,6 @@ static const AVFilterPad avfilter_vf_pixdesctest_inputs[] = { · 112 unmodified lines | ||
| 113 | 113 | .filter_frame = filter_frame, |
| 114 | 114 | .config_props = config_props, |
| 115 | 115 | }, |
| 116 | − { NULL } | |
| 117 | 116 | }; |
| 118 | 117 | |
| 119 | 118 | static const AVFilterPad avfilter_vf_pixdesctest_outputs[] = { |
| @@ -121,7 +120,6 @@ static const AVFilterPad avfilter_vf_pixdesctest_outputs[] = { · 1 unmodified line | ||
| 121 | 120 | .name = "default", |
| 122 | 121 | .type = AVMEDIA_TYPE_VIDEO, |
| 123 | 122 | }, |
| 124 | − { NULL } | |
| 125 | 123 | }; |
| 126 | 124 | |
| 127 | 125 | const AVFilter ff_vf_pixdesctest = { |
| @@ -129,6 +127,6 @@ const AVFilter ff_vf_pixdesctest = { · 1 unmodified line | ||
| 129 | 127 | .description = NULL_IF_CONFIG_SMALL("Test pixel format definitions."), |
| 130 | 128 | .priv_size = sizeof(PixdescTestContext), |
| 131 | 129 | .uninit = uninit, |
| 132 | − .inputs = avfilter_vf_pixdesctest_inputs, | |
| 133 | − .outputs = avfilter_vf_pixdesctest_outputs, | |
| 130 | + FILTER_INPUTS(avfilter_vf_pixdesctest_inputs), | |
| 131 | + FILTER_OUTPUTS(avfilter_vf_pixdesctest_outputs), | |
| 134 | 132 | }; |
| @@ -177,7 +177,6 @@ static const AVFilterPad pp_inputs[] = { · 176 unmodified lines | ||
| 177 | 177 | .config_props = pp_config_props, |
| 178 | 178 | .filter_frame = pp_filter_frame, |
| 179 | 179 | }, |
| 180 | − { NULL } | |
| 181 | 180 | }; |
| 182 | 181 | |
| 183 | 182 | static const AVFilterPad pp_outputs[] = { |
| @@ -185,7 +184,6 @@ static const AVFilterPad pp_outputs[] = { · 1 unmodified line | ||
| 185 | 184 | .name = "default", |
| 186 | 185 | .type = AVMEDIA_TYPE_VIDEO, |
| 187 | 186 | }, |
| 188 | − { NULL } | |
| 189 | 187 | }; |
| 190 | 188 | |
| 191 | 189 | const AVFilter ff_vf_pp = { |
| @@ -195,8 +193,8 @@ const AVFilter ff_vf_pp = { · 3 unmodified lines | ||
| 195 | 193 | .init = pp_init, |
| 196 | 194 | .uninit = pp_uninit, |
| 197 | 195 | .query_formats = pp_query_formats, |
| 198 | − .inputs = pp_inputs, | |
| 199 | − .outputs = pp_outputs, | |
| 196 | + FILTER_INPUTS(pp_inputs), | |
| 197 | + FILTER_OUTPUTS(pp_outputs), | |
| 200 | 198 | .process_command = pp_process_command, |
| 201 | 199 | .priv_class = &pp_class, |
| 202 | 200 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| @@ -387,7 +387,6 @@ static const AVFilterPad pp7_inputs[] = { · 386 unmodified lines | ||
| 387 | 387 | .config_props = config_input, |
| 388 | 388 | .filter_frame = filter_frame, |
| 389 | 389 | }, |
| 390 | − { NULL } | |
| 391 | 390 | }; |
| 392 | 391 | |
| 393 | 392 | static const AVFilterPad pp7_outputs[] = { |
| @@ -395,7 +394,6 @@ static const AVFilterPad pp7_outputs[] = { · 1 unmodified line | ||
| 395 | 394 | .name = "default", |
| 396 | 395 | .type = AVMEDIA_TYPE_VIDEO, |
| 397 | 396 | }, |
| 398 | − { NULL } | |
| 399 | 397 | }; |
| 400 | 398 | |
| 401 | 399 | const AVFilter ff_vf_pp7 = { |
| @@ -404,8 +402,8 @@ const AVFilter ff_vf_pp7 = { · 2 unmodified lines | ||
| 404 | 402 | .priv_size = sizeof(PP7Context), |
| 405 | 403 | .uninit = uninit, |
| 406 | 404 | .query_formats = query_formats, |
| 407 | − .inputs = pp7_inputs, | |
| 408 | − .outputs = pp7_outputs, | |
| 405 | + FILTER_INPUTS(pp7_inputs), | |
| 406 | + FILTER_OUTPUTS(pp7_outputs), | |
| 409 | 407 | .priv_class = &pp7_class, |
| 410 | 408 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 411 | 409 | }; |
| @@ -819,7 +819,6 @@ static const AVFilterPad premultiply_outputs[] = { · 818 unmodified lines | ||
| 819 | 819 | .type = AVMEDIA_TYPE_VIDEO, |
| 820 | 820 | .config_props = config_output, |
| 821 | 821 | }, |
| 822 | − { NULL } | |
| 823 | 822 | }; |
| 824 | 823 | |
| 825 | 824 | #if CONFIG_PREMULTIPLY_FILTER |
| @@ -833,7 +832,7 @@ const AVFilter ff_vf_premultiply = { · 7 unmodified lines | ||
| 833 | 832 | .query_formats = query_formats, |
| 834 | 833 | .activate = activate, |
| 835 | 834 | .inputs = NULL, |
| 836 | − .outputs = premultiply_outputs, | |
| 835 | + FILTER_OUTPUTS(premultiply_outputs), | |
| 837 | 836 | .priv_class = &premultiply_class, |
| 838 | 837 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 839 | 838 | AVFILTER_FLAG_DYNAMIC_INPUTS | |
| @@ -856,7 +855,7 @@ const AVFilter ff_vf_unpremultiply = { · 16 unmodified lines | ||
| 856 | 855 | .query_formats = query_formats, |
| 857 | 856 | .activate = activate, |
| 858 | 857 | .inputs = NULL, |
| 859 | − .outputs = premultiply_outputs, | |
| 858 | + FILTER_OUTPUTS(premultiply_outputs), | |
| 860 | 859 | .priv_class = &unpremultiply_class, |
| 861 | 860 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | |
| 862 | 861 | AVFILTER_FLAG_DYNAMIC_INPUTS | |
| @@ -219,7 +219,6 @@ static const AVFilterPad procamp_vaapi_inputs[] = { · 218 unmodified lines | ||
| 219 | 219 | .filter_frame = &procamp_vaapi_filter_frame, |
| 220 | 220 | .config_props = &ff_vaapi_vpp_config_input, |
| 221 | 221 | }, |
| 222 | − { NULL } | |
| 223 | 222 | }; |
| 224 | 223 | |
| 225 | 224 | static const AVFilterPad procamp_vaapi_outputs[] = { |
| @@ -228,7 +227,6 @@ static const AVFilterPad procamp_vaapi_outputs[] = { · 2 unmodified lines | ||
| 228 | 227 | .type = AVMEDIA_TYPE_VIDEO, |
| 229 | 228 | .config_props = &ff_vaapi_vpp_config_output, |
| 230 | 229 | }, |
| 231 | − { NULL } | |
| 232 | 230 | }; |
| 233 | 231 | |
| 234 | 232 | const AVFilter ff_vf_procamp_vaapi = { |
| @@ -238,8 +236,8 @@ const AVFilter ff_vf_procamp_vaapi = { · 3 unmodified lines | ||
| 238 | 236 | .init = &procamp_vaapi_init, |
| 239 | 237 | .uninit = &ff_vaapi_vpp_ctx_uninit, |
| 240 | 238 | .query_formats = &ff_vaapi_vpp_query_formats, |
| 241 | − .inputs = procamp_vaapi_inputs, | |
| 242 | − .outputs = procamp_vaapi_outputs, | |
| 239 | + FILTER_INPUTS(procamp_vaapi_inputs), | |
| 240 | + FILTER_OUTPUTS(procamp_vaapi_outputs), | |
| 243 | 241 | .priv_class = &procamp_vaapi_class, |
| 244 | 242 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 245 | 243 | }; |
| @@ -359,7 +359,6 @@ static const AVFilterPad program_opencl_outputs[] = { · 358 unmodified lines | ||
| 359 | 359 | .type = AVMEDIA_TYPE_VIDEO, |
| 360 | 360 | .config_props = &program_opencl_config_output, |
| 361 | 361 | }, |
| 362 | − { NULL } | |
| 363 | 362 | }; |
| 364 | 363 | |
| 365 | 364 | const AVFilter ff_vf_program_opencl = { |
| @@ -374,7 +373,7 @@ const AVFilter ff_vf_program_opencl = { · 8 unmodified lines | ||
| 374 | 373 | .query_formats = &ff_opencl_filter_query_formats, |
| 375 | 374 | .activate = &program_opencl_activate, |
| 376 | 375 | .inputs = NULL, |
| 377 | − .outputs = program_opencl_outputs, | |
| 376 | + FILTER_OUTPUTS(program_opencl_outputs), | |
| 378 | 377 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 379 | 378 | }; |
| 380 | 379 | |
| @@ -413,7 +412,6 @@ static const AVFilterPad openclsrc_outputs[] = { · 32 unmodified lines | ||
| 413 | 412 | .config_props = &program_opencl_config_output, |
| 414 | 413 | .request_frame = &program_opencl_request_frame, |
| 415 | 414 | }, |
| 416 | − { NULL } | |
| 417 | 415 | }; |
| 418 | 416 | |
| 419 | 417 | const AVFilter ff_vsrc_openclsrc = { |
| @@ -425,7 +423,7 @@ const AVFilter ff_vsrc_openclsrc = { · 5 unmodified lines | ||
| 425 | 423 | .uninit = &program_opencl_uninit, |
| 426 | 424 | .query_formats = &ff_opencl_filter_query_formats, |
| 427 | 425 | .inputs = NULL, |
| 428 | − .outputs = openclsrc_outputs, | |
| 426 | + FILTER_OUTPUTS(openclsrc_outputs), | |
| 429 | 427 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 430 | 428 | }; |
| 431 | 429 | |
| @@ -894,7 +894,6 @@ static const AVFilterPad inputs[] = { · 893 unmodified lines | ||
| 894 | 894 | .filter_frame = filter_frame, |
| 895 | 895 | .config_props = config_input, |
| 896 | 896 | }, |
| 897 | − { NULL } | |
| 898 | 897 | }; |
| 899 | 898 | |
| 900 | 899 | static const AVFilterPad outputs[] = { |
| @@ -902,7 +901,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 902 | 901 | .name = "default", |
| 903 | 902 | .type = AVMEDIA_TYPE_VIDEO, |
| 904 | 903 | }, |
| 905 | − { NULL } | |
| 906 | 904 | }; |
| 907 | 905 | |
| 908 | 906 | static av_cold void uninit(AVFilterContext *ctx) |
| @@ -925,8 +923,8 @@ const AVFilter ff_vf_pseudocolor = { · 16 unmodified lines | ||
| 925 | 923 | .priv_class = &pseudocolor_class, |
| 926 | 924 | .uninit = uninit, |
| 927 | 925 | .query_formats = query_formats, |
| 928 | − .inputs = inputs, | |
| 929 | − .outputs = outputs, | |
| 926 | + FILTER_INPUTS(inputs), | |
| 927 | + FILTER_OUTPUTS(outputs), | |
| 930 | 928 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 931 | 929 | .process_command = process_command, |
| 932 | 930 | }; |
| @@ -453,7 +453,6 @@ static const AVFilterPad psnr_inputs[] = { · 452 unmodified lines | ||
| 453 | 453 | .type = AVMEDIA_TYPE_VIDEO, |
| 454 | 454 | .config_props = config_input_ref, |
| 455 | 455 | }, |
| 456 | − { NULL } | |
| 457 | 456 | }; |
| 458 | 457 | |
| 459 | 458 | static const AVFilterPad psnr_outputs[] = { |
| @@ -462,7 +461,6 @@ static const AVFilterPad psnr_outputs[] = { · 2 unmodified lines | ||
| 462 | 461 | .type = AVMEDIA_TYPE_VIDEO, |
| 463 | 462 | .config_props = config_output, |
| 464 | 463 | }, |
| 465 | − { NULL } | |
| 466 | 464 | }; |
| 467 | 465 | |
| 468 | 466 | const AVFilter ff_vf_psnr = { |
| @@ -475,7 +473,7 @@ const AVFilter ff_vf_psnr = { · 6 unmodified lines | ||
| 475 | 473 | .activate = activate, |
| 476 | 474 | .priv_size = sizeof(PSNRContext), |
| 477 | 475 | .priv_class = &psnr_class, |
| 478 | − .inputs = psnr_inputs, | |
| 479 | − .outputs = psnr_outputs, | |
| 476 | + FILTER_INPUTS(psnr_inputs), | |
| 477 | + FILTER_OUTPUTS(psnr_outputs), | |
| 480 | 478 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 481 | 479 | }; |
| @@ -750,7 +750,6 @@ static const AVFilterPad pullup_inputs[] = { · 749 unmodified lines | ||
| 750 | 750 | .filter_frame = filter_frame, |
| 751 | 751 | .config_props = config_input, |
| 752 | 752 | }, |
| 753 | − { NULL } | |
| 754 | 753 | }; |
| 755 | 754 | |
| 756 | 755 | static const AVFilterPad pullup_outputs[] = { |
| @@ -758,7 +757,6 @@ static const AVFilterPad pullup_outputs[] = { · 1 unmodified line | ||
| 758 | 757 | .name = "default", |
| 759 | 758 | .type = AVMEDIA_TYPE_VIDEO, |
| 760 | 759 | }, |
| 761 | − { NULL } | |
| 762 | 760 | }; |
| 763 | 761 | |
| 764 | 762 | const AVFilter ff_vf_pullup = { |
| @@ -768,6 +766,6 @@ const AVFilter ff_vf_pullup = { · 3 unmodified lines | ||
| 768 | 766 | .priv_class = &pullup_class, |
| 769 | 767 | .uninit = uninit, |
| 770 | 768 | .query_formats = query_formats, |
| 771 | − .inputs = pullup_inputs, | |
| 772 | − .outputs = pullup_outputs, | |
| 769 | + FILTER_INPUTS(pullup_inputs), | |
| 770 | + FILTER_OUTPUTS(pullup_outputs), | |
| 773 | 771 | }; |
| @@ -182,7 +182,6 @@ static const AVFilterPad qp_inputs[] = { · 181 unmodified lines | ||
| 182 | 182 | .filter_frame = filter_frame, |
| 183 | 183 | .config_props = config_input, |
| 184 | 184 | }, |
| 185 | − { NULL } | |
| 186 | 185 | }; |
| 187 | 186 | |
| 188 | 187 | static const AVFilterPad qp_outputs[] = { |
| @@ -190,15 +189,14 @@ static const AVFilterPad qp_outputs[] = { · 1 unmodified line | ||
| 190 | 189 | .name = "default", |
| 191 | 190 | .type = AVMEDIA_TYPE_VIDEO, |
| 192 | 191 | }, |
| 193 | − { NULL } | |
| 194 | 192 | }; |
| 195 | 193 | |
| 196 | 194 | const AVFilter ff_vf_qp = { |
| 197 | 195 | .name = "qp", |
| 198 | 196 | .description = NULL_IF_CONFIG_SMALL("Change video quantization parameters."), |
| 199 | 197 | .priv_size = sizeof(QPContext), |
| 200 | − .inputs = qp_inputs, | |
| 201 | − .outputs = qp_outputs, | |
| 198 | + FILTER_INPUTS(qp_inputs), | |
| 199 | + FILTER_OUTPUTS(qp_outputs), | |
| 202 | 200 | .priv_class = &qp_class, |
| 203 | 201 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 204 | 202 | }; |
| @@ -127,7 +127,6 @@ static const AVFilterPad random_inputs[] = { · 126 unmodified lines | ||
| 127 | 127 | .type = AVMEDIA_TYPE_VIDEO, |
| 128 | 128 | .filter_frame = filter_frame, |
| 129 | 129 | }, |
| 130 | − { NULL } | |
| 131 | 130 | }; |
| 132 | 131 | |
| 133 | 132 | static const AVFilterPad random_outputs[] = { |
| @@ -136,7 +135,6 @@ static const AVFilterPad random_outputs[] = { · 2 unmodified lines | ||
| 136 | 135 | .type = AVMEDIA_TYPE_VIDEO, |
| 137 | 136 | .request_frame = request_frame, |
| 138 | 137 | }, |
| 139 | − { NULL } | |
| 140 | 138 | }; |
| 141 | 139 | |
| 142 | 140 | const AVFilter ff_vf_random = { |
| @@ -146,6 +144,6 @@ const AVFilter ff_vf_random = { · 3 unmodified lines | ||
| 146 | 144 | .priv_class = &random_class, |
| 147 | 145 | .init = init, |
| 148 | 146 | .uninit = uninit, |
| 149 | − .inputs = random_inputs, | |
| 150 | − .outputs = random_outputs, | |
| 147 | + FILTER_INPUTS(random_inputs), | |
| 148 | + FILTER_OUTPUTS(random_outputs), | |
| 151 | 149 | }; |
| @@ -542,7 +542,6 @@ static const AVFilterPad readeia608_inputs[] = { · 541 unmodified lines | ||
| 542 | 542 | .filter_frame = filter_frame, |
| 543 | 543 | .config_props = config_input, |
| 544 | 544 | }, |
| 545 | − { NULL } | |
| 546 | 545 | }; |
| 547 | 546 | |
| 548 | 547 | static const AVFilterPad readeia608_outputs[] = { |
| @@ -550,7 +549,6 @@ static const AVFilterPad readeia608_outputs[] = { · 1 unmodified line | ||
| 550 | 549 | .name = "default", |
| 551 | 550 | .type = AVMEDIA_TYPE_VIDEO, |
| 552 | 551 | }, |
| 553 | − { NULL } | |
| 554 | 552 | }; |
| 555 | 553 | |
| 556 | 554 | const AVFilter ff_vf_readeia608 = { |
| @@ -559,8 +557,8 @@ const AVFilter ff_vf_readeia608 = { · 2 unmodified lines | ||
| 559 | 557 | .priv_size = sizeof(ReadEIA608Context), |
| 560 | 558 | .priv_class = &readeia608_class, |
| 561 | 559 | .query_formats = query_formats, |
| 562 | − .inputs = readeia608_inputs, | |
| 563 | − .outputs = readeia608_outputs, | |
| 560 | + FILTER_INPUTS(readeia608_inputs), | |
| 561 | + FILTER_OUTPUTS(readeia608_outputs), | |
| 564 | 562 | .uninit = uninit, |
| 565 | 563 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 566 | 564 | .process_command = process_command, |
| @@ -232,7 +232,6 @@ static const AVFilterPad inputs[] = { · 231 unmodified lines | ||
| 232 | 232 | .filter_frame = filter_frame, |
| 233 | 233 | .config_props = config_props, |
| 234 | 234 | }, |
| 235 | − { NULL } | |
| 236 | 235 | }; |
| 237 | 236 | |
| 238 | 237 | static const AVFilterPad outputs[] = { |
| @@ -240,7 +239,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 240 | 239 | .name = "default", |
| 241 | 240 | .type = AVMEDIA_TYPE_VIDEO, |
| 242 | 241 | }, |
| 243 | − { NULL } | |
| 244 | 242 | }; |
| 245 | 243 | |
| 246 | 244 | const AVFilter ff_vf_readvitc = { |
| @@ -248,8 +246,8 @@ const AVFilter ff_vf_readvitc = { · 1 unmodified line | ||
| 248 | 246 | .description = NULL_IF_CONFIG_SMALL("Read vertical interval timecode and write it to frame metadata."), |
| 249 | 247 | .priv_size = sizeof(ReadVitcContext), |
| 250 | 248 | .priv_class = &readvitc_class, |
| 251 | − .inputs = inputs, | |
| 252 | − .outputs = outputs, | |
| 249 | + FILTER_INPUTS(inputs), | |
| 250 | + FILTER_OUTPUTS(outputs), | |
| 253 | 251 | .init = init, |
| 254 | 252 | .query_formats = query_formats, |
| 255 | 253 | }; |
| @@ -387,7 +387,6 @@ static const AVFilterPad remap_inputs[] = { · 386 unmodified lines | ||
| 387 | 387 | .name = "ymap", |
| 388 | 388 | .type = AVMEDIA_TYPE_VIDEO, |
| 389 | 389 | }, |
| 390 | − { NULL } | |
| 391 | 390 | }; |
| 392 | 391 | |
| 393 | 392 | static const AVFilterPad remap_outputs[] = { |
| @@ -396,7 +395,6 @@ static const AVFilterPad remap_outputs[] = { · 2 unmodified lines | ||
| 396 | 395 | .type = AVMEDIA_TYPE_VIDEO, |
| 397 | 396 | .config_props = config_output, |
| 398 | 397 | }, |
| 399 | − { NULL } | |
| 400 | 398 | }; |
| 401 | 399 | |
| 402 | 400 | const AVFilter ff_vf_remap = { |
| @@ -406,8 +404,8 @@ const AVFilter ff_vf_remap = { · 3 unmodified lines | ||
| 406 | 404 | .uninit = uninit, |
| 407 | 405 | .query_formats = query_formats, |
| 408 | 406 | .activate = activate, |
| 409 | − .inputs = remap_inputs, | |
| 410 | − .outputs = remap_outputs, | |
| 407 | + FILTER_INPUTS(remap_inputs), | |
| 408 | + FILTER_OUTPUTS(remap_outputs), | |
| 411 | 409 | .priv_class = &remap_class, |
| 412 | 410 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 413 | 411 | }; |
| @@ -634,7 +634,6 @@ static const AVFilterPad removegrain_inputs[] = { · 633 unmodified lines | ||
| 634 | 634 | .filter_frame = filter_frame, |
| 635 | 635 | .config_props = config_input, |
| 636 | 636 | }, |
| 637 | − { NULL } | |
| 638 | 637 | }; |
| 639 | 638 | |
| 640 | 639 | static const AVFilterPad removegrain_outputs[] = { |
| @@ -642,7 +641,6 @@ static const AVFilterPad removegrain_outputs[] = { · 1 unmodified line | ||
| 642 | 641 | .name = "default", |
| 643 | 642 | .type = AVMEDIA_TYPE_VIDEO, |
| 644 | 643 | }, |
| 645 | − { NULL } | |
| 646 | 644 | }; |
| 647 | 645 | |
| 648 | 646 | const AVFilter ff_vf_removegrain = { |
| @@ -650,8 +648,8 @@ const AVFilter ff_vf_removegrain = { · 1 unmodified line | ||
| 650 | 648 | .description = NULL_IF_CONFIG_SMALL("Remove grain."), |
| 651 | 649 | .priv_size = sizeof(RemoveGrainContext), |
| 652 | 650 | .query_formats = query_formats, |
| 653 | − .inputs = removegrain_inputs, | |
| 654 | − .outputs = removegrain_outputs, | |
| 651 | + FILTER_INPUTS(removegrain_inputs), | |
| 652 | + FILTER_OUTPUTS(removegrain_outputs), | |
| 655 | 653 | .priv_class = &removegrain_class, |
| 656 | 654 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 657 | 655 | }; |
| @@ -559,7 +559,6 @@ static const AVFilterPad removelogo_inputs[] = { · 558 unmodified lines | ||
| 559 | 559 | .config_props = config_props_input, |
| 560 | 560 | .filter_frame = filter_frame, |
| 561 | 561 | }, |
| 562 | − { NULL } | |
| 563 | 562 | }; |
| 564 | 563 | |
| 565 | 564 | static const AVFilterPad removelogo_outputs[] = { |
| @@ -567,7 +566,6 @@ static const AVFilterPad removelogo_outputs[] = { · 1 unmodified line | ||
| 567 | 566 | .name = "default", |
| 568 | 567 | .type = AVMEDIA_TYPE_VIDEO, |
| 569 | 568 | }, |
| 570 | − { NULL } | |
| 571 | 569 | }; |
| 572 | 570 | |
| 573 | 571 | const AVFilter ff_vf_removelogo = { |
| @@ -577,8 +575,8 @@ const AVFilter ff_vf_removelogo = { · 3 unmodified lines | ||
| 577 | 575 | .init = init, |
| 578 | 576 | .uninit = uninit, |
| 579 | 577 | .query_formats = query_formats, |
| 580 | − .inputs = removelogo_inputs, | |
| 581 | − .outputs = removelogo_outputs, | |
| 578 | + FILTER_INPUTS(removelogo_inputs), | |
| 579 | + FILTER_OUTPUTS(removelogo_outputs), | |
| 582 | 580 | .priv_class = &removelogo_class, |
| 583 | 581 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 584 | 582 | }; |
| @@ -167,7 +167,6 @@ static const AVFilterPad repeatfields_inputs[] = { · 166 unmodified lines | ||
| 167 | 167 | .filter_frame = filter_frame, |
| 168 | 168 | .config_props = config_input, |
| 169 | 169 | }, |
| 170 | − { NULL } | |
| 171 | 170 | }; |
| 172 | 171 | |
| 173 | 172 | static const AVFilterPad repeatfields_outputs[] = { |
| @@ -175,7 +174,6 @@ static const AVFilterPad repeatfields_outputs[] = { · 1 unmodified line | ||
| 175 | 174 | .name = "default", |
| 176 | 175 | .type = AVMEDIA_TYPE_VIDEO, |
| 177 | 176 | }, |
| 178 | − { NULL } | |
| 179 | 177 | }; |
| 180 | 178 | |
| 181 | 179 | const AVFilter ff_vf_repeatfields = { |
| @@ -183,7 +181,7 @@ const AVFilter ff_vf_repeatfields = { · 1 unmodified line | ||
| 183 | 181 | .description = NULL_IF_CONFIG_SMALL("Hard repeat fields based on MPEG repeat field flag."), |
| 184 | 182 | .priv_size = sizeof(RepeatFieldsContext), |
| 185 | 183 | .uninit = uninit, |
| 186 | − .inputs = repeatfields_inputs, | |
| 187 | − .outputs = repeatfields_outputs, | |
| 184 | + FILTER_INPUTS(repeatfields_inputs), | |
| 185 | + FILTER_OUTPUTS(repeatfields_outputs), | |
| 188 | 186 | .query_formats = query_formats, |
| 189 | 187 | }; |
| @@ -585,7 +585,6 @@ static const AVFilterPad rotate_inputs[] = { · 584 unmodified lines | ||
| 585 | 585 | .type = AVMEDIA_TYPE_VIDEO, |
| 586 | 586 | .filter_frame = filter_frame, |
| 587 | 587 | }, |
| 588 | − { NULL } | |
| 589 | 588 | }; |
| 590 | 589 | |
| 591 | 590 | static const AVFilterPad rotate_outputs[] = { |
| @@ -594,7 +593,6 @@ static const AVFilterPad rotate_outputs[] = { · 2 unmodified lines | ||
| 594 | 593 | .type = AVMEDIA_TYPE_VIDEO, |
| 595 | 594 | .config_props = config_props, |
| 596 | 595 | }, |
| 597 | − { NULL } | |
| 598 | 596 | }; |
| 599 | 597 | |
| 600 | 598 | const AVFilter ff_vf_rotate = { |
| @@ -605,8 +603,8 @@ const AVFilter ff_vf_rotate = { · 4 unmodified lines | ||
| 605 | 603 | .uninit = uninit, |
| 606 | 604 | .query_formats = query_formats, |
| 607 | 605 | .process_command = process_command, |
| 608 | − .inputs = rotate_inputs, | |
| 609 | − .outputs = rotate_outputs, | |
| 606 | + FILTER_INPUTS(rotate_inputs), | |
| 607 | + FILTER_OUTPUTS(rotate_outputs), | |
| 610 | 608 | .priv_class = &rotate_class, |
| 611 | 609 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 612 | 610 | }; |
| @@ -309,7 +309,6 @@ static const AVFilterPad sab_inputs[] = { · 308 unmodified lines | ||
| 309 | 309 | .filter_frame = filter_frame, |
| 310 | 310 | .config_props = config_props, |
| 311 | 311 | }, |
| 312 | − { NULL } | |
| 313 | 312 | }; |
| 314 | 313 | |
| 315 | 314 | static const AVFilterPad sab_outputs[] = { |
| @@ -317,7 +316,6 @@ static const AVFilterPad sab_outputs[] = { · 1 unmodified line | ||
| 317 | 316 | .name = "default", |
| 318 | 317 | .type = AVMEDIA_TYPE_VIDEO, |
| 319 | 318 | }, |
| 320 | − { NULL } | |
| 321 | 319 | }; |
| 322 | 320 | |
| 323 | 321 | const AVFilter ff_vf_sab = { |
| @@ -327,8 +325,8 @@ const AVFilter ff_vf_sab = { · 3 unmodified lines | ||
| 327 | 325 | .init = init, |
| 328 | 326 | .uninit = uninit, |
| 329 | 327 | .query_formats = query_formats, |
| 330 | − .inputs = sab_inputs, | |
| 331 | − .outputs = sab_outputs, | |
| 328 | + FILTER_INPUTS(sab_inputs), | |
| 329 | + FILTER_OUTPUTS(sab_outputs), | |
| 332 | 330 | .priv_class = &sab_class, |
| 333 | 331 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 334 | 332 | }; |
| @@ -957,7 +957,6 @@ static const AVFilterPad avfilter_vf_scale_inputs[] = { · 956 unmodified lines | ||
| 957 | 957 | .type = AVMEDIA_TYPE_VIDEO, |
| 958 | 958 | .filter_frame = filter_frame, |
| 959 | 959 | }, |
| 960 | − { NULL } | |
| 961 | 960 | }; |
| 962 | 961 | |
| 963 | 962 | static const AVFilterPad avfilter_vf_scale_outputs[] = { |
| @@ -966,7 +965,6 @@ static const AVFilterPad avfilter_vf_scale_outputs[] = { · 2 unmodified lines | ||
| 966 | 965 | .type = AVMEDIA_TYPE_VIDEO, |
| 967 | 966 | .config_props = config_props, |
| 968 | 967 | }, |
| 969 | − { NULL } | |
| 970 | 968 | }; |
| 971 | 969 | |
| 972 | 970 | const AVFilter ff_vf_scale = { |
| @@ -977,8 +975,8 @@ const AVFilter ff_vf_scale = { · 4 unmodified lines | ||
| 977 | 975 | .query_formats = query_formats, |
| 978 | 976 | .priv_size = sizeof(ScaleContext), |
| 979 | 977 | .priv_class = &scale_class, |
| 980 | − .inputs = avfilter_vf_scale_inputs, | |
| 981 | − .outputs = avfilter_vf_scale_outputs, | |
| 978 | + FILTER_INPUTS(avfilter_vf_scale_inputs), | |
| 979 | + FILTER_OUTPUTS(avfilter_vf_scale_outputs), | |
| 982 | 980 | .process_command = process_command, |
| 983 | 981 | }; |
| 984 | 982 | |
| @@ -1002,7 +1000,6 @@ static const AVFilterPad avfilter_vf_scale2ref_inputs[] = { · 17 unmodified lines | ||
| 1002 | 1000 | .type = AVMEDIA_TYPE_VIDEO, |
| 1003 | 1001 | .filter_frame = filter_frame_ref, |
| 1004 | 1002 | }, |
| 1005 | − { NULL } | |
| 1006 | 1003 | }; |
| 1007 | 1004 | |
| 1008 | 1005 | static const AVFilterPad avfilter_vf_scale2ref_outputs[] = { |
| @@ -1018,7 +1015,6 @@ static const AVFilterPad avfilter_vf_scale2ref_outputs[] = { · 9 unmodified lines | ||
| 1018 | 1015 | .config_props = config_props_ref, |
| 1019 | 1016 | .request_frame= request_frame_ref, |
| 1020 | 1017 | }, |
| 1021 | − { NULL } | |
| 1022 | 1018 | }; |
| 1023 | 1019 | |
| 1024 | 1020 | const AVFilter ff_vf_scale2ref = { |
| @@ -1029,7 +1025,7 @@ const AVFilter ff_vf_scale2ref = { · 4 unmodified lines | ||
| 1029 | 1025 | .query_formats = query_formats, |
| 1030 | 1026 | .priv_size = sizeof(ScaleContext), |
| 1031 | 1027 | .priv_class = &scale2ref_class, |
| 1032 | − .inputs = avfilter_vf_scale2ref_inputs, | |
| 1033 | − .outputs = avfilter_vf_scale2ref_outputs, | |
| 1028 | + FILTER_INPUTS(avfilter_vf_scale2ref_inputs), | |
| 1029 | + FILTER_OUTPUTS(avfilter_vf_scale2ref_outputs), | |
| 1034 | 1030 | .process_command = process_command, |
| 1035 | 1031 | }; |
| @@ -625,7 +625,6 @@ static const AVFilterPad cudascale_inputs[] = { · 624 unmodified lines | ||
| 625 | 625 | .filter_frame = cudascale_filter_frame, |
| 626 | 626 | .get_buffer.video = cudascale_get_video_buffer, |
| 627 | 627 | }, |
| 628 | − { NULL } | |
| 629 | 628 | }; |
| 630 | 629 | |
| 631 | 630 | static const AVFilterPad cudascale_outputs[] = { |
| @@ -634,7 +633,6 @@ static const AVFilterPad cudascale_outputs[] = { · 2 unmodified lines | ||
| 634 | 633 | .type = AVMEDIA_TYPE_VIDEO, |
| 635 | 634 | .config_props = cudascale_config_props, |
| 636 | 635 | }, |
| 637 | − { NULL } | |
| 638 | 636 | }; |
| 639 | 637 | |
| 640 | 638 | const AVFilter ff_vf_scale_cuda = { |
| @@ -648,8 +646,8 @@ const AVFilter ff_vf_scale_cuda = { · 7 unmodified lines | ||
| 648 | 646 | .priv_size = sizeof(CUDAScaleContext), |
| 649 | 647 | .priv_class = &cudascale_class, |
| 650 | 648 | |
| 651 | − .inputs = cudascale_inputs, | |
| 652 | − .outputs = cudascale_outputs, | |
| 649 | + FILTER_INPUTS(cudascale_inputs), | |
| 650 | + FILTER_OUTPUTS(cudascale_outputs), | |
| 653 | 651 | |
| 654 | 652 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 655 | 653 | }; |
| @@ -577,7 +577,6 @@ static const AVFilterPad nppscale_inputs[] = { · 576 unmodified lines | ||
| 577 | 577 | .type = AVMEDIA_TYPE_VIDEO, |
| 578 | 578 | .filter_frame = nppscale_filter_frame, |
| 579 | 579 | }, |
| 580 | − { NULL } | |
| 581 | 580 | }; |
| 582 | 581 | |
| 583 | 582 | static const AVFilterPad nppscale_outputs[] = { |
| @@ -586,7 +585,6 @@ static const AVFilterPad nppscale_outputs[] = { · 2 unmodified lines | ||
| 586 | 585 | .type = AVMEDIA_TYPE_VIDEO, |
| 587 | 586 | .config_props = nppscale_config_props, |
| 588 | 587 | }, |
| 589 | − { NULL } | |
| 590 | 588 | }; |
| 591 | 589 | |
| 592 | 590 | const AVFilter ff_vf_scale_npp = { |
| @@ -601,8 +599,8 @@ const AVFilter ff_vf_scale_npp = { · 8 unmodified lines | ||
| 601 | 599 | .priv_size = sizeof(NPPScaleContext), |
| 602 | 600 | .priv_class = &nppscale_class, |
| 603 | 601 | |
| 604 | − .inputs = nppscale_inputs, | |
| 605 | − .outputs = nppscale_outputs, | |
| 602 | + FILTER_INPUTS(nppscale_inputs), | |
| 603 | + FILTER_OUTPUTS(nppscale_outputs), | |
| 606 | 604 | |
| 607 | 605 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 608 | 606 | }; |
| @@ -650,7 +650,6 @@ static const AVFilterPad qsvscale_inputs[] = { · 649 unmodified lines | ||
| 650 | 650 | .type = AVMEDIA_TYPE_VIDEO, |
| 651 | 651 | .filter_frame = qsvscale_filter_frame, |
| 652 | 652 | }, |
| 653 | − { NULL } | |
| 654 | 653 | }; |
| 655 | 654 | |
| 656 | 655 | static const AVFilterPad qsvscale_outputs[] = { |
| @@ -659,7 +658,6 @@ static const AVFilterPad qsvscale_outputs[] = { · 2 unmodified lines | ||
| 659 | 658 | .type = AVMEDIA_TYPE_VIDEO, |
| 660 | 659 | .config_props = qsvscale_config_props, |
| 661 | 660 | }, |
| 662 | − { NULL } | |
| 663 | 661 | }; |
| 664 | 662 | |
| 665 | 663 | const AVFilter ff_vf_scale_qsv = { |
| @@ -673,8 +671,8 @@ const AVFilter ff_vf_scale_qsv = { · 7 unmodified lines | ||
| 673 | 671 | .priv_size = sizeof(QSVScaleContext), |
| 674 | 672 | .priv_class = &qsvscale_class, |
| 675 | 673 | |
| 676 | − .inputs = qsvscale_inputs, | |
| 677 | − .outputs = qsvscale_outputs, | |
| 674 | + FILTER_INPUTS(qsvscale_inputs), | |
| 675 | + FILTER_OUTPUTS(qsvscale_outputs), | |
| 678 | 676 | |
| 679 | 677 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 680 | 678 | }; |
| @@ -269,7 +269,6 @@ static const AVFilterPad scale_vaapi_inputs[] = { · 268 unmodified lines | ||
| 269 | 269 | .filter_frame = &scale_vaapi_filter_frame, |
| 270 | 270 | .config_props = &ff_vaapi_vpp_config_input, |
| 271 | 271 | }, |
| 272 | − { NULL } | |
| 273 | 272 | }; |
| 274 | 273 | |
| 275 | 274 | static const AVFilterPad scale_vaapi_outputs[] = { |
| @@ -278,7 +277,6 @@ static const AVFilterPad scale_vaapi_outputs[] = { · 2 unmodified lines | ||
| 278 | 277 | .type = AVMEDIA_TYPE_VIDEO, |
| 279 | 278 | .config_props = &scale_vaapi_config_output, |
| 280 | 279 | }, |
| 281 | − { NULL } | |
| 282 | 280 | }; |
| 283 | 281 | |
| 284 | 282 | const AVFilter ff_vf_scale_vaapi = { |
| @@ -288,8 +286,8 @@ const AVFilter ff_vf_scale_vaapi = { · 3 unmodified lines | ||
| 288 | 286 | .init = &scale_vaapi_init, |
| 289 | 287 | .uninit = &ff_vaapi_vpp_ctx_uninit, |
| 290 | 288 | .query_formats = &ff_vaapi_vpp_query_formats, |
| 291 | − .inputs = scale_vaapi_inputs, | |
| 292 | − .outputs = scale_vaapi_outputs, | |
| 289 | + FILTER_INPUTS(scale_vaapi_inputs), | |
| 290 | + FILTER_OUTPUTS(scale_vaapi_outputs), | |
| 293 | 291 | .priv_class = &scale_vaapi_class, |
| 294 | 292 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 295 | 293 | }; |
| @@ -512,7 +512,6 @@ static const AVFilterPad scale_vulkan_inputs[] = { · 511 unmodified lines | ||
| 512 | 512 | .filter_frame = &scale_vulkan_filter_frame, |
| 513 | 513 | .config_props = &ff_vk_filter_config_input, |
| 514 | 514 | }, |
| 515 | − { NULL } | |
| 516 | 515 | }; |
| 517 | 516 | |
| 518 | 517 | static const AVFilterPad scale_vulkan_outputs[] = { |
| @@ -521,7 +520,6 @@ static const AVFilterPad scale_vulkan_outputs[] = { · 2 unmodified lines | ||
| 521 | 520 | .type = AVMEDIA_TYPE_VIDEO, |
| 522 | 521 | .config_props = &scale_vulkan_config_output, |
| 523 | 522 | }, |
| 524 | − { NULL } | |
| 525 | 523 | }; |
| 526 | 524 | |
| 527 | 525 | const AVFilter ff_vf_scale_vulkan = { |
| @@ -531,8 +529,8 @@ const AVFilter ff_vf_scale_vulkan = { · 3 unmodified lines | ||
| 531 | 529 | .init = &ff_vk_filter_init, |
| 532 | 530 | .uninit = &scale_vulkan_uninit, |
| 533 | 531 | .query_formats = &ff_vk_filter_query_formats, |
| 534 | − .inputs = scale_vulkan_inputs, | |
| 535 | − .outputs = scale_vulkan_outputs, | |
| 532 | + FILTER_INPUTS(scale_vulkan_inputs), | |
| 533 | + FILTER_OUTPUTS(scale_vulkan_outputs), | |
| 536 | 534 | .priv_class = &scale_vulkan_class, |
| 537 | 535 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 538 | 536 | }; |
| @@ -196,7 +196,6 @@ static const AVFilterPad scdet_inputs[] = { · 195 unmodified lines | ||
| 196 | 196 | .type = AVMEDIA_TYPE_VIDEO, |
| 197 | 197 | .config_props = config_input, |
| 198 | 198 | }, |
| 199 | − { NULL } | |
| 200 | 199 | }; |
| 201 | 200 | |
| 202 | 201 | static const AVFilterPad scdet_outputs[] = { |
| @@ -204,7 +203,6 @@ static const AVFilterPad scdet_outputs[] = { · 1 unmodified line | ||
| 204 | 203 | .name = "default", |
| 205 | 204 | .type = AVMEDIA_TYPE_VIDEO, |
| 206 | 205 | }, |
| 207 | − { NULL } | |
| 208 | 206 | }; |
| 209 | 207 | |
| 210 | 208 | const AVFilter ff_vf_scdet = { |
| @@ -214,7 +212,7 @@ const AVFilter ff_vf_scdet = { · 3 unmodified lines | ||
| 214 | 212 | .priv_class = &scdet_class, |
| 215 | 213 | .uninit = uninit, |
| 216 | 214 | .query_formats = query_formats, |
| 217 | − .inputs = scdet_inputs, | |
| 218 | − .outputs = scdet_outputs, | |
| 215 | + FILTER_INPUTS(scdet_inputs), | |
| 216 | + FILTER_OUTPUTS(scdet_outputs), | |
| 219 | 217 | .activate = activate, |
| 220 | 218 | }; |
| @@ -197,7 +197,6 @@ static const AVFilterPad scroll_inputs[] = { · 196 unmodified lines | ||
| 197 | 197 | .config_props = config_input, |
| 198 | 198 | .filter_frame = filter_frame, |
| 199 | 199 | }, |
| 200 | − { NULL } | |
| 201 | 200 | }; |
| 202 | 201 | |
| 203 | 202 | static const AVFilterPad scroll_outputs[] = { |
| @@ -205,7 +204,6 @@ static const AVFilterPad scroll_outputs[] = { · 1 unmodified line | ||
| 205 | 204 | .name = "default", |
| 206 | 205 | .type = AVMEDIA_TYPE_VIDEO, |
| 207 | 206 | }, |
| 208 | − { NULL } | |
| 209 | 207 | }; |
| 210 | 208 | |
| 211 | 209 | const AVFilter ff_vf_scroll = { |
| @@ -214,8 +212,8 @@ const AVFilter ff_vf_scroll = { · 2 unmodified lines | ||
| 214 | 212 | .priv_size = sizeof(ScrollContext), |
| 215 | 213 | .priv_class = &scroll_class, |
| 216 | 214 | .query_formats = query_formats, |
| 217 | − .inputs = scroll_inputs, | |
| 218 | − .outputs = scroll_outputs, | |
| 215 | + FILTER_INPUTS(scroll_inputs), | |
| 216 | + FILTER_OUTPUTS(scroll_outputs), | |
| 219 | 217 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 220 | 218 | .process_command = ff_filter_process_command, |
| 221 | 219 | }; |
| @@ -456,7 +456,6 @@ static const AVFilterPad selectivecolor_inputs[] = { · 455 unmodified lines | ||
| 456 | 456 | .filter_frame = filter_frame, |
| 457 | 457 | .config_props = config_input, |
| 458 | 458 | }, |
| 459 | − { NULL } | |
| 460 | 459 | }; |
| 461 | 460 | |
| 462 | 461 | static const AVFilterPad selectivecolor_outputs[] = { |
| @@ -464,7 +463,6 @@ static const AVFilterPad selectivecolor_outputs[] = { · 1 unmodified line | ||
| 464 | 463 | .name = "default", |
| 465 | 464 | .type = AVMEDIA_TYPE_VIDEO, |
| 466 | 465 | }, |
| 467 | − { NULL } | |
| 468 | 466 | }; |
| 469 | 467 | |
| 470 | 468 | const AVFilter ff_vf_selectivecolor = { |
| @@ -472,8 +470,8 @@ const AVFilter ff_vf_selectivecolor = { · 1 unmodified line | ||
| 472 | 470 | .description = NULL_IF_CONFIG_SMALL("Apply CMYK adjustments to specific color ranges."), |
| 473 | 471 | .priv_size = sizeof(SelectiveColorContext), |
| 474 | 472 | .query_formats = query_formats, |
| 475 | − .inputs = selectivecolor_inputs, | |
| 476 | − .outputs = selectivecolor_outputs, | |
| 473 | + FILTER_INPUTS(selectivecolor_inputs), | |
| 474 | + FILTER_OUTPUTS(selectivecolor_outputs), | |
| 477 | 475 | .priv_class = &selectivecolor_class, |
| 478 | 476 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 479 | 477 | }; |
| @@ -161,7 +161,6 @@ static const AVFilterPad separatefields_inputs[] = { · 160 unmodified lines | ||
| 161 | 161 | .name = "default", |
| 162 | 162 | .type = AVMEDIA_TYPE_VIDEO, |
| 163 | 163 | }, |
| 164 | − { NULL } | |
| 165 | 164 | }; |
| 166 | 165 | |
| 167 | 166 | static const AVFilterPad separatefields_outputs[] = { |
| @@ -170,7 +169,6 @@ static const AVFilterPad separatefields_outputs[] = { · 2 unmodified lines | ||
| 170 | 169 | .type = AVMEDIA_TYPE_VIDEO, |
| 171 | 170 | .config_props = config_props_output, |
| 172 | 171 | }, |
| 173 | − { NULL } | |
| 174 | 172 | }; |
| 175 | 173 | |
| 176 | 174 | const AVFilter ff_vf_separatefields = { |
| @@ -179,6 +177,6 @@ const AVFilter ff_vf_separatefields = { · 2 unmodified lines | ||
| 179 | 177 | .priv_size = sizeof(SeparateFieldsContext), |
| 180 | 178 | .activate = activate, |
| 181 | 179 | .uninit = uninit, |
| 182 | − .inputs = separatefields_inputs, | |
| 183 | − .outputs = separatefields_outputs, | |
| 180 | + FILTER_INPUTS(separatefields_inputs), | |
| 181 | + FILTER_OUTPUTS(separatefields_outputs), | |
| 184 | 182 | }; |
| @@ -151,7 +151,6 @@ static const AVFilterPad inputs[] = { · 150 unmodified lines | ||
| 151 | 151 | .type = AVMEDIA_TYPE_VIDEO, |
| 152 | 152 | .filter_frame = filter_frame, |
| 153 | 153 | }, |
| 154 | − { NULL } | |
| 155 | 154 | }; |
| 156 | 155 | |
| 157 | 156 | static const AVFilterPad outputs[] = { |
| @@ -159,7 +158,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 159 | 158 | .name = "default", |
| 160 | 159 | .type = AVMEDIA_TYPE_VIDEO, |
| 161 | 160 | }, |
| 162 | − { NULL } | |
| 163 | 161 | }; |
| 164 | 162 | |
| 165 | 163 | const AVFilter ff_vf_setparams = { |
| @@ -167,8 +165,8 @@ const AVFilter ff_vf_setparams = { · 1 unmodified line | ||
| 167 | 165 | .description = NULL_IF_CONFIG_SMALL("Force field, or color property for the output video frame."), |
| 168 | 166 | .priv_size = sizeof(SetParamsContext), |
| 169 | 167 | .priv_class = &setparams_class, |
| 170 | − .inputs = inputs, | |
| 171 | − .outputs = outputs, | |
| 168 | + FILTER_INPUTS(inputs), | |
| 169 | + FILTER_OUTPUTS(outputs), | |
| 172 | 170 | }; |
| 173 | 171 | |
| 174 | 172 | #if CONFIG_SETRANGE_FILTER |
| @@ -206,8 +204,8 @@ const AVFilter ff_vf_setrange = { · 31 unmodified lines | ||
| 206 | 204 | .priv_size = sizeof(SetParamsContext), |
| 207 | 205 | .init = init_setrange, |
| 208 | 206 | .priv_class = &setrange_class, |
| 209 | − .inputs = inputs, | |
| 210 | − .outputs = outputs, | |
| 207 | + FILTER_INPUTS(inputs), | |
| 208 | + FILTER_OUTPUTS(outputs), | |
| 211 | 209 | }; |
| 212 | 210 | #endif /* CONFIG_SETRANGE_FILTER */ |
| 213 | 211 | |
| @@ -240,7 +238,7 @@ const AVFilter ff_vf_setfield = { · 26 unmodified lines | ||
| 240 | 238 | .priv_size = sizeof(SetParamsContext), |
| 241 | 239 | .init = init_setfield, |
| 242 | 240 | .priv_class = &setfield_class, |
| 243 | − .inputs = inputs, | |
| 244 | − .outputs = outputs, | |
| 241 | + FILTER_INPUTS(inputs), | |
| 242 | + FILTER_OUTPUTS(outputs), | |
| 245 | 243 | }; |
| 246 | 244 | #endif /* CONFIG_SETFIELD_FILTER */ |
| @@ -302,7 +302,6 @@ static const AVFilterPad inputs[] = { · 301 unmodified lines | ||
| 302 | 302 | .type = AVMEDIA_TYPE_VIDEO, |
| 303 | 303 | .filter_frame = filter_frame, |
| 304 | 304 | }, |
| 305 | − { NULL } | |
| 306 | 305 | }; |
| 307 | 306 | |
| 308 | 307 | static const AVFilterPad outputs[] = { |
| @@ -311,7 +310,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 311 | 310 | .type = AVMEDIA_TYPE_VIDEO, |
| 312 | 311 | .config_props = config_output, |
| 313 | 312 | }, |
| 314 | − { NULL } | |
| 315 | 313 | }; |
| 316 | 314 | |
| 317 | 315 | const AVFilter ff_vf_shear = { |
| @@ -320,8 +318,8 @@ const AVFilter ff_vf_shear = { · 2 unmodified lines | ||
| 320 | 318 | .priv_size = sizeof(ShearContext), |
| 321 | 319 | .init = init, |
| 322 | 320 | .query_formats = query_formats, |
| 323 | − .inputs = inputs, | |
| 324 | − .outputs = outputs, | |
| 321 | + FILTER_INPUTS(inputs), | |
| 322 | + FILTER_OUTPUTS(outputs), | |
| 325 | 323 | .priv_class = &shear_class, |
| 326 | 324 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 327 | 325 | .process_command = process_command, |
| @@ -661,7 +661,6 @@ static const AVFilterPad avfilter_vf_showinfo_inputs[] = { · 660 unmodified lines | ||
| 661 | 661 | .filter_frame = filter_frame, |
| 662 | 662 | .config_props = config_props_in, |
| 663 | 663 | }, |
| 664 | − { NULL } | |
| 665 | 664 | }; |
| 666 | 665 | |
| 667 | 666 | static const AVFilterPad avfilter_vf_showinfo_outputs[] = { |
| @@ -670,14 +669,13 @@ static const AVFilterPad avfilter_vf_showinfo_outputs[] = { · 2 unmodified lines | ||
| 670 | 669 | .type = AVMEDIA_TYPE_VIDEO, |
| 671 | 670 | .config_props = config_props_out, |
| 672 | 671 | }, |
| 673 | − { NULL } | |
| 674 | 672 | }; |
| 675 | 673 | |
| 676 | 674 | const AVFilter ff_vf_showinfo = { |
| 677 | 675 | .name = "showinfo", |
| 678 | 676 | .description = NULL_IF_CONFIG_SMALL("Show textual information for each video frame."), |
| 679 | − .inputs = avfilter_vf_showinfo_inputs, | |
| 680 | − .outputs = avfilter_vf_showinfo_outputs, | |
| 677 | + FILTER_INPUTS(avfilter_vf_showinfo_inputs), | |
| 678 | + FILTER_OUTPUTS(avfilter_vf_showinfo_outputs), | |
| 681 | 679 | .priv_size = sizeof(ShowInfoContext), |
| 682 | 680 | .priv_class = &showinfo_class, |
| 683 | 681 | }; |
| @@ -100,7 +100,6 @@ static const AVFilterPad showpalette_inputs[] = { · 99 unmodified lines | ||
| 100 | 100 | .type = AVMEDIA_TYPE_VIDEO, |
| 101 | 101 | .filter_frame = filter_frame, |
| 102 | 102 | }, |
| 103 | − { NULL } | |
| 104 | 103 | }; |
| 105 | 104 | |
| 106 | 105 | static const AVFilterPad showpalette_outputs[] = { |
| @@ -109,7 +108,6 @@ static const AVFilterPad showpalette_outputs[] = { · 2 unmodified lines | ||
| 109 | 108 | .type = AVMEDIA_TYPE_VIDEO, |
| 110 | 109 | .config_props = config_output, |
| 111 | 110 | }, |
| 112 | − { NULL } | |
| 113 | 111 | }; |
| 114 | 112 | |
| 115 | 113 | const AVFilter ff_vf_showpalette = { |
| @@ -117,7 +115,7 @@ const AVFilter ff_vf_showpalette = { · 1 unmodified line | ||
| 117 | 115 | .description = NULL_IF_CONFIG_SMALL("Display frame palette."), |
| 118 | 116 | .priv_size = sizeof(ShowPaletteContext), |
| 119 | 117 | .query_formats = query_formats, |
| 120 | − .inputs = showpalette_inputs, | |
| 121 | − .outputs = showpalette_outputs, | |
| 118 | + FILTER_INPUTS(showpalette_inputs), | |
| 119 | + FILTER_OUTPUTS(showpalette_outputs), | |
| 122 | 120 | .priv_class = &showpalette_class, |
| 123 | 121 | }; |
| @@ -144,7 +144,6 @@ static const AVFilterPad shuffleframes_inputs[] = { · 143 unmodified lines | ||
| 144 | 144 | .type = AVMEDIA_TYPE_VIDEO, |
| 145 | 145 | .filter_frame = filter_frame, |
| 146 | 146 | }, |
| 147 | − { NULL }, | |
| 148 | 147 | }; |
| 149 | 148 | |
| 150 | 149 | static const AVFilterPad shuffleframes_outputs[] = { |
| @@ -152,7 +151,6 @@ static const AVFilterPad shuffleframes_outputs[] = { · 1 unmodified line | ||
| 152 | 151 | .name = "default", |
| 153 | 152 | .type = AVMEDIA_TYPE_VIDEO, |
| 154 | 153 | }, |
| 155 | − { NULL }, | |
| 156 | 154 | }; |
| 157 | 155 | |
| 158 | 156 | const AVFilter ff_vf_shuffleframes = { |
| @@ -162,7 +160,7 @@ const AVFilter ff_vf_shuffleframes = { · 3 unmodified lines | ||
| 162 | 160 | .priv_class = &shuffleframes_class, |
| 163 | 161 | .init = init, |
| 164 | 162 | .uninit = uninit, |
| 165 | − .inputs = shuffleframes_inputs, | |
| 166 | − .outputs = shuffleframes_outputs, | |
| 163 | + FILTER_INPUTS(shuffleframes_inputs), | |
| 164 | + FILTER_OUTPUTS(shuffleframes_outputs), | |
| 167 | 165 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 168 | 166 | }; |
| @@ -434,7 +434,6 @@ static const AVFilterPad shufflepixels_inputs[] = { · 433 unmodified lines | ||
| 434 | 434 | .type = AVMEDIA_TYPE_VIDEO, |
| 435 | 435 | .filter_frame = filter_frame, |
| 436 | 436 | }, |
| 437 | − { NULL }, | |
| 438 | 437 | }; |
| 439 | 438 | |
| 440 | 439 | static const AVFilterPad shufflepixels_outputs[] = { |
| @@ -443,7 +442,6 @@ static const AVFilterPad shufflepixels_outputs[] = { · 2 unmodified lines | ||
| 443 | 442 | .type = AVMEDIA_TYPE_VIDEO, |
| 444 | 443 | .config_props = config_output, |
| 445 | 444 | }, |
| 446 | − { NULL }, | |
| 447 | 445 | }; |
| 448 | 446 | |
| 449 | 447 | const AVFilter ff_vf_shufflepixels = { |
| @@ -453,7 +451,7 @@ const AVFilter ff_vf_shufflepixels = { · 3 unmodified lines | ||
| 453 | 451 | .priv_class = &shufflepixels_class, |
| 454 | 452 | .query_formats = query_formats, |
| 455 | 453 | .uninit = uninit, |
| 456 | − .inputs = shufflepixels_inputs, | |
| 457 | − .outputs = shufflepixels_outputs, | |
| 454 | + FILTER_INPUTS(shufflepixels_inputs), | |
| 455 | + FILTER_OUTPUTS(shufflepixels_outputs), | |
| 458 | 456 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 459 | 457 | }; |
| @@ -151,7 +151,6 @@ static const AVFilterPad shuffleplanes_inputs[] = { · 150 unmodified lines | ||
| 151 | 151 | .config_props = shuffleplanes_config_input, |
| 152 | 152 | .filter_frame = shuffleplanes_filter_frame, |
| 153 | 153 | }, |
| 154 | − { NULL }, | |
| 155 | 154 | }; |
| 156 | 155 | |
| 157 | 156 | static const AVFilterPad shuffleplanes_outputs[] = { |
| @@ -159,7 +158,6 @@ static const AVFilterPad shuffleplanes_outputs[] = { · 1 unmodified line | ||
| 159 | 158 | .name = "default", |
| 160 | 159 | .type = AVMEDIA_TYPE_VIDEO, |
| 161 | 160 | }, |
| 162 | − { NULL }, | |
| 163 | 161 | }; |
| 164 | 162 | |
| 165 | 163 | const AVFilter ff_vf_shuffleplanes = { |
| @@ -168,7 +166,7 @@ const AVFilter ff_vf_shuffleplanes = { · 2 unmodified lines | ||
| 168 | 166 | .priv_size = sizeof(ShufflePlanesContext), |
| 169 | 167 | .priv_class = &shuffleplanes_class, |
| 170 | 168 | .query_formats = query_formats, |
| 171 | − .inputs = shuffleplanes_inputs, | |
| 172 | − .outputs = shuffleplanes_outputs, | |
| 169 | + FILTER_INPUTS(shuffleplanes_inputs), | |
| 170 | + FILTER_OUTPUTS(shuffleplanes_outputs), | |
| 173 | 171 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 174 | 172 | }; |
| @@ -997,7 +997,6 @@ static const AVFilterPad signalstats_inputs[] = { · 996 unmodified lines | ||
| 997 | 997 | .type = AVMEDIA_TYPE_VIDEO, |
| 998 | 998 | .filter_frame = filter_frame, |
| 999 | 999 | }, |
| 1000 | − { NULL } | |
| 1001 | 1000 | }; |
| 1002 | 1001 | |
| 1003 | 1002 | static const AVFilterPad signalstats_outputs[] = { |
| @@ -1006,7 +1005,6 @@ static const AVFilterPad signalstats_outputs[] = { · 2 unmodified lines | ||
| 1006 | 1005 | .config_props = config_output, |
| 1007 | 1006 | .type = AVMEDIA_TYPE_VIDEO, |
| 1008 | 1007 | }, |
| 1009 | − { NULL } | |
| 1010 | 1008 | }; |
| 1011 | 1009 | |
| 1012 | 1010 | const AVFilter ff_vf_signalstats = { |
| @@ -1016,8 +1014,8 @@ const AVFilter ff_vf_signalstats = { · 3 unmodified lines | ||
| 1016 | 1014 | .uninit = uninit, |
| 1017 | 1015 | .query_formats = query_formats, |
| 1018 | 1016 | .priv_size = sizeof(SignalstatsContext), |
| 1019 | − .inputs = signalstats_inputs, | |
| 1020 | − .outputs = signalstats_outputs, | |
| 1017 | + FILTER_INPUTS(signalstats_inputs), | |
| 1018 | + FILTER_OUTPUTS(signalstats_outputs), | |
| 1021 | 1019 | .priv_class = &signalstats_class, |
| 1022 | 1020 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 1023 | 1021 | }; |
| @@ -755,7 +755,6 @@ static const AVFilterPad signature_outputs[] = { · 754 unmodified lines | ||
| 755 | 755 | .request_frame = request_frame, |
| 756 | 756 | .config_props = config_output, |
| 757 | 757 | }, |
| 758 | − { NULL } | |
| 759 | 758 | }; |
| 760 | 759 | |
| 761 | 760 | const AVFilter ff_vf_signature = { |
| @@ -766,7 +765,7 @@ const AVFilter ff_vf_signature = { · 4 unmodified lines | ||
| 766 | 765 | .init = init, |
| 767 | 766 | .uninit = uninit, |
| 768 | 767 | .query_formats = query_formats, |
| 769 | − .outputs = signature_outputs, | |
| 768 | + FILTER_OUTPUTS(signature_outputs), | |
| 770 | 769 | .inputs = NULL, |
| 771 | 770 | .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, |
| 772 | 771 | }; |
| @@ -277,7 +277,6 @@ static const AVFilterPad smartblur_inputs[] = { · 276 unmodified lines | ||
| 277 | 277 | .filter_frame = filter_frame, |
| 278 | 278 | .config_props = config_props, |
| 279 | 279 | }, |
| 280 | − { NULL } | |
| 281 | 280 | }; |
| 282 | 281 | |
| 283 | 282 | static const AVFilterPad smartblur_outputs[] = { |
| @@ -285,7 +284,6 @@ static const AVFilterPad smartblur_outputs[] = { · 1 unmodified line | ||
| 285 | 284 | .name = "default", |
| 286 | 285 | .type = AVMEDIA_TYPE_VIDEO, |
| 287 | 286 | }, |
| 288 | − { NULL } | |
| 289 | 287 | }; |
| 290 | 288 | |
| 291 | 289 | const AVFilter ff_vf_smartblur = { |
| @@ -295,8 +293,8 @@ const AVFilter ff_vf_smartblur = { · 3 unmodified lines | ||
| 295 | 293 | .init = init, |
| 296 | 294 | .uninit = uninit, |
| 297 | 295 | .query_formats = query_formats, |
| 298 | − .inputs = smartblur_inputs, | |
| 299 | − .outputs = smartblur_outputs, | |
| 296 | + FILTER_INPUTS(smartblur_inputs), | |
| 297 | + FILTER_OUTPUTS(smartblur_outputs), | |
| 300 | 298 | .priv_class = &smartblur_class, |
| 301 | 299 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 302 | 300 | }; |
| @@ -495,7 +495,6 @@ static const AVFilterPad spp_inputs[] = { · 494 unmodified lines | ||
| 495 | 495 | .config_props = config_input, |
| 496 | 496 | .filter_frame = filter_frame, |
| 497 | 497 | }, |
| 498 | − { NULL } | |
| 499 | 498 | }; |
| 500 | 499 | |
| 501 | 500 | static const AVFilterPad spp_outputs[] = { |
| @@ -503,7 +502,6 @@ static const AVFilterPad spp_outputs[] = { · 1 unmodified line | ||
| 503 | 502 | .name = "default", |
| 504 | 503 | .type = AVMEDIA_TYPE_VIDEO, |
| 505 | 504 | }, |
| 506 | − { NULL } | |
| 507 | 505 | }; |
| 508 | 506 | |
| 509 | 507 | const AVFilter ff_vf_spp = { |
| @@ -513,8 +511,8 @@ const AVFilter ff_vf_spp = { · 3 unmodified lines | ||
| 513 | 511 | .init_dict = init_dict, |
| 514 | 512 | .uninit = uninit, |
| 515 | 513 | .query_formats = query_formats, |
| 516 | − .inputs = spp_inputs, | |
| 517 | − .outputs = spp_outputs, | |
| 514 | + FILTER_INPUTS(spp_inputs), | |
| 515 | + FILTER_OUTPUTS(spp_outputs), | |
| 518 | 516 | .process_command = process_command, |
| 519 | 517 | .priv_class = &spp_class, |
| 520 | 518 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| @@ -174,7 +174,6 @@ static const AVFilterPad sr_inputs[] = { · 173 unmodified lines | ||
| 174 | 174 | .type = AVMEDIA_TYPE_VIDEO, |
| 175 | 175 | .filter_frame = filter_frame, |
| 176 | 176 | }, |
| 177 | − { NULL } | |
| 178 | 177 | }; |
| 179 | 178 | |
| 180 | 179 | static const AVFilterPad sr_outputs[] = { |
| @@ -183,7 +182,6 @@ static const AVFilterPad sr_outputs[] = { · 2 unmodified lines | ||
| 183 | 182 | .config_props = config_output, |
| 184 | 183 | .type = AVMEDIA_TYPE_VIDEO, |
| 185 | 184 | }, |
| 186 | − { NULL } | |
| 187 | 185 | }; |
| 188 | 186 | |
| 189 | 187 | const AVFilter ff_vf_sr = { |
| @@ -193,7 +191,7 @@ const AVFilter ff_vf_sr = { · 3 unmodified lines | ||
| 193 | 191 | .init = init, |
| 194 | 192 | .uninit = uninit, |
| 195 | 193 | .query_formats = query_formats, |
| 196 | − .inputs = sr_inputs, | |
| 197 | − .outputs = sr_outputs, | |
| 194 | + FILTER_INPUTS(sr_inputs), | |
| 195 | + FILTER_OUTPUTS(sr_outputs), | |
| 198 | 196 | .priv_class = &sr_class, |
| 199 | 197 | }; |
| @@ -579,7 +579,6 @@ static const AVFilterPad ssim_inputs[] = { · 578 unmodified lines | ||
| 579 | 579 | .type = AVMEDIA_TYPE_VIDEO, |
| 580 | 580 | .config_props = config_input_ref, |
| 581 | 581 | }, |
| 582 | − { NULL } | |
| 583 | 582 | }; |
| 584 | 583 | |
| 585 | 584 | static const AVFilterPad ssim_outputs[] = { |
| @@ -588,7 +587,6 @@ static const AVFilterPad ssim_outputs[] = { · 2 unmodified lines | ||
| 588 | 587 | .type = AVMEDIA_TYPE_VIDEO, |
| 589 | 588 | .config_props = config_output, |
| 590 | 589 | }, |
| 591 | − { NULL } | |
| 592 | 590 | }; |
| 593 | 591 | |
| 594 | 592 | const AVFilter ff_vf_ssim = { |
| @@ -601,7 +599,7 @@ const AVFilter ff_vf_ssim = { · 6 unmodified lines | ||
| 601 | 599 | .activate = activate, |
| 602 | 600 | .priv_size = sizeof(SSIMContext), |
| 603 | 601 | .priv_class = &ssim_class, |
| 604 | − .inputs = ssim_inputs, | |
| 605 | − .outputs = ssim_outputs, | |
| 602 | + FILTER_INPUTS(ssim_inputs), | |
| 603 | + FILTER_OUTPUTS(ssim_outputs), | |
| 606 | 604 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 607 | 605 | }; |
| @@ -402,7 +402,6 @@ static const AVFilterPad outputs[] = { · 401 unmodified lines | ||
| 402 | 402 | .type = AVMEDIA_TYPE_VIDEO, |
| 403 | 403 | .config_props = config_output, |
| 404 | 404 | }, |
| 405 | − { NULL } | |
| 406 | 405 | }; |
| 407 | 406 | |
| 408 | 407 | #if CONFIG_HSTACK_FILTER |
| @@ -416,7 +415,7 @@ const AVFilter ff_vf_hstack = { · 7 unmodified lines | ||
| 416 | 415 | .priv_size = sizeof(StackContext), |
| 417 | 416 | .priv_class = &hstack_class, |
| 418 | 417 | .query_formats = query_formats, |
| 419 | − .outputs = outputs, | |
| 418 | + FILTER_OUTPUTS(outputs), | |
| 420 | 419 | .init = init, |
| 421 | 420 | .uninit = uninit, |
| 422 | 421 | .activate = activate, |
| @@ -436,7 +435,7 @@ const AVFilter ff_vf_vstack = { · 13 unmodified lines | ||
| 436 | 435 | .priv_size = sizeof(StackContext), |
| 437 | 436 | .priv_class = &vstack_class, |
| 438 | 437 | .query_formats = query_formats, |
| 439 | − .outputs = outputs, | |
| 438 | + FILTER_OUTPUTS(outputs), | |
| 440 | 439 | .init = init, |
| 441 | 440 | .uninit = uninit, |
| 442 | 441 | .activate = activate, |
| @@ -463,7 +462,7 @@ const AVFilter ff_vf_xstack = { · 20 unmodified lines | ||
| 463 | 462 | .priv_size = sizeof(StackContext), |
| 464 | 463 | .priv_class = &xstack_class, |
| 465 | 464 | .query_formats = query_formats, |
| 466 | − .outputs = outputs, | |
| 465 | + FILTER_OUTPUTS(outputs), | |
| 467 | 466 | .init = init, |
| 468 | 467 | .uninit = uninit, |
| 469 | 468 | .activate = activate, |
| @@ -1096,7 +1096,6 @@ static const AVFilterPad stereo3d_inputs[] = { · 1095 unmodified lines | ||
| 1096 | 1096 | .type = AVMEDIA_TYPE_VIDEO, |
| 1097 | 1097 | .filter_frame = filter_frame, |
| 1098 | 1098 | }, |
| 1099 | − { NULL } | |
| 1100 | 1099 | }; |
| 1101 | 1100 | |
| 1102 | 1101 | static const AVFilterPad stereo3d_outputs[] = { |
| @@ -1105,7 +1104,6 @@ static const AVFilterPad stereo3d_outputs[] = { · 2 unmodified lines | ||
| 1105 | 1104 | .type = AVMEDIA_TYPE_VIDEO, |
| 1106 | 1105 | .config_props = config_output, |
| 1107 | 1106 | }, |
| 1108 | − { NULL } | |
| 1109 | 1107 | }; |
| 1110 | 1108 | |
| 1111 | 1109 | const AVFilter ff_vf_stereo3d = { |
| @@ -1114,8 +1112,8 @@ const AVFilter ff_vf_stereo3d = { · 2 unmodified lines | ||
| 1114 | 1112 | .priv_size = sizeof(Stereo3DContext), |
| 1115 | 1113 | .uninit = uninit, |
| 1116 | 1114 | .query_formats = query_formats, |
| 1117 | − .inputs = stereo3d_inputs, | |
| 1118 | − .outputs = stereo3d_outputs, | |
| 1115 | + FILTER_INPUTS(stereo3d_inputs), | |
| 1116 | + FILTER_OUTPUTS(stereo3d_outputs), | |
| 1119 | 1117 | .priv_class = &stereo3d_class, |
| 1120 | 1118 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 1121 | 1119 | }; |
| @@ -202,7 +202,6 @@ static const AVFilterPad ass_inputs[] = { · 201 unmodified lines | ||
| 202 | 202 | .filter_frame = filter_frame, |
| 203 | 203 | .config_props = config_input, |
| 204 | 204 | }, |
| 205 | − { NULL } | |
| 206 | 205 | }; |
| 207 | 206 | |
| 208 | 207 | static const AVFilterPad ass_outputs[] = { |
| @@ -210,7 +209,6 @@ static const AVFilterPad ass_outputs[] = { · 1 unmodified line | ||
| 210 | 209 | .name = "default", |
| 211 | 210 | .type = AVMEDIA_TYPE_VIDEO, |
| 212 | 211 | }, |
| 213 | − { NULL } | |
| 214 | 212 | }; |
| 215 | 213 | |
| 216 | 214 | #if CONFIG_ASS_FILTER |
| @@ -254,8 +252,8 @@ const AVFilter ff_vf_ass = { · 37 unmodified lines | ||
| 254 | 252 | .init = init_ass, |
| 255 | 253 | .uninit = uninit, |
| 256 | 254 | .query_formats = query_formats, |
| 257 | − .inputs = ass_inputs, | |
| 258 | − .outputs = ass_outputs, | |
| 255 | + FILTER_INPUTS(ass_inputs), | |
| 256 | + FILTER_OUTPUTS(ass_outputs), | |
| 259 | 257 | .priv_class = &ass_class, |
| 260 | 258 | }; |
| 261 | 259 | #endif |
| @@ -488,8 +486,8 @@ const AVFilter ff_vf_subtitles = { · 226 unmodified lines | ||
| 488 | 486 | .init = init_subtitles, |
| 489 | 487 | .uninit = uninit, |
| 490 | 488 | .query_formats = query_formats, |
| 491 | − .inputs = ass_inputs, | |
| 492 | − .outputs = ass_outputs, | |
| 489 | + FILTER_INPUTS(ass_inputs), | |
| 490 | + FILTER_OUTPUTS(ass_outputs), | |
| 493 | 491 | .priv_class = &subtitles_class, |
| 494 | 492 | }; |
| 495 | 493 | #endif |
| @@ -345,7 +345,6 @@ static const AVFilterPad super2xsai_inputs[] = { · 344 unmodified lines | ||
| 345 | 345 | .config_props = config_input, |
| 346 | 346 | .filter_frame = filter_frame, |
| 347 | 347 | }, |
| 348 | − { NULL } | |
| 349 | 348 | }; |
| 350 | 349 | |
| 351 | 350 | static const AVFilterPad super2xsai_outputs[] = { |
| @@ -354,7 +353,6 @@ static const AVFilterPad super2xsai_outputs[] = { · 2 unmodified lines | ||
| 354 | 353 | .type = AVMEDIA_TYPE_VIDEO, |
| 355 | 354 | .config_props = config_output, |
| 356 | 355 | }, |
| 357 | − { NULL } | |
| 358 | 356 | }; |
| 359 | 357 | |
| 360 | 358 | const AVFilter ff_vf_super2xsai = { |
| @@ -362,7 +360,7 @@ const AVFilter ff_vf_super2xsai = { · 1 unmodified line | ||
| 362 | 360 | .description = NULL_IF_CONFIG_SMALL("Scale the input by 2x using the Super2xSaI pixel art algorithm."), |
| 363 | 361 | .priv_size = sizeof(Super2xSaIContext), |
| 364 | 362 | .query_formats = query_formats, |
| 365 | − .inputs = super2xsai_inputs, | |
| 366 | − .outputs = super2xsai_outputs, | |
| 363 | + FILTER_INPUTS(super2xsai_inputs), | |
| 364 | + FILTER_OUTPUTS(super2xsai_outputs), | |
| 367 | 365 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 368 | 366 | }; |
| @@ -232,7 +232,6 @@ static const AVFilterPad inputs[] = { · 231 unmodified lines | ||
| 232 | 232 | .filter_frame = filter_frame, |
| 233 | 233 | .config_props = config_input, |
| 234 | 234 | }, |
| 235 | − { NULL } | |
| 236 | 235 | }; |
| 237 | 236 | |
| 238 | 237 | static const AVFilterPad outputs[] = { |
| @@ -240,7 +239,6 @@ static const AVFilterPad outputs[] = { · 1 unmodified line | ||
| 240 | 239 | .name = "default", |
| 241 | 240 | .type = AVMEDIA_TYPE_VIDEO, |
| 242 | 241 | }, |
| 243 | − { NULL } | |
| 244 | 242 | }; |
| 245 | 243 | |
| 246 | 244 | const AVFilter ff_vf_swaprect = { |
| @@ -250,8 +248,8 @@ const AVFilter ff_vf_swaprect = { · 3 unmodified lines | ||
| 250 | 248 | .priv_class = &swaprect_class, |
| 251 | 249 | .query_formats = query_formats, |
| 252 | 250 | .uninit = uninit, |
| 253 | − .inputs = inputs, | |
| 254 | − .outputs = outputs, | |
| 251 | + FILTER_INPUTS(inputs), | |
| 252 | + FILTER_OUTPUTS(outputs), | |
| 255 | 253 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 256 | 254 | .process_command = ff_filter_process_command, |
| 257 | 255 | }; |
| @@ -100,7 +100,6 @@ static const AVFilterPad swapuv_inputs[] = { · 99 unmodified lines | ||
| 100 | 100 | .get_buffer.video = get_video_buffer, |
| 101 | 101 | .filter_frame = filter_frame, |
| 102 | 102 | }, |
| 103 | − { NULL } | |
| 104 | 103 | }; |
| 105 | 104 | |
| 106 | 105 | static const AVFilterPad swapuv_outputs[] = { |
| @@ -108,7 +107,6 @@ static const AVFilterPad swapuv_outputs[] = { · 1 unmodified line | ||
| 108 | 107 | .name = "default", |
| 109 | 108 | .type = AVMEDIA_TYPE_VIDEO, |
| 110 | 109 | }, |
| 111 | − { NULL } | |
| 112 | 110 | }; |
| 113 | 111 | |
| 114 | 112 | const AVFilter ff_vf_swapuv = { |
| @@ -117,7 +115,7 @@ const AVFilter ff_vf_swapuv = { · 2 unmodified lines | ||
| 117 | 115 | .query_formats = query_formats, |
| 118 | 116 | .priv_size = sizeof(SwapUVContext), |
| 119 | 117 | .priv_class = &swapuv_class, |
| 120 | − .inputs = swapuv_inputs, | |
| 121 | − .outputs = swapuv_outputs, | |
| 118 | + FILTER_INPUTS(swapuv_inputs), | |
| 119 | + FILTER_OUTPUTS(swapuv_outputs), | |
| 122 | 120 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 123 | 121 | }; |
| @@ -275,7 +275,6 @@ static const AVFilterPad telecine_inputs[] = { · 274 unmodified lines | ||
| 275 | 275 | .filter_frame = filter_frame, |
| 276 | 276 | .config_props = config_input, |
| 277 | 277 | }, |
| 278 | − { NULL } | |
| 279 | 278 | }; |
| 280 | 279 | |
| 281 | 280 | static const AVFilterPad telecine_outputs[] = { |
| @@ -284,7 +283,6 @@ static const AVFilterPad telecine_outputs[] = { · 2 unmodified lines | ||
| 284 | 283 | .type = AVMEDIA_TYPE_VIDEO, |
| 285 | 284 | .config_props = config_output, |
| 286 | 285 | }, |
| 287 | − { NULL } | |
| 288 | 286 | }; |
| 289 | 287 | |
| 290 | 288 | const AVFilter ff_vf_telecine = { |
| @@ -295,6 +293,6 @@ const AVFilter ff_vf_telecine = { · 4 unmodified lines | ||
| 295 | 293 | .init = init, |
| 296 | 294 | .uninit = uninit, |
| 297 | 295 | .query_formats = query_formats, |
| 298 | − .inputs = telecine_inputs, | |
| 299 | − .outputs = telecine_outputs, | |
| 296 | + FILTER_INPUTS(telecine_inputs), | |
| 297 | + FILTER_OUTPUTS(telecine_outputs), | |
| 300 | 298 | }; |
| @@ -342,7 +342,6 @@ static const AVFilterPad inputs[] = { · 341 unmodified lines | ||
| 342 | 342 | .name = "max", |
| 343 | 343 | .type = AVMEDIA_TYPE_VIDEO, |
| 344 | 344 | }, |
| 345 | − { NULL } | |
| 346 | 345 | }; |
| 347 | 346 | |
| 348 | 347 | static const AVFilterPad outputs[] = { |
| @@ -351,7 +350,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 351 | 350 | .type = AVMEDIA_TYPE_VIDEO, |
| 352 | 351 | .config_props = config_output, |
| 353 | 352 | }, |
| 354 | − { NULL } | |
| 355 | 353 | }; |
| 356 | 354 | |
| 357 | 355 | const AVFilter ff_vf_threshold = { |
| @@ -362,8 +360,8 @@ const AVFilter ff_vf_threshold = { · 4 unmodified lines | ||
| 362 | 360 | .uninit = uninit, |
| 363 | 361 | .query_formats = query_formats, |
| 364 | 362 | .activate = activate, |
| 365 | − .inputs = inputs, | |
| 366 | − .outputs = outputs, | |
| 363 | + FILTER_INPUTS(inputs), | |
| 364 | + FILTER_OUTPUTS(outputs), | |
| 367 | 365 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 368 | 366 | .process_command = ff_filter_process_command, |
| 369 | 367 | }; |
| @@ -272,7 +272,6 @@ static const AVFilterPad thumbnail_inputs[] = { · 271 unmodified lines | ||
| 272 | 272 | .config_props = config_props, |
| 273 | 273 | .filter_frame = filter_frame, |
| 274 | 274 | }, |
| 275 | − { NULL } | |
| 276 | 275 | }; |
| 277 | 276 | |
| 278 | 277 | static const AVFilterPad thumbnail_outputs[] = { |
| @@ -281,7 +280,6 @@ static const AVFilterPad thumbnail_outputs[] = { · 2 unmodified lines | ||
| 281 | 280 | .type = AVMEDIA_TYPE_VIDEO, |
| 282 | 281 | .request_frame = request_frame, |
| 283 | 282 | }, |
| 284 | − { NULL } | |
| 285 | 283 | }; |
| 286 | 284 | |
| 287 | 285 | const AVFilter ff_vf_thumbnail = { |
| @@ -291,8 +289,8 @@ const AVFilter ff_vf_thumbnail = { · 3 unmodified lines | ||
| 291 | 289 | .init = init, |
| 292 | 290 | .uninit = uninit, |
| 293 | 291 | .query_formats = query_formats, |
| 294 | − .inputs = thumbnail_inputs, | |
| 295 | − .outputs = thumbnail_outputs, | |
| 292 | + FILTER_INPUTS(thumbnail_inputs), | |
| 293 | + FILTER_OUTPUTS(thumbnail_outputs), | |
| 296 | 294 | .priv_class = &thumbnail_class, |
| 297 | 295 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 298 | 296 | }; |
| @@ -428,7 +428,6 @@ static const AVFilterPad thumbnail_cuda_inputs[] = { · 427 unmodified lines | ||
| 428 | 428 | .config_props = config_props, |
| 429 | 429 | .filter_frame = filter_frame, |
| 430 | 430 | }, |
| 431 | − { NULL } | |
| 432 | 431 | }; |
| 433 | 432 | |
| 434 | 433 | static const AVFilterPad thumbnail_cuda_outputs[] = { |
| @@ -437,7 +436,6 @@ static const AVFilterPad thumbnail_cuda_outputs[] = { · 2 unmodified lines | ||
| 437 | 436 | .type = AVMEDIA_TYPE_VIDEO, |
| 438 | 437 | .request_frame = request_frame, |
| 439 | 438 | }, |
| 440 | − { NULL } | |
| 441 | 439 | }; |
| 442 | 440 | |
| 443 | 441 | const AVFilter ff_vf_thumbnail_cuda = { |
| @@ -447,8 +445,8 @@ const AVFilter ff_vf_thumbnail_cuda = { · 3 unmodified lines | ||
| 447 | 445 | .init = init, |
| 448 | 446 | .uninit = uninit, |
| 449 | 447 | .query_formats = query_formats, |
| 450 | − .inputs = thumbnail_cuda_inputs, | |
| 451 | − .outputs = thumbnail_cuda_outputs, | |
| 448 | + FILTER_INPUTS(thumbnail_cuda_inputs), | |
| 449 | + FILTER_OUTPUTS(thumbnail_cuda_outputs), | |
| 452 | 450 | .priv_class = &thumbnail_cuda_class, |
| 453 | 451 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 454 | 452 | }; |
| @@ -272,7 +272,6 @@ static const AVFilterPad tile_inputs[] = { · 271 unmodified lines | ||
| 272 | 272 | .type = AVMEDIA_TYPE_VIDEO, |
| 273 | 273 | .filter_frame = filter_frame, |
| 274 | 274 | }, |
| 275 | − { NULL } | |
| 276 | 275 | }; |
| 277 | 276 | |
| 278 | 277 | static const AVFilterPad tile_outputs[] = { |
| @@ -282,7 +281,6 @@ static const AVFilterPad tile_outputs[] = { · 3 unmodified lines | ||
| 282 | 281 | .config_props = config_props, |
| 283 | 282 | .request_frame = request_frame, |
| 284 | 283 | }, |
| 285 | − { NULL } | |
| 286 | 284 | }; |
| 287 | 285 | |
| 288 | 286 | const AVFilter ff_vf_tile = { |
| @@ -292,7 +290,7 @@ const AVFilter ff_vf_tile = { · 3 unmodified lines | ||
| 292 | 290 | .uninit = uninit, |
| 293 | 291 | .query_formats = query_formats, |
| 294 | 292 | .priv_size = sizeof(TileContext), |
| 295 | − .inputs = tile_inputs, | |
| 296 | − .outputs = tile_outputs, | |
| 293 | + FILTER_INPUTS(tile_inputs), | |
| 294 | + FILTER_OUTPUTS(tile_outputs), | |
| 297 | 295 | .priv_class = &tile_class, |
| 298 | 296 | }; |
| @@ -540,7 +540,6 @@ static const AVFilterPad tinterlace_inputs[] = { · 539 unmodified lines | ||
| 540 | 540 | .type = AVMEDIA_TYPE_VIDEO, |
| 541 | 541 | .filter_frame = filter_frame, |
| 542 | 542 | }, |
| 543 | − { NULL } | |
| 544 | 543 | }; |
| 545 | 544 | |
| 546 | 545 | static const AVFilterPad tinterlace_outputs[] = { |
| @@ -549,7 +548,6 @@ static const AVFilterPad tinterlace_outputs[] = { · 2 unmodified lines | ||
| 549 | 548 | .type = AVMEDIA_TYPE_VIDEO, |
| 550 | 549 | .config_props = config_out_props, |
| 551 | 550 | }, |
| 552 | − { NULL } | |
| 553 | 551 | }; |
| 554 | 552 | |
| 555 | 553 | const AVFilter ff_vf_tinterlace = { |
| @@ -558,8 +556,8 @@ const AVFilter ff_vf_tinterlace = { · 2 unmodified lines | ||
| 558 | 556 | .priv_size = sizeof(TInterlaceContext), |
| 559 | 557 | .uninit = uninit, |
| 560 | 558 | .query_formats = query_formats, |
| 561 | − .inputs = tinterlace_inputs, | |
| 562 | − .outputs = tinterlace_outputs, | |
| 559 | + FILTER_INPUTS(tinterlace_inputs), | |
| 560 | + FILTER_OUTPUTS(tinterlace_outputs), | |
| 563 | 561 | .priv_class = &tinterlace_class, |
| 564 | 562 | }; |
| 565 | 563 | |
| @@ -571,7 +569,7 @@ const AVFilter ff_vf_interlace = { · 5 unmodified lines | ||
| 571 | 569 | .init = init_interlace, |
| 572 | 570 | .uninit = uninit, |
| 573 | 571 | .query_formats = query_formats, |
| 574 | − .inputs = tinterlace_inputs, | |
| 575 | − .outputs = tinterlace_outputs, | |
| 572 | + FILTER_INPUTS(tinterlace_inputs), | |
| 573 | + FILTER_OUTPUTS(tinterlace_outputs), | |
| 576 | 574 | .priv_class = &interlace_class, |
| 577 | 575 | }; |
| @@ -415,7 +415,6 @@ static const AVFilterPad tmidequalizer_inputs[] = { · 414 unmodified lines | ||
| 415 | 415 | .config_props = config_input, |
| 416 | 416 | .filter_frame = filter_frame, |
| 417 | 417 | }, |
| 418 | − { NULL } | |
| 419 | 418 | }; |
| 420 | 419 | |
| 421 | 420 | static const AVFilterPad tmidequalizer_outputs[] = { |
| @@ -424,7 +423,6 @@ static const AVFilterPad tmidequalizer_outputs[] = { · 2 unmodified lines | ||
| 424 | 423 | .type = AVMEDIA_TYPE_VIDEO, |
| 425 | 424 | .request_frame = request_frame, |
| 426 | 425 | }, |
| 427 | − { NULL } | |
| 428 | 426 | }; |
| 429 | 427 | |
| 430 | 428 | const AVFilter ff_vf_tmidequalizer = { |
| @@ -433,8 +431,8 @@ const AVFilter ff_vf_tmidequalizer = { · 2 unmodified lines | ||
| 433 | 431 | .priv_size = sizeof(TMidEqualizerContext), |
| 434 | 432 | .uninit = uninit, |
| 435 | 433 | .query_formats = query_formats, |
| 436 | − .inputs = tmidequalizer_inputs, | |
| 437 | − .outputs = tmidequalizer_outputs, | |
| 434 | + FILTER_INPUTS(tmidequalizer_inputs), | |
| 435 | + FILTER_OUTPUTS(tmidequalizer_outputs), | |
| 438 | 436 | .priv_class = &tmidequalizer_class, |
| 439 | 437 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 440 | 438 | }; |
| @@ -324,7 +324,6 @@ static const AVFilterPad tonemap_inputs[] = { · 323 unmodified lines | ||
| 324 | 324 | .type = AVMEDIA_TYPE_VIDEO, |
| 325 | 325 | .filter_frame = filter_frame, |
| 326 | 326 | }, |
| 327 | − { NULL } | |
| 328 | 327 | }; |
| 329 | 328 | |
| 330 | 329 | static const AVFilterPad tonemap_outputs[] = { |
| @@ -332,7 +331,6 @@ static const AVFilterPad tonemap_outputs[] = { · 1 unmodified line | ||
| 332 | 331 | .name = "default", |
| 333 | 332 | .type = AVMEDIA_TYPE_VIDEO, |
| 334 | 333 | }, |
| 335 | − { NULL } | |
| 336 | 334 | }; |
| 337 | 335 | |
| 338 | 336 | const AVFilter ff_vf_tonemap = { |
| @@ -342,7 +340,7 @@ const AVFilter ff_vf_tonemap = { · 3 unmodified lines | ||
| 342 | 340 | .query_formats = query_formats, |
| 343 | 341 | .priv_size = sizeof(TonemapContext), |
| 344 | 342 | .priv_class = &tonemap_class, |
| 345 | − .inputs = tonemap_inputs, | |
| 346 | − .outputs = tonemap_outputs, | |
| 343 | + FILTER_INPUTS(tonemap_inputs), | |
| 344 | + FILTER_OUTPUTS(tonemap_outputs), | |
| 347 | 345 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 348 | 346 | }; |
| @@ -527,7 +527,6 @@ static const AVFilterPad tonemap_opencl_inputs[] = { · 526 unmodified lines | ||
| 527 | 527 | .filter_frame = &tonemap_opencl_filter_frame, |
| 528 | 528 | .config_props = &ff_opencl_filter_config_input, |
| 529 | 529 | }, |
| 530 | − { NULL } | |
| 531 | 530 | }; |
| 532 | 531 | |
| 533 | 532 | static const AVFilterPad tonemap_opencl_outputs[] = { |
| @@ -536,7 +535,6 @@ static const AVFilterPad tonemap_opencl_outputs[] = { · 2 unmodified lines | ||
| 536 | 535 | .type = AVMEDIA_TYPE_VIDEO, |
| 537 | 536 | .config_props = &tonemap_opencl_config_output, |
| 538 | 537 | }, |
| 539 | − { NULL } | |
| 540 | 538 | }; |
| 541 | 539 | |
| 542 | 540 | const AVFilter ff_vf_tonemap_opencl = { |
| @@ -547,7 +545,7 @@ const AVFilter ff_vf_tonemap_opencl = { · 4 unmodified lines | ||
| 547 | 545 | .init = &ff_opencl_filter_init, |
| 548 | 546 | .uninit = &tonemap_opencl_uninit, |
| 549 | 547 | .query_formats = &ff_opencl_filter_query_formats, |
| 550 | − .inputs = tonemap_opencl_inputs, | |
| 551 | − .outputs = tonemap_opencl_outputs, | |
| 548 | + FILTER_INPUTS(tonemap_opencl_inputs), | |
| 549 | + FILTER_OUTPUTS(tonemap_opencl_outputs), | |
| 552 | 550 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 553 | 551 | }; |
| @@ -391,7 +391,6 @@ static const AVFilterPad tonemap_vaapi_inputs[] = { · 390 unmodified lines | ||
| 391 | 391 | .filter_frame = &tonemap_vaapi_filter_frame, |
| 392 | 392 | .config_props = &ff_vaapi_vpp_config_input, |
| 393 | 393 | }, |
| 394 | − { NULL } | |
| 395 | 394 | }; |
| 396 | 395 | |
| 397 | 396 | static const AVFilterPad tonemap_vaapi_outputs[] = { |
| @@ -400,7 +399,6 @@ static const AVFilterPad tonemap_vaapi_outputs[] = { · 2 unmodified lines | ||
| 400 | 399 | .type = AVMEDIA_TYPE_VIDEO, |
| 401 | 400 | .config_props = &ff_vaapi_vpp_config_output, |
| 402 | 401 | }, |
| 403 | − { NULL } | |
| 404 | 402 | }; |
| 405 | 403 | |
| 406 | 404 | const AVFilter ff_vf_tonemap_vaapi = { |
| @@ -410,8 +408,8 @@ const AVFilter ff_vf_tonemap_vaapi = { · 3 unmodified lines | ||
| 410 | 408 | .init = &tonemap_vaapi_init, |
| 411 | 409 | .uninit = &ff_vaapi_vpp_ctx_uninit, |
| 412 | 410 | .query_formats = &ff_vaapi_vpp_query_formats, |
| 413 | − .inputs = tonemap_vaapi_inputs, | |
| 414 | − .outputs = tonemap_vaapi_outputs, | |
| 411 | + FILTER_INPUTS(tonemap_vaapi_inputs), | |
| 412 | + FILTER_OUTPUTS(tonemap_vaapi_outputs), | |
| 415 | 413 | .priv_class = &tonemap_vaapi_class, |
| 416 | 414 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 417 | 415 | }; |
| @@ -193,7 +193,6 @@ static const AVFilterPad tpad_inputs[] = { · 192 unmodified lines | ||
| 193 | 193 | .type = AVMEDIA_TYPE_VIDEO, |
| 194 | 194 | .config_props = config_input, |
| 195 | 195 | }, |
| 196 | − { NULL } | |
| 197 | 196 | }; |
| 198 | 197 | |
| 199 | 198 | static const AVFilterPad tpad_outputs[] = { |
| @@ -201,7 +200,6 @@ static const AVFilterPad tpad_outputs[] = { · 1 unmodified line | ||
| 201 | 200 | .name = "default", |
| 202 | 201 | .type = AVMEDIA_TYPE_VIDEO, |
| 203 | 202 | }, |
| 204 | − { NULL } | |
| 205 | 203 | }; |
| 206 | 204 | |
| 207 | 205 | const AVFilter ff_vf_tpad = { |
| @@ -212,6 +210,6 @@ const AVFilter ff_vf_tpad = { · 4 unmodified lines | ||
| 212 | 210 | .query_formats = query_formats, |
| 213 | 211 | .activate = activate, |
| 214 | 212 | .uninit = uninit, |
| 215 | − .inputs = tpad_inputs, | |
| 216 | − .outputs = tpad_outputs, | |
| 213 | + FILTER_INPUTS(tpad_inputs), | |
| 214 | + FILTER_OUTPUTS(tpad_outputs), | |
| 217 | 215 | }; |
| @@ -386,7 +386,6 @@ static const AVFilterPad avfilter_vf_transpose_inputs[] = { · 385 unmodified lines | ||
| 386 | 386 | .get_buffer.video = get_video_buffer, |
| 387 | 387 | .filter_frame = filter_frame, |
| 388 | 388 | }, |
| 389 | − { NULL } | |
| 390 | 389 | }; |
| 391 | 390 | |
| 392 | 391 | static const AVFilterPad avfilter_vf_transpose_outputs[] = { |
| @@ -395,7 +394,6 @@ static const AVFilterPad avfilter_vf_transpose_outputs[] = { · 2 unmodified lines | ||
| 395 | 394 | .config_props = config_props_output, |
| 396 | 395 | .type = AVMEDIA_TYPE_VIDEO, |
| 397 | 396 | }, |
| 398 | − { NULL } | |
| 399 | 397 | }; |
| 400 | 398 | |
| 401 | 399 | const AVFilter ff_vf_transpose = { |
| @@ -404,7 +402,7 @@ const AVFilter ff_vf_transpose = { · 2 unmodified lines | ||
| 404 | 402 | .priv_size = sizeof(TransContext), |
| 405 | 403 | .priv_class = &transpose_class, |
| 406 | 404 | .query_formats = query_formats, |
| 407 | − .inputs = avfilter_vf_transpose_inputs, | |
| 408 | − .outputs = avfilter_vf_transpose_outputs, | |
| 405 | + FILTER_INPUTS(avfilter_vf_transpose_inputs), | |
| 406 | + FILTER_OUTPUTS(avfilter_vf_transpose_outputs), | |
| 409 | 407 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 410 | 408 | }; |
| @@ -460,7 +460,6 @@ static const AVFilterPad npptranspose_inputs[] = { · 459 unmodified lines | ||
| 460 | 460 | .type = AVMEDIA_TYPE_VIDEO, |
| 461 | 461 | .filter_frame = npptranspose_filter_frame, |
| 462 | 462 | }, |
| 463 | − { NULL } | |
| 464 | 463 | }; |
| 465 | 464 | |
| 466 | 465 | static const AVFilterPad npptranspose_outputs[] = { |
| @@ -469,7 +468,6 @@ static const AVFilterPad npptranspose_outputs[] = { · 2 unmodified lines | ||
| 469 | 468 | .type = AVMEDIA_TYPE_VIDEO, |
| 470 | 469 | .config_props = npptranspose_config_props, |
| 471 | 470 | }, |
| 472 | − { NULL } | |
| 473 | 471 | }; |
| 474 | 472 | |
| 475 | 473 | const AVFilter ff_vf_transpose_npp = { |
| @@ -480,7 +478,7 @@ const AVFilter ff_vf_transpose_npp = { · 4 unmodified lines | ||
| 480 | 478 | .query_formats = npptranspose_query_formats, |
| 481 | 479 | .priv_size = sizeof(NPPTransposeContext), |
| 482 | 480 | .priv_class = &npptranspose_class, |
| 483 | − .inputs = npptranspose_inputs, | |
| 484 | − .outputs = npptranspose_outputs, | |
| 481 | + FILTER_INPUTS(npptranspose_inputs), | |
| 482 | + FILTER_OUTPUTS(npptranspose_outputs), | |
| 485 | 483 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 486 | 484 | }; |
| @@ -260,7 +260,6 @@ static const AVFilterPad transpose_opencl_inputs[] = { · 259 unmodified lines | ||
| 260 | 260 | .filter_frame = &transpose_opencl_filter_frame, |
| 261 | 261 | .config_props = &ff_opencl_filter_config_input, |
| 262 | 262 | }, |
| 263 | − { NULL } | |
| 264 | 263 | }; |
| 265 | 264 | |
| 266 | 265 | static const AVFilterPad transpose_opencl_outputs[] = { |
| @@ -269,7 +268,6 @@ static const AVFilterPad transpose_opencl_outputs[] = { · 2 unmodified lines | ||
| 269 | 268 | .type = AVMEDIA_TYPE_VIDEO, |
| 270 | 269 | .config_props = &transpose_opencl_config_output, |
| 271 | 270 | }, |
| 272 | − { NULL } | |
| 273 | 271 | }; |
| 274 | 272 | |
| 275 | 273 | const AVFilter ff_vf_transpose_opencl = { |
| @@ -280,7 +278,7 @@ const AVFilter ff_vf_transpose_opencl = { · 4 unmodified lines | ||
| 280 | 278 | .init = &ff_opencl_filter_init, |
| 281 | 279 | .uninit = &transpose_opencl_uninit, |
| 282 | 280 | .query_formats = &ff_opencl_filter_query_formats, |
| 283 | − .inputs = transpose_opencl_inputs, | |
| 284 | − .outputs = transpose_opencl_outputs, | |
| 281 | + FILTER_INPUTS(transpose_opencl_inputs), | |
| 282 | + FILTER_OUTPUTS(transpose_opencl_outputs), | |
| 285 | 283 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 286 | 284 | }; |
| @@ -260,7 +260,6 @@ static const AVFilterPad transpose_vaapi_inputs[] = { · 259 unmodified lines | ||
| 260 | 260 | .get_buffer.video = get_video_buffer, |
| 261 | 261 | .config_props = &ff_vaapi_vpp_config_input, |
| 262 | 262 | }, |
| 263 | − { NULL } | |
| 264 | 263 | }; |
| 265 | 264 | |
| 266 | 265 | static const AVFilterPad transpose_vaapi_outputs[] = { |
| @@ -269,7 +268,6 @@ static const AVFilterPad transpose_vaapi_outputs[] = { · 2 unmodified lines | ||
| 269 | 268 | .type = AVMEDIA_TYPE_VIDEO, |
| 270 | 269 | .config_props = &transpose_vaapi_vpp_config_output, |
| 271 | 270 | }, |
| 272 | − { NULL } | |
| 273 | 271 | }; |
| 274 | 272 | |
| 275 | 273 | const AVFilter ff_vf_transpose_vaapi = { |
| @@ -279,8 +277,8 @@ const AVFilter ff_vf_transpose_vaapi = { · 3 unmodified lines | ||
| 279 | 277 | .init = &transpose_vaapi_init, |
| 280 | 278 | .uninit = &ff_vaapi_vpp_ctx_uninit, |
| 281 | 279 | .query_formats = &ff_vaapi_vpp_query_formats, |
| 282 | − .inputs = transpose_vaapi_inputs, | |
| 283 | − .outputs = transpose_vaapi_outputs, | |
| 280 | + FILTER_INPUTS(transpose_vaapi_inputs), | |
| 281 | + FILTER_OUTPUTS(transpose_vaapi_outputs), | |
| 284 | 282 | .priv_class = &transpose_vaapi_class, |
| 285 | 283 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 286 | 284 | }; |
| @@ -343,7 +343,6 @@ static const AVFilterPad avfilter_vf_unsharp_inputs[] = { · 342 unmodified lines | ||
| 343 | 343 | .filter_frame = filter_frame, |
| 344 | 344 | .config_props = config_input, |
| 345 | 345 | }, |
| 346 | − { NULL } | |
| 347 | 346 | }; |
| 348 | 347 | |
| 349 | 348 | static const AVFilterPad avfilter_vf_unsharp_outputs[] = { |
| @@ -351,7 +350,6 @@ static const AVFilterPad avfilter_vf_unsharp_outputs[] = { · 1 unmodified line | ||
| 351 | 350 | .name = "default", |
| 352 | 351 | .type = AVMEDIA_TYPE_VIDEO, |
| 353 | 352 | }, |
| 354 | − { NULL } | |
| 355 | 353 | }; |
| 356 | 354 | |
| 357 | 355 | const AVFilter ff_vf_unsharp = { |
| @@ -362,7 +360,7 @@ const AVFilter ff_vf_unsharp = { · 4 unmodified lines | ||
| 362 | 360 | .init = init, |
| 363 | 361 | .uninit = uninit, |
| 364 | 362 | .query_formats = query_formats, |
| 365 | − .inputs = avfilter_vf_unsharp_inputs, | |
| 366 | − .outputs = avfilter_vf_unsharp_outputs, | |
| 363 | + FILTER_INPUTS(avfilter_vf_unsharp_inputs), | |
| 364 | + FILTER_OUTPUTS(avfilter_vf_unsharp_outputs), | |
| 367 | 365 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 368 | 366 | }; |
| @@ -386,7 +386,6 @@ static const AVFilterPad unsharp_opencl_inputs[] = { · 385 unmodified lines | ||
| 386 | 386 | .filter_frame = &unsharp_opencl_filter_frame, |
| 387 | 387 | .config_props = &ff_opencl_filter_config_input, |
| 388 | 388 | }, |
| 389 | − { NULL } | |
| 390 | 389 | }; |
| 391 | 390 | |
| 392 | 391 | static const AVFilterPad unsharp_opencl_outputs[] = { |
| @@ -395,7 +394,6 @@ static const AVFilterPad unsharp_opencl_outputs[] = { · 2 unmodified lines | ||
| 395 | 394 | .type = AVMEDIA_TYPE_VIDEO, |
| 396 | 395 | .config_props = &ff_opencl_filter_config_output, |
| 397 | 396 | }, |
| 398 | − { NULL } | |
| 399 | 397 | }; |
| 400 | 398 | |
| 401 | 399 | const AVFilter ff_vf_unsharp_opencl = { |
| @@ -406,7 +404,7 @@ const AVFilter ff_vf_unsharp_opencl = { · 4 unmodified lines | ||
| 406 | 404 | .init = &ff_opencl_filter_init, |
| 407 | 405 | .uninit = &unsharp_opencl_uninit, |
| 408 | 406 | .query_formats = &ff_opencl_filter_query_formats, |
| 409 | − .inputs = unsharp_opencl_inputs, | |
| 410 | − .outputs = unsharp_opencl_outputs, | |
| 407 | + FILTER_INPUTS(unsharp_opencl_inputs), | |
| 408 | + FILTER_OUTPUTS(unsharp_opencl_outputs), | |
| 411 | 409 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 412 | 410 | }; |
| @@ -172,7 +172,6 @@ static const AVFilterPad untile_inputs[] = { · 171 unmodified lines | ||
| 172 | 172 | .name = "default", |
| 173 | 173 | .type = AVMEDIA_TYPE_VIDEO, |
| 174 | 174 | }, |
| 175 | − { NULL } | |
| 176 | 175 | }; |
| 177 | 176 | |
| 178 | 177 | static const AVFilterPad untile_outputs[] = { |
| @@ -181,7 +180,6 @@ static const AVFilterPad untile_outputs[] = { · 2 unmodified lines | ||
| 181 | 180 | .type = AVMEDIA_TYPE_VIDEO, |
| 182 | 181 | .config_props = config_output, |
| 183 | 182 | }, |
| 184 | − { NULL } | |
| 185 | 183 | }; |
| 186 | 184 | |
| 187 | 185 | const AVFilter ff_vf_untile = { |
| @@ -192,7 +190,7 @@ const AVFilter ff_vf_untile = { · 4 unmodified lines | ||
| 192 | 190 | .query_formats = query_formats, |
| 193 | 191 | .activate = activate, |
| 194 | 192 | .priv_size = sizeof(UntileContext), |
| 195 | − .inputs = untile_inputs, | |
| 196 | − .outputs = untile_outputs, | |
| 193 | + FILTER_INPUTS(untile_inputs), | |
| 194 | + FILTER_OUTPUTS(untile_outputs), | |
| 197 | 195 | .priv_class = &untile_class, |
| 198 | 196 | }; |
| @@ -480,7 +480,6 @@ static const AVFilterPad uspp_inputs[] = { · 479 unmodified lines | ||
| 480 | 480 | .config_props = config_input, |
| 481 | 481 | .filter_frame = filter_frame, |
| 482 | 482 | }, |
| 483 | − { NULL } | |
| 484 | 483 | }; |
| 485 | 484 | |
| 486 | 485 | static const AVFilterPad uspp_outputs[] = { |
| @@ -488,7 +487,6 @@ static const AVFilterPad uspp_outputs[] = { · 1 unmodified line | ||
| 488 | 487 | .name = "default", |
| 489 | 488 | .type = AVMEDIA_TYPE_VIDEO, |
| 490 | 489 | }, |
| 491 | − { NULL } | |
| 492 | 490 | }; |
| 493 | 491 | |
| 494 | 492 | const AVFilter ff_vf_uspp = { |
| @@ -497,8 +495,8 @@ const AVFilter ff_vf_uspp = { · 2 unmodified lines | ||
| 497 | 495 | .priv_size = sizeof(USPPContext), |
| 498 | 496 | .uninit = uninit, |
| 499 | 497 | .query_formats = query_formats, |
| 500 | − .inputs = uspp_inputs, | |
| 501 | − .outputs = uspp_outputs, | |
| 498 | + FILTER_INPUTS(uspp_inputs), | |
| 499 | + FILTER_OUTPUTS(uspp_outputs), | |
| 502 | 500 | .priv_class = &uspp_class, |
| 503 | 501 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 504 | 502 | }; |
| @@ -4966,7 +4966,6 @@ static const AVFilterPad inputs[] = { · 4965 unmodified lines | ||
| 4966 | 4966 | .type = AVMEDIA_TYPE_VIDEO, |
| 4967 | 4967 | .filter_frame = filter_frame, |
| 4968 | 4968 | }, |
| 4969 | − { NULL } | |
| 4970 | 4969 | }; |
| 4971 | 4970 | |
| 4972 | 4971 | static const AVFilterPad outputs[] = { |
| @@ -4975,7 +4974,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 4975 | 4974 | .type = AVMEDIA_TYPE_VIDEO, |
| 4976 | 4975 | .config_props = config_output, |
| 4977 | 4976 | }, |
| 4978 | − { NULL } | |
| 4979 | 4977 | }; |
| 4980 | 4978 | |
| 4981 | 4979 | const AVFilter ff_vf_v360 = { |
| @@ -4985,8 +4983,8 @@ const AVFilter ff_vf_v360 = { · 3 unmodified lines | ||
| 4985 | 4983 | .init = init, |
| 4986 | 4984 | .uninit = uninit, |
| 4987 | 4985 | .query_formats = query_formats, |
| 4988 | − .inputs = inputs, | |
| 4989 | − .outputs = outputs, | |
| 4986 | + FILTER_INPUTS(inputs), | |
| 4987 | + FILTER_OUTPUTS(outputs), | |
| 4990 | 4988 | .priv_class = &v360_class, |
| 4991 | 4989 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 4992 | 4990 | .process_command = process_command, |
| @@ -595,7 +595,6 @@ static const AVFilterPad vaguedenoiser_inputs[] = { · 594 unmodified lines | ||
| 595 | 595 | .config_props = config_input, |
| 596 | 596 | .filter_frame = filter_frame, |
| 597 | 597 | }, |
| 598 | − { NULL } | |
| 599 | 598 | }; |
| 600 | 599 | |
| 601 | 600 | |
| @@ -604,7 +603,6 @@ static const AVFilterPad vaguedenoiser_outputs[] = { · 2 unmodified lines | ||
| 604 | 603 | .name = "default", |
| 605 | 604 | .type = AVMEDIA_TYPE_VIDEO |
| 606 | 605 | }, |
| 607 | − { NULL } | |
| 608 | 606 | }; |
| 609 | 607 | |
| 610 | 608 | const AVFilter ff_vf_vaguedenoiser = { |
| @@ -615,7 +613,7 @@ const AVFilter ff_vf_vaguedenoiser = { · 4 unmodified lines | ||
| 615 | 613 | .init = init, |
| 616 | 614 | .uninit = uninit, |
| 617 | 615 | .query_formats = query_formats, |
| 618 | − .inputs = vaguedenoiser_inputs, | |
| 619 | − .outputs = vaguedenoiser_outputs, | |
| 616 | + FILTER_INPUTS(vaguedenoiser_inputs), | |
| 617 | + FILTER_OUTPUTS(vaguedenoiser_outputs), | |
| 620 | 618 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 621 | 619 | }; |
| @@ -1575,7 +1575,6 @@ static const AVFilterPad inputs[] = { · 1574 unmodified lines | ||
| 1575 | 1575 | .filter_frame = filter_frame, |
| 1576 | 1576 | .config_props = config_input, |
| 1577 | 1577 | }, |
| 1578 | − { NULL } | |
| 1579 | 1578 | }; |
| 1580 | 1579 | |
| 1581 | 1580 | static const AVFilterPad outputs[] = { |
| @@ -1584,7 +1583,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 1584 | 1583 | .type = AVMEDIA_TYPE_VIDEO, |
| 1585 | 1584 | .config_props = config_output, |
| 1586 | 1585 | }, |
| 1587 | − { NULL } | |
| 1588 | 1586 | }; |
| 1589 | 1587 | |
| 1590 | 1588 | const AVFilter ff_vf_vectorscope = { |
| @@ -1594,6 +1592,6 @@ const AVFilter ff_vf_vectorscope = { · 3 unmodified lines | ||
| 1594 | 1592 | .priv_class = &vectorscope_class, |
| 1595 | 1593 | .query_formats = query_formats, |
| 1596 | 1594 | .uninit = uninit, |
| 1597 | − .inputs = inputs, | |
| 1598 | − .outputs = outputs, | |
| 1595 | + FILTER_INPUTS(inputs), | |
| 1596 | + FILTER_OUTPUTS(outputs), | |
| 1599 | 1597 | }; |
| @@ -133,7 +133,6 @@ static const AVFilterPad avfilter_vf_vflip_inputs[] = { · 132 unmodified lines | ||
| 133 | 133 | .filter_frame = filter_frame, |
| 134 | 134 | .config_props = config_input, |
| 135 | 135 | }, |
| 136 | − { NULL } | |
| 137 | 136 | }; |
| 138 | 137 | |
| 139 | 138 | static const AVFilterPad avfilter_vf_vflip_outputs[] = { |
| @@ -141,7 +140,6 @@ static const AVFilterPad avfilter_vf_vflip_outputs[] = { · 1 unmodified line | ||
| 141 | 140 | .name = "default", |
| 142 | 141 | .type = AVMEDIA_TYPE_VIDEO, |
| 143 | 142 | }, |
| 144 | − { NULL } | |
| 145 | 143 | }; |
| 146 | 144 | |
| 147 | 145 | const AVFilter ff_vf_vflip = { |
| @@ -149,7 +147,7 @@ const AVFilter ff_vf_vflip = { · 1 unmodified line | ||
| 149 | 147 | .description = NULL_IF_CONFIG_SMALL("Flip the input video vertically."), |
| 150 | 148 | .priv_size = sizeof(FlipContext), |
| 151 | 149 | .priv_class = &vflip_class, |
| 152 | − .inputs = avfilter_vf_vflip_inputs, | |
| 153 | − .outputs = avfilter_vf_vflip_outputs, | |
| 150 | + FILTER_INPUTS(avfilter_vf_vflip_inputs), | |
| 151 | + FILTER_OUTPUTS(avfilter_vf_vflip_outputs), | |
| 154 | 152 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 155 | 153 | }; |
| @@ -93,7 +93,6 @@ static const AVFilterPad vfrdet_inputs[] = { · 92 unmodified lines | ||
| 93 | 93 | .type = AVMEDIA_TYPE_VIDEO, |
| 94 | 94 | .filter_frame = filter_frame, |
| 95 | 95 | }, |
| 96 | − { NULL } | |
| 97 | 96 | }; |
| 98 | 97 | |
| 99 | 98 | static const AVFilterPad vfrdet_outputs[] = { |
| @@ -101,7 +100,6 @@ static const AVFilterPad vfrdet_outputs[] = { · 1 unmodified line | ||
| 101 | 100 | .name = "default", |
| 102 | 101 | .type = AVMEDIA_TYPE_VIDEO, |
| 103 | 102 | }, |
| 104 | − { NULL } | |
| 105 | 103 | }; |
| 106 | 104 | |
| 107 | 105 | const AVFilter ff_vf_vfrdet = { |
| @@ -110,6 +108,6 @@ const AVFilter ff_vf_vfrdet = { · 2 unmodified lines | ||
| 110 | 108 | .priv_size = sizeof(VFRDETContext), |
| 111 | 109 | .init = init, |
| 112 | 110 | .uninit = uninit, |
| 113 | − .inputs = vfrdet_inputs, | |
| 114 | − .outputs = vfrdet_outputs, | |
| 111 | + FILTER_INPUTS(vfrdet_inputs), | |
| 112 | + FILTER_OUTPUTS(vfrdet_outputs), | |
| 115 | 113 | }; |
| @@ -344,7 +344,6 @@ static const AVFilterPad vibrance_inputs[] = { · 343 unmodified lines | ||
| 344 | 344 | .filter_frame = filter_frame, |
| 345 | 345 | .config_props = config_input, |
| 346 | 346 | }, |
| 347 | − { NULL } | |
| 348 | 347 | }; |
| 349 | 348 | |
| 350 | 349 | static const AVFilterPad vibrance_outputs[] = { |
| @@ -352,7 +351,6 @@ static const AVFilterPad vibrance_outputs[] = { · 1 unmodified line | ||
| 352 | 351 | .name = "default", |
| 353 | 352 | .type = AVMEDIA_TYPE_VIDEO, |
| 354 | 353 | }, |
| 355 | − { NULL } | |
| 356 | 354 | }; |
| 357 | 355 | |
| 358 | 356 | #define OFFSET(x) offsetof(VibranceContext, x) |
| @@ -378,8 +376,8 @@ const AVFilter ff_vf_vibrance = { · 19 unmodified lines | ||
| 378 | 376 | .priv_size = sizeof(VibranceContext), |
| 379 | 377 | .priv_class = &vibrance_class, |
| 380 | 378 | .query_formats = query_formats, |
| 381 | − .inputs = vibrance_inputs, | |
| 382 | − .outputs = vibrance_outputs, | |
| 379 | + FILTER_INPUTS(vibrance_inputs), | |
| 380 | + FILTER_OUTPUTS(vibrance_outputs), | |
| 383 | 381 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 384 | 382 | .process_command = ff_filter_process_command, |
| 385 | 383 | }; |
| @@ -193,7 +193,6 @@ static const AVFilterPad avfilter_vf_vidstabdetect_inputs[] = { · 192 unmodified lines | ||
| 193 | 193 | .filter_frame = filter_frame, |
| 194 | 194 | .config_props = config_input, |
| 195 | 195 | }, |
| 196 | − { NULL } | |
| 197 | 196 | }; |
| 198 | 197 | |
| 199 | 198 | static const AVFilterPad avfilter_vf_vidstabdetect_outputs[] = { |
| @@ -201,7 +200,6 @@ static const AVFilterPad avfilter_vf_vidstabdetect_outputs[] = { · 1 unmodified line | ||
| 201 | 200 | .name = "default", |
| 202 | 201 | .type = AVMEDIA_TYPE_VIDEO, |
| 203 | 202 | }, |
| 204 | − { NULL } | |
| 205 | 203 | }; |
| 206 | 204 | |
| 207 | 205 | const AVFilter ff_vf_vidstabdetect = { |
| @@ -213,7 +211,7 @@ const AVFilter ff_vf_vidstabdetect = { · 5 unmodified lines | ||
| 213 | 211 | .init = init, |
| 214 | 212 | .uninit = uninit, |
| 215 | 213 | .query_formats = query_formats, |
| 216 | − .inputs = avfilter_vf_vidstabdetect_inputs, | |
| 217 | − .outputs = avfilter_vf_vidstabdetect_outputs, | |
| 214 | + FILTER_INPUTS(avfilter_vf_vidstabdetect_inputs), | |
| 215 | + FILTER_OUTPUTS(avfilter_vf_vidstabdetect_outputs), | |
| 218 | 216 | .priv_class = &vidstabdetect_class, |
| 219 | 217 | }; |
| @@ -294,7 +294,6 @@ static const AVFilterPad avfilter_vf_vidstabtransform_inputs[] = { · 293 unmodified lines | ||
| 294 | 294 | .filter_frame = filter_frame, |
| 295 | 295 | .config_props = config_input, |
| 296 | 296 | }, |
| 297 | − { NULL } | |
| 298 | 297 | }; |
| 299 | 298 | |
| 300 | 299 | static const AVFilterPad avfilter_vf_vidstabtransform_outputs[] = { |
| @@ -302,7 +301,6 @@ static const AVFilterPad avfilter_vf_vidstabtransform_outputs[] = { · 1 unmodified line | ||
| 302 | 301 | .name = "default", |
| 303 | 302 | .type = AVMEDIA_TYPE_VIDEO, |
| 304 | 303 | }, |
| 305 | − { NULL } | |
| 306 | 304 | }; |
| 307 | 305 | |
| 308 | 306 | const AVFilter ff_vf_vidstabtransform = { |
| @@ -314,7 +312,7 @@ const AVFilter ff_vf_vidstabtransform = { · 5 unmodified lines | ||
| 314 | 312 | .init = init, |
| 315 | 313 | .uninit = uninit, |
| 316 | 314 | .query_formats = query_formats, |
| 317 | − .inputs = avfilter_vf_vidstabtransform_inputs, | |
| 318 | − .outputs = avfilter_vf_vidstabtransform_outputs, | |
| 315 | + FILTER_INPUTS(avfilter_vf_vidstabtransform_inputs), | |
| 316 | + FILTER_OUTPUTS(avfilter_vf_vidstabtransform_outputs), | |
| 319 | 317 | .priv_class = &vidstabtransform_class, |
| 320 | 318 | }; |
| @@ -627,7 +627,6 @@ static const AVFilterPad vif_inputs[] = { · 626 unmodified lines | ||
| 627 | 627 | .type = AVMEDIA_TYPE_VIDEO, |
| 628 | 628 | .config_props = config_input_ref, |
| 629 | 629 | }, |
| 630 | − { NULL } | |
| 631 | 630 | }; |
| 632 | 631 | |
| 633 | 632 | static const AVFilterPad vif_outputs[] = { |
| @@ -636,7 +635,6 @@ static const AVFilterPad vif_outputs[] = { · 2 unmodified lines | ||
| 636 | 635 | .type = AVMEDIA_TYPE_VIDEO, |
| 637 | 636 | .config_props = config_output, |
| 638 | 637 | }, |
| 639 | − { NULL } | |
| 640 | 638 | }; |
| 641 | 639 | |
| 642 | 640 | const AVFilter ff_vf_vif = { |
| @@ -647,7 +645,7 @@ const AVFilter ff_vf_vif = { · 4 unmodified lines | ||
| 647 | 645 | .priv_size = sizeof(VIFContext), |
| 648 | 646 | .priv_class = &vif_class, |
| 649 | 647 | .activate = activate, |
| 650 | − .inputs = vif_inputs, | |
| 651 | − .outputs = vif_outputs, | |
| 648 | + FILTER_INPUTS(vif_inputs), | |
| 649 | + FILTER_OUTPUTS(vif_outputs), | |
| 652 | 650 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 653 | 651 | }; |
| @@ -327,7 +327,6 @@ static const AVFilterPad vignette_inputs[] = { · 326 unmodified lines | ||
| 327 | 327 | .filter_frame = filter_frame, |
| 328 | 328 | .config_props = config_props, |
| 329 | 329 | }, |
| 330 | − { NULL } | |
| 331 | 330 | }; |
| 332 | 331 | |
| 333 | 332 | static const AVFilterPad vignette_outputs[] = { |
| @@ -335,7 +334,6 @@ static const AVFilterPad vignette_outputs[] = { · 1 unmodified line | ||
| 335 | 334 | .name = "default", |
| 336 | 335 | .type = AVMEDIA_TYPE_VIDEO, |
| 337 | 336 | }, |
| 338 | − { NULL } | |
| 339 | 337 | }; |
| 340 | 338 | |
| 341 | 339 | const AVFilter ff_vf_vignette = { |
| @@ -345,8 +343,8 @@ const AVFilter ff_vf_vignette = { · 3 unmodified lines | ||
| 345 | 343 | .init = init, |
| 346 | 344 | .uninit = uninit, |
| 347 | 345 | .query_formats = query_formats, |
| 348 | − .inputs = vignette_inputs, | |
| 349 | − .outputs = vignette_outputs, | |
| 346 | + FILTER_INPUTS(vignette_inputs), | |
| 347 | + FILTER_OUTPUTS(vignette_outputs), | |
| 350 | 348 | .priv_class = &vignette_class, |
| 351 | 349 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, |
| 352 | 350 | }; |
| @@ -347,7 +347,6 @@ static const AVFilterPad vmafmotion_inputs[] = { · 346 unmodified lines | ||
| 347 | 347 | .filter_frame = filter_frame, |
| 348 | 348 | .config_props = config_input_ref, |
| 349 | 349 | }, |
| 350 | − { NULL } | |
| 351 | 350 | }; |
| 352 | 351 | |
| 353 | 352 | static const AVFilterPad vmafmotion_outputs[] = { |
| @@ -355,7 +354,6 @@ static const AVFilterPad vmafmotion_outputs[] = { · 1 unmodified line | ||
| 355 | 354 | .name = "default", |
| 356 | 355 | .type = AVMEDIA_TYPE_VIDEO, |
| 357 | 356 | }, |
| 358 | − { NULL } | |
| 359 | 357 | }; |
| 360 | 358 | |
| 361 | 359 | const AVFilter ff_vf_vmafmotion = { |
| @@ -366,6 +364,6 @@ const AVFilter ff_vf_vmafmotion = { · 4 unmodified lines | ||
| 366 | 364 | .query_formats = query_formats, |
| 367 | 365 | .priv_size = sizeof(VMAFMotionContext), |
| 368 | 366 | .priv_class = &vmafmotion_class, |
| 369 | − .inputs = vmafmotion_inputs, | |
| 370 | − .outputs = vmafmotion_outputs, | |
| 367 | + FILTER_INPUTS(vmafmotion_inputs), | |
| 368 | + FILTER_OUTPUTS(vmafmotion_outputs), | |
| 371 | 369 | }; |
| @@ -600,7 +600,6 @@ static const AVFilterPad vpp_inputs[] = { · 599 unmodified lines | ||
| 600 | 600 | .type = AVMEDIA_TYPE_VIDEO, |
| 601 | 601 | .config_props = config_input, |
| 602 | 602 | }, |
| 603 | − { NULL } | |
| 604 | 603 | }; |
| 605 | 604 | |
| 606 | 605 | static const AVFilterPad vpp_outputs[] = { |
| @@ -609,7 +608,6 @@ static const AVFilterPad vpp_outputs[] = { · 2 unmodified lines | ||
| 609 | 608 | .type = AVMEDIA_TYPE_VIDEO, |
| 610 | 609 | .config_props = config_output, |
| 611 | 610 | }, |
| 612 | − { NULL } | |
| 613 | 611 | }; |
| 614 | 612 | |
| 615 | 613 | const AVFilter ff_vf_vpp_qsv = { |
| @@ -619,8 +617,8 @@ const AVFilter ff_vf_vpp_qsv = { · 3 unmodified lines | ||
| 619 | 617 | .query_formats = query_formats, |
| 620 | 618 | .init = vpp_init, |
| 621 | 619 | .uninit = vpp_uninit, |
| 622 | − .inputs = vpp_inputs, | |
| 623 | − .outputs = vpp_outputs, | |
| 620 | + FILTER_INPUTS(vpp_inputs), | |
| 621 | + FILTER_OUTPUTS(vpp_outputs), | |
| 624 | 622 | .activate = activate, |
| 625 | 623 | .priv_class = &vpp_class, |
| 626 | 624 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| @@ -598,7 +598,6 @@ static const AVFilterPad w3fdif_inputs[] = { · 597 unmodified lines | ||
| 598 | 598 | .filter_frame = filter_frame, |
| 599 | 599 | .config_props = config_input, |
| 600 | 600 | }, |
| 601 | − { NULL } | |
| 602 | 601 | }; |
| 603 | 602 | |
| 604 | 603 | static const AVFilterPad w3fdif_outputs[] = { |
| @@ -608,7 +607,6 @@ static const AVFilterPad w3fdif_outputs[] = { · 3 unmodified lines | ||
| 608 | 607 | .config_props = config_output, |
| 609 | 608 | .request_frame = request_frame, |
| 610 | 609 | }, |
| 611 | − { NULL } | |
| 612 | 610 | }; |
| 613 | 611 | |
| 614 | 612 | const AVFilter ff_vf_w3fdif = { |
| @@ -618,8 +616,8 @@ const AVFilter ff_vf_w3fdif = { · 3 unmodified lines | ||
| 618 | 616 | .priv_class = &w3fdif_class, |
| 619 | 617 | .uninit = uninit, |
| 620 | 618 | .query_formats = query_formats, |
| 621 | − .inputs = w3fdif_inputs, | |
| 622 | − .outputs = w3fdif_outputs, | |
| 619 | + FILTER_INPUTS(w3fdif_inputs), | |
| 620 | + FILTER_OUTPUTS(w3fdif_outputs), | |
| 623 | 621 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 624 | 622 | .process_command = ff_filter_process_command, |
| 625 | 623 | }; |
| @@ -3503,7 +3503,6 @@ static const AVFilterPad inputs[] = { · 3502 unmodified lines | ||
| 3503 | 3503 | .filter_frame = filter_frame, |
| 3504 | 3504 | .config_props = config_input, |
| 3505 | 3505 | }, |
| 3506 | − { NULL } | |
| 3507 | 3506 | }; |
| 3508 | 3507 | |
| 3509 | 3508 | static const AVFilterPad outputs[] = { |
| @@ -3512,7 +3511,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 3512 | 3511 | .type = AVMEDIA_TYPE_VIDEO, |
| 3513 | 3512 | .config_props = config_output, |
| 3514 | 3513 | }, |
| 3515 | − { NULL } | |
| 3516 | 3514 | }; |
| 3517 | 3515 | |
| 3518 | 3516 | const AVFilter ff_vf_waveform = { |
| @@ -3522,7 +3520,7 @@ const AVFilter ff_vf_waveform = { · 3 unmodified lines | ||
| 3522 | 3520 | .priv_class = &waveform_class, |
| 3523 | 3521 | .query_formats = query_formats, |
| 3524 | 3522 | .uninit = uninit, |
| 3525 | − .inputs = inputs, | |
| 3526 | − .outputs = outputs, | |
| 3523 | + FILTER_INPUTS(inputs), | |
| 3524 | + FILTER_OUTPUTS(outputs), | |
| 3527 | 3525 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 3528 | 3526 | }; |
| @@ -178,7 +178,6 @@ static const AVFilterPad weave_inputs[] = { · 177 unmodified lines | ||
| 178 | 178 | .type = AVMEDIA_TYPE_VIDEO, |
| 179 | 179 | .filter_frame = filter_frame, |
| 180 | 180 | }, |
| 181 | − { NULL } | |
| 182 | 181 | }; |
| 183 | 182 | |
| 184 | 183 | static const AVFilterPad weave_outputs[] = { |
| @@ -187,7 +186,6 @@ static const AVFilterPad weave_outputs[] = { · 2 unmodified lines | ||
| 187 | 186 | .type = AVMEDIA_TYPE_VIDEO, |
| 188 | 187 | .config_props = config_props_output, |
| 189 | 188 | }, |
| 190 | − { NULL } | |
| 191 | 189 | }; |
| 192 | 190 | |
| 193 | 191 | const AVFilter ff_vf_weave = { |
| @@ -197,8 +195,8 @@ const AVFilter ff_vf_weave = { · 3 unmodified lines | ||
| 197 | 195 | .priv_class = &weave_class, |
| 198 | 196 | .query_formats = query_formats, |
| 199 | 197 | .uninit = uninit, |
| 200 | − .inputs = weave_inputs, | |
| 201 | − .outputs = weave_outputs, | |
| 198 | + FILTER_INPUTS(weave_inputs), | |
| 199 | + FILTER_OUTPUTS(weave_outputs), | |
| 202 | 200 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 203 | 201 | }; |
| 204 | 202 | |
| @@ -223,7 +221,7 @@ const AVFilter ff_vf_doubleweave = { · 18 unmodified lines | ||
| 223 | 221 | .query_formats = query_formats, |
| 224 | 222 | .init = init, |
| 225 | 223 | .uninit = uninit, |
| 226 | − .inputs = weave_inputs, | |
| 227 | − .outputs = weave_outputs, | |
| 224 | + FILTER_INPUTS(weave_inputs), | |
| 225 | + FILTER_OUTPUTS(weave_outputs), | |
| 228 | 226 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 229 | 227 | }; |
| @@ -410,7 +410,6 @@ static const AVFilterPad xbr_inputs[] = { · 409 unmodified lines | ||
| 410 | 410 | .type = AVMEDIA_TYPE_VIDEO, |
| 411 | 411 | .filter_frame = filter_frame, |
| 412 | 412 | }, |
| 413 | − { NULL } | |
| 414 | 413 | }; |
| 415 | 414 | |
| 416 | 415 | static const AVFilterPad xbr_outputs[] = { |
| @@ -419,14 +418,13 @@ static const AVFilterPad xbr_outputs[] = { · 2 unmodified lines | ||
| 419 | 418 | .type = AVMEDIA_TYPE_VIDEO, |
| 420 | 419 | .config_props = config_output, |
| 421 | 420 | }, |
| 422 | − { NULL } | |
| 423 | 421 | }; |
| 424 | 422 | |
| 425 | 423 | const AVFilter ff_vf_xbr = { |
| 426 | 424 | .name = "xbr", |
| 427 | 425 | .description = NULL_IF_CONFIG_SMALL("Scale the input using xBR algorithm."), |
| 428 | − .inputs = xbr_inputs, | |
| 429 | − .outputs = xbr_outputs, | |
| 426 | + FILTER_INPUTS(xbr_inputs), | |
| 427 | + FILTER_OUTPUTS(xbr_outputs), | |
| 430 | 428 | .query_formats = query_formats, |
| 431 | 429 | .priv_size = sizeof(XBRContext), |
| 432 | 430 | .priv_class = &xbr_class, |
| @@ -1942,7 +1942,6 @@ static const AVFilterPad xfade_inputs[] = { · 1941 unmodified lines | ||
| 1942 | 1942 | .name = "xfade", |
| 1943 | 1943 | .type = AVMEDIA_TYPE_VIDEO, |
| 1944 | 1944 | }, |
| 1945 | − { NULL } | |
| 1946 | 1945 | }; |
| 1947 | 1946 | |
| 1948 | 1947 | static const AVFilterPad xfade_outputs[] = { |
| @@ -1951,7 +1950,6 @@ static const AVFilterPad xfade_outputs[] = { · 2 unmodified lines | ||
| 1951 | 1950 | .type = AVMEDIA_TYPE_VIDEO, |
| 1952 | 1951 | .config_props = config_output, |
| 1953 | 1952 | }, |
| 1954 | − { NULL } | |
| 1955 | 1953 | }; |
| 1956 | 1954 | |
| 1957 | 1955 | const AVFilter ff_vf_xfade = { |
| @@ -1962,7 +1960,7 @@ const AVFilter ff_vf_xfade = { · 4 unmodified lines | ||
| 1962 | 1960 | .query_formats = query_formats, |
| 1963 | 1961 | .activate = xfade_activate, |
| 1964 | 1962 | .uninit = uninit, |
| 1965 | − .inputs = xfade_inputs, | |
| 1966 | − .outputs = xfade_outputs, | |
| 1963 | + FILTER_INPUTS(xfade_inputs), | |
| 1964 | + FILTER_OUTPUTS(xfade_outputs), | |
| 1967 | 1965 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 1968 | 1966 | }; |
| @@ -411,7 +411,6 @@ static const AVFilterPad xfade_opencl_inputs[] = { · 410 unmodified lines | ||
| 411 | 411 | .get_buffer.video = get_video_buffer, |
| 412 | 412 | .config_props = &ff_opencl_filter_config_input, |
| 413 | 413 | }, |
| 414 | − { NULL } | |
| 415 | 414 | }; |
| 416 | 415 | |
| 417 | 416 | static const AVFilterPad xfade_opencl_outputs[] = { |
| @@ -420,7 +419,6 @@ static const AVFilterPad xfade_opencl_outputs[] = { · 2 unmodified lines | ||
| 420 | 419 | .type = AVMEDIA_TYPE_VIDEO, |
| 421 | 420 | .config_props = &xfade_opencl_config_output, |
| 422 | 421 | }, |
| 423 | − { NULL } | |
| 424 | 422 | }; |
| 425 | 423 | |
| 426 | 424 | const AVFilter ff_vf_xfade_opencl = { |
| @@ -432,7 +430,7 @@ const AVFilter ff_vf_xfade_opencl = { · 5 unmodified lines | ||
| 432 | 430 | .uninit = &xfade_opencl_uninit, |
| 433 | 431 | .query_formats = &ff_opencl_filter_query_formats, |
| 434 | 432 | .activate = &xfade_opencl_activate, |
| 435 | − .inputs = xfade_opencl_inputs, | |
| 436 | − .outputs = xfade_opencl_outputs, | |
| 433 | + FILTER_INPUTS(xfade_opencl_inputs), | |
| 434 | + FILTER_OUTPUTS(xfade_opencl_outputs), | |
| 437 | 435 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 438 | 436 | }; |
| @@ -383,7 +383,6 @@ static const AVFilterPad outputs[] = { · 382 unmodified lines | ||
| 383 | 383 | .type = AVMEDIA_TYPE_VIDEO, |
| 384 | 384 | .config_props = config_output, |
| 385 | 385 | }, |
| 386 | − { NULL } | |
| 387 | 386 | }; |
| 388 | 387 | |
| 389 | 388 | #if CONFIG_XMEDIAN_FILTER |
| @@ -395,7 +394,7 @@ const AVFilter ff_vf_xmedian = { · 5 unmodified lines | ||
| 395 | 394 | .priv_size = sizeof(XMedianContext), |
| 396 | 395 | .priv_class = &xmedian_class, |
| 397 | 396 | .query_formats = query_formats, |
| 398 | − .outputs = outputs, | |
| 397 | + FILTER_OUTPUTS(outputs), | |
| 399 | 398 | .preinit = xmedian_framesync_preinit, |
| 400 | 399 | .init = init, |
| 401 | 400 | .uninit = uninit, |
| @@ -460,7 +459,6 @@ static const AVFilterPad tmedian_inputs[] = { · 58 unmodified lines | ||
| 460 | 459 | .type = AVMEDIA_TYPE_VIDEO, |
| 461 | 460 | .filter_frame = tmedian_filter_frame, |
| 462 | 461 | }, |
| 463 | − { NULL } | |
| 464 | 462 | }; |
| 465 | 463 | |
| 466 | 464 | static const AVFilterPad tmedian_outputs[] = { |
| @@ -469,7 +467,6 @@ static const AVFilterPad tmedian_outputs[] = { · 2 unmodified lines | ||
| 469 | 467 | .type = AVMEDIA_TYPE_VIDEO, |
| 470 | 468 | .config_props = config_output, |
| 471 | 469 | }, |
| 472 | − { NULL } | |
| 473 | 470 | }; |
| 474 | 471 | |
| 475 | 472 | AVFILTER_DEFINE_CLASS(tmedian); |
| @@ -480,8 +477,8 @@ const AVFilter ff_vf_tmedian = { · 4 unmodified lines | ||
| 480 | 477 | .priv_size = sizeof(XMedianContext), |
| 481 | 478 | .priv_class = &tmedian_class, |
| 482 | 479 | .query_formats = query_formats, |
| 483 | − .inputs = tmedian_inputs, | |
| 484 | − .outputs = tmedian_outputs, | |
| 480 | + FILTER_INPUTS(tmedian_inputs), | |
| 481 | + FILTER_OUTPUTS(tmedian_outputs), | |
| 485 | 482 | .init = init, |
| 486 | 483 | .uninit = uninit, |
| 487 | 484 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| @@ -337,7 +337,6 @@ static const AVFilterPad avfilter_vf_yadif_inputs[] = { · 336 unmodified lines | ||
| 337 | 337 | .type = AVMEDIA_TYPE_VIDEO, |
| 338 | 338 | .filter_frame = ff_yadif_filter_frame, |
| 339 | 339 | }, |
| 340 | − { NULL } | |
| 341 | 340 | }; |
| 342 | 341 | |
| 343 | 342 | static const AVFilterPad avfilter_vf_yadif_outputs[] = { |
| @@ -347,7 +346,6 @@ static const AVFilterPad avfilter_vf_yadif_outputs[] = { · 3 unmodified lines | ||
| 347 | 346 | .request_frame = ff_yadif_request_frame, |
| 348 | 347 | .config_props = config_output, |
| 349 | 348 | }, |
| 350 | − { NULL } | |
| 351 | 349 | }; |
| 352 | 350 | |
| 353 | 351 | const AVFilter ff_vf_yadif = { |
| @@ -357,7 +355,7 @@ const AVFilter ff_vf_yadif = { · 3 unmodified lines | ||
| 357 | 355 | .priv_class = &yadif_class, |
| 358 | 356 | .uninit = uninit, |
| 359 | 357 | .query_formats = query_formats, |
| 360 | − .inputs = avfilter_vf_yadif_inputs, | |
| 361 | − .outputs = avfilter_vf_yadif_outputs, | |
| 358 | + FILTER_INPUTS(avfilter_vf_yadif_inputs), | |
| 359 | + FILTER_OUTPUTS(avfilter_vf_yadif_outputs), | |
| 362 | 360 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, |
| 363 | 361 | }; |
| @@ -363,7 +363,6 @@ static const AVFilterPad deint_cuda_inputs[] = { · 362 unmodified lines | ||
| 363 | 363 | .filter_frame = ff_yadif_filter_frame, |
| 364 | 364 | .config_props = config_input, |
| 365 | 365 | }, |
| 366 | − { NULL } | |
| 367 | 366 | }; |
| 368 | 367 | |
| 369 | 368 | static const AVFilterPad deint_cuda_outputs[] = { |
| @@ -373,7 +372,6 @@ static const AVFilterPad deint_cuda_outputs[] = { · 3 unmodified lines | ||
| 373 | 372 | .request_frame = ff_yadif_request_frame, |
| 374 | 373 | .config_props = config_output, |
| 375 | 374 | }, |
| 376 | − { NULL } | |
| 377 | 375 | }; |
| 378 | 376 | |
| 379 | 377 | const AVFilter ff_vf_yadif_cuda = { |
| @@ -383,8 +381,8 @@ const AVFilter ff_vf_yadif_cuda = { · 3 unmodified lines | ||
| 383 | 381 | .priv_class = &yadif_cuda_class, |
| 384 | 382 | .uninit = deint_cuda_uninit, |
| 385 | 383 | .query_formats = deint_cuda_query_formats, |
| 386 | − .inputs = deint_cuda_inputs, | |
| 387 | − .outputs = deint_cuda_outputs, | |
| 384 | + FILTER_INPUTS(deint_cuda_inputs), | |
| 385 | + FILTER_OUTPUTS(deint_cuda_outputs), | |
| 388 | 386 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, |
| 389 | 387 | .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE, |
| 390 | 388 | }; |
| @@ -312,7 +312,6 @@ static const AVFilterPad yaep_inputs[] = { · 311 unmodified lines | ||
| 312 | 312 | .config_props = config_input, |
| 313 | 313 | .filter_frame = filter_frame, |
| 314 | 314 | }, |
| 315 | − { NULL } | |
| 316 | 315 | }; |
| 317 | 316 | |
| 318 | 317 | static const AVFilterPad yaep_outputs[] = { |
| @@ -320,7 +319,6 @@ static const AVFilterPad yaep_outputs[] = { · 1 unmodified line | ||
| 320 | 319 | .name = "default", |
| 321 | 320 | .type = AVMEDIA_TYPE_VIDEO, |
| 322 | 321 | }, |
| 323 | − { NULL } | |
| 324 | 322 | }; |
| 325 | 323 | |
| 326 | 324 | #define OFFSET(x) offsetof(YAEPContext, x) |
| @@ -345,8 +343,8 @@ const AVFilter ff_vf_yaepblur = { · 18 unmodified lines | ||
| 345 | 343 | .priv_class = &yaepblur_class, |
| 346 | 344 | .uninit = uninit, |
| 347 | 345 | .query_formats = query_formats, |
| 348 | − .inputs = yaep_inputs, | |
| 349 | − .outputs = yaep_outputs, | |
| 346 | + FILTER_INPUTS(yaep_inputs), | |
| 347 | + FILTER_OUTPUTS(yaep_outputs), | |
| 350 | 348 | .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
| 351 | 349 | .process_command = ff_filter_process_command, |
| 352 | 350 | }; |
| @@ -361,7 +361,6 @@ static const AVFilterPad inputs[] = { · 360 unmodified lines | ||
| 361 | 361 | .name = "default", |
| 362 | 362 | .type = AVMEDIA_TYPE_VIDEO, |
| 363 | 363 | }, |
| 364 | − { NULL } | |
| 365 | 364 | }; |
| 366 | 365 | |
| 367 | 366 | static const AVFilterPad outputs[] = { |
| @@ -370,7 +369,6 @@ static const AVFilterPad outputs[] = { · 2 unmodified lines | ||
| 370 | 369 | .type = AVMEDIA_TYPE_VIDEO, |
| 371 | 370 | .config_props = config_output, |
| 372 | 371 | }, |
| 373 | − { NULL } | |
| 374 | 372 | }; |
| 375 | 373 | |
| 376 | 374 | const AVFilter ff_vf_zoompan = { |
| @@ -382,6 +380,6 @@ const AVFilter ff_vf_zoompan = { · 5 unmodified lines | ||
| 382 | 380 | .uninit = uninit, |
| 383 | 381 | .query_formats = query_formats, |
| 384 | 382 | .activate = activate, |
| 385 | − .inputs = inputs, | |
| 386 | − .outputs = outputs, | |
| 383 | + FILTER_INPUTS(inputs), | |
| 384 | + FILTER_OUTPUTS(outputs), | |
| 387 | 385 | }; |
| @@ -914,7 +914,6 @@ static const AVFilterPad avfilter_vf_zscale_inputs[] = { · 913 unmodified lines | ||
| 914 | 914 | .type = AVMEDIA_TYPE_VIDEO, |
| 915 | 915 | .filter_frame = filter_frame, |
| 916 | 916 | }, |
| 917 | − { NULL } | |
| 918 | 917 | }; |
| 919 | 918 | |
| 920 | 919 | static const AVFilterPad avfilter_vf_zscale_outputs[] = { |
| @@ -923,7 +922,6 @@ static const AVFilterPad avfilter_vf_zscale_outputs[] = { · 2 unmodified lines | ||
| 923 | 922 | .type = AVMEDIA_TYPE_VIDEO, |
| 924 | 923 | .config_props = config_props, |
| 925 | 924 | }, |
| 926 | − { NULL } | |
| 927 | 925 | }; |
| 928 | 926 | |
| 929 | 927 | const AVFilter ff_vf_zscale = { |
| @@ -934,7 +932,7 @@ const AVFilter ff_vf_zscale = { · 4 unmodified lines | ||
| 934 | 932 | .priv_size = sizeof(ZScaleContext), |
| 935 | 933 | .priv_class = &zscale_class, |
| 936 | 934 | .uninit = uninit, |
| 937 | − .inputs = avfilter_vf_zscale_inputs, | |
| 938 | − .outputs = avfilter_vf_zscale_outputs, | |
| 935 | + FILTER_INPUTS(avfilter_vf_zscale_inputs), | |
| 936 | + FILTER_OUTPUTS(avfilter_vf_zscale_outputs), | |
| 939 | 937 | .process_command = process_command, |
| 940 | 938 | }; |
| @@ -32,13 +32,12 @@ static const AVFilterPad avfilter_vsink_nullsink_inputs[] = { · 31 unmodified lines | ||
| 32 | 32 | .type = AVMEDIA_TYPE_VIDEO, |
| 33 | 33 | .filter_frame = filter_frame, |
| 34 | 34 | }, |
| 35 | − { NULL }, | |
| 36 | 35 | }; |
| 37 | 36 | |
| 38 | 37 | const AVFilter ff_vsink_nullsink = { |
| 39 | 38 | .name = "nullsink", |
| 40 | 39 | .description = NULL_IF_CONFIG_SMALL("Do absolutely nothing with the input video."), |
| 41 | 40 | .priv_size = 0, |
| 42 | − .inputs = avfilter_vsink_nullsink_inputs, | |
| 41 | + FILTER_INPUTS(avfilter_vsink_nullsink_inputs), | |
| 43 | 42 | .outputs = NULL, |
| 44 | 43 | }; |
| @@ -321,7 +321,6 @@ static const AVFilterPad cellauto_outputs[] = { · 320 unmodified lines | ||
| 321 | 321 | .request_frame = request_frame, |
| 322 | 322 | .config_props = config_props, |
| 323 | 323 | }, |
| 324 | − { NULL } | |
| 325 | 324 | }; |
| 326 | 325 | |
| 327 | 326 | const AVFilter ff_vsrc_cellauto = { |
| @@ -333,5 +332,5 @@ const AVFilter ff_vsrc_cellauto = { · 5 unmodified lines | ||
| 333 | 332 | .uninit = uninit, |
| 334 | 333 | .query_formats = query_formats, |
| 335 | 334 | .inputs = NULL, |
| 336 | − .outputs = cellauto_outputs, | |
| 335 | + FILTER_OUTPUTS(cellauto_outputs), | |
| 337 | 336 | }; |
| @@ -292,7 +292,6 @@ static const AVFilterPad gradients_outputs[] = { · 291 unmodified lines | ||
| 292 | 292 | .type = AVMEDIA_TYPE_VIDEO, |
| 293 | 293 | .config_props = config_output, |
| 294 | 294 | }, |
| 295 | − { NULL } | |
| 296 | 295 | }; |
| 297 | 296 | |
| 298 | 297 | const AVFilter ff_vsrc_gradients = { |
| @@ -302,7 +301,7 @@ const AVFilter ff_vsrc_gradients = { · 3 unmodified lines | ||
| 302 | 301 | .priv_class = &gradients_class, |
| 303 | 302 | .query_formats = query_formats, |
| 304 | 303 | .inputs = NULL, |
| 305 | − .outputs = gradients_outputs, | |
| 304 | + FILTER_OUTPUTS(gradients_outputs), | |
| 306 | 305 | .activate = activate, |
| 307 | 306 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 308 | 307 | }; |
| @@ -436,7 +436,6 @@ static const AVFilterPad life_outputs[] = { · 435 unmodified lines | ||
| 436 | 436 | .request_frame = request_frame, |
| 437 | 437 | .config_props = config_props, |
| 438 | 438 | }, |
| 439 | − { NULL} | |
| 440 | 439 | }; |
| 441 | 440 | |
| 442 | 441 | const AVFilter ff_vsrc_life = { |
| @@ -448,5 +447,5 @@ const AVFilter ff_vsrc_life = { · 5 unmodified lines | ||
| 448 | 447 | .uninit = uninit, |
| 449 | 448 | .query_formats = query_formats, |
| 450 | 449 | .inputs = NULL, |
| 451 | − .outputs = life_outputs, | |
| 450 | + FILTER_OUTPUTS(life_outputs), | |
| 452 | 451 | }; |
| @@ -413,7 +413,6 @@ static const AVFilterPad mandelbrot_outputs[] = { · 412 unmodified lines | ||
| 413 | 413 | .request_frame = request_frame, |
| 414 | 414 | .config_props = config_props, |
| 415 | 415 | }, |
| 416 | − { NULL } | |
| 417 | 416 | }; |
| 418 | 417 | |
| 419 | 418 | const AVFilter ff_vsrc_mandelbrot = { |
| @@ -425,5 +424,5 @@ const AVFilter ff_vsrc_mandelbrot = { · 5 unmodified lines | ||
| 425 | 424 | .uninit = uninit, |
| 426 | 425 | .query_formats = query_formats, |
| 427 | 426 | .inputs = NULL, |
| 428 | − .outputs = mandelbrot_outputs, | |
| 427 | + FILTER_OUTPUTS(mandelbrot_outputs), | |
| 429 | 428 | }; |
| @@ -351,7 +351,6 @@ static const AVFilterPad mptestsrc_outputs[] = { · 350 unmodified lines | ||
| 351 | 351 | .request_frame = request_frame, |
| 352 | 352 | .config_props = config_props, |
| 353 | 353 | }, |
| 354 | − { NULL } | |
| 355 | 354 | }; |
| 356 | 355 | |
| 357 | 356 | const AVFilter ff_vsrc_mptestsrc = { |
| @@ -362,5 +361,5 @@ const AVFilter ff_vsrc_mptestsrc = { · 4 unmodified lines | ||
| 362 | 361 | .init = init, |
| 363 | 362 | .query_formats = query_formats, |
| 364 | 363 | .inputs = NULL, |
| 365 | − .outputs = mptestsrc_outputs, | |
| 364 | + FILTER_OUTPUTS(mptestsrc_outputs), | |
| 366 | 365 | }; |
| @@ -218,7 +218,6 @@ static const AVFilterPad sierpinski_outputs[] = { · 217 unmodified lines | ||
| 218 | 218 | .request_frame = sierpinski_request_frame, |
| 219 | 219 | .config_props = config_output, |
| 220 | 220 | }, |
| 221 | − { NULL } | |
| 222 | 221 | }; |
| 223 | 222 | |
| 224 | 223 | const AVFilter ff_vsrc_sierpinski = { |
| @@ -228,6 +227,6 @@ const AVFilter ff_vsrc_sierpinski = { · 3 unmodified lines | ||
| 228 | 227 | .priv_class = &sierpinski_class, |
| 229 | 228 | .query_formats = query_formats, |
| 230 | 229 | .inputs = NULL, |
| 231 | − .outputs = sierpinski_outputs, | |
| 230 | + FILTER_OUTPUTS(sierpinski_outputs), | |
| 232 | 231 | .flags = AVFILTER_FLAG_SLICE_THREADS, |
| 233 | 232 | }; |
| @@ -263,7 +263,6 @@ static const AVFilterPad color_outputs[] = { · 262 unmodified lines | ||
| 263 | 263 | .type = AVMEDIA_TYPE_VIDEO, |
| 264 | 264 | .config_props = color_config_props, |
| 265 | 265 | }, |
| 266 | − { NULL } | |
| 267 | 266 | }; |
| 268 | 267 | |
| 269 | 268 | const AVFilter ff_vsrc_color = { |
| @@ -276,7 +275,7 @@ const AVFilter ff_vsrc_color = { · 6 unmodified lines | ||
| 276 | 275 | .activate = activate, |
| 277 | 276 | .query_formats = color_query_formats, |
| 278 | 277 | .inputs = NULL, |
| 279 | − .outputs = color_outputs, | |
| 278 | + FILTER_OUTPUTS(color_outputs), | |
| 280 | 279 | .process_command = color_process_command, |
| 281 | 280 | }; |
| 282 | 281 | |
| @@ -394,7 +393,6 @@ static const AVFilterPad haldclutsrc_outputs[] = { · 111 unmodified lines | ||
| 394 | 393 | .type = AVMEDIA_TYPE_VIDEO, |
| 395 | 394 | .config_props = haldclutsrc_config_props, |
| 396 | 395 | }, |
| 397 | − { NULL } | |
| 398 | 396 | }; |
| 399 | 397 | |
| 400 | 398 | const AVFilter ff_vsrc_haldclutsrc = { |
| @@ -407,7 +405,7 @@ const AVFilter ff_vsrc_haldclutsrc = { · 6 unmodified lines | ||
| 407 | 405 | .query_formats = haldclutsrc_query_formats, |
| 408 | 406 | .activate = activate, |
| 409 | 407 | .inputs = NULL, |
| 410 | − .outputs = haldclutsrc_outputs, | |
| 408 | + FILTER_OUTPUTS(haldclutsrc_outputs), | |
| 411 | 409 | }; |
| 412 | 410 | #endif /* CONFIG_HALDCLUTSRC_FILTER */ |
| 413 | 411 | |
| @@ -432,7 +430,6 @@ static const AVFilterPad nullsrc_outputs[] = { · 18 unmodified lines | ||
| 432 | 430 | .type = AVMEDIA_TYPE_VIDEO, |
| 433 | 431 | .config_props = config_props, |
| 434 | 432 | }, |
| 435 | − { NULL }, | |
| 436 | 433 | }; |
| 437 | 434 | |
| 438 | 435 | const AVFilter ff_vsrc_nullsrc = { |
| @@ -444,7 +441,7 @@ const AVFilter ff_vsrc_nullsrc = { · 5 unmodified lines | ||
| 444 | 441 | .priv_size = sizeof(TestSourceContext), |
| 445 | 442 | .priv_class = &nullsrc_class, |
| 446 | 443 | .inputs = NULL, |
| 447 | − .outputs = nullsrc_outputs, | |
| 444 | + FILTER_OUTPUTS(nullsrc_outputs), | |
| 448 | 445 | }; |
| 449 | 446 | |
| 450 | 447 | #endif /* CONFIG_NULLSRC_FILTER */ |
| @@ -665,7 +662,6 @@ static const AVFilterPad avfilter_vsrc_testsrc_outputs[] = { · 214 unmodified lines | ||
| 665 | 662 | .type = AVMEDIA_TYPE_VIDEO, |
| 666 | 663 | .config_props = config_props, |
| 667 | 664 | }, |
| 668 | − { NULL } | |
| 669 | 665 | }; |
| 670 | 666 | |
| 671 | 667 | const AVFilter ff_vsrc_testsrc = { |
| @@ -678,7 +674,7 @@ const AVFilter ff_vsrc_testsrc = { · 6 unmodified lines | ||
| 678 | 674 | .query_formats = test_query_formats, |
| 679 | 675 | .activate = activate, |
| 680 | 676 | .inputs = NULL, |
| 681 | − .outputs = avfilter_vsrc_testsrc_outputs, | |
| 677 | + FILTER_OUTPUTS(avfilter_vsrc_testsrc_outputs), | |
| 682 | 678 | }; |
| 683 | 679 | |
| 684 | 680 | #endif /* CONFIG_TESTSRC_FILTER */ |
| @@ -938,7 +934,6 @@ static const AVFilterPad avfilter_vsrc_testsrc2_outputs[] = { · 253 unmodified lines | ||
| 938 | 934 | .type = AVMEDIA_TYPE_VIDEO, |
| 939 | 935 | .config_props = test2_config_props, |
| 940 | 936 | }, |
| 941 | − { NULL } | |
| 942 | 937 | }; |
| 943 | 938 | |
| 944 | 939 | const AVFilter ff_vsrc_testsrc2 = { |
| @@ -951,7 +946,7 @@ const AVFilter ff_vsrc_testsrc2 = { · 6 unmodified lines | ||
| 951 | 946 | .query_formats = test2_query_formats, |
| 952 | 947 | .activate = activate, |
| 953 | 948 | .inputs = NULL, |
| 954 | − .outputs = avfilter_vsrc_testsrc2_outputs, | |
| 949 | + FILTER_OUTPUTS(avfilter_vsrc_testsrc2_outputs), | |
| 955 | 950 | }; |
| 956 | 951 | |
| 957 | 952 | #endif /* CONFIG_TESTSRC2_FILTER */ |
| @@ -1110,7 +1105,6 @@ static const AVFilterPad avfilter_vsrc_rgbtestsrc_outputs[] = { · 152 unmodified lines | ||
| 1110 | 1105 | .type = AVMEDIA_TYPE_VIDEO, |
| 1111 | 1106 | .config_props = rgbtest_config_props, |
| 1112 | 1107 | }, |
| 1113 | − { NULL } | |
| 1114 | 1108 | }; |
| 1115 | 1109 | |
| 1116 | 1110 | const AVFilter ff_vsrc_rgbtestsrc = { |
| @@ -1123,7 +1117,7 @@ const AVFilter ff_vsrc_rgbtestsrc = { · 6 unmodified lines | ||
| 1123 | 1117 | .query_formats = rgbtest_query_formats, |
| 1124 | 1118 | .activate = activate, |
| 1125 | 1119 | .inputs = NULL, |
| 1126 | − .outputs = avfilter_vsrc_rgbtestsrc_outputs, | |
| 1120 | + FILTER_OUTPUTS(avfilter_vsrc_rgbtestsrc_outputs), | |
| 1127 | 1121 | }; |
| 1128 | 1122 | |
| 1129 | 1123 | #endif /* CONFIG_RGBTESTSRC_FILTER */ |
| @@ -1283,7 +1277,6 @@ static const AVFilterPad avfilter_vsrc_yuvtestsrc_outputs[] = { · 153 unmodified lines | ||
| 1283 | 1277 | .type = AVMEDIA_TYPE_VIDEO, |
| 1284 | 1278 | .config_props = yuvtest_config_props, |
| 1285 | 1279 | }, |
| 1286 | − { NULL } | |
| 1287 | 1280 | }; |
| 1288 | 1281 | |
| 1289 | 1282 | const AVFilter ff_vsrc_yuvtestsrc = { |
| @@ -1296,7 +1289,7 @@ const AVFilter ff_vsrc_yuvtestsrc = { · 6 unmodified lines | ||
| 1296 | 1289 | .query_formats = yuvtest_query_formats, |
| 1297 | 1290 | .activate = activate, |
| 1298 | 1291 | .inputs = NULL, |
| 1299 | − .outputs = avfilter_vsrc_yuvtestsrc_outputs, | |
| 1292 | + FILTER_OUTPUTS(avfilter_vsrc_yuvtestsrc_outputs), | |
| 1300 | 1293 | }; |
| 1301 | 1294 | |
| 1302 | 1295 | #endif /* CONFIG_YUVTESTSRC_FILTER */ |
| @@ -1423,7 +1416,6 @@ static const AVFilterPad smptebars_outputs[] = { · 120 unmodified lines | ||
| 1423 | 1416 | .type = AVMEDIA_TYPE_VIDEO, |
| 1424 | 1417 | .config_props = config_props, |
| 1425 | 1418 | }, |
| 1426 | − { NULL } | |
| 1427 | 1419 | }; |
| 1428 | 1420 | |
| 1429 | 1421 | #if CONFIG_PAL75BARS_FILTER |
| @@ -1470,7 +1462,7 @@ const AVFilter ff_vsrc_pal75bars = { · 40 unmodified lines | ||
| 1470 | 1462 | .query_formats = smptebars_query_formats, |
| 1471 | 1463 | .activate = activate, |
| 1472 | 1464 | .inputs = NULL, |
| 1473 | − .outputs = smptebars_outputs, | |
| 1465 | + FILTER_OUTPUTS(smptebars_outputs), | |
| 1474 | 1466 | }; |
| 1475 | 1467 | |
| 1476 | 1468 | #endif /* CONFIG_PAL75BARS_FILTER */ |
| @@ -1517,7 +1509,7 @@ const AVFilter ff_vsrc_pal100bars = { · 40 unmodified lines | ||
| 1517 | 1509 | .query_formats = smptebars_query_formats, |
| 1518 | 1510 | .activate = activate, |
| 1519 | 1511 | .inputs = NULL, |
| 1520 | − .outputs = smptebars_outputs, | |
| 1512 | + FILTER_OUTPUTS(smptebars_outputs), | |
| 1521 | 1513 | }; |
| 1522 | 1514 | |
| 1523 | 1515 | #endif /* CONFIG_PAL100BARS_FILTER */ |
| @@ -1585,7 +1577,7 @@ const AVFilter ff_vsrc_smptebars = { · 61 unmodified lines | ||
| 1585 | 1577 | .query_formats = smptebars_query_formats, |
| 1586 | 1578 | .activate = activate, |
| 1587 | 1579 | .inputs = NULL, |
| 1588 | − .outputs = smptebars_outputs, | |
| 1580 | + FILTER_OUTPUTS(smptebars_outputs), | |
| 1589 | 1581 | }; |
| 1590 | 1582 | |
| 1591 | 1583 | #endif /* CONFIG_SMPTEBARS_FILTER */ |
| @@ -1691,7 +1683,7 @@ const AVFilter ff_vsrc_smptehdbars = { · 99 unmodified lines | ||
| 1691 | 1683 | .query_formats = smptebars_query_formats, |
| 1692 | 1684 | .activate = activate, |
| 1693 | 1685 | .inputs = NULL, |
| 1694 | − .outputs = smptebars_outputs, | |
| 1686 | + FILTER_OUTPUTS(smptebars_outputs), | |
| 1695 | 1687 | }; |
| 1696 | 1688 | |
| 1697 | 1689 | #endif /* CONFIG_SMPTEHDBARS_FILTER */ |
| @@ -1753,7 +1745,6 @@ static const AVFilterPad avfilter_vsrc_allyuv_outputs[] = { · 55 unmodified lines | ||
| 1753 | 1745 | .type = AVMEDIA_TYPE_VIDEO, |
| 1754 | 1746 | .config_props = config_props, |
| 1755 | 1747 | }, |
| 1756 | − { NULL } | |
| 1757 | 1748 | }; |
| 1758 | 1749 | |
| 1759 | 1750 | const AVFilter ff_vsrc_allyuv = { |
| @@ -1766,7 +1757,7 @@ const AVFilter ff_vsrc_allyuv = { · 6 unmodified lines | ||
| 1766 | 1757 | .query_formats = allyuv_query_formats, |
| 1767 | 1758 | .activate = activate, |
| 1768 | 1759 | .inputs = NULL, |
| 1769 | − .outputs = avfilter_vsrc_allyuv_outputs, | |
| 1760 | + FILTER_OUTPUTS(avfilter_vsrc_allyuv_outputs), | |
| 1770 | 1761 | }; |
| 1771 | 1762 | |
| 1772 | 1763 | #endif /* CONFIG_ALLYUV_FILTER */ |
| @@ -1827,7 +1818,6 @@ static const AVFilterPad avfilter_vsrc_allrgb_outputs[] = { · 54 unmodified lines | ||
| 1827 | 1818 | .type = AVMEDIA_TYPE_VIDEO, |
| 1828 | 1819 | .config_props = allrgb_config_props, |
| 1829 | 1820 | }, |
| 1830 | − { NULL } | |
| 1831 | 1821 | }; |
| 1832 | 1822 | |
| 1833 | 1823 | const AVFilter ff_vsrc_allrgb = { |
| @@ -1840,7 +1830,7 @@ const AVFilter ff_vsrc_allrgb = { · 6 unmodified lines | ||
| 1840 | 1830 | .query_formats = allrgb_query_formats, |
| 1841 | 1831 | .activate = activate, |
| 1842 | 1832 | .inputs = NULL, |
| 1843 | − .outputs = avfilter_vsrc_allrgb_outputs, | |
| 1833 | + FILTER_OUTPUTS(avfilter_vsrc_allrgb_outputs), | |
| 1844 | 1834 | }; |
| 1845 | 1835 | |
| 1846 | 1836 | #endif /* CONFIG_ALLRGB_FILTER */ |