1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-28 20:53:54 +02:00
Commit Graph

1196 Commits

Author SHA1 Message Date
Anton Khirnov
51a8049be8 vf_aspect: clear AVFilterLink.cur_buf in start_frame().
The buffer is passed on to the next filter, so we shouldn't keep any
pointers to it.
2012-07-20 21:06:40 +02:00
Robert Nagy
b70d89a033 lavfi: add avfilter_unref_bufferp()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-07-20 21:06:18 +02:00
Anton Khirnov
cd99146253 lavfi: add error handling to filter_samples(). 2012-07-09 08:25:19 +02:00
Anton Khirnov
083d0f6be8 asplit: don't leak the input buffer. 2012-07-09 08:22:11 +02:00
Anton Khirnov
1ffb645662 af_resample: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:37 +02:00
Anton Khirnov
6f834293d3 af_asyncts: fix request_frame() behavior.
Make sure that an output frame has really been produced before returning
0.
2012-07-09 08:21:15 +02:00
Justin Ruggles
8ca08066fc lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format
Also make this the default value.
2012-07-08 15:22:11 -04:00
Anton Khirnov
b7558ac293 af_amix: avoid spurious EAGAIN.
Input on/off state can change in request_samples(), which can result in
a state where only the first input is active. get_available_samples()
will then return 0, and request_frame() will fail with EAGAIN even
though there is data on the single active input.

Take this into account and check the number of active inputs again after
calling request_samples().
2012-07-06 13:51:58 +02:00
Anton Khirnov
54bf88e65f af_amix: return AVERROR(EAGAIN) when request_frame didn't produce output.
0 should only be returned when there was at least one output frame.
2012-07-06 13:51:58 +02:00
Anton Khirnov
428b369804 af_amix: only consider negative return codes as errors. 2012-07-06 13:51:58 +02:00
Mans Rullgard
7c29377b70 lavfi: reclassify showfiltfmts as a TESTPROG
This tool uses lavfi internal symbols not accessible in shared
libraries.  TESTPROGS are linked statically to allow them use of
library internals not normally exported.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-04 17:48:25 +01:00
Diego Biurrun
2047e40e6e Clarify Doxygen comment for FF_API_* #defines. 2012-07-04 15:10:10 +02:00
Diego Biurrun
1a068bfefd cosmetics: Consistently use C-style comments with multiple inclusion guards 2012-07-03 17:35:12 +02:00
Diego Biurrun
09f211987c misc typo and wording fixes 2012-07-03 17:35:11 +02:00
Mans Rullgard
fb93e61e2b x86: lavfi: fix gradfun/yadif build with mmx/sse disabled
These functions are defined conditionally so any uses need to have
preprocessor guards.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-03 14:14:13 +01:00
Mans Rullgard
a87b17f328 vf_yadif: move x86 init code to x86/yadif.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 01:16:37 +01:00
Mans Rullgard
2f0accf103 vf_gradfun: move x86 init code to x86/gradfun.c
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-07-02 01:16:37 +01:00
Anton Khirnov
61d158c321 avfiltergraph: shut up uninitialized variable warning.
The warning silenced was:
libavfilter/avfiltergraph.c: In function ‘avfilter_graph_config’:
libavfilter/avfiltergraph.c:500:13: warning: ‘best_idx’ may be used uninitialized in this function [-Wuninitialized]
2012-06-26 19:10:17 +02:00
Anton Khirnov
fd2784c3b5 af_join: initialize a variable to shut up gcc warning.
The warning silenced was:
libavfilter/af_join.c: In function ‘join_request_frame’:
libavfilter/af_join.c:451:9: warning: ‘nb_samples’ may be used uninitialized in this function [-Wuninitialized]
2012-06-26 19:09:15 +02:00
Anton Khirnov
422008ac63 amix: fix format specifier for AVFilterLink.sample_rate.
It is a plain int now.
2012-06-26 19:08:26 +02:00
Anton Khirnov
1a49a169eb lavfi: make filters less verbose. 2012-06-26 19:08:13 +02:00
Anton Khirnov
83ba22392d lavfi: reorder AVFilterLink fields.
Move private fields to the private section, remove holes.
2012-06-26 13:25:13 +02:00
Anton Khirnov
f892013ac4 lavfi: reorder AVFilterContext fields.
Place related fields together, remove holes.
2012-06-26 13:24:36 +02:00
Anton Khirnov
9618080512 lavfi: reorder AVFilter fields.
Place related fields together, remove holes, move private fields to the
end and mark them as private.
2012-06-26 13:23:51 +02:00
Anton Khirnov
f14e685609 lavfi: reorder AVFilterBufferRef fields.
Place related fields together, remove holes.
2012-06-26 13:23:50 +02:00
Anton Khirnov
cb81e29138 lavfi: reorder AVFilterBuffer fields.
Place related fields together, remove holes.
2012-06-26 13:23:50 +02:00
Anton Khirnov
1961e46c15 lavfi: remove disabled FF_API_FILTERS_PUBLIC cruft 2012-06-26 13:20:19 +02:00
Anton Khirnov
5e88b96f37 lavfi: remove disabled FF_API_DEFAULT_CONFIG_OUTPUT_LINK cruft 2012-06-26 13:18:44 +02:00
Anton Khirnov
205e90249a lavfi: use proper FF_API guards for different deprecated functions 2012-06-26 13:17:31 +02:00
Anton Khirnov
0b3b958135 lavfi: remove disabled FF_API_VSRC_BUFFER_ADD_FRAME cruft 2012-06-26 13:15:26 +02:00
Anton Khirnov
6c1e065bd4 lavfi: remove disabled FF_API_SAMPLERATE64 cruft 2012-06-26 13:15:14 +02:00
Anton Khirnov
8d900aa4d0 lavfi: remove disabled FF_API_GRAPH_AVCLASS cruft 2012-06-26 13:14:59 +02:00
Anton Khirnov
a5e8c41c28 lavfi: remove 'opaque' parameter from AVFilter.init()
It is not used in any filters currently and is inherently evil. If
passing binary data to filters is required in the future, it should be
done with some AVOptions-based system.
2012-06-26 13:13:48 +02:00
Alex Converse
41e637e449 lavfi: Add the af_channelmap audio channel mapping filter.
Inspired by MPlayer's af_channels filter and SoX's remix effect.
2012-06-22 13:55:58 -07:00
Anton Khirnov
dc07fb6f7b lavfi: add join audio filter.
It joins multiple input streams into one multi-channel output.
2012-06-22 21:26:18 +02:00
Anton Khirnov
f75be9856a lavfi: allow audio filters to request a given number of samples.
This makes synchronization simpler for filters with multiple inputs.
2012-06-22 21:23:42 +02:00
Anton Khirnov
58b049f2fa lavfi: support automatically inserting the fifo filter when needed.
This breaks libavfilter ABI.
2012-06-22 21:06:01 +02:00
Anton Khirnov
fa06623930 lavfi/audio: eliminate ff_default_filter_samples().
It currently does the following:
1) get a zeroed audio buffer
2) copy some properties (but not the data) of the input buffer to it
3) pass this buffer to the output filter
This looks useless and is indeed not used by any filters, therefore
delete it.

Make ff_null_filter_samples() (just pass the buffer to the next filter)
the new default.
2012-06-22 20:58:19 +02:00
Anton Khirnov
e026c9b390 lavfi/audio: don't set cur_buf in ff_filter_samples().
It's redundant, since the input buffer is passed as a parameter to the
filter_samples() callback, and can lead to stale pointers remaining on
the link.
2012-06-21 09:27:05 +02:00
Anton Khirnov
4a97ff2fa7 lavfi/fifo: add audio version of the fifo filter. 2012-06-21 07:38:35 +02:00
Anton Khirnov
27570e211a fifo: fix parenthesis placement. 2012-06-21 07:38:28 +02:00
Anton Khirnov
394a2a0452 lavfi: rename vf_fifo.c -> fifo.c
It will be used for audio too.
2012-06-21 07:38:14 +02:00
Justin Ruggles
ae46fbee1d af_amix: allow float planar sample format as input 2012-06-18 18:01:14 -04:00
Justin Ruggles
f0ece49e74 af_amix: use AVFloatDSPContext.vector_fmac_scalar() 2012-06-18 18:01:14 -04:00
Janne Grunau
fbc5740566 af_resample: fix format modifier in debug string for FF_API_SAMPLERATE64 2012-06-15 19:10:58 +02:00
Anton Khirnov
9cdf74f904 lavfi/audio: use av_samples_copy() instead of custom code.
Fixes a possible invalid write, found by Nicolas George.
2012-06-13 13:58:58 +02:00
Anton Khirnov
24b2f4ed21 avfiltergraph: remove a redundant call to avfilter_get_by_name(). 2012-06-13 13:58:03 +02:00
Anton Khirnov
2f296e39a1 lavfi: allow building without swscale. 2012-06-13 13:57:47 +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
9d0bfc5052 lavfi: make AVFilterPad opaque after two major bumps.
It will allow adding new fields to it without ABI breaks.
2012-06-13 11:11:33 +02:00
Anton Khirnov
84b9fbe055 lavfi: add avfilter_pad_get_type() and avfilter_pad_get_name().
This will allow making AVFilterPad opaque for the calling apps, since
those are the only two fields that can be useful to the users.
2012-06-13 11:10:17 +02:00
Anton Khirnov
6d58358a3a lavfi: make avfilter_get_video_buffer() private on next bump.
They are only useful inside filters and we don't allow user filters for
now.
2012-06-13 11:09:15 +02:00
Anton Khirnov
d625136877 lavfi: add channelsplit audio filter. 2012-06-12 21:38:59 +02:00
Alex Converse
65a80ee1ec avfilter: Log an error if avfilter fails to configure a link. 2012-06-12 10:05:31 -07:00
Anton Khirnov
d7d071a673 vf_libopencv: add missing headers.
Fix build after b74a1da4.
2012-06-10 08:02:02 +02:00
Anton Khirnov
803391f719 lavfi: remove request/poll and drawing functions from public API on next bump
They are only useful inside filters and we don't allow user filters for
now.
2012-06-05 09:38:16 +02:00
Anton Khirnov
fa417fcd27 lavfi: make avfilter_insert_pad and pals private on next bump.
They are only useful inside filters and we don't allow user filters for
now.
2012-06-05 09:38:08 +02:00
Anton Khirnov
b74a1da49d lavfi: make formats API private on next bump.
It is only useful inside filters and we don't allow user filters for
now.
2012-06-05 09:37:30 +02:00
Anton Khirnov
8eb9bf0933 avfiltergraph: make some functions static.
They are not used outside of avfiltergraph.c
2012-06-04 14:17:39 +02:00
Justin Ruggles
c7bd556d48 lavfi: amix: check active input count before calling request_samples
fixes use of the amix filter with only 1 input
2012-05-30 16:20:03 -04:00
Janne Grunau
12d42cd7a8 avfilter: include required header file avfilter.h in video.h 2012-05-29 15:36:06 +02:00
Justin Ruggles
c7448c182a lavfi: add audio mix filter 2012-05-23 16:37:34 -04:00
Anton Khirnov
0ce4a627c9 lavfi: fix comment, audio is supported now. 2012-05-22 21:37:44 +02:00
Anton Khirnov
ce353a881f lavfi: fix incorrect comment.
poll_frame()/request_frame() are used for audio too.
2012-05-22 21:37:44 +02:00
Anton Khirnov
c04c533f62 lavfi: remove avfilter_null_* from public API on next bump.
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.
2012-05-22 21:36:23 +02:00
Anton Khirnov
43c7a01e98 lavfi: remove avfilter_default_* from public API on next bump.
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.
2012-05-22 21:33:26 +02:00
Mina Nagy Zaki
88c3b87bd8 lavfi: deprecate default config_props() callback and refactor avfilter_config_links()
Link properties have to be checked after config_props() is called to
make sure everything is sane, so the default config_props() for output
links was redundant.

Remove now empty defaults.c

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-22 21:32:57 +02:00
Anton Khirnov
ccefa89f39 avfiltergraph: smarter sample format selection. 2012-05-22 21:29:36 +02:00
Anton Khirnov
f297dd3812 asyncts: reset delta to 0 when it's not used.
Fixes an invalid write.
2012-05-22 21:28:20 +02:00
Justin Ruggles
e0d8427dce af_resample: remove an extra space in the log output 2012-05-21 18:26:51 -04:00
Justin Ruggles
afeb3590fc lavfi: add an audio split filter
Based on current version of the asplit filter in FFmpeg written by
Stefano Sabatini and others.
2012-05-21 14:49:52 -04:00
Justin Ruggles
cc30080b3f lavfi: rename vf_split.c to split.c
This is in preparation for adding an audio split filter.
2012-05-21 14:49:52 -04:00
Anton Khirnov
54c5dd89e3 lavfi: Add fps filter.
Partially based on a patch by Robert Nagy <ronag89@gmail.com>
2012-05-18 19:33:54 +02:00
Anton Khirnov
7b3b24a8ee lavfi: initialize pts to AV_NOPTS_VALUE when creating new buffer refs. 2012-05-18 19:29:39 +02:00
Diego Biurrun
91791ac2ed avfilter: Move ff_get_ref_perms_string() to where it is used.
This fixes a compilation failure with -DDEBUG.
2012-05-15 19:10:46 +02:00
Anton Khirnov
d89eca507c Add missing version bumps and APIchanges/Changelog entries. 2012-05-15 06:57:31 +02:00
Anton Khirnov
4a1ac8c43f lavfi: move buffer management function to a separate file. 2012-05-15 06:53:22 +02:00
Anton Khirnov
4c64fed37c lavfi: move formats-related functions from default.c to formats.c
It's more convenient to have them all in one file.
2012-05-15 06:52:01 +02:00
Anton Khirnov
c5432d3ca4 lavfi: move video-related functions to a separate file.
This is easier to follow than having them randomly scattered in
avfilter.c and defaults.c.
2012-05-15 06:51:23 +02:00
Anton Khirnov
9f26421b0b lavfi: add asyncts filter. 2012-05-14 21:36:11 +02:00
Anton Khirnov
fb604ae850 lavfi: add aformat filter
Based on a patch by Mina Nagy Zaki <mnzaki@gmail.com>
2012-05-14 21:36:11 +02:00
Anton Khirnov
a2cd9be212 lavfi: add an audio buffer sink. 2012-05-14 21:36:11 +02:00
Anton Khirnov
4c66c40718 lavfi: add an audio buffer source. 2012-05-14 21:36:11 +02:00
Anton Khirnov
720c6b78d1 buffersrc: add av_buffersrc_write_frame().
It's the same as av_vsrc_buffer_add_frame(), except it doesn't take pts
or pixel_aspect parameters. Those are read from AVFrame.

Deprecate av_vsrc_buffer_add_frame().
2012-05-14 21:36:11 +02:00
Anton Khirnov
8b05e13df3 buffersrc: fix invalid read in uninit if the fifo hasn't been allocated 2012-05-14 21:36:10 +02:00
Anton Khirnov
fad729fa50 lavfi: rename vsrc_buffer.c to buffersrc.c
Most of the code will be shared for both audio and video version.
2012-05-14 21:36:10 +02:00
Anton Khirnov
fd127ede62 avfiltergraph: reindent 2012-05-14 21:36:10 +02:00
Anton Khirnov
ff1f51a8aa lavfi: add channel layout/sample rate negotiation. 2012-05-14 21:36:10 +02:00
Anton Khirnov
5775a1832c lavfi: add types and functions for channel layout/samplerate negotiation 2012-05-14 21:36:10 +02:00
Robert Nagy
394a0267ab yadif: Flush filter on eof.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-14 21:36:10 +02:00
Robert Nagy
7dd56d411e yadif: Improve pts accuracy.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-14 21:36:10 +02:00
Anton Khirnov
012f04a277 lavfi: autoinsert resample filter when necessary. 2012-05-12 18:09:29 +02:00
Anton Khirnov
d371e7b988 lavfi: add lavr-based audio resampling filter. 2012-05-12 18:09:28 +02:00
Anton Khirnov
0b45334a58 lavfi: move audio-related functions to a separate file.
This is easier to follow than having them randomly scattered in
avfilter.c and defaults.c.
2012-05-09 20:32:49 +02:00
Anton Khirnov
472fb3bbfa lavfi: remove some audio-related function from public API.
Those functions are only useful inside filters. It is better to not
support user filters until the API is more stable.

This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.
2012-05-09 20:31:56 +02:00
Anton Khirnov
f20ab492ac lavfi: change AVFilterLink.sample_rate from int64_t to int on next bump
There is no real reason for it to be 64bit, it's just a plain int in the
rest of Libav.
2012-05-09 20:31:26 +02:00
Anton Khirnov
a6bdfc2a92 lavfi: change AVFilterBufferRefAudioProps.sample_rate from uint32_t to int
There's no reason for it to be explicitly 32 bits. It's declared as a
plain int in all other places in Libav.

This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.
2012-05-09 20:30:28 +02:00
Stefano Sabatini
7ef0adcc2e lavfi: simplify signature for avfilter_get_audio_buffer() and friends
The additional parameters are just complicating the function interface.

Assume that a requested samples buffer will *always* have the format
specified in the requested link.

This breaks audio filtering API and ABI in theory, but since it's
unusable right now this shouldn't be a problem.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-09 20:29:53 +02:00
Stefano Sabatini
6735534f19 lavfi: use avfilter_get_audio_buffer_ref_from_arrays() in avfilter_default_get_audio_buffer 2012-05-09 20:28:56 +02:00
Stefano Sabatini
e727bca392 lavfi: cleanup avfilter_get_audio_buffer() and pals.
Remove AVFilterBufferRefAudioProps.size, and use nb_samples in its place
everywhere.
This is required as the size in the audio buffer may be aligned, so it
may not contain a well defined number of samples.

Also remove the useless planar parameter, which can be deduced from the
sample format.

This is technically an API and ABI break, but since the audio part of
lavfi is not usable now, this should not be a problem in practice.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-09 20:26:19 +02:00
Stefano Sabatini
1b8c9271bd lavfi: add avfilter_get_audio_buffer_ref_from_arrays().
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-09 17:51:13 +02:00
Anton Khirnov
9453c9e1de lavfi: add extended_data to AVFilterBuffer.
This is similar to what has previously been done in AVFrame to allow
dealing with more than 8 channels.
2012-05-09 17:47:53 +02:00
Anton Khirnov
ac71230902 lavfi: add video buffer sink, and use it in avtools
Also add the public interface libavfilter/buffersink.h.

Based on a commit by Stefano Sabatini.
2012-05-09 08:59:37 +02:00
Anton Khirnov
ab165047a6 lavfi: add a function for copying properties from AVFilterBufferRef->AVFrame
Based on a commit by Stefano Sabatini <stefano.sabatini-lala@poste.it>
2012-05-09 08:49:36 +02:00
Anton Khirnov
8134fafe9b lavfi: uninline avfilter_copy_buffer_ref_props().
A nontrivial public function such as this should most certainly NOT be
inline.
2012-05-07 14:23:36 +02:00
Diego Biurrun
dbe6ba55a3 build: cosmetics: Add missing end-of-line backslashes to item lists. 2012-05-07 14:17:40 +02:00
Diego Biurrun
9eb83a56aa build: cosmetics: Split HEADERS/OBJS/PROGS lists into one entry per line. 2012-05-07 14:01:32 +02:00
Robert Nagy
a07578f3f2 vf_yadif: fix missing error handling for avfilter_poll_frame() 2012-05-07 10:26:57 +02:00
Anton Khirnov
0bbd874743 lavfi: support audio in avfilter_copy_frame_props(). 2012-05-07 07:10:48 +02:00
Mina Nagy Zaki
11b6a82412 lavfi: avfilter_merge_formats: handle case where inputs are same
This fixes a double-free crash if lists are the same due to the two
merge_ref() calls at the end of the (useless) merging that happens.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-07 07:08:59 +02:00
Anton Khirnov
d4ac703c7f lavfi/formats: use sizeof(var) instead of sizeof(type). 2012-05-06 16:26:41 +02:00
Stefano Sabatini
f10530b78a lavfi: remove avfilter_default_config_input_link() declaration
The function is not implemented (and possibly useless).
2012-05-06 16:26:41 +02:00
Anton Khirnov
25b3babe11 lavfi: always enable the scale filter and depend on sws.
The scale filter is used for internal colorspace conversions, so it must
always be present.
2012-05-06 16:22:29 +02:00
Anton Khirnov
fd18ee0ff6 vf_split: support user-specifiable number of outputs. 2012-05-06 16:21:00 +02:00
Nicolas George
5cb4f1a127 vsrc_buffer: return EAGAIN if no frame is available.
This is not an erroneous condition, do not print a warning.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-05-05 12:59:18 +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
Anton Khirnov
7bf9e3391f vsrc_buffer: fix check from 7ae7c41.
The user submitted variable in this function is frame, not buf.
2012-04-14 18:58:20 +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
Anton Khirnov
7ae7c41413 vsrc_buffer: allow using a NULL buffer to signal EOF. 2012-04-14 09:25:46 +02:00
Anton Khirnov
e36b25d1df vf_overlay: implement poll_frame()
Signal that it can output a frame when there are frames on the main
input and EOF on the overlay input, but a frame is buffered -- e.g.
single picture overlay.
2012-04-09 21:30:21 +02:00
Anton Khirnov
90f65dc6cf vf_scale: support named constants for sws flags. 2012-04-09 21:29:05 +02:00
Anton Khirnov
a03f8ea0a8 vsrc_buffer: when no frame is available, return an error instead of segfaulting. 2012-04-05 09:30:09 +02:00
Diego Biurrun
1f068e4450 vf_unsharp: Mark readonly variable as const.
This fixes the following warning:
libavfilter/vf_unsharp.c:106: warning: initialization discards qualifiers from pointer target type
2012-04-04 19:34:40 +02:00
Anton Khirnov
95587d29d7 vsrc_buffer: allow buffering arbitrary number of frames. 2012-04-01 09:04:19 +02:00
Anton Khirnov
416fd90ead vf_scale: avoid a pointless memcpy in no-op conversion.
I.e. just pass the buffer along when src parameters == dst parameters.
2012-04-01 09:04:14 +02:00
Anton Khirnov
63736fe48c avfiltergraph: try to reduce format conversions in filters.
Current code, with a filterchain such as
(input - yuv411) -> (scale - any) -> (sink - any)
will result in yuv420 being chosen for the second link, which is clearly
not right.

This commit attempts to improve in the following way:
repeat until convergence:
  loop over all filters
    find input link with exactly one format
    force this format on all output links of the same type (if possible)
2012-04-01 09:04:09 +02:00
Anton Khirnov
996f9f0c32 avfiltergraph: add an AVClass to AVFilterGraph on next major bump.
It will be used for logging, possibly also AVOptions.
2012-04-01 09:03:35 +02:00
Diego Biurrun
e7e19b15c7 build: Only clean the architecture subdirectory we build for.
This allows simplifying the Makefiles; it is no longer necessary to register
arch subdirectory Makefiles, just putting them in place is enough.
2012-03-26 13:29:03 +02:00
Alex Converse
b0f29db5c2 Mark mutable static data const where appropriate. 2012-02-21 09:47:07 -08:00
Diego Biurrun
7331b6e718 Drop some completely unnecessary av_unused attributes. 2012-02-13 19:20:53 +01:00
Janne Grunau
456d3e4fb5 yadif: specify array size outside DECLARE_ALIGNED 2012-02-09 21:28:37 +01:00
Diego Biurrun
0bba26466f cosmetics: Delete empty lines at end of file. 2012-02-09 12:26:45 +01:00
Anton Khirnov
38d5533228 pixdesc: mark pseudopaletted formats with a special flag.
This makes it possible to dintinguish them from PAL8.

Fixes an invalid write in avpicture_layout().
2012-02-08 21:01:31 +01:00
Andrey Utkin
e496c45d9b drawtext: add 'fix_bounds' option on coords fixing
Before, drawtext filter deliberately altered given text coordinates if
text didn't fully fit on the picture. This breaks the use case of
scrolling large text, e.g. movie closing credits.
Add 'fix_bounds', to make it usable in such cases (by setting its value to 0).
Default behavior is not changed, and non-fitting text coords are fixed.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:57:40 +01:00
Andrey Utkin
2b43dfce36 drawtext: fix text_{w, h} expression vars
Before, {text_,}{w,h} vars hadn't got initialized

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-06 07:52:05 +01:00
Andrey Utkin
e7f0bc8c0f drawtext: add missing braces around an if() block.
Prevents uninitialized read.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2012-02-05 08:07:55 +01:00
Alex Converse
7181c4edee cosmetics: Remove extra newlines at EOF 2012-01-27 17:19:09 -08:00
Diego Biurrun
07a873a277 build: Automatically include architecture-specific library Makefile snippets. 2012-01-25 15:04:28 +01:00
Diego Biurrun
33ad8c3cab cosmetics: Remove some unnecessary block braces. 2012-01-25 13:14:49 +01:00
Diego Biurrun
e44c11e9fa cosmetics: Move static and inline attributes to more standard places.
Fixes several "‘static’ is not at beginning of declaration" warnings.
2012-01-14 17:32:36 +01:00
Anton Khirnov
3167dc9515 lavfi: move version macros to a new installed header version.h 2012-01-12 09:00:54 +01:00
Anton Khirnov
43fe6a2905 vsrc_buffer: release the buffer on uninit. 2012-01-12 08:59:00 +01:00
Anton Khirnov
5d25140f71 vsrc_buffer: error on changing frame parameters. 2012-01-10 16:47:15 +01:00
Diego Biurrun
3dc99a18d4 cosmetics: drop some pointless parentheses 2012-01-07 22:13:07 +01:00
Andrey Utkin
079688b6cb Disable annoying warning without changing behavior
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-01-07 12:46:57 -08:00
Diego Biurrun
d4b63054d9 cosmetics: Drop unnecessary parentheses around return values. 2011-12-30 22:18:07 +01:00
Anton Khirnov
06e8d38f2b Add minor bumps and APIchanges entries for lavc/lavfi changes. 2011-12-25 20:50:16 +01:00
Anton Khirnov
e1d9dbf2d4 lavfi: add a new function av_buffersrc_buffer().
It can be used to directly pass a AVFilterBufferRef to lavfi, avoiding a
memcpy.
2011-12-25 16:18:57 +01:00
Stefano Sabatini
1c9e340d35 lavfi: add avfilter_copy_frame_props()
avfilter_copy_frame_props() avoids code duplication and increases
robustness.
2011-12-25 16:18:57 +01:00
Stefano Sabatini
b58dbb5b03 lavc: add a sample_aspect_ratio field to AVFrame
The sample aspect ratio is a per-frame property, so it makes sense to
define it in AVFrame rather than in the codec/stream context.
Simplify application-level sample aspect ratio information extraction,
and allow further simplifications.
2011-12-25 16:18:57 +01:00
Anton Khirnov
82d05e78a6 allfilters: fix type of avfilter_vsrc_buffer. 2011-12-23 08:17:22 +01:00
Anton Khirnov
196c9e5c8c lavfi: always build vsrc_buffer.
It's a part of public API.
2011-12-22 15:42:52 +01:00
Luca Barbato
d32eed5c73 yadif: support 10bit YUV
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-13 17:02:55 +01:00
Mans Rullgard
878dda5db1 build: move inclusion of subdir.mak to main subdir loop
Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-12-13 14:26:49 +00:00
Diego Biurrun
58c42af722 doxygen: misc consistency, spelling and wording fixes 2011-12-12 23:06:23 +01:00
Anton Khirnov
cd3716b9aa Replace all uses of av_close_input_file() with avformat_close_input(). 2011-12-12 20:34:38 +01:00
Andrey Utkin
5b3265a718 lavfi: install libavfilter/vsrc_buffer.h
It declares API necessary for filtering apps.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-12-11 19:14:09 +01:00
Luca Barbato
78212cefe1 drawtext: remove typo
It slipped through the last two iterations.
2011-12-07 20:40:18 +01:00
Luca Barbato
f5edfc9e92 drawtext: introduce rand(min, max)
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-07 12:11:14 +01:00
Luca Barbato
73585620b8 drawtext: introduce explicit draw/hide variable
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2011-12-07 12:11:14 +01:00
Luca Barbato
2cf74eca70 drawtext: make x and y parametric
Introduce variables "E", "PHI", "PI", "main_w"/"W", "main_h"/"H",
"text_w"/"w", "text_h"/"h", "x", "y", "n" and "t" in line with
vf_overlay and refactor the code accordingly.
2011-12-03 01:35:29 +01:00
Luca Barbato
ec11ff8407 drawtext: manage memory allocation better
Call dtext_prepare_text as early as possible
Do not draw if the memory allocation failed
2011-12-03 01:35:28 +01:00
Luca Barbato
a2fb4bcb01 drawtext: refactor draw_text
Split the memory allocation from the actual drawing.
2011-12-03 01:35:28 +01:00
Mans Rullgard
cc276c85d1 Make channel layout masks unsigned
It makes more sense for a bit mask to use an unsigned type.
The change should be source and binary compatible on all
supported systems, hence micro version bump.

Fixes a few invalid shifts.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2011-11-25 13:19:54 +00:00
Ronald S. Bultje
43317fd52c libavfilter: reindent. 2011-11-05 07:01:39 -07:00
Ronald S. Bultje
23a8b4ddfc avfilter: don't abort() on zero-size allocations. 2011-11-05 06:59:27 -07:00
Alex Converse
0d7a16a946 avfilter: Don't copy garbage from the stack when setting up video pictures. 2011-11-03 15:54:04 -07:00
Diego Biurrun
959cfbf3f4 vsrc_testsrc: fix mailing list reference URL 2011-11-02 10:42:55 +01:00
Diego Biurrun
124e28847b Remove some stray unnecessary ffmpeg references. 2011-11-02 10:42:54 +01:00
Stefano Sabatini
ec2ac9271c lavfi: add rgbtestsrc source, ported from MPlayer libmpcodecs
The licence was changed from GPL to LGPL with explicit approval from
the original author.

See thread:
Subject: [FFmpeg-devel] [PATCH] lavfi: add rgbtestsrc source,
        ported from MPlayer libmpcodecs
Date: Mon, 11 Jul 2011 16:32:41 +0200

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-19 07:09:08 +02:00
Stefano Sabatini
0244879f30 lavfi: add testsrc source
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-19 07:08:42 +02:00
Stefano Sabatini
b157be1f38 lavfi: port libmpcodecs delogo filter
The ported filter supports named option parsing and more YUV formats.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-17 18:05:41 +02:00
Stefano Sabatini
ce6b6ef645 lavfi: port boxblur filter from libmpcodecs
With the following additions:
* support to gray format
* support to yuva420p format
* parametric luma/chroma/alpha radius
* consistency check on the radius values, avoid crashes with invalid values

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-17 18:05:41 +02:00
Stefano Sabatini
171868e25a lavfi: add negate filter
This filter is a simple wrapper around the LUT filter.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-17 18:05:41 +02:00
Stefano Sabatini
8fe0c527f3 lavfi: add LUT (LookUp Table) generic filters
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-10-17 18:05:38 +02:00
Anton Khirnov
145f741e11 AVOptions: rename FF_OPT_TYPE_* => AV_OPT_TYPE_* 2011-10-12 16:51:16 +02:00
Stefano Sabatini
1ee2014190 vf_unsharp: set default chroma size value to 5x5
The previous default value 0x0 was not good, since it is not even
valid.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-29 07:20:05 +02:00
Stefano Sabatini
998e8519ef vf_unsharp: fix out-of-buffer read
In apply_unsharp(), when y is >= height, prevent out-of-buffer reading
from src, read from the last buffer line in src2 instead.

The check was implemented in the original unsharp libmpcodecs code and
lost in the port.

This also fixes output discrepancy between the two filters.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-29 07:19:30 +02:00
Stefano Sabatini
1c257dc32d vf_unsharp: store hsub/vsub in the filter context
Also drop obfuscating CHROMA_WIDTH/HEIGHT macros.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:09:18 +02:00
Stefano Sabatini
e6d17ba426 vf_unsharp: adopt a more natural order of params in apply_unsharp()
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:09:03 +02:00
Stefano Sabatini
de7b58da3e vf_unsharp: rename method "unsharpen" to "apply_unsharp"
More consistent with the original libmpcodecs code, and the name
"unsharpen" was confusing.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:08:56 +02:00
Michael Niedermayer
d33e0c6bc8 vf_scale: apply the same transform to the aspect during init that is applied per frame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:08:30 +02:00
Stefano Sabatini
80de930a78 vf_pad: fix "vsub" variable value computation
It was shifting 2 rather than 1, +10l.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:03:30 +02:00
Stefano Sabatini
46b29397a6 vf_scale: add a "sar" variable
Also create a "dar" alias for the "a" variable, for avoiding possible
confusion between dar/sar.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:03:24 +02:00
Stefano Sabatini
0ec56d1144 lavfi: fix realloc size computation in avfilter_add_format()
Replace sizeof((*avff)->formats)
with    sizeof(*(*avff)->formats)

as the size of the array element is given by the pointed element
rather than by its pointer.

In particular fix computation with the pending patch when
sizeof(int64_t) != sizeof(int64_t *).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:03:18 +02:00
Stefano Sabatini
e63e4c99c9 vsrc_color: use internal timebase
Avoid timescale conversion, simplify.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:03:11 +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
Stefano Sabatini
59cef18c24 avfiltergraph: use meaningful error codes
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-28 08:02:32 +02:00
Stefano Sabatini
be4e8908d2 vf_yadif: add support to yuva420p
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-21 09:00:24 +02:00
Stefano Sabatini
4703a7b50b vf_yadif: correct documentation on the parity parameter
0 is top-field-first, 1 is bottom-field-first, not the other way
around.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-21 08:59:58 +02:00
Joakim Plate
5feb67f8a1 vf_yadif: copy buffer properties like aspect for second frame as well
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-21 08:59:36 +02:00
Joakim Plate
ab09df9dea vf_yadif: add an option to enable/disable deinterlacing based on src frame "interlaced" flag
Signed-off-by: Joakim Plate <elupus@ecce.se>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-19 12:44:22 +02:00
Stefano Sabatini
91aff2665d vsrc_color: set output pos values to -1
-1 is more correct than 0, as the position in the file is undefined.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-19 12:44:02 +02:00
Stefano Sabatini
753890d0db vsrc_color: add @file doxy
Also remove outdated reference to color in vf_pad.c.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-19 12:43:25 +02:00
Stefano Sabatini
deb58ab447 vsrc_buffer: remove duplicated file description
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2011-09-19 12:43:10 +02:00