Commit Graph

151 Commits

Author SHA1 Message Date
Stefano Sabatini
eedca998eb Implement ff_get_ref_perms_string() and use it for tracing.
Originally committed as revision 24900 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-24 15:12:13 +00:00
Stefano Sabatini
5a9dd3de63 Make avfilter_start_frame() invoke avfilter_get_video_buffer() on the
link rather than avfilter_default_get_video_buffer().

This is required as the buffer requested may be greater than the
buffer allocated locally by avfilter_default_get_video_buffer(), for
example if in filterchain there is a pad filter (like in "fifo,pad").

In that case the pad filter will try to write beyond the data of the
allocated buffer, resulting in a crash.

Originally committed as revision 24895 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-24 08:37:54 +00:00
Stefano Sabatini
014df3a2aa Make ff_dprintf_ref() print audio related information if available.
Originally committed as revision 24849 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-20 15:16:10 +00:00
Stefano Sabatini
e29b451a51 Cosmetics: merge two lines in ff_dprintf_ref().
Originally committed as revision 24848 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-20 15:16:07 +00:00
Stefano Sabatini
0055b2d11a Make ff_dprintf_ref() print the information related to the referenced
AVFilterBuffer.

Originally committed as revision 24847 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-20 15:16:02 +00:00
Stefano Sabatini
b5fbb31e55 Rename ff_dprintf_picref() to ff_dprintf_ref().
The function is going to be used to represent also audio data.

Originally committed as revision 24846 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-20 15:15:57 +00:00
Stefano Sabatini
801ab98088 Extend ff_dprintf_picref() to make it print video interlaced and
top_field_first information.

Originally committed as revision 24845 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-20 14:41:23 +00:00
Stefano Sabatini
382ecd3537 Make ff_dprintf_picref() print video properties only if available.
Originally committed as revision 24844 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-20 14:41:21 +00:00
Stefano Sabatini
28c52b1ed9 Only print the pointer to the first plane in ff_dprintf_picref().
To display the other planes is usually not useful and add noise to the
output.

Originally committed as revision 24843 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-20 14:41:18 +00:00
Stefano Sabatini
dc46661ae2 Enable and change the log level to DEBUG for the message printed in
case of picref copy.

Originally committed as revision 24831 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-19 14:32:36 +00:00
Stefano Sabatini
ca8574310f Cosmetics: apply misc spacing style fixes.
Originally committed as revision 24830 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-19 14:32:31 +00:00
S.N. Hemanth Meenakshisundaram
ad2c950154 Implement libavfilter audio framework.
Patch by S.N. Hemanth Meenakshisundaram * smeenaks * ucsd * edu *.

Originally committed as revision 24811 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-17 18:08:03 +00:00
Stefano Sabatini
4f9ce3c4c7 Add missing NULL checks in avfilter_ref_buffer().
Originally committed as revision 24808 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-17 15:12:22 +00:00
Stefano Sabatini
81c1ecabab Deprecate ff_get_plane_bytewidth() in favor of
av_get_image_linesize().

Originally committed as revision 24787 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-12 15:06:04 +00:00
S.N. Hemanth Meenakshisundaram
382ac60e44 Set type on buffer in get_video_buffer().
Patch by S.N. Hemanth Meenakshisundaram reverse("skaneems") + "@ucsd.edu".

Originally committed as revision 24775 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-11 15:38:50 +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
S.N. Hemanth Meenakshisundaram
cc80caff52 Separate video specific BufferRef properties into VideoProps.
Define a new struct AVFilterBufferRefVideoProps and add a type field
to AVFilterBufferRef.

Video specific properties in AVFilterBufferRefVideoProps are now
referred to by *video pointer in AVFilterBufferRef.

Patch by S.N. Hemanth Meenakshisundaram smeenaks->ucsd.edu.

Originally committed as revision 24763 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-11 11:06:04 +00:00
S.N. Hemanth Meenakshisundaram
5d4890d73d Rename fields:
AVFilterLink.srcpic    ->  AVFilterLink.src_buf
AVFilterLink.cur_pic   ->  AVFilterLink.cur_buf
AVFilterLink.outpic    ->  AVFilterLink.out_buf

The new names are more generic and more consistent, since the struct
they contain, which was named AVFilterPicRef, has been renamed to
AVFilterBufferRef.

Patch by S.N. Hemanth Meenakshisundaram %smeenaks%ucsd%edu%.

Originally committed as revision 24732 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-07 01:15:34 +00:00
S.N. Hemanth Meenakshisundaram
7fce481a69 Rename functions and fields:
avfilter_(un)ref_pic       -> avfilter_(un)ref_buffer
avfilter_copy_picref_props -> avfilter_copy_buffer_ref_props
AVFilterBufferRef.pic      -> AVFilterBufferRef.buffer

They have been renamed to allow sharing with audio.

Patch by S.N. Hemanth Meenakshisundaram $smeenaks$ucsd$edu$.

Originally committed as revision 24731 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-07 01:15:27 +00:00
S.N. Hemanth Meenakshisundaram
ecc8dada37 Rename AVFilterPicRef to AVFilterBufferRef.
The struct is going to be used for storing audio buffer references as
well, and the new name is more generic.

Patch by S.N. Hemanth Meenakshisundaram @smeenaks@ucsd@edu@.

Originally committed as revision 24730 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-07 01:15:19 +00:00
Måns Rullgård
5a6fbf4c39 avfilter: indent
Originally committed as revision 24720 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-06 22:25:39 +00:00
Måns Rullgård
0bb7408e55 avfilter: do not crash on null link src/dst in avfilter_destroy()
Originally committed as revision 24719 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-06 22:25:36 +00:00
Måns Rullgård
f3b90d25ee avfilter: free link in/out_formats in avfilter_destroy()
Originally committed as revision 24718 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-08-06 22:25:33 +00:00
S.N. Hemanth Meenakshisundaram
bdab614be8 Generalize pixel format enum fields to int formats.
This is needed to make the libavfilter framework work with audio
filters.

In particular add a type field to AVFilterLink, change the field types:
enum PixelFormat format   -> int format   in AVFilterBuffer
enum PixelFormat *formats -> int *formats in AVFilterFormats
enum PixelFormat *format  -> int format   in AVFilterLink

and change the function signatures:
AVFilterFormats *avfilter_make_format_list(const enum PixelFormat *pix_fmts); ->
AVFilterFormats *avfilter_make_format_list(const int *fmts);

int avfilter_add_colorspace(AVFilterFormats **avff, enum PixelFormat pix_fmt); ->
int avfilter_add_format(AVFilterFormats **avff, int fmt);

AVFilterFormats *avfilter_all_colorspaces(void); ->
AVFilterFormats *avfilter_all_formats(enum AVMediaType type);

This change breaks libavfilter API/ABI.

Patch by S.N. Hemanth Meenakshisundaram |smeenaks|ucsd|edu|.

Originally committed as revision 24424 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-22 11:12:47 +00:00
Stefano Sabatini
9f0e31d29a Make avfilter.c dprintf* functions internal and declare them in an
internal.h header, so they can be easily used from other files.

Originally committed as revision 24319 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-18 22:37:39 +00:00
Víctor Paesa
922189feb0 Use avfilter_copy_picref_props() along lavfi.
Originally committed as revision 24196 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-07-11 14:44:43 +00:00
Michael Niedermayer
efdc74ef19 Try to keep track of interlaced and top field first.
Originally committed as revision 23044 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-05-07 10:02:59 +00:00
Michael Niedermayer
2308b6c19a Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
Originally committed as revision 22987 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-28 20:00:23 +00:00
Bobby Bingham
2bb962567e Remove variable whose value was never read. Found by clang.
Originally committed as revision 22794 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-04-03 15:29:48 +00:00
Stefano Sabatini
5bb5c1dc86 Add AVFilterPicRef.pos field and make libavfilter propagate stream
byte position information, as stored in the pkt.pos, through the
filterchain.

Note that the pos field is added *non* at the end of the
AVFilterPicRef struct, thus breaking ABI compatibility, which is
allowed as the API is still considered non-stable.

Originally committed as revision 22506 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-13 11:27:05 +00:00
Stefano Sabatini
63833766dc Show aspect ratio information in dprintf_picref() traces.
Originally committed as revision 22255 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-03-06 21:28:08 +00:00
Stefano Sabatini
b4b6645655 Avoid usage of avcodec_get_pix_fmt_name() and
avcodec_get_chroma_sub_sample(), directly access
av_pix_fmt_descriptors instead.

Remove some of the dependancies of lavfi on lavc.

Originally committed as revision 21575 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-31 16:33:29 +00:00
Stefano Sabatini
08f8b51f69 Make avfilter_insert_filter() log the names of the filters between
which it inserts the new filter.

Originally committed as revision 21177 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-13 00:16:52 +00:00
Stefano Sabatini
999c23a13a Make avfilter_insert_filter() print the instance name of the
auto-inserted scale filter, rather than the filter name, as this
provides more information.

Originally committed as revision 21123 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-10 13:45:55 +00:00
Stefano Sabatini
4160069067 Prefer "*FUNC_NAME(" over "* FUNC_NAME(" for XXX_configuration() and
XXX_license() functions, consistent with the rest of FFmpeg.

Originally committed as revision 21005 to svn://svn.ffmpeg.org/ffmpeg/trunk
2010-01-03 14:31:25 +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
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
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
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
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
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
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
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
Stefano Sabatini
96da1c51f6 Implement trace messages logging in the filterchain processing.
It is only enabled when the DEBUG symbol is defined.

Originally committed as revision 20187 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-10-06 22:07:32 +00:00
Cédric Schieli
fe479c9d63 Also copy pixel_aspect when copying the picref in avfilter_start_frame.
This avoids a division by zero in '[in]fifo,scale[out]'

Originally committed as revision 18507 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-04-14 08:48:47 +00:00
Víctor Paesa
b6fec3eb7f Make static the list of registered filters.
Originally committed as revision 18198 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-03-26 21:46:45 +00:00
Stefano Sabatini
90993b3848 Reindent after the last commit, while at it also add some spaces for
improving readability.

Originally committed as revision 16566 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-12 20:34:34 +00:00
Stefano Sabatini
689a5f493b Make avfilter_open() set to NULL the pads and the filters when the
corresponding count is zero, rather than allocate a 16 bytes sized
block for them. Improve safety.

Originally committed as revision 16565 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-12 20:30:57 +00:00
Stefano Sabatini
b9609848f3 Implement the avfilter_default_draw_slice() handler and use it in
avfilter_draw_slice() when the draw_slice callback is not defined in
the input pad.

Originally committed as revision 16554 to svn://svn.ffmpeg.org/ffmpeg/trunk
2009-01-11 22:05:48 +00:00