| Commit message (Collapse) | Author | Age |
... | |
| |
| |
| |
| | |
Deprecated in 04/2013.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '52067b3c0e5ddbcf7021a093420798420351a9e2':
lavfi: Drop deprecated filter initialization
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Deprecated in 03/2013.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'c5c7cfd5e80d4c36568c01cc40abfde341657ad9':
lavfi: Drop deprecated functions to open a filter or a filterchain
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Deprecated in 03/2013.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '88fd836a015a5f3380df74592e440e7d1e5b8000':
lavfi: Drop deprecated way of passing options for a few filters
Merged-by: James Almer <jamrial@gmail.com>
|
| |
| |
| |
| | |
Deprecated in 02/2013.
|
| |
| |
| |
| |
| |
| | |
timebases.
Signed-off-by: Sasi Inguva <isasi@google.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Use the earliest input with the same status.
If that fails, print a warning and use the earliest source.
With this change, simple filter forward correctly the timestamp
of EOF.
Filters that are supposed to change it should be updated to
actually forward it.
|
| |
| |
| |
| |
| | |
The child objects must be allocated and inited in the
preinit() callback.
|
| |
| |
| |
| |
| | |
It is necessary for filters with child objects, to set the class
and default options values.
|
| |
| |
| |
| |
| | |
I am not entirely sure that this return code is useful,
but having and using it makes no harm.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Modifying data pointer when skipping samples may make it unaligned.
Workaround for Ticket6349.
This should fix the crash of ticket's testcase and a crash/regression
with avxsynth (reported by Michael Niedermayer).
Also change frame->nb_samples < max to frame->nb_samples <= max.
This improves performance. Benchmark:
./ffmpeg -filter_complex "aevalsrc=0:n=1166,firequalizer=fixed=on" -f null null
old:
25767 decicycles in take_samples, 1023 runs, 1 skips
25422 decicycles in take_samples, 2047 runs, 1 skips
25181 decicycles in take_samples, 4095 runs, 1 skips
24904 decicycles in take_samples, 8191 runs, 1 skips
new:
550 decicycles in take_samples, 1024 runs, 0 skips
548 decicycles in take_samples, 2048 runs, 0 skips
545 decicycles in take_samples, 4096 runs, 0 skips
544 decicycles in take_samples, 8192 runs, 0 skips
Reviewed-by: Nicolas George <george@nsup.org>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
|
| |
| |
| |
| |
| | |
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'e3fb74f7f9a8f1895381355f40c92cac3c1023d9':
lavfi: Always propagate hw_frames_ctx through links
Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Also adds a new flag to mark filters which are aware of hwframes and
will perform this task themselves, and marks all appropriate filters
with this flag.
This is required to allow software-mapped hardware frames to work,
because we need to have the frames context available for any later
mapping operation in the filter graph.
The output from the filter graph should only propagate further to an
encoder if the hardware format actually matches the visible format
(mapped frames are valid here and have an hw_frames_ctx, but this
should not be given to the encoder as its hardware context).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instead of just updating statistics and leaving the work to the
call site, have it actually do the work.
Also: skip the samples by updating the frame data pointers
instead of moving the samples. More efficient and avoid writing
into shared frames.
Found-By: Muhammad Faiz <mfcc64@gmail.com>
|
| | |
|
| |
| |
| |
| |
| | |
ff_request_frame_to_filter() and ff_filter_frame_to_filter()
are only used in avfilter.c.
|
| |
| |
| |
| |
| | |
Having two different functions allows to have stricter tests
and detect errors earlier.
|
| | |
|
| |
| |
| |
| |
| |
| | |
It does not change anything for the existing filters and makes
better code fatrorization when future code will use the utility
functions.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Unlike av_frame_is_writable(), it uses the link's alloc callback,
making direct rendering possible.
The code comes from ff_filter_frame_framed(), moved with mostly
trivial changes.
|
| | |
|
| |
| |
| |
| |
| | |
Also introduce libavfilter/filters.h for all functions needed
to implement filters.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| | |
filters needing writable frames
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
AVFilterLink.frame_count is supposed to count the number of frames
that were passed on the link, but with min_samples, that number is
not always the same for the source and destination filters.
With the addition of a FIFO on the link, the difference will become
more significant.
Split the variable in two: frame_count_in counts the number of
frames that entered the link, frame_count_out counts the number
of frames that were sent to the destination filter.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '5b63b15663d31f50ce45d980b904a68795ad3f7a':
lavfi: set the link hwframes context before configuring the dst input
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
|
| |
| |
| |
| |
| | |
The destination filter might expect the hw frames context to be already
set (this is the case e.g. for hwdownload).
|
| | |
|
| |
| |
| |
| | |
To be used in following commits.
|
|\|
| |
| |
| |
| |
| |
| | |
* commit '07a844f32ebb78503981df017fa3ebfedb75fe1c':
lavfi: generic hardware surface upload and download filters
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
|
| |
| |
| |
| | |
Signed-off-by: Anton Khirnov <anton@khirnov.net>
|
|\|
| |
| |
| |
| |
| |
| | |
* commit 'b3dd30db0b2d857147fc0e1461a00bd6172a26a3':
lavfi: pass the hw frames context through the filter chain
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Instead of calling the input filter request_frame() method,
ff_request_frame() now marks the link and returns immediately.
buffersink is changed to activate the marked filters until
a frame is obtained.
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|