diff options
| author | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2013-12-29 12:19:38 +0000 |
| commit | f7813a5324be39d13ab536c245d15dfc602a7849 (patch) | |
| tree | fad99148b88823d34a5df2f0a25881a002eb291b /ffmpeg/libavfilter/filtfmts.c | |
| parent | b7a5a477b8ff4d4e3028b9dfb9a9df0a41463f92 (diff) | |
basic type mechanism working
Diffstat (limited to 'ffmpeg/libavfilter/filtfmts.c')
| -rw-r--r-- | ffmpeg/libavfilter/filtfmts.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/ffmpeg/libavfilter/filtfmts.c b/ffmpeg/libavfilter/filtfmts.c index 7286729..e6c9b03 100644 --- a/ffmpeg/libavfilter/filtfmts.c +++ b/ffmpeg/libavfilter/filtfmts.c @@ -31,11 +31,11 @@ static void print_formats(AVFilterContext *filter_ctx) int i, j; #define PRINT_FMTS(inout, outin, INOUT) \ - for (i = 0; i < filter_ctx->inout##put_count; i++) { \ + for (i = 0; i < filter_ctx->nb_##inout##puts; i++) { \ if (filter_ctx->inout##puts[i]->type == AVMEDIA_TYPE_VIDEO) { \ AVFilterFormats *fmts = \ filter_ctx->inout##puts[i]->outin##_formats; \ - for (j = 0; j < fmts->format_count; j++) \ + for (j = 0; j < fmts->nb_formats; j++) \ if(av_get_pix_fmt_name(fmts->formats[j])) \ printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ i, filter_ctx->filter->inout##puts[i].name, \ @@ -45,7 +45,7 @@ static void print_formats(AVFilterContext *filter_ctx) AVFilterChannelLayouts *layouts; \ \ fmts = filter_ctx->inout##puts[i]->outin##_formats; \ - for (j = 0; j < fmts->format_count; j++) \ + for (j = 0; j < fmts->nb_formats; j++) \ printf(#INOUT "PUT[%d] %s: fmt:%s\n", \ i, filter_ctx->filter->inout##puts[i].name, \ av_get_sample_fmt_name(fmts->formats[j])); \ @@ -69,6 +69,7 @@ int main(int argc, char **argv) { AVFilter *filter; AVFilterContext *filter_ctx; + AVFilterGraph *graph_ctx; const char *filter_name; const char *filter_args = NULL; int i; @@ -84,6 +85,11 @@ int main(int argc, char **argv) if (argc > 2) filter_args = argv[2]; + /* allocate graph */ + graph_ctx = avfilter_graph_alloc(); + if (!graph_ctx) + return 1; + avfilter_register_all(); /* get a corresponding filter and open it */ @@ -92,24 +98,25 @@ int main(int argc, char **argv) return 1; } - if (avfilter_open(&filter_ctx, filter, NULL) < 0) { + /* open filter and add it to the graph */ + if (!(filter_ctx = avfilter_graph_alloc_filter(graph_ctx, filter, filter_name))) { fprintf(stderr, "Impossible to open filter with name '%s'\n", filter_name); return 1; } - if (avfilter_init_filter(filter_ctx, filter_args, NULL) < 0) { + if (avfilter_init_str(filter_ctx, filter_args) < 0) { fprintf(stderr, "Impossible to init filter '%s' with arguments '%s'\n", filter_name, filter_args); return 1; } /* create a link for each of the input pads */ - for (i = 0; i < filter_ctx->input_count; i++) { + for (i = 0; i < filter_ctx->nb_inputs; i++) { AVFilterLink *link = av_mallocz(sizeof(AVFilterLink)); link->type = filter_ctx->filter->inputs[i].type; filter_ctx->inputs[i] = link; } - for (i = 0; i < filter_ctx->output_count; i++) { + for (i = 0; i < filter_ctx->nb_outputs; i++) { AVFilterLink *link = av_mallocz(sizeof(AVFilterLink)); link->type = filter_ctx->filter->outputs[i].type; filter_ctx->outputs[i] = link; @@ -123,6 +130,7 @@ int main(int argc, char **argv) print_formats(filter_ctx); avfilter_free(filter_ctx); + avfilter_graph_free(&graph_ctx); fflush(stdout); return 0; } |
