summaryrefslogtreecommitdiff
path: root/libavfilter/af_asetnsamples.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter/af_asetnsamples.c')
-rw-r--r--libavfilter/af_asetnsamples.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/libavfilter/af_asetnsamples.c b/libavfilter/af_asetnsamples.c
index ee80c1c1db..f995ce98db 100644
--- a/libavfilter/af_asetnsamples.c
+++ b/libavfilter/af_asetnsamples.c
@@ -93,7 +93,7 @@ static int config_props_output(AVFilterLink *outlink)
static int push_samples(AVFilterLink *outlink)
{
ASNSContext *asns = outlink->src->priv;
- AVFilterBufferRef *outsamples = NULL;
+ AVFrame *outsamples = NULL;
int nb_out_samples, nb_pad_samples;
if (asns->pad) {
@@ -107,7 +107,7 @@ static int push_samples(AVFilterLink *outlink)
if (!nb_out_samples)
return 0;
- outsamples = ff_get_audio_buffer(outlink, AV_PERM_WRITE, nb_out_samples);
+ outsamples = ff_get_audio_buffer(outlink, nb_out_samples);
av_assert0(outsamples);
av_audio_fifo_read(asns->fifo,
@@ -117,9 +117,9 @@ static int push_samples(AVFilterLink *outlink)
av_samples_set_silence(outsamples->extended_data, nb_out_samples - nb_pad_samples,
nb_pad_samples, av_get_channel_layout_nb_channels(outlink->channel_layout),
outlink->format);
- outsamples->audio->nb_samples = nb_out_samples;
- outsamples->audio->channel_layout = outlink->channel_layout;
- outsamples->audio->sample_rate = outlink->sample_rate;
+ outsamples->nb_samples = nb_out_samples;
+ outsamples->channel_layout = outlink->channel_layout;
+ outsamples->sample_rate = outlink->sample_rate;
outsamples->pts = asns->next_out_pts;
if (asns->next_out_pts != AV_NOPTS_VALUE)
@@ -130,13 +130,13 @@ static int push_samples(AVFilterLink *outlink)
return nb_out_samples;
}
-static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
+static int filter_frame(AVFilterLink *inlink, AVFrame *insamples)
{
AVFilterContext *ctx = inlink->dst;
ASNSContext *asns = ctx->priv;
AVFilterLink *outlink = ctx->outputs[0];
int ret;
- int nb_samples = insamples->audio->nb_samples;
+ int nb_samples = insamples->nb_samples;
if (av_audio_fifo_space(asns->fifo) < nb_samples) {
av_log(ctx, AV_LOG_DEBUG, "No space for %d samples, stretching audio fifo\n", nb_samples);
@@ -150,7 +150,7 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
av_audio_fifo_write(asns->fifo, (void **)insamples->extended_data, nb_samples);
if (asns->next_out_pts == AV_NOPTS_VALUE)
asns->next_out_pts = insamples->pts;
- avfilter_unref_buffer(insamples);
+ av_frame_free(&insamples);
while (av_audio_fifo_size(asns->fifo) >= asns->nb_out_samples)
push_samples(outlink);
@@ -177,10 +177,10 @@ static int request_frame(AVFilterLink *outlink)
static const AVFilterPad asetnsamples_inputs[] = {
{
- .name = "default",
- .type = AVMEDIA_TYPE_AUDIO,
- .filter_frame = filter_frame,
- .min_perms = AV_PERM_READ | AV_PERM_WRITE,
+ .name = "default",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .filter_frame = filter_frame,
+ .needs_writable = 1,
},
{ NULL }
};