summaryrefslogtreecommitdiff
path: root/libavfilter/avfilter.c
Commit message (Collapse)AuthorAge
* Merge commit 'e3fb74f7f9a8f1895381355f40c92cac3c1023d9'Matthieu Bouron2017-03-30
|\ | | | | | | | | | | | | * commit 'e3fb74f7f9a8f1895381355f40c92cac3c1023d9': lavfi: Always propagate hw_frames_ctx through links Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
| * lavfi: Always propagate hw_frames_ctx through linksMark Thompson2016-11-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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).
* | lavfi: make ff_framequeue_skip_samples() more useful.Nicolas George2017-01-29
| | | | | | | | | | | | | | | | | | | | 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>
* | lavfi: reindent after previous commit.Nicolas George2017-01-12
| |
* | lavfi: make two functions static.Nicolas George2017-01-12
| | | | | | | | | | ff_request_frame_to_filter() and ff_filter_frame_to_filter() are only used in avfilter.c.
* | lavfi: disallow ff_request_frame for filters using activate.Nicolas George2017-01-12
| | | | | | | | | | Having two different functions allows to have stricter tests and detect errors earlier.
* | lavfi: add ff_inlink_request_frame().Nicolas George2017-01-12
| |
* | lavfi: move ff_update_link_current_pts() into the utility functions.Nicolas George2017-01-12
| | | | | | | | | | | | It does not change anything for the existing filters and makes better code fatrorization when future code will use the utility functions.
* | lavfi: cosmetic: remove forward declaration.Nicolas George2017-01-12
| |
* | lavfi: add AVFilter.activate.Nicolas George2017-01-12
| |
* | lavfi: use the consume helpers in ff_filter_frame_to_filter().Nicolas George2017-01-12
| |
* | lavfi: add helpers to consume frames from link FIFOs.Nicolas George2017-01-12
| |
* | lavfi: pass min explicitly to samples_ready().Nicolas George2017-01-12
| |
* | lavfi: add ff_inlink_evaluate_timeline_at_frame().Nicolas George2017-01-12
| |
* | lavfi: add ff_inlink_process_commands().Nicolas George2017-01-12
| |
* | lavfi: merge two variables after a recent commit.Nicolas George2017-01-12
| |
* | lavfi: implement ff_inlink_make_frame_writable().Nicolas George2017-01-12
| | | | | | | | | | | | | | | | 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.
* | lavfi: export ff_filter_set_ready() to the library.Nicolas George2017-01-12
| |
* | lavfi: add ff_inlink_acknowledge_status().Nicolas George2017-01-12
| | | | | | | | | | Also introduce libavfilter/filters.h for all functions needed to implement filters.
* | lavfi/framepool: rename FFVideoFramePool to FFFramePoolMatthieu Bouron2017-01-12
| |
* | lavfi: take_samples: free frames after taking all samples.Nicolas George2016-12-22
| |
* | lavfi: make filter_frame non-recursive.Nicolas George2016-12-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | avfilter/avfilter: fix filtering frames with unknown channel layouts for ↵Marton Balint2016-12-13
| | | | | | | | | | | | | | filters needing writable frames Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* | lavfi: split frame_count between input and output.Nicolas George2016-11-13
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | Merge commit '5b63b15663d31f50ce45d980b904a68795ad3f7a'Hendrik Leppkes2016-10-07
|\| | | | | | | | | | | | | * commit '5b63b15663d31f50ce45d980b904a68795ad3f7a': lavfi: set the link hwframes context before configuring the dst input Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * lavfi: set the link hwframes context before configuring the dst inputAnton Khirnov2016-06-25
| | | | | | | | | | The destination filter might expect the hw frames context to be already set (this is the case e.g. for hwdownload).
* | avfilter: add ff_filter_get_nb_threads()Paul B Mahol2016-08-29
| |
* | avfilter: add nb_threads to AVFilterContextPaul B Mahol2016-08-29
| | | | | | | | To be used in following commits.
* | Merge commit '07a844f32ebb78503981df017fa3ebfedb75fe1c'Derek Buitenhuis2016-04-14
|\| | | | | | | | | | | | | * commit '07a844f32ebb78503981df017fa3ebfedb75fe1c': lavfi: generic hardware surface upload and download filters Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavfi: generic hardware surface upload and download filtersMark Thompson2016-03-19
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit 'b3dd30db0b2d857147fc0e1461a00bd6172a26a3'Derek Buitenhuis2016-02-24
|\| | | | | | | | | | | | | * commit 'b3dd30db0b2d857147fc0e1461a00bd6172a26a3': lavfi: pass the hw frames context through the filter chain Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavfi: pass the hw frames context through the filter chainAnton Khirnov2016-02-14
| |
* | lavfi: make request_frame() non-recursive.Nicolas George2015-12-22
| | | | | | | | | | | | | | 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.
* | lavfi: replace link.closed by link.status.Nicolas George2015-12-22
| | | | | | | | | | | | 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.
* | lavfi: add link.current_pts field.Nicolas George2015-12-22
| |
* | lavfi: rename link.current_pts to current_pts_us.Nicolas George2015-12-22
| | | | | | | | | | | | | | 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.
* | lavfi: use a video frame pool for each link of the filtergraphMatthieu Bouron2015-12-15
| |
* | Merge commit '48ff6683ba5d40b629428673b1028e8ec542a9fa'Hendrik Leppkes2015-11-11
|\| | | | | | | | | | | | | * commit '48ff6683ba5d40b629428673b1028e8ec542a9fa': lavfi: add a frame_rate field to AVFilterLink. Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * lavfi: add a frame_rate field to AVFilterLink.Nicolas George2015-11-09
| | | | | | | | | | | | (cherry picked from ffmpeg commit 7b42036b3b23c85f473bf9369e37fa8da22eaf93) Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avfilter: ReindentTimothy Gu2015-10-26
| |
* | avfilter/avfilter: Error out if audio parameters change instead of failing ↵Michael Niedermayer2015-10-16
| | | | | | | | | | | | | | | | | | | | | | 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>
* | lavfi: remove FF_LINK_FLAG_REQUEST_LOOP.Nicolas George2015-09-20
| | | | | | | | It has no longer any effect.
* | lavfi: drop the requirement that request_frame returns a frame.Nicolas George2015-09-20
| | | | | | | | | | | | | | | | 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.
* | Merge commit 'e65e4cbbda03ca3c9087f069c9867d518415fca1'Hendrik Leppkes2015-09-05
|\| | | | | | | | | | | | | * commit 'e65e4cbbda03ca3c9087f069c9867d518415fca1': lavfi: Drop deprecated *_count suffixed variables Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * lavfi: Drop deprecated *_count suffixed variablesVittorio Giovara2015-08-28
| | | | | | | | Deprecated in 06/2012.
* | Merge commit '86e5056575f55f070609dd3926605302f7d2280e'Hendrik Leppkes2015-09-05
|\| | | | | | | | | | | | | * commit '86e5056575f55f070609dd3926605302f7d2280e': lavfi: Drop deprecated public AVFilterPad struct Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * Replace av_dlog with normal av_log at trace levelVittorio Giovara2015-04-19
| | | | | | | | This applies to every library where performance is not critical.
* | avfilter/avfilter: Add a few more basic filters to the list which support ↵Michael Niedermayer2015-09-05
| | | | | | | | | | | | | | | | frame size changes Fixes assertion failures Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavfi: fix compilation with FF_API_OLD_FILTER_OPTS=0.Ronald S. Bultje2015-08-18
| |
* | lavfi: add error message to help users convert to new lavfi syntax.Ronald S. Bultje2015-08-18
| |