Commit Graph

132 Commits

Author SHA1 Message Date
Janne Grunau
285b706b55 avfilter: fix graphparser memleaks on error paths
Fixes CID700635, CID700636 and CID732274.
2012-10-25 15:00:15 +02: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
Anton Khirnov
8d900aa4d0 lavfi: remove disabled FF_API_GRAPH_AVCLASS cruft 2012-06-26 13:14:59 +02:00
Anton Khirnov
9baeff9506 lavfi: replace AVFilterContext.input/output_count with nb_inputs/outputs
This is more consistent with naming in the rest of Libav.
2012-06-13 11:13:22 +02:00
Anton Khirnov
aff01de641 graphparser: set next to NULL on an entry extracted from inputs list
Prevents it from referring to the rest of the list.
2012-04-16 09:28:34 +02:00
Anton Khirnov
7af99a01c4 graphparser: fix the order in which unlabeled input links are returned. 2012-04-15 20:20:03 +02:00
Stefano Sabatini
91d3cbe0fd avfiltergraph: make the AVFilterInOut alloc/free API public
This is required for letting applications to create and destroy
AVFilterInOut structs in a convenient way.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-04-14 09:25:46 +02:00
Anton Khirnov
12e7e1d03e graphparser: allow specifying sws flags in the graph description. 2012-04-14 09:25:46 +02:00
Anton Khirnov
4e781c25b7 graphparser: fix the order of connecting unlabeled links.
Right now, e.g. scale,[in]overlay would connect scale to the first
overlay input and [in] to the second, which goes against the
documentation and is unintuitive.

The bug happens because of the ordering mess in curr_inputs variable:
1) the unlabeled links from the previous filter are added to it in
correct order
2) input labels are parsed and inserted to the beginning one by one
(i.e. in reverse order)
3) curr_inputs is matched against filter inputs in reverse order

Fix the problem by always using proper ordering without trying to be
clever.
2012-04-14 09:25:46 +02:00
Anton Khirnov
d7bcc71dad graphparser: add avfilter_graph_parse2().
Unlike avfilter_graph_parse(), it returns unlinked inputs and outputs
to the caller, which allows parsing of graphs where inputs/outputs are
not known in advance.
2012-04-14 09:25:46 +02:00
Stefano Sabatini
57fa314090 lavfi: fix signature for avfilter_graph_parse() and avfilter_graph_config()
Require "void *" rather than "AVClass *" for the log context type.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:02:53 +02:00
Stefano Sabatini
64abd375ec graphparser: prefer void * over AVClass * for log contexts
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:02:42 +02:00
Diego Biurrun
96c1e6d40d doxygen: Make sure parameter names match between .c and .h files. 2011-07-14 04:09:49 +02:00
Diego Biurrun
24c9babaaf doxygen: Fix parameter names to match the function prototypes. 2011-07-03 18:30:02 +02:00
Stefano Sabatini
f80b381bfd graphparser: add a NULL check on the argument passed to strstr
Fix crash in create_filter() which occurrs if a scale filter with no
args is provided.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-04-25 22:45:44 +02:00
Mans Rullgard
2912e87a6c Replace FFmpeg with Libav in licence headers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-03-19 13:33:20 +00:00
Stefano Sabatini
e8e5dde779 Make avfilter_graph_parse() not free the input graph
Make avfilter_graph_parse() only release the internal structures
allocated during the parsing, and leave to free the graph itself to
the calling code.

This approach looks cleaner, as the graph is not allocated by the
function.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-02-04 02:55:11 +00:00
Stefano Sabatini
3bf3fc0e54 Add the word "Parsed" in the parsed filter names.
Originally committed as revision 26334 to svn://svn.ffmpeg.org/ffmpeg/trunk
2011-01-14 20:58:47 +00:00
Stefano Sabatini
9241cd2095 Make avfilter_parse_graph() output a more meaningful message when an
invalid filterchain is detected.

Originally committed as revision 25936 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-12-12 13:39:16 +00:00
Stefano Sabatini
3fa77bde1b In libavfilter, use consistently "Copyright (c)" in the license
headers.

Originally committed as revision 25838 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-28 10:22:58 +00:00
Aurelien Jacobs
0985e1a3ca move the av_parse_color() function from libavfilter to libavcore
Originally committed as revision 25761 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-17 22:58:28 +00:00
Stefano Sabatini
668673f10c Add missing check on the existence of an associated output pad for
each specified output link label.

Fix crash.

Originally committed as revision 25723 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-11 22:41:22 +00:00
Stefano Sabatini
24de0edbd5 Rename avfilter_destroy() as avfilter_free().
The new name is shorter and more consistent with the FFmpeg API, and
sounds less evil.

Originally committed as revision 25707 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-08 12:32:39 +00:00
Stefano Sabatini
1e80a0eaa4 Remove graphparser.h header, move AVFilterInOut and
avfilter_graph_parse() declaration to libavfilter/avfiltergraph.h.

Simplify, and less confusing for the user.

Originally committed as revision 25705 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 22:56:29 +00:00
Stefano Sabatini
55b2a9ba3b Extend documentation for parse_filter().
Originally committed as revision 25703 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 22:47:33 +00:00
Stefano Sabatini
7313132bcc Rename AVFilterInOut field filter to filter_ctx, more semantically correct.
Originally committed as revision 25700 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:40:18 +00:00
Stefano Sabatini
c24f76b948 Make avfilter_graph_parse() always return meaningful error codes.
Originally committed as revision 25699 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:40:14 +00:00
Stefano Sabatini
0cc8b65950 Make parse_outputs() always return meaningful error codes.
Originally committed as revision 25698 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:40:12 +00:00
Stefano Sabatini
00b3ca3c7a Add missing memory check in parse_inputs(), and fix possible (yet very unlikely) crash.
Originally committed as revision 25697 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:40:09 +00:00
Stefano Sabatini
42e7f6d781 Make parse_inputs() return AVERROR(EINVAL) rather than -1 in case the
link label parsed by parse_link_name() is invalid.

Originally committed as revision 25696 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:40:07 +00:00
Stefano Sabatini
fbd97184f8 Add missing check in link_filter_inouts(), and fix possible (yet very unlikely) crash.
Originally committed as revision 25695 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:40:04 +00:00
Stefano Sabatini
ed581e65e2 Rename the variable filter to filt_ctx in link_filter_inouts, as the variable denotes a filter context.
Less confusing.

Originally committed as revision 25694 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:40:01 +00:00
Stefano Sabatini
684ade4935 Make link_filter_inouts() return meaningful error codes.
Originally committed as revision 25693 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:39:58 +00:00
Stefano Sabatini
688b9dad9c Change the signature of parse_filter() to make it return an error code.
Originally committed as revision 25692 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:39:54 +00:00
Stefano Sabatini
c58572f87b Change the signature of create_filter() to make it return an error code.
Originally committed as revision 25691 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-07 18:39:52 +00:00
Stefano Sabatini
97dd1e4a87 Rename avfilter_graph_destroy() to avfilter_graph_free().
The new name is shorter and more consistent with the rest of the API.

This change breaks libavfilter API/ABI.

Originally committed as revision 25674 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-11-04 20:34:24 +00:00
Stefano Sabatini
372e288408 Move av_get_token() from libavfilter to libavutil.
Originally committed as revision 25225 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-09-27 16:23:43 +00:00
Stefano Sabatini
84c0386960 Change avfilter_open() signature, from:
AVFilterContext *avfilter_open(AVFilter *filter, const char *inst_name);
to:
int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name);

This way it is possible to propagate an error code telling the reason
of the failure.

Originally committed as revision 24765 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-11 11:44:51 +00:00
Stefano Sabatini
98137a1a5b Document create_filter().
Originally committed as revision 24423 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:09 +00:00
Stefano Sabatini
d2874a9d59 Add simple doxy to link_filter().
Originally committed as revision 24422 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:06 +00:00
Stefano Sabatini
94b2120dfb Fix documentation for parse_link_name().
Originally committed as revision 24421 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:03 +00:00
Stefano Sabatini
bb90d855d7 Consistently use Uppercase for the first character of the log
messages.

Originally committed as revision 24420 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:56:00 +00:00
Stefano Sabatini
99ac59ca69 Make link_filter() propagate the generated error code.
Originally committed as revision 24419 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:55:57 +00:00
Stefano Sabatini
f219eee592 Fix style: "if(" -> "if (".
Originally committed as revision 24418 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 09:49:15 +00:00
Baptiste Coudurier
b504981483 Use default graph swscale opts when no opts are supplied
Originally committed as revision 24016 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-03 03:12:29 +00:00
Baptiste Coudurier
03c3bb5c5a use filter name when graph parser add filters
Originally committed as revision 23147 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-16 18:13:55 +00:00
Stefano Sabatini
15a316c014 Make parse_filter() parsing more robust.
Add ';' and '\n' to the terminating characters for the name of a
filter, and ';' to the terminating characters for its args.

Originally committed as revision 20800 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-11 20:02:10 +00:00
Vitor Sessak
b755a754d1 "[" is a terminating char for the filter name. This fixes the parsing of
things like

[in] vflip [out];

Originally committed as revision 18772 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-08 19:14:21 +00:00
Stefano Sabatini
dd04911c4e Make graphparser.c use av_get_token().
This also avoids the need for '\=' escaping.

Originally committed as revision 18726 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-05-01 18:17:59 +00:00
Stefano Sabatini
fd548e5bd6 Remove consume_whitespace() and replace it with direct calls to
strspn().

Originally committed as revision 18645 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-21 19:08:49 +00:00