Paul B Mahol
6e9e14e62e
avfilter/split: use av_asprintf()
5 years ago
Paul B Mahol
242f7bf202
avfilter/split: use ff_outlink_get_status()
6 years ago
Paul B Mahol
5e706a2afb
avfilter/split: check ff_insert_outpad() for failure
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 years ago
Nicolas George
02aa0701ae
lavfi: make filter_frame non-recursive.
...
A lot of changes happen at the same time:
- Add a framequeue fifo to AVFilterLink.
- split AVFilterLink.status into status_in and status_out: requires
changes to the few filters and programs that use it directly
(f_interleave, split, filtfmts).
- Add a field ready to AVFilterContext, marking when the filter is ready
and its activation priority.
- Add flags to mark blocked links.
- Change ff_filter_frame() to enqueue the frame.
- Change all filtering functions to update the ready field and the
blocked flags.
- Update ff_filter_graph_run_once() to use the ready field.
- buffersrc: always push the frame immediately.
8 years ago
Marton Balint
7ceb9e6b11
avfilter/formats: allow unknown channel layouts by default
...
Since the default in the libav fork is to only allow known layouts, making
unknown layouts allowed by default here can be a security risk for filters
directly merged from libav. However, usually it is simple to detect such cases,
use of av_get_channel_layout_nb_channels is a good indicator, so I suggest we
change this regardless.
See http://ffmpeg.org/pipermail/ffmpeg-devel/2016-November/203204.html .
This patch indirectly adds unknown channel layout support for filters where
query_formats is not specified:
abench
afifo
ainterleave
anullsink
apad
aperms
arealtime
aselect
asendcmd
asetnsamples
asetpts
asettb
ashowinfo
azmq
It introduces a query_formats callback for the asyncts filter, which only
supports known channel layouts since it is using libavresample.
And it removes .query_formats callback from filters where it was only there to
support unknown layouts, as this is now the default:
aloop
ametadata
anull
asidedata
asplit
atrim
Acked-by: Nicolas George <george@nsup.org>
Signed-off-by: Marton Balint <cus@passwd.hu>
8 years ago
Michael Niedermayer
7b7c338e9a
avfilter: Add AV_OPT_FLAG_FILTERING_PARAM to where it was missing
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
9 years ago
Paul B Mahol
b1fe794033
avfilter/split: support any channel count for asplit filter
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
9 years ago
Nicolas George
108b4de552
lavfi: replace link.closed by link.status.
...
The status field can carry any error code instead of just EOF.
Also only update it through a wrapper function and provide a timestamp.
Update the few filters that used it directly.
9 years ago
Paul B Mahol
145a84717b
lavfi: check av_strdup() return value
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
10 years ago
Anton Khirnov
cd43ca0443
lavfi: do not export the filters from shared objects
11 years ago
Paul B Mahol
b211607b5c
avfilter: various cosmetics
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
11 years ago
Paul B Mahol
b077d8d908
avfilter: remove redundant .get_(audio/video)_buffer initializations
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
11 years ago
Diego Biurrun
093804a93c
avfilter: Add av_cold attributes to init/uninit functions
12 years ago
Anton Khirnov
1012155722
vf_split: fix description
...
It now allows an arbitrary number of inputs, not just two.
12 years ago
Stefano Sabatini
ba32afd70e
lavfi/split: use AVFILTER_DEFINE_CLASS to define class
12 years ago
Stefano Sabatini
3453b0196f
lavfi/split: fix minor documentation issues
...
Use verbal form to describe "outputs" options, and mention it in the
manual.
12 years ago
Anton Khirnov
d69a4177b9
lavfi: remove now unused args parameter from AVFilter.init
...
Conflicts:
libavfilter/avfilter.c
libavfilter/vf_drawtext.c
libavfilter/vf_lut.c
libavfilter/vf_select.c
libavfilter/vf_setpts.c
libavfilter/vsrc_color.c
libavfilter/vsrc_movie.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Anton Khirnov
7cdd737ba8
lavfi: mark filters with dynamic number of inputs or outputs with special flags
...
This will be useful in avtools in the following commits.
Any other caller might also want to know this information.
12 years ago
Anton Khirnov
c43a7ecad9
lavfi: remove now unused args parameter from AVFilter.init
12 years ago
Anton Khirnov
73d5d405d4
split: switch to an AVOptions-based system.
12 years ago
Clément Bœsch
96e4b00d62
lavfi: remove remaining forgotten min/rej perms.
12 years ago
Anton Khirnov
7e350379f8
lavfi: switch to AVFrame.
...
Deprecate AVFilterBuffer/AVFilterBufferRef and everything related to it
and use AVFrame instead.
12 years ago
Anton Khirnov
69d4420aea
libavfilter/split: switch to filter_frame
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Michael Niedermayer
cd7febd33f
lavfi: replace filter_samples by filter_frame
...
Based on patch by Anton Khirnov
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
12 years ago
Anton Khirnov
565e4993c6
lavfi: merge start_frame/draw_slice/end_frame
...
Any alleged performance benefits gained from the split are purely
mythological and do not justify added code complexity.
12 years ago
Mans Rullgard
568c70e79e
lavfi: convert input/ouput list compound literals to named objects
...
A number of compilers, for example those from TI and IBM, choke on
these initialisers. The current style is also quite ugly.
Signed-off-by: Mans Rullgard <mans@mansr.com>
12 years ago
Mans Rullgard
1fce361d70
lavfi: replace empty input/output lists with null pointers
...
Signed-off-by: Mans Rullgard <mans@mansr.com>
12 years ago
Nicolas George
a9cfe656d7
lavfi/split: handle closed outputs.
...
Return AVERROR_EOF if all outputs are closed.
13 years ago
Nicolas George
a34eb393fc
split: set rej_perms = AV_PERM_WRITE on outputs.
13 years ago
Martin Storsjö
1d9c2dc89a
Don't include common.h from avutil.h
...
Signed-off-by: Martin Storsjö <martin@martin.st>
13 years ago
Anton Khirnov
1dc4205018
lavfi: check all avfilter_ref_buffer() calls for errors.
13 years ago
Anton Khirnov
d4f89906e3
lavfi: add error handling to end_frame().
13 years ago
Anton Khirnov
e9b992d035
lavfi: add error handling to draw_slice().
13 years ago
Anton Khirnov
ebc8d97481
lavfi: add error handling to start_frame().
13 years ago
Ronald S. Bultje
3db407038e
lavfi: use const for AVFilterPad declarations in all filters.
13 years ago
Anton Khirnov
07bad27810
lavfi: unref AVFilterLink.cur_buf in ff_end_frame().
...
This reduces code duplication and prevents stale pointers from remaining
on the link.
13 years ago
Anton Khirnov
cd99146253
lavfi: add error handling to filter_samples().
13 years ago
Anton Khirnov
083d0f6be8
asplit: don't leak the input buffer.
13 years ago
Anton Khirnov
a5e8c41c28
lavfi: remove 'opaque' parameter from AVFilter.init()
...
It is not used in any filters currently and is inherently evil. If
passing binary data to filters is required in the future, it should be
done with some AVOptions-based system.
13 years ago
Stefano Sabatini
93bbe53c44
lavfi/asplit: fix memleak
...
The input samples buffer must be unreferenced after it is propagated to
the output links.
13 years ago
Stefano Sabatini
e20530add7
lavfi/split: give a more accurate description to split
...
The filter now supports a configurable number of outputs.
13 years ago
Anton Khirnov
9baeff9506
lavfi: replace AVFilterContext.input/output_count with nb_inputs/outputs
...
This is more consistent with naming in the rest of Libav.
13 years ago
Anton Khirnov
803391f719
lavfi: remove request/poll and drawing functions from public API on next bump
...
They are only useful inside filters and we don't allow user filters for
now.
13 years ago
Anton Khirnov
fa417fcd27
lavfi: make avfilter_insert_pad and pals private on next bump.
...
They are only useful inside filters and we don't allow user filters for
now.
13 years ago
Anton Khirnov
c04c533f62
lavfi: remove avfilter_null_* from public API on next bump.
...
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.
13 years ago
Justin Ruggles
afeb3590fc
lavfi: add an audio split filter
...
Based on current version of the asplit filter in FFmpeg written by
Stefano Sabatini and others.
13 years ago
Justin Ruggles
cc30080b3f
lavfi: rename vf_split.c to split.c
...
This is in preparation for adding an audio split filter.
13 years ago
Stefano Sabatini
0e82d317eb
lavfi: rename vf_split.c -> f_split.c
...
The file now contains both an audio and a video split filter.
13 years ago
Stefano Sabatini
150227e8ed
lavfi/asplit: move asplit code to vf_split.c, and make it support N outputs
...
The move allows to share the init code already used by split.
13 years ago
Anton Khirnov
fd18ee0ff6
vf_split: support user-specifiable number of outputs.
13 years ago