From c9c7bc4493bc72254cfb826941cdaf56c9b110d6 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Wed, 29 May 2013 21:03:20 +0200 Subject: lavfi: switch ff_default_get_audio_buffer() to av_frame_get_buffer() This simplifies the code and avoids using libavcodec-specific avcodec_fill_audio_frame(). --- libavfilter/audio.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) (limited to 'libavfilter/audio.c') diff --git a/libavfilter/audio.c b/libavfilter/audio.c index 5295423e44..b332e9e43c 100644 --- a/libavfilter/audio.c +++ b/libavfilter/audio.c @@ -32,40 +32,26 @@ AVFrame *ff_default_get_audio_buffer(AVFilterLink *link, int nb_samples) { AVFrame *frame = av_frame_alloc(); int channels = av_get_channel_layout_nb_channels(link->channel_layout); - int buf_size, ret; + int ret; if (!frame) return NULL; - buf_size = av_samples_get_buffer_size(NULL, channels, nb_samples, - link->format, 0); - if (buf_size < 0) - goto fail; - - frame->buf[0] = av_buffer_alloc(buf_size); - if (!frame->buf[0]) - goto fail; - - frame->nb_samples = nb_samples; - ret = avcodec_fill_audio_frame(frame, channels, link->format, - frame->buf[0]->data, buf_size, 0); - if (ret < 0) - goto fail; - - av_samples_set_silence(frame->extended_data, 0, nb_samples, channels, - link->format); - frame->nb_samples = nb_samples; frame->format = link->format; frame->channel_layout = link->channel_layout; frame->sample_rate = link->sample_rate; + ret = av_frame_get_buffer(frame, 0); + if (ret < 0) { + av_frame_free(&frame); + return NULL; + } - return frame; + av_samples_set_silence(frame->extended_data, 0, nb_samples, channels, + link->format); -fail: - av_buffer_unref(&frame->buf[0]); - av_frame_free(&frame); - return NULL; + + return frame; } AVFrame *ff_get_audio_buffer(AVFilterLink *link, int nb_samples) -- cgit v1.2.3