mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-04-18 21:17:07 +00:00
lavfi/abuffersink: add sample_rates field to AVABufferSinkParams
Allow to select sample rates.
This commit is contained in:
parent
5085b46496
commit
b59cd089ff
@ -15,6 +15,9 @@ libavutil: 2012-10-22
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2013-02-24 - xxxxxx - lavfi 3.41.100 - buffersink.h
|
||||||
|
Add sample_rates field to AVABufferSinkParams.
|
||||||
|
|
||||||
2013-01-17 - a1a707f - lavf 54.61.100
|
2013-01-17 - a1a707f - lavf 54.61.100
|
||||||
Add av_codec_get_tag2().
|
Add av_codec_get_tag2().
|
||||||
|
|
||||||
|
@ -48,6 +48,7 @@ typedef struct {
|
|||||||
const int64_t *channel_layouts; ///< list of allowed channel layouts, terminated by -1
|
const int64_t *channel_layouts; ///< list of allowed channel layouts, terminated by -1
|
||||||
const int *channel_counts; ///< list of allowed channel counts, terminated by -1
|
const int *channel_counts; ///< list of allowed channel counts, terminated by -1
|
||||||
int all_channel_counts; ///< if not 0, accept any channel count or layout
|
int all_channel_counts; ///< if not 0, accept any channel count or layout
|
||||||
|
int *sample_rates; ///< list of allowed sample rates, terminated by -1
|
||||||
} AVABufferSinkParams;
|
} AVABufferSinkParams;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,6 +62,7 @@ typedef struct {
|
|||||||
enum AVSampleFormat *sample_fmts; ///< list of accepted sample formats, terminated by AV_SAMPLE_FMT_NONE
|
enum AVSampleFormat *sample_fmts; ///< list of accepted sample formats, terminated by AV_SAMPLE_FMT_NONE
|
||||||
int64_t *channel_layouts; ///< list of accepted channel layouts, terminated by -1
|
int64_t *channel_layouts; ///< list of accepted channel layouts, terminated by -1
|
||||||
int all_channel_counts;
|
int all_channel_counts;
|
||||||
|
int *sample_rates; ///< list of accepted sample rates, terminated by -1
|
||||||
} BufferSinkContext;
|
} BufferSinkContext;
|
||||||
|
|
||||||
#define FIFO_INIT_SIZE 8
|
#define FIFO_INIT_SIZE 8
|
||||||
@ -303,6 +304,11 @@ static av_cold int asink_init(AVFilterContext *ctx, const char *args, void *opaq
|
|||||||
if (!buf->sample_fmts)
|
if (!buf->sample_fmts)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
}
|
}
|
||||||
|
if (params && params->sample_rates) {
|
||||||
|
buf->sample_rates = ff_copy_int_list(params->sample_rates);
|
||||||
|
if (!buf->sample_rates)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
}
|
||||||
if (params && (params->channel_layouts || params->channel_counts)) {
|
if (params && (params->channel_layouts || params->channel_counts)) {
|
||||||
if (params->all_channel_counts) {
|
if (params->all_channel_counts) {
|
||||||
av_log(ctx, AV_LOG_ERROR,
|
av_log(ctx, AV_LOG_ERROR,
|
||||||
@ -324,6 +330,7 @@ static av_cold void asink_uninit(AVFilterContext *ctx)
|
|||||||
BufferSinkContext *buf = ctx->priv;
|
BufferSinkContext *buf = ctx->priv;
|
||||||
|
|
||||||
av_freep(&buf->sample_fmts);
|
av_freep(&buf->sample_fmts);
|
||||||
|
av_freep(&buf->sample_rates);
|
||||||
av_freep(&buf->channel_layouts);
|
av_freep(&buf->channel_layouts);
|
||||||
common_uninit(ctx);
|
common_uninit(ctx);
|
||||||
}
|
}
|
||||||
@ -348,6 +355,13 @@ static int asink_query_formats(AVFilterContext *ctx)
|
|||||||
ff_set_common_channel_layouts(ctx, layouts);
|
ff_set_common_channel_layouts(ctx, layouts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (buf->sample_rates) {
|
||||||
|
formats = ff_make_format_list(buf->sample_rates);
|
||||||
|
if (!formats)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
ff_set_common_samplerates(ctx, formats);
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#include "libavutil/avutil.h"
|
#include "libavutil/avutil.h"
|
||||||
|
|
||||||
#define LIBAVFILTER_VERSION_MAJOR 3
|
#define LIBAVFILTER_VERSION_MAJOR 3
|
||||||
#define LIBAVFILTER_VERSION_MINOR 40
|
#define LIBAVFILTER_VERSION_MINOR 41
|
||||||
#define LIBAVFILTER_VERSION_MICRO 100
|
#define LIBAVFILTER_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
||||||
|
Loading…
Reference in New Issue
Block a user