Nicolas George
aaae459a85
lavfi: reindent after previous commit.
2017-01-12 14:06:16 +01:00
Nicolas George
c619a4e525
lavfi: make two functions static.
...
ff_request_frame_to_filter() and ff_filter_frame_to_filter()
are only used in avfilter.c.
2017-01-12 14:06:16 +01:00
Nicolas George
ae4650f0b9
lavfi: disallow ff_request_frame for filters using activate.
...
Having two different functions allows to have stricter tests
and detect errors earlier.
2017-01-12 14:06:16 +01:00
Nicolas George
9eb4c79afd
lavfi: add ff_inlink_request_frame().
2017-01-12 14:06:16 +01:00
Nicolas George
d3cb140433
lavfi: move ff_update_link_current_pts() into the utility functions.
...
It does not change anything for the existing filters and makes
better code fatrorization when future code will use the utility
functions.
2017-01-12 14:06:16 +01:00
Nicolas George
7910127a8e
lavfi: cosmetic: remove forward declaration.
2017-01-12 14:06:16 +01:00
Nicolas George
3ff01feda3
lavfi: add AVFilter.activate.
2017-01-12 14:06:16 +01:00
Nicolas George
db4a71c0ff
lavfi: use the consume helpers in ff_filter_frame_to_filter().
2017-01-12 14:06:16 +01:00
Nicolas George
d360ddf03b
lavfi: add helpers to consume frames from link FIFOs.
2017-01-12 14:06:16 +01:00
Nicolas George
2e5af443c3
lavfi: pass min explicitly to samples_ready().
2017-01-12 14:06:16 +01:00
Nicolas George
e7e4c8dfbe
lavfi: add ff_inlink_evaluate_timeline_at_frame().
2017-01-12 14:06:16 +01:00
Nicolas George
0e3d2496e2
lavfi: add ff_inlink_process_commands().
2017-01-12 14:06:16 +01:00
Nicolas George
846f142134
lavfi: merge two variables after a recent commit.
2017-01-12 14:06:16 +01:00
Nicolas George
28c62df672
lavfi: implement ff_inlink_make_frame_writable().
...
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.
2017-01-12 14:06:16 +01:00
Nicolas George
918891e146
lavfi: export ff_filter_set_ready() to the library.
2017-01-12 14:06:16 +01:00
Nicolas George
4c24f3ac16
lavfi: add ff_inlink_acknowledge_status().
...
Also introduce libavfilter/filters.h for all functions needed
to implement filters.
2017-01-12 14:06:16 +01:00
Matthieu Bouron
b1f68f00b1
lavfi/framepool: rename FFVideoFramePool to FFFramePool
2017-01-12 10:22:52 +01:00
Nicolas George
ff8b17c998
lavfi: take_samples: free frames after taking all samples.
2016-12-22 10:35:48 +01:00
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.
2016-12-18 10:38:52 +01:00
Marton Balint
265d45183b
avfilter/avfilter: fix filtering frames with unknown channel layouts for filters needing writable frames
...
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2016-12-13 09:57:10 +01:00
Nicolas George
183ce55b0d
lavfi: split frame_count between input and output.
...
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.
2016-11-13 10:41:16 +01:00
Hendrik Leppkes
adfcf16f76
Merge commit '5b63b15663d31f50ce45d980b904a68795ad3f7a'
...
* commit '5b63b15663d31f50ce45d980b904a68795ad3f7a':
lavfi: set the link hwframes context before configuring the dst input
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2016-10-07 13:29:11 +02:00
Paul B Mahol
5b1907142d
avfilter: add ff_filter_get_nb_threads()
2016-08-29 16:27:09 +02:00
Paul B Mahol
449339084f
avfilter: add nb_threads to AVFilterContext
...
To be used in following commits.
2016-08-29 16:27:09 +02:00
Anton Khirnov
5b63b15663
lavfi: set the link hwframes context before configuring the dst input
...
The destination filter might expect the hw frames context to be already
set (this is the case e.g. for hwdownload).
2016-06-25 11:11:46 +02:00
Derek Buitenhuis
8688d3af39
Merge commit '07a844f32ebb78503981df017fa3ebfedb75fe1c'
...
* commit '07a844f32ebb78503981df017fa3ebfedb75fe1c':
lavfi: generic hardware surface upload and download filters
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-14 13:59:45 +01:00
Mark Thompson
07a844f32e
lavfi: generic hardware surface upload and download filters
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2016-03-19 15:41:04 +01:00
Derek Buitenhuis
10424024a1
Merge commit 'b3dd30db0b2d857147fc0e1461a00bd6172a26a3'
...
* commit 'b3dd30db0b2d857147fc0e1461a00bd6172a26a3':
lavfi: pass the hw frames context through the filter chain
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-02-24 16:03:57 +00:00
Anton Khirnov
b3dd30db0b
lavfi: pass the hw frames context through the filter chain
2016-02-14 22:21:00 +01:00
Nicolas George
1655788712
lavfi: make request_frame() non-recursive.
...
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.
2015-12-22 16:04:30 +01:00
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.
2015-12-22 16:04:30 +01:00
Nicolas George
b8b7d5ac6c
lavfi: add link.current_pts field.
2015-12-22 15:55:00 +01:00
Nicolas George
d03eab34dd
lavfi: rename link.current_pts to current_pts_us.
...
This field is used for fast comparison between link ages,
it is in AV_TIME_BASE units, in other words microseconds,
µs =~ us.
Renaming it allows a second field in link time base units.
2015-12-22 15:55:00 +01:00
Matthieu Bouron
0c59d40ae0
lavfi: use a video frame pool for each link of the filtergraph
2015-12-15 10:35:41 +01:00
Hendrik Leppkes
0b73d0ff0d
Merge commit '48ff6683ba5d40b629428673b1028e8ec542a9fa'
...
* commit '48ff6683ba5d40b629428673b1028e8ec542a9fa':
lavfi: add a frame_rate field to AVFilterLink.
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-11-11 14:47:29 +01:00
Nicolas George
48ff6683ba
lavfi: add a frame_rate field to AVFilterLink.
...
(cherry picked from ffmpeg commit 7b42036b3b
)
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2015-11-09 08:09:34 +01:00
Timothy Gu
87d5509261
avfilter: Reindent
2015-10-26 23:24:18 -07:00
Michael Niedermayer
377883c4be
avfilter/avfilter: Error out if audio parameters change instead of failing an assert
...
Filters which support such changes should be excluded from these checks
Fixes Ticket4884
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-10-16 15:25:09 +02:00
Nicolas George
44f660e7e7
lavfi: remove FF_LINK_FLAG_REQUEST_LOOP.
...
It has no longer any effect.
2015-09-20 19:02:33 +02:00
Nicolas George
2a351f6c55
lavfi: drop the requirement that request_frame returns a frame.
...
It requires a loop in filters or the framework,
that makes the scheduling less efficient and more complex.
This is purely an internal change since the loop is now
present in buffersink.
Note that no filter except buffersink did rely on the requirement.
2015-09-20 19:02:33 +02:00
Hendrik Leppkes
43e2e172df
Merge commit 'e65e4cbbda03ca3c9087f069c9867d518415fca1'
...
* commit 'e65e4cbbda03ca3c9087f069c9867d518415fca1':
lavfi: Drop deprecated *_count suffixed variables
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:11:22 +02:00
Hendrik Leppkes
2751d5f0ba
Merge commit '86e5056575f55f070609dd3926605302f7d2280e'
...
* commit '86e5056575f55f070609dd3926605302f7d2280e':
lavfi: Drop deprecated public AVFilterPad struct
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:01:24 +02:00
Michael Niedermayer
5d859e5980
avfilter/avfilter: Add a few more basic filters to the list which support frame size changes
...
Fixes assertion failures
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-09-05 11:43:27 +02:00
Vittorio Giovara
e65e4cbbda
lavfi: Drop deprecated *_count suffixed variables
...
Deprecated in 06/2012.
2015-08-28 16:01:13 +02:00
Ronald S. Bultje
6495c4c687
lavfi: fix compilation with FF_API_OLD_FILTER_OPTS=0.
2015-08-18 22:22:49 -04:00
Ronald S. Bultje
ad7d972e08
lavfi: add error message to help users convert to new lavfi syntax.
2015-08-18 10:18:43 -04:00
Andreas Cadhalpun
13b3462b7a
avfilter: add missing FF_API_AVFILTERPAD_PUBLIC guard
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-12 00:14:13 +02:00
Andreas Cadhalpun
8bd74aafe8
avfilter: remove obsolete function declarations
...
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-08-08 21:58:48 +02:00
Vittorio Giovara
1a3eb042c7
Replace av_dlog with normal av_log at trace level
...
This applies to every library where performance is not critical.
2015-04-19 12:41:59 +01:00
Michael Niedermayer
f455c8fdef
Merge commit '88b160a457e491cb9e014630ef5387ad3500258e'
...
* commit '88b160a457e491cb9e014630ef5387ad3500258e':
avfilter: Return more meaningful error codes
Conflicts:
libavfilter/avfilter.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-06 01:16:47 +01:00