Commit Graph

444 Commits

Author SHA1 Message Date
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
Stefano Sabatini 62096b99b1 Make parse_key_value_pair() print an error message if a key is not
found in the context.

Originally committed as revision 20779 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-08 22:01:25 +00:00
Stefano Sabatini 7d132c544b Use an unsigned int to contain all the color values of the expressions
of the type 0xRRGBBAA parsed by av_parse_color(), using a simple int
was resulting in unexpected results as the most significant bit was
used for the sign.

Originally committed as revision 20778 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-08 22:00:07 +00:00
Stefano Sabatini e87eb039cc Fix alpha plane flipping for the yuva420p and similar pixel formats.
Originally committed as revision 20771 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-08 17:08:49 +00:00
Stefano Sabatini 3a1acfd79a Reindent after the last commit.
Originally committed as revision 20755 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 17:41:49 +00:00
Stefano Sabatini bf972d5e1c Fix slicify when the slice_direction is negative, make it send slices
from the bottom to the top one.

Originally committed as revision 20754 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-06 17:40:41 +00:00
Stefano Sabatini a13a543797 Add a slice_dir parameter to avfilter_draw_slice().
Avoid the need to implement slice direction detection code, thus
reducing code duplication.

See the thread:
"[FFmpeg-devel] [PATCH] Add a slice_dir parameter to avfilter_start_frame()".

Originally committed as revision 20734 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-12-04 23:26:13 +00:00
Stefano Sabatini b37aa4de2d Use the correct chroma values for the data[] array used in
draw_slice().

The chroma values to use are supposed to be those of the input format,
not that of the output format, the latter case was causing crashes and
chroma issues.

Originally committed as revision 20660 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 18:02:19 +00:00
Stefano Sabatini 8aeb33225a Use a valid log context for av_log().
Originally committed as revision 20659 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 17:40:53 +00:00
Stefano Sabatini bd2837387c Document slice ordering assumption required by avfilter_draw_slice().
The assumption depends on the corresponding assumption done by
sws_scale() and by the scale filter.

Originally committed as revision 20655 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-29 10:42:37 +00:00
Stefano Sabatini 4cc3f6afe4 Remove AVFilter.next field, since it is not used and it is not going
to be used since the implementation of the new filter registration
system.

Originally committed as revision 20611 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-25 23:24:09 +00:00
Stefano Sabatini 1433c4abf2 Implement avfilter_next().
Originally committed as revision 20607 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-24 23:58:48 +00:00
Stefano Sabatini 86a60fa1ac Implement a new registration system for filters.
Create a new static array containing pointers to the AVFilter
definitions, so that the non-constant next filter in the AVFilter
struct is not anymore required and the AVFilter definitions may be
stored in shareable memory.

Also change the signature for avfilter_register(), make it return an
int since it may fail if there is not enough space in the static array
for the registered filters.

Originally committed as revision 20605 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-24 23:47:33 +00:00
Stefano Sabatini 2d64744fed Remove from the list of the supported formats the formats which are
not correctly supported.

See the thread:
"[FFmpeg-devel] [PATCH] Remove not truly supported formats support from the crop filter".

Originally committed as revision 20576 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-22 11:51:41 +00:00
Diego Biurrun c173693698 Add functions to return library license and library configuration.
Originally committed as revision 20547 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-18 17:15:17 +00:00
Diego Biurrun 1f20782c04 Add missing #includes for avutil.h, required for the AV_VERSION* macros.
Originally committed as revision 20544 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-16 18:39:26 +00:00
Stefano Sabatini c3eabb7d2f Add scale filter.
Originally committed as revision 20519 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-11 23:50:21 +00:00
Stefano Sabatini 5c3c0e3f2e Fix crop filter start_frame() for paletted formats different from
PAL8. Shift data[1] only if the input format is not paletted.

Originally committed as revision 20488 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-09 21:00:38 +00:00
Stefano Sabatini dd18b301f4 Enable linking of parseutils.o.
Originally committed as revision 20487 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-09 18:56:51 +00:00
Stefano Sabatini ac74dfa436 Fix start_frame(), which was issuing chroma artifacts with planar
formats with more than 8 bits per pixel (e.g. YUVXXXP16).

Originally committed as revision 20479 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-08 22:47:10 +00:00
Stefano Sabatini cabc41b0c2 Vertical align.
Originally committed as revision 20447 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 22:47:10 +00:00
Stefano Sabatini 198d56533e Use spaces after commas for improving readability.
Originally committed as revision 20446 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 22:46:15 +00:00
Stefano Sabatini bc37ec923d Add slicify video filter.
Originally committed as revision 20445 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 22:41:38 +00:00
Stefano Sabatini da23d42476 Make avfilter_get_video_buffer() use
avfilter_default_get_video_buffer() if the get_video_buffer() callback
is not defined in a filter.

Libavfilter filters author have to explicitely define the
get_video_buffer() callback if they want the buffer to be requested to
the filter following in the filterchain.

See the thread:
"[FFmpeg-devel] [PATCH] Make avfilter_get_video_buffer() use
default_get_video_buffer if callback not defined".

Originally committed as revision 20444 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 22:15:52 +00:00
Stefano Sabatini ae2abc69db Explicitely define get_video_buffer() callbacks in the format,
noformat and null filters.

Originally committed as revision 20443 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 22:04:55 +00:00
Stefano Sabatini dc264e77a3 Change file doxy from
"video format and noformat filters" to
"format and noformat video filters",
as suggested by Diego.

Originally committed as revision 20442 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 21:59:41 +00:00
Stefano Sabatini 09da17810b Fix/clarify description of the noformat filter.
Originally committed as revision 20441 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-11-03 21:57:21 +00:00
Stefano Sabatini c5ec0d9d4f Remove the get_video_buffer() callback.
That was never required since avfilter_get_video_buffer() already
calls itself on the next link if get_video_buffer is not defined.

Originally committed as revision 20419 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-30 11:11:25 +00:00
Stefano Sabatini 2be414c8de Fix doxies, use third person and phrase-ending dots.
Originally committed as revision 20391 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-27 22:12:20 +00:00
Stefano Sabatini fcbed3c735 Add format and noformat filters.
Originally committed as revision 20390 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-27 21:40:43 +00:00
Stefano Sabatini 3555d2e88e Introduce first_avfilter and use that, together with AVFilter.next,
for registering and finding filters, rather than use the struct
AVFilterList, which is removed.

Simplify the filter registration management code.

Originally committed as revision 20387 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-27 19:52:14 +00:00
Stefano Sabatini 243110f968 Add a field 'next' to AVFilter.
Simplify the registration and iteration of all the registered filters,
consistent with what is done with formats / codecs.

Originally committed as revision 20385 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-27 19:42:07 +00:00
Stefano Sabatini b70bc02279 Add descriptions for the committed filters.
Originally committed as revision 20375 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-27 00:43:45 +00:00
Stefano Sabatini 8fdb01c10e Make dprintf_link() show the name of the link pixel format.
Originally committed as revision 20372 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-25 21:06:00 +00:00
Stefano Sabatini cccd292ae2 Move the description field of the filter from AVFilterContext to
AVFilter, where it should have had defined the first time.
+10L.

Originally committed as revision 20356 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-22 23:03:25 +00:00
Stefano Sabatini 1551745c88 Add a description field to AVFilterContext.
Originally committed as revision 20354 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-22 22:46:11 +00:00
Stefano Sabatini c38ae71f54 Add video vertical flip filter.
Originally committed as revision 20352 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-22 22:00:33 +00:00
Stefano Sabatini 067180220d Make the pix_fmts var in query_formats() static const.
Originally committed as revision 20343 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-21 21:04:53 +00:00
Stefano Sabatini 190c166960 Add video crop filter.
Originally committed as revision 20342 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-21 20:57:30 +00:00
Stefano Sabatini 9abba21ad3 Cosmetics: prefer "pix_fmts" over "pix_fmt" for the name of the
argument of avfilter_make_format_list(), as the argument represents a
list of elements.

Originally committed as revision 20341 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-21 20:43:43 +00:00
Stefano Sabatini 1554fed2d6 Make avfilter_make_format_list() take in input a const argument.
Originally committed as revision 20340 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-21 20:39:05 +00:00
Stefano Sabatini c0da46c8e0 Break over-80-chars-long line.
Originally committed as revision 20320 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-19 19:22:08 +00:00
Stefano Sabatini 6b5dc050a2 Rename avfilter_make_format_list2() to avfilter_make_format_list().
Originally committed as revision 20302 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 23:39:54 +00:00
Stefano Sabatini e768cb7668 Remove avfilter_make_format_list(), it has been replaced by
avfilter_make_format_list2().

Originally committed as revision 20301 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 23:35:54 +00:00
Stefano Sabatini f6a1fa850a Implement avfilter_make_format_list2(), which is going to replace
avfilter_make_format_list().

See the thread:
"[PATCH] Implement avfilter_make_format_list2(enum PixelFormat pix_fmt, ...)".

Originally committed as revision 20299 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 23:06:52 +00:00
Stefano Sabatini f28b385d47 Make clear in the doxy that this is a *video* filter.
Originally committed as revision 20298 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 23:00:11 +00:00
Vitor Sessak 9dd08b4e1e Fix recursive avfilter_poll_frame(). It was doing
min = FFMIN(min, avfilter_poll_frame(link->src->inputs[i]))
which, since FFMIN is a macro, was calling itself
twice for every input, causing an exponential cost in time.

Originally committed as revision 20295 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 22:33:37 +00:00
Stefano Sabatini 7b018b1d7d Add the null video filter.
Originally committed as revision 20275 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 09:44:33 +00:00
Stefano Sabatini 930aa45132 Use 'enum PixelFormat *' rather than 'int *' as type for the
AVFilterFormats.formats field.
Cleaner / safer.

Originally committed as revision 20274 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 09:31:57 +00:00
Stefano Sabatini 0eb4ff9e37 Make avfilter_get_video_buffer() recursive.
When called on a link with a filter whose destination pad has not a
get_video_buffer callback defined, it will call
avfilter_get_video_buffer() on the first output link of the
destination filer, rather than use avfilter_default_get_buffer(), so
the video buffer can be allocated forward in the filterchain.

Also add the w and h parameters to avfilter_get_video_buffer(), as the
minimum width and height requested by each filter in the filterchain
may change, this allows for example a memcpy-less pad filter.

This change breaks API / ABI backward compatibility.

See the thread:
"[PATCH] Implement recusive avfilter_get_video_buffer()".

Originally committed as revision 20272 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-18 08:16:18 +00:00