summaryrefslogtreecommitdiff
path: root/ffmpeg/libavfilter/filtfmts.c
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-12-29 12:19:38 +0000
committerTim Redfern <tim@eclectronics.org>2013-12-29 12:19:38 +0000
commitf7813a5324be39d13ab536c245d15dfc602a7849 (patch)
treefad99148b88823d34a5df2f0a25881a002eb291b /ffmpeg/libavfilter/filtfmts.c
parentb7a5a477b8ff4d4e3028b9dfb9a9df0a41463f92 (diff)
basic type mechanism working
Diffstat (limited to 'ffmpeg/libavfilter/filtfmts.c')
-rw-r--r--ffmpeg/libavfilter/filtfmts.c22
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;
}