]> git.sesse.net Git - ffmpeg/blobdiff - libavfilter/vf_format.c
dynamically use nb_streams instead of static use of MAX_STREAMS
[ffmpeg] / libavfilter / vf_format.c
index 66c569cb53fffa40265181ea4c4739224597543f..5e2c09915802af568541d1b9450559486692aa1f 100644 (file)
  */
 
 /**
- * @file libavfilter/vf_format.c
+ * @file
  * format and noformat video filters
  */
 
+#include "libavutil/pixdesc.h"
 #include "avfilter.h"
 
 typedef struct {
@@ -56,7 +57,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
 
         memcpy(pix_fmt_name, cur, pix_fmt_name_len);
         pix_fmt_name[pix_fmt_name_len] = 0;
-        pix_fmt = avcodec_get_pix_fmt(pix_fmt_name);
+        pix_fmt = av_get_pix_fmt(pix_fmt_name);
 
         if (pix_fmt == PIX_FMT_NONE) {
             av_log(ctx, AV_LOG_ERROR, "Unknown pixel format: %s\n", pix_fmt_name);
@@ -84,42 +85,16 @@ static AVFilterFormats *make_format_list(FormatContext *format, int flag)
     return formats;
 }
 
+#if CONFIG_FORMAT_FILTER
 static int query_formats_format(AVFilterContext *ctx)
 {
     avfilter_set_common_formats(ctx, make_format_list(ctx->priv, 1));
     return 0;
 }
 
-static int query_formats_noformat(AVFilterContext *ctx)
-{
-    avfilter_set_common_formats(ctx, make_format_list(ctx->priv, 0));
-    return 0;
-}
-
-static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
-                                        int w, int h)
-{
-    return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
-}
-
-static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
-{
-    avfilter_start_frame(link->dst->outputs[0], picref);
-}
-
-static void end_frame(AVFilterLink *link)
-{
-    avfilter_end_frame(link->dst->outputs[0]);
-}
-
-static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
-{
-    avfilter_draw_slice(link->dst->outputs[0], y, h, slice_dir);
-}
-
 AVFilter avfilter_vf_format = {
     .name      = "format",
-    .description = "Convert the input video to one of the specified pixel formats.",
+    .description = NULL_IF_CONFIG_SMALL("Convert the input video to one of the specified pixel formats."),
 
     .init      = init,
 
@@ -128,20 +103,28 @@ AVFilter avfilter_vf_format = {
     .priv_size = sizeof(FormatContext),
 
     .inputs    = (AVFilterPad[]) {{ .name            = "default",
-                                    .type            = CODEC_TYPE_VIDEO,
-                                    .get_video_buffer= get_video_buffer,
-                                    .start_frame     = start_frame,
-                                    .draw_slice      = draw_slice,
-                                    .end_frame       = end_frame, },
+                                    .type            = AVMEDIA_TYPE_VIDEO,
+                                    .get_video_buffer= avfilter_null_get_video_buffer,
+                                    .start_frame     = avfilter_null_start_frame,
+                                    .draw_slice      = avfilter_null_draw_slice,
+                                    .end_frame       = avfilter_null_end_frame, },
                                   { .name = NULL}},
     .outputs   = (AVFilterPad[]) {{ .name            = "default",
-                                    .type            = CODEC_TYPE_VIDEO },
+                                    .type            = AVMEDIA_TYPE_VIDEO },
                                   { .name = NULL}},
 };
+#endif /* CONFIG_FORMAT_FILTER */
+
+#if CONFIG_NOFORMAT_FILTER
+static int query_formats_noformat(AVFilterContext *ctx)
+{
+    avfilter_set_common_formats(ctx, make_format_list(ctx->priv, 0));
+    return 0;
+}
 
 AVFilter avfilter_vf_noformat = {
     .name      = "noformat",
-    .description = "Force libavfilter not to use any of the specified pixel formats for the input to the next filter.",
+    .description = NULL_IF_CONFIG_SMALL("Force libavfilter not to use any of the specified pixel formats for the input to the next filter."),
 
     .init      = init,
 
@@ -150,13 +133,15 @@ AVFilter avfilter_vf_noformat = {
     .priv_size = sizeof(FormatContext),
 
     .inputs    = (AVFilterPad[]) {{ .name            = "default",
-                                    .type            = CODEC_TYPE_VIDEO,
-                                    .get_video_buffer= get_video_buffer,
-                                    .start_frame     = start_frame,
-                                    .draw_slice      = draw_slice,
-                                    .end_frame       = end_frame, },
+                                    .type            = AVMEDIA_TYPE_VIDEO,
+                                    .get_video_buffer= avfilter_null_get_video_buffer,
+                                    .start_frame     = avfilter_null_start_frame,
+                                    .draw_slice      = avfilter_null_draw_slice,
+                                    .end_frame       = avfilter_null_end_frame, },
                                   { .name = NULL}},
     .outputs   = (AVFilterPad[]) {{ .name            = "default",
-                                    .type            = CODEC_TYPE_VIDEO },
+                                    .type            = AVMEDIA_TYPE_VIDEO },
                                   { .name = NULL}},
 };
+#endif /* CONFIG_NOFORMAT_FILTER */
+