summaryrefslogtreecommitdiff
path: root/libavfilter
diff options
context:
space:
mode:
authorStefano Sabatini <stefano.sabatini-lala@poste.it>2011-08-30 23:22:29 +0200
committerStefano Sabatini <stefano.sabatini-lala@poste.it>2011-09-12 18:51:18 +0200
commit2c0317419bc8c7f28496d5181d951bbe8837071f (patch)
tree298c7e36f9de0f5c212a50b0dfac09d92be30087 /libavfilter
parent47886e3644f94edb7bb78500da72975a9d7d2458 (diff)
lavfi: simplify signature for avfilter_get_audio_buffer() and friends
The additional parameters were never used and are complicating the function interface. Also, they were inconsistent with the way the video API works. So this assumes that a requested samples buffer will have *always* the format specified in the requested link. This breaks audio filtering API and ABI.
Diffstat (limited to 'libavfilter')
-rw-r--r--libavfilter/af_aresample.c5
-rw-r--r--libavfilter/avfilter.c14
-rw-r--r--libavfilter/avfilter.h17
-rw-r--r--libavfilter/defaults.c25
-rw-r--r--libavfilter/src_movie.c4
5 files changed, 23 insertions, 42 deletions
diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index 31e1b5a4e3..fa26788254 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
@@ -270,10 +270,7 @@ static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamplesref
aresample->outsamplesref = avfilter_get_audio_buffer(outlink,
AV_PERM_WRITE | AV_PERM_REUSE2,
- inlink->format,
- requested_out_nb_samples,
- insamplesref->audio->channel_layout,
- insamplesref->audio->planar);
+ requested_out_nb_samples);
avfilter_copy_buffer_ref_props(aresample->outsamplesref, insamplesref);
aresample->outsamplesref->pts =
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index d73698681e..348015086b 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -447,17 +447,16 @@ fail:
return NULL;
}
-AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int nb_samples,
- int64_t channel_layout, int planar)
+AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link,
+ int perms, int nb_samples)
{
AVFilterBufferRef *ret = NULL;
if (link->dstpad->get_audio_buffer)
- ret = link->dstpad->get_audio_buffer(link, perms, sample_fmt, nb_samples, channel_layout, planar);
+ ret = link->dstpad->get_audio_buffer(link, perms, nb_samples);
if (!ret)
- ret = avfilter_default_get_audio_buffer(link, perms, sample_fmt, nb_samples, channel_layout, planar);
+ ret = avfilter_default_get_audio_buffer(link, perms, nb_samples);
if (ret)
ret->type = AVMEDIA_TYPE_AUDIO;
@@ -664,10 +663,7 @@ void avfilter_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref)
samplesref->perms, link->dstpad->min_perms, link->dstpad->rej_perms);
link->cur_buf = avfilter_default_get_audio_buffer(link, dst->min_perms,
- samplesref->format,
- samplesref->audio->nb_samples,
- samplesref->audio->channel_layout,
- samplesref->audio->planar);
+ samplesref->audio->nb_samples);
link->cur_buf->pts = samplesref->pts;
link->cur_buf->audio->sample_rate = samplesref->audio->sample_rate;
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index b0811acaf6..51f1a6b1e0 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -390,9 +390,7 @@ struct AVFilterPad {
*
* Input audio pads only.
*/
- AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int nb_samples,
- int64_t channel_layout, int planar);
+ AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms, int nb_samples);
/**
* Callback called after the slices of a frame are completely sent. If
@@ -476,9 +474,8 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
int perms, int w, int h);
/** default handler for get_audio_buffer() for audio inputs */
-AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int nb_samples,
- int64_t channel_layout, int planar);
+AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link,
+ int perms, int nb_samples);
/**
* Helpers for query_formats() which set all links to the same list of
@@ -510,9 +507,8 @@ AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link,
int perms, int w, int h);
/** get_audio_buffer() handler for filters which simply pass audio along */
-AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int size,
- int64_t channel_layout, int planar);
+AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link,
+ int perms, int nb_samples);
/**
* Filter definition. This defines the pads a filter contains, and all the
@@ -739,8 +735,7 @@ avfilter_get_video_buffer_ref_from_arrays(uint8_t * const data[4], const int lin
* avfilter_unref_buffer when you are finished with it.
*/
AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int nb_samples,
- int64_t channel_layout, int planar);
+ int nb_samples);
/**
* Create an audio buffer reference wrapped around an already
diff --git a/libavfilter/defaults.c b/libavfilter/defaults.c
index 503036dafc..c231f75d85 100644
--- a/libavfilter/defaults.c
+++ b/libavfilter/defaults.c
@@ -81,24 +81,23 @@ AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int per
}
AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int nb_samples,
- int64_t channel_layout, int planar)
+ int nb_samples)
{
AVFilterBufferRef *samplesref = NULL;
int linesize[8];
uint8_t *data[8];
- int nb_channels = av_get_channel_layout_nb_channels(channel_layout);
+ int nb_channels = av_get_channel_layout_nb_channels(link->channel_layout);
/* Calculate total buffer size, round to multiple of 16 to be SIMD friendly */
if (av_samples_alloc(data, linesize,
- nb_channels, nb_samples, sample_fmt,
- planar, 16) < 0)
+ nb_channels, nb_samples, link->format,
+ link->planar, 16) < 0)
return NULL;
samplesref =
avfilter_get_audio_buffer_ref_from_arrays(data, linesize, perms,
- nb_samples, sample_fmt,
- channel_layout, planar);
+ nb_samples, link->format,
+ link->channel_layout, link->planar);
if (!samplesref) {
av_free(data[0]);
return NULL;
@@ -160,10 +159,8 @@ void avfilter_default_filter_samples(AVFilterLink *inlink, AVFilterBufferRef *sa
outlink = inlink->dst->outputs[0];
if (outlink) {
- outlink->out_buf = avfilter_default_get_audio_buffer(inlink, AV_PERM_WRITE, samplesref->format,
- samplesref->audio->nb_samples,
- samplesref->audio->channel_layout,
- samplesref->audio->planar);
+ outlink->out_buf = avfilter_default_get_audio_buffer(inlink, AV_PERM_WRITE,
+ samplesref->audio->nb_samples);
outlink->out_buf->pts = samplesref->pts;
outlink->out_buf->audio->sample_rate = samplesref->audio->sample_rate;
avfilter_filter_samples(outlink, avfilter_ref_buffer(outlink->out_buf, ~0));
@@ -259,10 +256,8 @@ AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms,
}
AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, int perms,
- enum AVSampleFormat sample_fmt, int size,
- int64_t channel_layout, int packed)
+ int nb_samples)
{
- return avfilter_get_audio_buffer(link->dst->outputs[0], perms, sample_fmt,
- size, channel_layout, packed);
+ return avfilter_get_audio_buffer(link->dst->outputs[0], perms, nb_samples);
}
diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index c266654536..a90e738a7d 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -424,9 +424,7 @@ static int amovie_get_samples(AVFilterLink *outlink)
if (decoded_data_size > 0) {
int nb_samples = decoded_data_size / movie->bps / movie->codec_ctx->channels;
movie->samplesref =
- avfilter_get_audio_buffer(outlink, AV_PERM_WRITE,
- movie->codec_ctx->sample_fmt, nb_samples,
- movie->codec_ctx->channel_layout, 0);
+ avfilter_get_audio_buffer(outlink, AV_PERM_WRITE, nb_samples);
memcpy(movie->samplesref->data[0], movie->samples_buf, decoded_data_size);
movie->samplesref->pts = movie->pkt.pts;
movie->samplesref->pos = movie->pkt.pos;