Commit Graph

264 Commits

Author SHA1 Message Date
Mark Thompson e3fb74f7f9 lavfi: Always propagate hw_frames_ctx through links
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).
2016-11-02 20:29:05 +00: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
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
Anton Khirnov b3dd30db0b lavfi: pass the hw frames context through the filter chain 2016-02-14 22:21:00 +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
Vittorio Giovara e65e4cbbda lavfi: Drop deprecated *_count suffixed variables
Deprecated in 06/2012.
2015-08-28 16:01:13 +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
Himangi Saraogi 88b160a457 avfilter: Return more meaningful error codes
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2015-03-05 19:36:39 +01:00
Vittorio Giovara ac84c1ce24 avfilter: check filter link validity
Remove now redundant check.

CC: libav-stable@libav.org
Bug-Id: CID 700371
2014-10-24 23:42:19 +01:00
Anton Khirnov bba2a7cc5f lavfi: use the correct filter context for logging an error. 2014-03-05 21:52:02 +01:00
Vittorio Giovara abb5e37f64 avfilter: fix leaks on error in ff_filter_frame 2014-01-09 23:13:05 +01:00
Vittorio Giovara 884c7a6eb8 avfilter: fix const use of avfilter_next
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-28 07:58:23 +01:00
Vittorio Giovara 5c439b41d0 avfilter: have avfilter_get_by_name return const for next bump
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-28 07:57:44 +01:00
Anton Khirnov 0767bfd199 lavfi: allow user-provided execute() callbacks 2013-09-28 08:06:19 +02:00
Diego Biurrun 7950e519bb Disable deprecation warnings for cases where a replacement is available 2013-08-02 19:19:02 +02:00
Diego Biurrun b5a138652f Give less generic names to global library option arrays 2013-08-02 19:19:02 +02:00
Anton Khirnov 129bb23843 lavfi: add a slice threading infrastructure
Mostly based on libavcodec's
2013-05-24 09:28:18 +02:00
Anton Khirnov 7e2b15c094 avfilter: check a malloc in avfilter_link().
Additionally change sizeof(type) into sizeof(var)
2013-05-17 20:32:27 +02:00
Anton Khirnov bf5b5d2b15 avfilter.c: cosmetics, reformat 2013-05-17 20:32:18 +02:00
Anton Khirnov d79bd60405 lavfi: factorize freeing a link 2013-05-17 20:30:25 +02:00
Diego Biurrun 2832ea26f3 Remove commented-out debug #define cruft 2013-05-16 00:23:30 +02:00
Anton Khirnov ffba2053ed lavfi: fix compatibility code for old vf_scale options syntax
Currently it would incorrectly trigger on a string that contains a '='
but does not contain a ':', e.g. flags=<flags>.
2013-05-15 07:46:04 +02:00
Anton Khirnov f160c6a18a lavfi: do not segfault on NULL passed to avfilter_get_by_name() 2013-04-11 20:44:35 +02:00
Anton Khirnov fa2a34cd40 lavfi: change the filter registering system to match the other libraries
Removes an arbitrary hardcoded limit on the number of filters.
2013-04-11 20:44:03 +02:00
Anton Khirnov 7e8fe4be5f lavfi: add a function for counting elements in AVFilterPad arrays.
The caller needs to know what valid indices can be passed to
avfilter_pad_get_name/type.
2013-04-11 20:43:47 +02:00
Anton Khirnov 1ba95a9cca lavfi: add avfilter_init_dict() for initializing a filter with a dict. 2013-04-11 20:40:20 +02:00
Anton Khirnov 48a5adab62 lavfi: add avfilter_init_str() to replace avfilter_init_filter().
Drop the unused opaque parameter from its signature.
2013-04-11 20:39:13 +02:00
Anton Khirnov 1565cbc65c lavfi: make avfilter_free() remove the filter from its graph. 2013-04-11 20:38:48 +02:00
Anton Khirnov bc1a985ba0 lavfi: replace avfilter_open() with avfilter_graph_alloc_filter().
Since we do not support "standalone" filters not attached to an
AVFilterGraph, we should not have a public function to create such
filters. In addition that function is horribly named, the action it does
cannot be possibly described as "opening" a filter.
2013-04-11 20:34:14 +02:00
Anton Khirnov 4a37d4b3f8 lavfi: add const to the pads parameter of avfilter_pad_get_name/type 2013-04-11 20:33:23 +02:00
Anton Khirnov 8114c10160 lavfi: add avfilter_get_class().
Useful for examining options, the same as the corresponding functions
for the other libs.
2013-04-09 19:13:19 +02:00
Anton Khirnov 4d1f31ea44 lavfi: make AVFilterContext export filter options. 2013-04-09 19:13:10 +02:00
Anton Khirnov 62549f9655 lavfi: error out when options are provided to a filter that does not take any 2013-04-09 19:12:59 +02:00
Anton Khirnov c43a7ecad9 lavfi: remove now unused args parameter from AVFilter.init 2013-04-09 19:12:38 +02:00
Anton Khirnov ee0e8d4b15 vf_libopencv: switch to an AVOptions-based system. 2013-04-09 19:05:22 +02:00
Anton Khirnov c334c113d4 vf_scale: switch to an AVOptions-based system. 2013-04-09 19:04:45 +02:00
Anton Khirnov 5aa1a668cf vf_frei0r: switch to an AVOptions-based system. 2013-04-09 19:04:28 +02:00
Anton Khirnov e67a87eac8 vf_(no)format: switch to an AVOptions-based system. 2013-04-09 18:56:39 +02:00
Anton Khirnov 4fa1f52e33 af_resample: switch to an AVOptions-based system. 2013-04-09 18:45:50 +02:00
Anton Khirnov b439c992c2 lavfi: switch to an AVOptions-based system. 2013-04-09 18:45:37 +02:00
Anton Khirnov 556aab8f11 lavfi: use designated initializers in avfilter_class 2013-03-16 05:33:06 +01:00
Anton Khirnov 7e350379f8 lavfi: switch to AVFrame.
Deprecate AVFilterBuffer/AVFilterBufferRef and everything related to it
and use AVFrame instead.
2013-03-08 07:37:18 +01:00
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.
2012-11-28 08:50:19 +01:00
Justin Ruggles a903f8f087 Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
Also reorder some other #include when applicable.
2012-11-11 13:35:12 -05:00
Anton Khirnov 59ee9f78b0 lavfi: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:39 +02:00
Anton Khirnov 716d413c13 Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat 2012-10-08 07:13:26 +02:00
Mans Rullgard 1fce361d70 lavfi: replace empty input/output lists with null pointers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-17 14:35:06 +01:00
Martin Storsjö 1d9c2dc89a Don't include common.h from avutil.h
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 22:32:06 +03:00
Diego Biurrun 49c45a2624 avfilter: Fix printf format string conversion specifier
libavfilter/avfilter.c:224:9: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘int’ [-Wformat]
2012-07-25 09:24:25 +02:00
Anton Khirnov 1a49a169eb lavfi: make filters less verbose. 2012-06-26 19:08:13 +02:00