diff options
Diffstat (limited to 'libavfilter/af_volume.c')
-rw-r--r-- | libavfilter/af_volume.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c index 8e2e37e730..50f3cbd002 100644 --- a/libavfilter/af_volume.c +++ b/libavfilter/af_volume.c @@ -28,6 +28,7 @@ #include "libavutil/eval.h" #include "audio.h" #include "avfilter.h" +#include "formats.h" typedef struct { double volume; @@ -81,6 +82,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) static int query_formats(AVFilterContext *ctx) { AVFilterFormats *formats = NULL; + AVFilterChannelLayouts *layouts; enum AVSampleFormat sample_fmts[] = { AV_SAMPLE_FMT_U8, AV_SAMPLE_FMT_S16, @@ -91,10 +93,10 @@ static int query_formats(AVFilterContext *ctx) }; int packing_fmts[] = { AVFILTER_PACKED, -1 }; - formats = avfilter_make_all_channel_layouts(); - if (!formats) + layouts = ff_all_channel_layouts(); + if (!layouts) return AVERROR(ENOMEM); - avfilter_set_common_channel_layouts(ctx, formats); + ff_set_common_channel_layouts(ctx, layouts); formats = avfilter_make_format_list(sample_fmts); if (!formats) @@ -106,6 +108,11 @@ static int query_formats(AVFilterContext *ctx) return AVERROR(ENOMEM); avfilter_set_common_packing_formats(ctx, formats); + formats = ff_all_samplerates(); + if (!formats) + return AVERROR(ENOMEM); + ff_set_common_samplerates(ctx, formats); + return 0; } |