History

avfilter: add acopy filter

Paul B Mahol committed 9 years ago

Commit eaf644e1 parent 6899e6e4 files · +68 −1Browse files

Unified · Split

4 files
  1. doc/filters.texi +6 −1
  2. libavfilter/Makefile +1 −0
  3. libavfilter/af_acopy.c +60 −0
  4. libavfilter/allfilters.c +1 −0
doc/filters.texi+6−1
@@ -395,6 +395,11 @@ How much to use compressed signal in output. Default is 1. · 394 unmodified lines
395Range is between 0 and 1.395Range is between 0 and 1.
396@end table396@end table
397 397
398@section acopy
399
400Copy the input audio source unchanged to the output. This is mainly useful for
401testing purposes.
402
398@section acrossfade403@section acrossfade
399 404
400Apply cross fade from one input audio stream to another input audio stream.405Apply cross fade from one input audio stream to another input audio stream.
@@ -5665,7 +5670,7 @@ convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 - · 5264 unmodified lines
5665 5670
5666@section copy5671@section copy
5667 5672
5668Copy the input source unchanged to the output. This is mainly useful for5673Copy the input video source unchanged to the output. This is mainly useful for
5669testing purposes.5674testing purposes.
5670 5675
5671@anchor{coreimage}5676@anchor{coreimage}
libavfilter/Makefile+1−0
@@ -29,6 +29,7 @@ OBJS-$(HAVE_THREADS) += pthread.o · 28 unmodified lines
29# audio filters29# audio filters
30OBJS-$(CONFIG_ABENCH_FILTER) += f_bench.o30OBJS-$(CONFIG_ABENCH_FILTER) += f_bench.o
31OBJS-$(CONFIG_ACOMPRESSOR_FILTER) += af_sidechaincompress.o31OBJS-$(CONFIG_ACOMPRESSOR_FILTER) += af_sidechaincompress.o
32OBJS-$(CONFIG_ACOPY_FILTER) += af_acopy.o
32OBJS-$(CONFIG_ACROSSFADE_FILTER) += af_afade.o33OBJS-$(CONFIG_ACROSSFADE_FILTER) += af_afade.o
33OBJS-$(CONFIG_ACRUSHER_FILTER) += af_acrusher.o34OBJS-$(CONFIG_ACRUSHER_FILTER) += af_acrusher.o
34OBJS-$(CONFIG_ADELAY_FILTER) += af_adelay.o35OBJS-$(CONFIG_ADELAY_FILTER) += af_adelay.o
libavfilter/af_acopy.c+60−0
@@ -0,0 +1,60 @@
1/*
2 * This file is part of FFmpeg.
3 *
4 * FFmpeg is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * FFmpeg is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with FFmpeg; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19#include "audio.h"
20#include "avfilter.h"
21#include "internal.h"
22
23static int filter_frame(AVFilterLink *inlink, AVFrame *in)
24{
25 AVFilterLink *outlink = inlink->dst->outputs[0];
26 AVFrame *out = ff_get_audio_buffer(outlink, in->nb_samples);
27
28 if (!out) {
29 av_frame_free(&in);
30 return AVERROR(ENOMEM);
31 }
32 av_frame_copy_props(out, in);
33 av_frame_copy(out, in);
34 av_frame_free(&in);
35 return ff_filter_frame(outlink, out);
36}
37
38static const AVFilterPad acopy_inputs[] = {
39 {
40 .name = "default",
41 .type = AVMEDIA_TYPE_AUDIO,
42 .filter_frame = filter_frame,
43 },
44 { NULL }
45};
46
47static const AVFilterPad acopy_outputs[] = {
48 {
49 .name = "default",
50 .type = AVMEDIA_TYPE_AUDIO,
51 },
52 { NULL }
53};
54
55AVFilter ff_af_acopy = {
56 .name = "acopy",
57 .description = NULL_IF_CONFIG_SMALL("Copy the input audio unchanged to the output."),
58 .inputs = acopy_inputs,
59 .outputs = acopy_outputs,
60};
libavfilter/allfilters.c+1−0
@@ -42,6 +42,7 @@ static void register_all(void) · 41 unmodified lines
42{42{
43 REGISTER_FILTER(ABENCH, abench, af);43 REGISTER_FILTER(ABENCH, abench, af);
44 REGISTER_FILTER(ACOMPRESSOR, acompressor, af);44 REGISTER_FILTER(ACOMPRESSOR, acompressor, af);
45 REGISTER_FILTER(ACOPY, acopy, af);
45 REGISTER_FILTER(ACROSSFADE, acrossfade, af);46 REGISTER_FILTER(ACROSSFADE, acrossfade, af);
46 REGISTER_FILTER(ACRUSHER, acrusher, af);47 REGISTER_FILTER(ACRUSHER, acrusher, af);
47 REGISTER_FILTER(ADELAY, adelay, af);48 REGISTER_FILTER(ADELAY, adelay, af);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t