History

lavfi: replace AVFilterContext.input/output_count with nb_inputs/outputs

This is more consistent with naming in the rest of Libav.

Anton Khirnov committed 14 years ago

Commit 9baeff91 parent 9d0bfc513 files · +94 −64Browse files

Showing the changes to libavfilter (12 of 13 files). Show all

Unified · Split

12 files
  1. libavfilter/af_amix.c +3 −3
  2. libavfilter/af_channelsplit.c +2 −2
  3. libavfilter/audio.c +1 −1
  4. libavfilter/avfilter.c +34 −24
  5. libavfilter/avfilter.h +9 −2
  6. libavfilter/avfiltergraph.c +17 −17
  7. libavfilter/formats.c +2 −2
  8. libavfilter/graphparser.c +2 −2
  9. libavfilter/internal.h +8 −2
  10. libavfilter/split.c +5 −5
  11. libavfilter/version.h +4 −1
  12. libavfilter/video.c +3 −3
libavfilter/af_amix.c+3−3
@@ -454,10 +454,10 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) · 453 unmodified lines
454 AVFilterLink *outlink = ctx->outputs[0];454 AVFilterLink *outlink = ctx->outputs[0];
455 int i;455 int i;
456 456
457 for (i = 0; i < ctx->input_count; i++)457 for (i = 0; i < ctx->nb_inputs; i++)
458 if (ctx->inputs[i] == inlink)458 if (ctx->inputs[i] == inlink)
459 break;459 break;
460 if (i >= ctx->input_count) {460 if (i >= ctx->nb_inputs) {
461 av_log(ctx, AV_LOG_ERROR, "unknown input link\n");461 av_log(ctx, AV_LOG_ERROR, "unknown input link\n");
462 return;462 return;
463 }463 }
@@ -518,7 +518,7 @@ static void uninit(AVFilterContext *ctx) · 54 unmodified lines
518 av_freep(&s->input_state);518 av_freep(&s->input_state);
519 av_freep(&s->input_scale);519 av_freep(&s->input_scale);
520 520
521 for (i = 0; i < ctx->input_count; i++)521 for (i = 0; i < ctx->nb_inputs; i++)
522 av_freep(&ctx->input_pads[i].name);522 av_freep(&ctx->input_pads[i].name);
523}523}
524 524
libavfilter/af_channelsplit.c+2−2
@@ -99,7 +99,7 @@ static int query_formats(AVFilterContext *ctx) · 98 unmodified lines
99 ff_add_channel_layout(&in_layouts, s->channel_layout);99 ff_add_channel_layout(&in_layouts, s->channel_layout);
100 ff_channel_layouts_ref(in_layouts, &ctx->inputs[0]->out_channel_layouts);100 ff_channel_layouts_ref(in_layouts, &ctx->inputs[0]->out_channel_layouts);
101 101
102 for (i = 0; i < ctx->output_count; i++) {102 for (i = 0; i < ctx->nb_outputs; i++) {
103 AVFilterChannelLayouts *out_layouts = NULL;103 AVFilterChannelLayouts *out_layouts = NULL;
104 uint64_t channel = av_channel_layout_extract_channel(s->channel_layout, i);104 uint64_t channel = av_channel_layout_extract_channel(s->channel_layout, i);
105 105
@@ -115,7 +115,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *buf) · 9 unmodified lines
115 AVFilterContext *ctx = inlink->dst;115 AVFilterContext *ctx = inlink->dst;
116 int i;116 int i;
117 117
118 for (i = 0; i < ctx->output_count; i++) {118 for (i = 0; i < ctx->nb_outputs; i++) {
119 AVFilterBufferRef *buf_out = avfilter_ref_buffer(buf, ~AV_PERM_WRITE);119 AVFilterBufferRef *buf_out = avfilter_ref_buffer(buf, ~AV_PERM_WRITE);
120 120
121 if (!buf_out)121 if (!buf_out)
libavfilter/audio.c+1−1
@@ -156,7 +156,7 @@ void ff_default_filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesr · 155 unmodified lines
156{156{
157 AVFilterLink *outlink = NULL;157 AVFilterLink *outlink = NULL;
158 158
159 if (inlink->dst->output_count)159 if (inlink->dst->nb_outputs)
160 outlink = inlink->dst->outputs[0];160 outlink = inlink->dst->outputs[0];
161 161
162 if (outlink) {162 if (outlink) {
libavfilter/avfilter.c+34−24
@@ -70,8 +70,8 @@ int avfilter_link(AVFilterContext *src, unsigned srcpad, · 69 unmodified lines
70{70{
71 AVFilterLink *link;71 AVFilterLink *link;
72 72
73 if (src->output_count <= srcpad || dst->input_count <= dstpad ||73 if (src->nb_outputs <= srcpad || dst->nb_inputs <= dstpad ||
74 src->outputs[srcpad] || dst->inputs[dstpad])74 src->outputs[srcpad] || dst->inputs[dstpad])
75 return -1;75 return -1;
76 76
77 if (src->output_pads[srcpad].type != dst->input_pads[dstpad].type) {77 if (src->output_pads[srcpad].type != dst->input_pads[dstpad].type) {
@@ -138,7 +138,7 @@ int avfilter_config_links(AVFilterContext *filter) · 60 unmodified lines
138 unsigned i;138 unsigned i;
139 int ret;139 int ret;
140 140
141 for (i = 0; i < filter->input_count; i ++) {141 for (i = 0; i < filter->nb_inputs; i ++) {
142 AVFilterLink *link = filter->inputs[i];142 AVFilterLink *link = filter->inputs[i];
143 143
144 if (!link) continue;144 if (!link) continue;
@@ -156,7 +156,7 @@ int avfilter_config_links(AVFilterContext *filter) · 11 unmodified lines
156 return ret;156 return ret;
157 157
158 if (!(config_link = link->srcpad->config_props)) {158 if (!(config_link = link->srcpad->config_props)) {
159 if (link->src->input_count != 1) {159 if (link->src->nb_inputs != 1) {
160 av_log(link->src, AV_LOG_ERROR, "Source filters and filters "160 av_log(link->src, AV_LOG_ERROR, "Source filters and filters "
161 "with more than one input "161 "with more than one input "
162 "must set config_props() "162 "must set config_props() "
@@ -171,15 +171,15 @@ int avfilter_config_links(AVFilterContext *filter) · 8 unmodified lines
171 }171 }
172 172
173 if (link->time_base.num == 0 && link->time_base.den == 0)173 if (link->time_base.num == 0 && link->time_base.den == 0)
174 link->time_base = link->src && link->src->input_count ?174 link->time_base = link->src && link->src->nb_inputs ?
175 link->src->inputs[0]->time_base : AV_TIME_BASE_Q;175 link->src->inputs[0]->time_base : AV_TIME_BASE_Q;
176 176
177 if (link->type == AVMEDIA_TYPE_VIDEO) {177 if (link->type == AVMEDIA_TYPE_VIDEO) {
178 if (!link->sample_aspect_ratio.num && !link->sample_aspect_ratio.den)178 if (!link->sample_aspect_ratio.num && !link->sample_aspect_ratio.den)
179 link->sample_aspect_ratio = link->src->input_count ?179 link->sample_aspect_ratio = link->src->nb_inputs ?
180 link->src->inputs[0]->sample_aspect_ratio : (AVRational){1,1};180 link->src->inputs[0]->sample_aspect_ratio : (AVRational){1,1};
181 181
182 if (link->src->input_count) {182 if (link->src->nb_inputs) {
183 if (!link->w)183 if (!link->w)
184 link->w = link->src->inputs[0]->w;184 link->w = link->src->inputs[0]->w;
185 if (!link->h)185 if (!link->h)
@@ -249,7 +249,7 @@ int ff_poll_frame(AVFilterLink *link) · 63 unmodified lines
249 if (link->srcpad->poll_frame)249 if (link->srcpad->poll_frame)
250 return link->srcpad->poll_frame(link);250 return link->srcpad->poll_frame(link);
251 251
252 for (i = 0; i < link->src->input_count; i++) {252 for (i = 0; i < link->src->nb_inputs; i++) {
253 int val;253 int val;
254 if (!link->src->inputs[i])254 if (!link->src->inputs[i])
255 return -1;255 return -1;
@@ -339,27 +339,31 @@ int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *in · 83 unmodified lines
339 goto err;339 goto err;
340 }340 }
341 341
342 ret->input_count = pad_count(filter->inputs);342 ret->nb_inputs = pad_count(filter->inputs);
343 if (ret->input_count) {343 if (ret->nb_inputs ) {
344 ret->input_pads = av_malloc(sizeof(AVFilterPad) * ret->input_count);344 ret->input_pads = av_malloc(sizeof(AVFilterPad) * ret->nb_inputs);
345 if (!ret->input_pads)345 if (!ret->input_pads)
346 goto err;346 goto err;
347 memcpy(ret->input_pads, filter->inputs, sizeof(AVFilterPad) * ret->input_count);347 memcpy(ret->input_pads, filter->inputs, sizeof(AVFilterPad) * ret->nb_inputs);
348 ret->inputs = av_mallocz(sizeof(AVFilterLink*) * ret->input_count);348 ret->inputs = av_mallocz(sizeof(AVFilterLink*) * ret->nb_inputs);
349 if (!ret->inputs)349 if (!ret->inputs)
350 goto err;350 goto err;
351 }351 }
352 352
353 ret->output_count = pad_count(filter->outputs);353 ret->nb_outputs = pad_count(filter->outputs);
354 if (ret->output_count) {354 if (ret->nb_outputs) {
355 ret->output_pads = av_malloc(sizeof(AVFilterPad) * ret->output_count);355 ret->output_pads = av_malloc(sizeof(AVFilterPad) * ret->nb_outputs);
356 if (!ret->output_pads)356 if (!ret->output_pads)
357 goto err;357 goto err;
358 memcpy(ret->output_pads, filter->outputs, sizeof(AVFilterPad) * ret->output_count);358 memcpy(ret->output_pads, filter->outputs, sizeof(AVFilterPad) * ret->nb_outputs);
359 ret->outputs = av_mallocz(sizeof(AVFilterLink*) * ret->output_count);359 ret->outputs = av_mallocz(sizeof(AVFilterLink*) * ret->nb_outputs);
360 if (!ret->outputs)360 if (!ret->outputs)
361 goto err;361 goto err;
362 }362 }
363#if FF_API_FOO_COUNT
364 ret->output_count = ret->nb_outputs;
365 ret->input_count = ret->nb_inputs;
366#endif
363 367
364 *filter_ctx = ret;368 *filter_ctx = ret;
365 return 0;369 return 0;
@@ -367,10 +371,10 @@ int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *in · 1 unmodified line
367err:371err:
368 av_freep(&ret->inputs);372 av_freep(&ret->inputs);
369 av_freep(&ret->input_pads);373 av_freep(&ret->input_pads);
370 ret->input_count = 0;374 ret->nb_inputs = 0;
371 av_freep(&ret->outputs);375 av_freep(&ret->outputs);
372 av_freep(&ret->output_pads);376 av_freep(&ret->output_pads);
373 ret->output_count = 0;377 ret->nb_outputs = 0;
374 av_freep(&ret->priv);378 av_freep(&ret->priv);
375 av_free(ret);379 av_free(ret);
376 return AVERROR(ENOMEM);380 return AVERROR(ENOMEM);
@@ -384,7 +388,7 @@ void avfilter_free(AVFilterContext *filter) · 7 unmodified lines
384 if (filter->filter->uninit)388 if (filter->filter->uninit)
385 filter->filter->uninit(filter);389 filter->filter->uninit(filter);
386 390
387 for (i = 0; i < filter->input_count; i++) {391 for (i = 0; i < filter->nb_inputs; i++) {
388 if ((link = filter->inputs[i])) {392 if ((link = filter->inputs[i])) {
389 if (link->src)393 if (link->src)
390 link->src->outputs[link->srcpad - link->src->output_pads] = NULL;394 link->src->outputs[link->srcpad - link->src->output_pads] = NULL;
@@ -397,7 +401,7 @@ void avfilter_free(AVFilterContext *filter) · 6 unmodified lines
397 }401 }
398 av_freep(&link);402 av_freep(&link);
399 }403 }
400 for (i = 0; i < filter->output_count; i++) {404 for (i = 0; i < filter->nb_outputs; i++) {
401 if ((link = filter->outputs[i])) {405 if ((link = filter->outputs[i])) {
402 if (link->dst)406 if (link->dst)
403 link->dst->inputs[link->dstpad - link->dst->input_pads] = NULL;407 link->dst->inputs[link->dstpad - link->dst->input_pads] = NULL;
@@ -453,14 +457,20 @@ void avfilter_insert_pad(unsigned idx, unsigned *count, size_t padidx_off, · 49 unmodified lines
453void avfilter_insert_inpad(AVFilterContext *f, unsigned index,457void avfilter_insert_inpad(AVFilterContext *f, unsigned index,
454 AVFilterPad *p)458 AVFilterPad *p)
455{459{
456 ff_insert_pad(index, &f->input_count, offsetof(AVFilterLink, dstpad),460 ff_insert_pad(index, &f->nb_inputs, offsetof(AVFilterLink, dstpad),
457 &f->input_pads, &f->inputs, p);461 &f->input_pads, &f->inputs, p);
462#if FF_API_FOO_COUNT
463 f->input_count = f->nb_inputs;
464#endif
458}465}
459void avfilter_insert_outpad(AVFilterContext *f, unsigned index,466void avfilter_insert_outpad(AVFilterContext *f, unsigned index,
460 AVFilterPad *p)467 AVFilterPad *p)
461{468{
462 ff_insert_pad(index, &f->output_count, offsetof(AVFilterLink, srcpad),469 ff_insert_pad(index, &f->nb_outputs, offsetof(AVFilterLink, srcpad),
463 &f->output_pads, &f->outputs, p);470 &f->output_pads, &f->outputs, p);
471#if FF_API_FOO_COUNT
472 f->output_count = f->nb_outputs;
473#endif
464}474}
465int avfilter_poll_frame(AVFilterLink *link)475int avfilter_poll_frame(AVFilterLink *link)
466{476{
libavfilter/avfilter.h+9−2
@@ -488,15 +488,22 @@ struct AVFilterContext { · 487 unmodified lines
488 488
489 char *name; ///< name of this filter instance489 char *name; ///< name of this filter instance
490 490
491 unsigned input_count; ///< number of input pads491#if FF_API_FOO_COUNT
492 unsigned input_count; ///< @deprecated use nb_inputs
493#endif
492 AVFilterPad *input_pads; ///< array of input pads494 AVFilterPad *input_pads; ///< array of input pads
493 AVFilterLink **inputs; ///< array of pointers to input links495 AVFilterLink **inputs; ///< array of pointers to input links
494 496
495 unsigned output_count; ///< number of output pads497#if FF_API_FOO_COUNT
498 unsigned output_count; ///< @deprecated use nb_outputs
499#endif
496 AVFilterPad *output_pads; ///< array of output pads500 AVFilterPad *output_pads; ///< array of output pads
497 AVFilterLink **outputs; ///< array of pointers to output links501 AVFilterLink **outputs; ///< array of pointers to output links
498 502
499 void *priv; ///< private data for use by the filter503 void *priv; ///< private data for use by the filter
504
505 unsigned nb_inputs; ///< number of input pads
506 unsigned nb_outputs; ///< number of output pads
500};507};
501 508
502/**509/**
libavfilter/avfiltergraph.c+17−17
@@ -109,7 +109,7 @@ static int graph_check_validity(AVFilterGraph *graph, AVClass *log_ctx) · 108 unmodified lines
109 for (i = 0; i < graph->filter_count; i++) {109 for (i = 0; i < graph->filter_count; i++) {
110 filt = graph->filters[i];110 filt = graph->filters[i];
111 111
112 for (j = 0; j < filt->input_count; j++) {112 for (j = 0; j < filt->nb_inputs; j++) {
113 if (!filt->inputs[j] || !filt->inputs[j]->src) {113 if (!filt->inputs[j] || !filt->inputs[j]->src) {
114 av_log(log_ctx, AV_LOG_ERROR,114 av_log(log_ctx, AV_LOG_ERROR,
115 "Input pad \"%s\" for the filter \"%s\" of type \"%s\" not connected to any source\n",115 "Input pad \"%s\" for the filter \"%s\" of type \"%s\" not connected to any source\n",
@@ -118,7 +118,7 @@ static int graph_check_validity(AVFilterGraph *graph, AVClass *log_ctx) · 2 unmodified lines
118 }118 }
119 }119 }
120 120
121 for (j = 0; j < filt->output_count; j++) {121 for (j = 0; j < filt->nb_outputs; j++) {
122 if (!filt->outputs[j] || !filt->outputs[j]->dst) {122 if (!filt->outputs[j] || !filt->outputs[j]->dst) {
123 av_log(log_ctx, AV_LOG_ERROR,123 av_log(log_ctx, AV_LOG_ERROR,
124 "Output pad \"%s\" for the filter \"%s\" of type \"%s\" not connected to any destination\n",124 "Output pad \"%s\" for the filter \"%s\" of type \"%s\" not connected to any destination\n",
@@ -144,7 +144,7 @@ static int graph_config_links(AVFilterGraph *graph, AVClass *log_ctx) · 19 unmodified lines
144 for (i=0; i < graph->filter_count; i++) {144 for (i=0; i < graph->filter_count; i++) {
145 filt = graph->filters[i];145 filt = graph->filters[i];
146 146
147 if (!filt->output_count) {147 if (!filt->nb_outputs) {
148 if ((ret = avfilter_config_links(filt)))148 if ((ret = avfilter_config_links(filt)))
149 return ret;149 return ret;
150 }150 }
@@ -181,7 +181,7 @@ static int query_formats(AVFilterGraph *graph, AVClass *log_ctx) · 30 unmodified lines
181 for (i = 0; i < graph->filter_count; i++) {181 for (i = 0; i < graph->filter_count; i++) {
182 AVFilterContext *filter = graph->filters[i];182 AVFilterContext *filter = graph->filters[i];
183 183
184 for (j = 0; j < filter->input_count; j++) {184 for (j = 0; j < filter->nb_inputs; j++) {
185 AVFilterLink *link = filter->inputs[j];185 AVFilterLink *link = filter->inputs[j];
186 int convert_needed = 0;186 int convert_needed = 0;
187 187
@@ -315,7 +315,7 @@ static int pick_format(AVFilterLink *link) · 127 unmodified lines
315 315
316#define REDUCE_FORMATS(fmt_type, list_type, list, var, nb, add_format) \316#define REDUCE_FORMATS(fmt_type, list_type, list, var, nb, add_format) \
317do { \317do { \
318 for (i = 0; i < filter->input_count; i++) { \318 for (i = 0; i < filter->nb_inputs; i++) { \
319 AVFilterLink *link = filter->inputs[i]; \319 AVFilterLink *link = filter->inputs[i]; \
320 fmt_type fmt; \320 fmt_type fmt; \
321 \321 \
@@ -323,7 +323,7 @@ do { \ · 1 unmodified line
323 continue; \323 continue; \
324 fmt = link->out_ ## list->var[0]; \324 fmt = link->out_ ## list->var[0]; \
325 \325 \
326 for (j = 0; j < filter->output_count; j++) { \326 for (j = 0; j < filter->nb_outputs; j++) { \
327 AVFilterLink *out_link = filter->outputs[j]; \327 AVFilterLink *out_link = filter->outputs[j]; \
328 list_type *fmts; \328 list_type *fmts; \
329 \329 \
@@ -380,19 +380,19 @@ static void swap_samplerates_on_filter(AVFilterContext *filter) · 50 unmodified lines
380 int sample_rate;380 int sample_rate;
381 int i, j;381 int i, j;
382 382
383 for (i = 0; i < filter->input_count; i++) {383 for (i = 0; i < filter->nb_inputs; i++) {
384 link = filter->inputs[i];384 link = filter->inputs[i];
385 385
386 if (link->type == AVMEDIA_TYPE_AUDIO &&386 if (link->type == AVMEDIA_TYPE_AUDIO &&
387 link->out_samplerates->format_count == 1)387 link->out_samplerates->format_count == 1)
388 break;388 break;
389 }389 }
390 if (i == filter->input_count)390 if (i == filter->nb_inputs)
391 return;391 return;
392 392
393 sample_rate = link->out_samplerates->formats[0];393 sample_rate = link->out_samplerates->formats[0];
394 394
395 for (i = 0; i < filter->output_count; i++) {395 for (i = 0; i < filter->nb_outputs; i++) {
396 AVFilterLink *outlink = filter->outputs[i];396 AVFilterLink *outlink = filter->outputs[i];
397 int best_idx, best_diff = INT_MAX;397 int best_idx, best_diff = INT_MAX;
398 398
@@ -427,19 +427,19 @@ static void swap_channel_layouts_on_filter(AVFilterContext *filter) · 28 unmodified lines
427 uint64_t chlayout;427 uint64_t chlayout;
428 int i, j;428 int i, j;
429 429
430 for (i = 0; i < filter->input_count; i++) {430 for (i = 0; i < filter->nb_inputs; i++) {
431 link = filter->inputs[i];431 link = filter->inputs[i];
432 432
433 if (link->type == AVMEDIA_TYPE_AUDIO &&433 if (link->type == AVMEDIA_TYPE_AUDIO &&
434 link->out_channel_layouts->nb_channel_layouts == 1)434 link->out_channel_layouts->nb_channel_layouts == 1)
435 break;435 break;
436 }436 }
437 if (i == filter->input_count)437 if (i == filter->nb_inputs)
438 return;438 return;
439 439
440 chlayout = link->out_channel_layouts->channel_layouts[0];440 chlayout = link->out_channel_layouts->channel_layouts[0];
441 441
442 for (i = 0; i < filter->output_count; i++) {442 for (i = 0; i < filter->nb_outputs; i++) {
443 AVFilterLink *outlink = filter->outputs[i];443 AVFilterLink *outlink = filter->outputs[i];
444 int best_idx, best_score = INT_MIN;444 int best_idx, best_score = INT_MIN;
445 445
@@ -480,20 +480,20 @@ static void swap_sample_fmts_on_filter(AVFilterContext *filter) · 34 unmodified lines
480 int format, bps;480 int format, bps;
481 int i, j;481 int i, j;
482 482
483 for (i = 0; i < filter->input_count; i++) {483 for (i = 0; i < filter->nb_inputs; i++) {
484 link = filter->inputs[i];484 link = filter->inputs[i];
485 485
486 if (link->type == AVMEDIA_TYPE_AUDIO &&486 if (link->type == AVMEDIA_TYPE_AUDIO &&
487 link->out_formats->format_count == 1)487 link->out_formats->format_count == 1)
488 break;488 break;
489 }489 }
490 if (i == filter->input_count)490 if (i == filter->nb_inputs)
491 return;491 return;
492 492
493 format = link->out_formats->formats[0];493 format = link->out_formats->formats[0];
494 bps = av_get_bytes_per_sample(format);494 bps = av_get_bytes_per_sample(format);
495 495
496 for (i = 0; i < filter->output_count; i++) {496 for (i = 0; i < filter->nb_outputs; i++) {
497 AVFilterLink *outlink = filter->outputs[i];497 AVFilterLink *outlink = filter->outputs[i];
498 int best_idx, best_score = INT_MIN;498 int best_idx, best_score = INT_MIN;
499 499
@@ -549,10 +549,10 @@ static int pick_formats(AVFilterGraph *graph) · 49 unmodified lines
549 for (i = 0; i < graph->filter_count; i++) {549 for (i = 0; i < graph->filter_count; i++) {
550 AVFilterContext *filter = graph->filters[i];550 AVFilterContext *filter = graph->filters[i];
551 551
552 for (j = 0; j < filter->input_count; j++)552 for (j = 0; j < filter->nb_inputs; j++)
553 if ((ret = pick_format(filter->inputs[j])) < 0)553 if ((ret = pick_format(filter->inputs[j])) < 0)
554 return ret;554 return ret;
555 for (j = 0; j < filter->output_count; j++)555 for (j = 0; j < filter->nb_outputs; j++)
556 if ((ret = pick_format(filter->outputs[j])) < 0)556 if ((ret = pick_format(filter->outputs[j])) < 0)
557 return ret;557 return ret;
558 }558 }
libavfilter/formats.c+2−2
@@ -330,13 +330,13 @@ void ff_formats_changeref(AVFilterFormats **oldref, AVFilterFormats **newref) · 329 unmodified lines
330{ \330{ \
331 int count = 0, i; \331 int count = 0, i; \
332 \332 \
333 for (i = 0; i < ctx->input_count; i++) { \333 for (i = 0; i < ctx->nb_inputs; i++) { \
334 if (ctx->inputs[i]) { \334 if (ctx->inputs[i]) { \
335 ref(fmts, &ctx->inputs[i]->out_fmts); \335 ref(fmts, &ctx->inputs[i]->out_fmts); \
336 count++; \336 count++; \
337 } \337 } \
338 } \338 } \
339 for (i = 0; i < ctx->output_count; i++) { \339 for (i = 0; i < ctx->nb_outputs; i++) { \
340 if (ctx->outputs[i]) { \340 if (ctx->outputs[i]) { \
341 ref(fmts, &ctx->outputs[i]->in_fmts); \341 ref(fmts, &ctx->outputs[i]->in_fmts); \
342 count++; \342 count++; \
libavfilter/graphparser.c+2−2
@@ -226,7 +226,7 @@ static int link_filter_inouts(AVFilterContext *filt_ctx, · 225 unmodified lines
226{226{
227 int pad, ret;227 int pad, ret;
228 228
229 for (pad = 0; pad < filt_ctx->input_count; pad++) {229 for (pad = 0; pad < filt_ctx->nb_inputs; pad++) {
230 AVFilterInOut *p = *curr_inputs;230 AVFilterInOut *p = *curr_inputs;
231 231
232 if (p) {232 if (p) {
@@ -254,7 +254,7 @@ static int link_filter_inouts(AVFilterContext *filt_ctx, · 21 unmodified lines
254 return AVERROR(EINVAL);254 return AVERROR(EINVAL);
255 }255 }
256 256
257 pad = filt_ctx->output_count;257 pad = filt_ctx->nb_outputs;
258 while (pad--) {258 while (pad--) {
259 AVFilterInOut *currlinkn = av_mallocz(sizeof(AVFilterInOut));259 AVFilterInOut *currlinkn = av_mallocz(sizeof(AVFilterInOut));
260 if (!currlinkn)260 if (!currlinkn)
libavfilter/internal.h+8−2
@@ -183,16 +183,22 @@ void ff_insert_pad(unsigned idx, unsigned *count, size_t padidx_off, · 182 unmodified lines
183static inline void ff_insert_inpad(AVFilterContext *f, unsigned index,183static inline void ff_insert_inpad(AVFilterContext *f, unsigned index,
184 AVFilterPad *p)184 AVFilterPad *p)
185{185{
186 ff_insert_pad(index, &f->input_count, offsetof(AVFilterLink, dstpad),186 ff_insert_pad(index, &f->nb_inputs, offsetof(AVFilterLink, dstpad),
187 &f->input_pads, &f->inputs, p);187 &f->input_pads, &f->inputs, p);
188#if FF_API_FOO_COUNT
189 f->input_count = f->nb_inputs;
190#endif
188}191}
189 192
190/** Insert a new output pad for the filter. */193/** Insert a new output pad for the filter. */
191static inline void ff_insert_outpad(AVFilterContext *f, unsigned index,194static inline void ff_insert_outpad(AVFilterContext *f, unsigned index,
192 AVFilterPad *p)195 AVFilterPad *p)
193{196{
194 ff_insert_pad(index, &f->output_count, offsetof(AVFilterLink, srcpad),197 ff_insert_pad(index, &f->nb_outputs, offsetof(AVFilterLink, srcpad),
195 &f->output_pads, &f->outputs, p);198 &f->output_pads, &f->outputs, p);
199#if FF_API_FOO_COUNT
200 f->output_count = f->nb_outputs;
201#endif
196}202}
197 203
198/**204/**
libavfilter/split.c+5−5
@@ -59,7 +59,7 @@ static void split_uninit(AVFilterContext *ctx) · 58 unmodified lines
59{59{
60 int i;60 int i;
61 61
62 for (i = 0; i < ctx->output_count; i++)62 for (i = 0; i < ctx->nb_outputs; i++)
63 av_freep(&ctx->output_pads[i].name);63 av_freep(&ctx->output_pads[i].name);
64}64}
65 65
@@ -68,7 +68,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) · 2 unmodified lines
68 AVFilterContext *ctx = inlink->dst;68 AVFilterContext *ctx = inlink->dst;
69 int i;69 int i;
70 70
71 for (i = 0; i < ctx->output_count; i++)71 for (i = 0; i < ctx->nb_outputs; i++)
72 ff_start_frame(ctx->outputs[i],72 ff_start_frame(ctx->outputs[i],
73 avfilter_ref_buffer(picref, ~AV_PERM_WRITE));73 avfilter_ref_buffer(picref, ~AV_PERM_WRITE));
74}74}
@@ -78,7 +78,7 @@ static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) · 3 unmodified lines
78 AVFilterContext *ctx = inlink->dst;78 AVFilterContext *ctx = inlink->dst;
79 int i;79 int i;
80 80
81 for (i = 0; i < ctx->output_count; i++)81 for (i = 0; i < ctx->nb_outputs; i++)
82 ff_draw_slice(ctx->outputs[i], y, h, slice_dir);82 ff_draw_slice(ctx->outputs[i], y, h, slice_dir);
83}83}
84 84
@@ -87,7 +87,7 @@ static void end_frame(AVFilterLink *inlink) · 2 unmodified lines
87 AVFilterContext *ctx = inlink->dst;87 AVFilterContext *ctx = inlink->dst;
88 int i;88 int i;
89 89
90 for (i = 0; i < ctx->output_count; i++)90 for (i = 0; i < ctx->nb_outputs; i++)
91 ff_end_frame(ctx->outputs[i]);91 ff_end_frame(ctx->outputs[i]);
92 92
93 avfilter_unref_buffer(inlink->cur_buf);93 avfilter_unref_buffer(inlink->cur_buf);
@@ -115,7 +115,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *samplesref) · 21 unmodified lines
115 AVFilterContext *ctx = inlink->dst;115 AVFilterContext *ctx = inlink->dst;
116 int i;116 int i;
117 117
118 for (i = 0; i < ctx->output_count; i++)118 for (i = 0; i < ctx->nb_outputs; i++)
119 ff_filter_samples(inlink->dst->outputs[i],119 ff_filter_samples(inlink->dst->outputs[i],
120 avfilter_ref_buffer(samplesref, ~AV_PERM_WRITE));120 avfilter_ref_buffer(samplesref, ~AV_PERM_WRITE));
121}121}
libavfilter/version.h+4−1
@@ -29,7 +29,7 @@ · 28 unmodified lines
29#include "libavutil/avutil.h"29#include "libavutil/avutil.h"
30 30
31#define LIBAVFILTER_VERSION_MAJOR 231#define LIBAVFILTER_VERSION_MAJOR 2
32#define LIBAVFILTER_VERSION_MINOR 2232#define LIBAVFILTER_VERSION_MINOR 23
33#define LIBAVFILTER_VERSION_MICRO 033#define LIBAVFILTER_VERSION_MICRO 0
34 34
35#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \35#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
@@ -62,5 +62,8 @@ · 26 unmodified lines
62#ifndef FF_API_AVFILTERPAD_PUBLIC62#ifndef FF_API_AVFILTERPAD_PUBLIC
63#define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 4)63#define FF_API_AVFILTERPAD_PUBLIC (LIBAVFILTER_VERSION_MAJOR < 4)
64#endif64#endif
65#ifndef FF_API_FOO_COUNT
66#define FF_API_FOO_COUNT (LIBAVFILTER_VERSION_MAJOR < 4)
67#endif
65 68
66#endif // AVFILTER_VERSION_H69#endif // AVFILTER_VERSION_H
libavfilter/video.c+3−3
@@ -169,7 +169,7 @@ static void default_start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) · 168 unmodified lines
169{169{
170 AVFilterLink *outlink = NULL;170 AVFilterLink *outlink = NULL;
171 171
172 if (inlink->dst->output_count)172 if (inlink->dst->nb_outputs)
173 outlink = inlink->dst->outputs[0];173 outlink = inlink->dst->outputs[0];
174 174
175 if (outlink) {175 if (outlink) {
@@ -220,7 +220,7 @@ static void default_end_frame(AVFilterLink *inlink) · 44 unmodified lines
220{220{
221 AVFilterLink *outlink = NULL;221 AVFilterLink *outlink = NULL;
222 222
223 if (inlink->dst->output_count)223 if (inlink->dst->nb_outputs)
224 outlink = inlink->dst->outputs[0];224 outlink = inlink->dst->outputs[0];
225 225
226 avfilter_unref_buffer(inlink->cur_buf);226 avfilter_unref_buffer(inlink->cur_buf);
@@ -261,7 +261,7 @@ static void default_draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir · 34 unmodified lines
261{261{
262 AVFilterLink *outlink = NULL;262 AVFilterLink *outlink = NULL;
263 263
264 if (inlink->dst->output_count)264 if (inlink->dst->nb_outputs)
265 outlink = inlink->dst->outputs[0];265 outlink = inlink->dst->outputs[0];
266 266
267 if (outlink)267 if (outlink)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t