kdub wrote:
Author: kdub
Date: Tue Jul 21 10:38:11 2009
New Revision: 4737

Log:
Add accepted pcm formats to my 3 filters

Modified:
   afilters/af_null.c
   afilters/af_src.c
   afilters/avfilter.c
   afilters/dummy.c

Modified: afilters/af_null.c
==============================================================================
--- afilters/af_null.c  Tue Jul 21 01:42:11 2009        (r4736)
+++ afilters/af_null.c  Tue Jul 21 10:38:11 2009        (r4737)
@@ -24,7 +24,10 @@
#include <stdio.h>
 #include "avfilter.h"
+
 static int null_filter(AVFilterLink *link, AVFilterBufferRef *sample_ref);
+static int query_af_null_formats(AVFilterContext *ctx);
+static int init_af_null(AVFilterContext *ctx, const char *args, void *opaque);
typedef struct
 {
@@ -32,6 +35,7 @@ typedef struct
} af_null_priv_t; +
 AVFilter avfilter_af_null =
 {
     .name      = "audio_null",
@@ -46,8 +50,38 @@ AVFilter avfilter_af_null =
     .outputs   = (AVFilterPad[]) {{ .name            = "default",
                                     .type            = CODEC_TYPE_AUDIO, },
                                   { .name = NULL}},
+
+    .init = init_af_null,
+    .query_formats = query_af_null_formats,
 };


Adding a init_af_null() method and adding a query_formats() method should belong to two separated commits

+
+static int init_af_null(AVFilterContext *ctx, const char *args, void *opaque)
+{
+    printf("init afnull\n");
+    int i;
+    af_null_priv_t * p;
+    ctx->priv = av_mallocz(sizeof(af_null_priv_t));

It is better to design the filter framework in a way that this is automatically done by the framework, to avoid duplicating this field in every filter (note that this is also done in all video filters).

+    p = (af_null_priv_t*) ctx->priv;
+    for (i=0; i<100; i++)
+       p->history[i] = i;
+
+    return 0;
+}

+
+static int query_af_null_formats(AVFilterContext *ctx)
+{
+    av_log(0,0, "query formats\n");
+
+    AVFilterFormats *formats;
+    formats = avfilter_make_format_list(3, CODEC_ID_PCM_S16LE,
+                                            CODEC_ID_PCM_S16BE,
+                                            CODEC_ID_PCM_F32LE);
+    avfilter_set_common_formats(ctx,formats);
+
+    return 0;
+}

Looks good, but isn't the number of channels part of the format?

-Vitor
_______________________________________________
FFmpeg-soc mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc

Reply via email to