mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
lavfi: add asplit filter
This commit is contained in:
parent
ae21776207
commit
440e984b71
@ -10,6 +10,7 @@ version next:
|
||||
- dv: add timecode to metadata
|
||||
- thumbnail video filter
|
||||
- XML output in ffprobe
|
||||
- asplit audio filter
|
||||
|
||||
|
||||
version 0.9:
|
||||
|
@ -224,6 +224,19 @@ expressed in the form "[@var{c0} @var{c1} @var{c2} @var{c3} @var{c4} @var{c5}
|
||||
@var{c6} @var{c7}]"
|
||||
@end table
|
||||
|
||||
@section asplit
|
||||
|
||||
Pass on the input audio to two outputs. Both outputs are identical to
|
||||
the input audio.
|
||||
|
||||
For example:
|
||||
@example
|
||||
[in] asplit[out0], showaudio[out1]
|
||||
@end example
|
||||
|
||||
will create two separate outputs from the same input, one cropped and
|
||||
one padded.
|
||||
|
||||
@section earwax
|
||||
|
||||
Make audio easier to listen to on headphones.
|
||||
|
@ -29,6 +29,7 @@ OBJS-$(CONFIG_AFORMAT_FILTER) += af_aformat.o
|
||||
OBJS-$(CONFIG_ANULL_FILTER) += af_anull.o
|
||||
OBJS-$(CONFIG_ARESAMPLE_FILTER) += af_aresample.o
|
||||
OBJS-$(CONFIG_ASHOWINFO_FILTER) += af_ashowinfo.o
|
||||
OBJS-$(CONFIG_ASPLIT_FILTER) += af_asplit.o
|
||||
OBJS-$(CONFIG_EARWAX_FILTER) += af_earwax.o
|
||||
OBJS-$(CONFIG_PAN_FILTER) += af_pan.o
|
||||
OBJS-$(CONFIG_VOLUME_FILTER) += af_volume.o
|
||||
|
55
libavfilter/af_asplit.c
Normal file
55
libavfilter/af_asplit.c
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 2011 Stefano Sabatini
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* audio splitter
|
||||
*/
|
||||
|
||||
#include "avfilter.h"
|
||||
|
||||
static void filter_samples(AVFilterLink *inlink, AVFilterBufferRef *insamples)
|
||||
{
|
||||
avfilter_filter_samples(inlink->dst->outputs[0],
|
||||
avfilter_ref_buffer(insamples, ~AV_PERM_WRITE));
|
||||
avfilter_filter_samples(inlink->dst->outputs[1],
|
||||
avfilter_ref_buffer(insamples, ~AV_PERM_WRITE));
|
||||
avfilter_unref_buffer(insamples);
|
||||
}
|
||||
|
||||
AVFilter avfilter_af_asplit = {
|
||||
.name = "asplit",
|
||||
.description = NULL_IF_CONFIG_SMALL("Pass on the audio input to two outputs."),
|
||||
|
||||
.inputs = (const AVFilterPad[]) {
|
||||
{ .name = "default",
|
||||
.type = AVMEDIA_TYPE_AUDIO,
|
||||
.get_audio_buffer = avfilter_null_get_audio_buffer,
|
||||
.filter_samples = filter_samples, },
|
||||
{ .name = NULL}
|
||||
},
|
||||
.outputs = (const AVFilterPad[]) {
|
||||
{ .name = "output1",
|
||||
.type = AVMEDIA_TYPE_AUDIO, },
|
||||
{ .name = "output2",
|
||||
.type = AVMEDIA_TYPE_AUDIO, },
|
||||
{ .name = NULL}
|
||||
},
|
||||
};
|
@ -39,6 +39,7 @@ void avfilter_register_all(void)
|
||||
REGISTER_FILTER (ANULL, anull, af);
|
||||
REGISTER_FILTER (ARESAMPLE, aresample, af);
|
||||
REGISTER_FILTER (ASHOWINFO, ashowinfo, af);
|
||||
REGISTER_FILTER (ASPLIT, asplit, af);
|
||||
REGISTER_FILTER (EARWAX, earwax, af);
|
||||
REGISTER_FILTER (PAN, pan, af);
|
||||
REGISTER_FILTER (VOLUME, volume, af);
|
||||
|
@ -30,7 +30,7 @@
|
||||
#include "libavcodec/avcodec.h"
|
||||
|
||||
#define LIBAVFILTER_VERSION_MAJOR 2
|
||||
#define LIBAVFILTER_VERSION_MINOR 54
|
||||
#define LIBAVFILTER_VERSION_MINOR 55
|
||||
#define LIBAVFILTER_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user