Commit Graph

1402 Commits

Author SHA1 Message Date
Diego Biurrun
ee80cf741a avfilter: x86: K&R formatting cosmetics 2013-10-31 12:15:54 +01:00
Anton Khirnov
cd43ca0443 lavfi: do not export the filters from shared objects 2013-10-28 15:29:54 +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
Daniel Kang
0e73049416 avfilter: x86: Port gradfun filter optimizations to yasm
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-10-23 14:50:27 +02:00
Diego Biurrun
f6633c55a3 avfilter: Fix typo in Loren's email address 2013-10-23 10:25:14 +02:00
Derek Buitenhuis
3511d4fc97 pthread: Avoid crashes/odd behavior caused by spurious wakeups
This is similar to 5152196b2b.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-22 13:24:01 +01:00
Vittorio Giovara
00d7369de0 vf_fieldorder: log when processing is skipped
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-10-22 10:58:25 +02:00
Derek Buitenhuis
eb90a2091f pthread: Fix deadlock during thread initialization
Sometimes, if pthread_create() failed, then pthread_cond_wait() could
accidentally be called in the worker threads after the uninit function
had already called pthread_cond_broadcast(), leading to a deadlock.

Don't call pthread_cond_wait() if c->done is set.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-10-13 05:50:00 -04:00
Vittorio Giovara
06e7301a2e vf_interlace: do not process an already interlaced frame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-10-02 16:40:49 +02:00
Anton Khirnov
0767bfd199 lavfi: allow user-provided execute() callbacks 2013-09-28 08:06:19 +02:00
Diego Elio Pettenò
faa8245bd4 vf_lut: Constantize
The pixel format tables are never modified, mark them as constant.

Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-08-31 16:13:42 +02:00
Hendrik Leppkes
cb8f70c96e vf_fps: use double constants for default/min/max for start_time
When using AV_NOPTS_VALUE (which expands to INT64_C(0x8000000000000000))
as union initializer for a double field, the c99 converter needs to
interpret this constant when filling the union initializer, and it is
interpreted as a positive value.

When converting AV_NOPTS_VALUE to a double, MSVC 2010 ends up with
the same positive value as the c99 converter, while MSVC 2012 gets
a negative value.

This results in an infite loop in various FATE tests on MSVC 2012.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-08-28 17:54:47 +03:00
Vittorio Giovara
0ce1a7598e vf_interlace: fix file permissions
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-08-27 23:50:45 +02:00
Justin Ruggles
545a0b807c vf_fps: add 'start_time' option
This allows for dropping or duplication to match a particular start time.
2013-08-20 14:10:02 -04:00
Anton Khirnov
3799376dd3 lavfi/fifo: fix flushing when using request_samples
If any samples are still buffered when request_frame returns EOF, they
won't be returned currently.
2013-08-05 10:52:00 +02:00
Anton Khirnov
77cc958f60 lavfi: add const to the AVFilter parameter of avfilter_graph_create_filter()
This function should never modify the filter.
2013-08-04 15:46: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
Diego Biurrun
45dd1ae1b3 avfilter: Add some missing FF_API_AVFILTERBUFFER ifdefs 2013-07-31 19:23:00 +02:00
Diego Biurrun
0e8c6f221a avisynth: Fix a "AVISynth" vs. "AviSynth" struct name typo
Also fix some similar typos in comments and documentation.
2013-07-29 20:09:59 +02:00
Diego Biurrun
bf4b0ed1d5 Add missing deprecation attributes 2013-07-27 16:08:49 +02:00
Diego Biurrun
966689442e buffersink: K&R formatting cosmetics 2013-07-27 10:47:38 +02:00
Hendrik Leppkes
779e6c2b98 lavfi: add attribute_align_arg to all public entry points
Previously it was partly only added to central functions called
internally, however if GCC would inline these into the public fuction, the
alignment attribute would not take effect.

Instead, add it to all public entry points to avoid these problems.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-26 19:51:04 +03:00
Vittorio Giovara
6756d98cec lavfi: filtfmts: use newer avfilter APIs
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-19 12:22:30 +03:00
Diego Biurrun
3ac7fa81b2 Consistently use "cpu_flags" as variable/parameter name for CPU flags 2013-07-18 00:31:35 +02:00
Sean McGovern
50612484e0 pthread: Rename thread_init to avoid symbol collision
The AIX threads library exposes a function with the same name.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-17 00:13:31 +03:00
Michael Niedermayer
bec509db43 vf_interlace: better handling of odd video size
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-12 11:40:56 +03:00
Anton Khirnov
eeeb5c291d vsrc_movie: do not free avoption variables in uninit()
The generic code frees them as well. Since av_free was used to free them
instead of av_freep, this would result in a double free.
2013-06-20 13:27:14 +02:00
Anton Khirnov
c9c7bc4493 lavfi: switch ff_default_get_audio_buffer() to av_frame_get_buffer()
This simplifies the code and avoids using libavcodec-specific
avcodec_fill_audio_frame().
2013-06-18 11:21:16 +02:00
Vittorio Giovara
cd0faeee62 lavfi: math typo in interlace filter
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-06-17 12:25:43 +02:00
Anton Khirnov
8b7dffc2d6 lavfi doxy: improve/extend AVFilter doxy. 2013-06-04 17:18:33 +02:00
Anton Khirnov
8a994b7406 vf_fade: support slice threading 2013-05-24 09:33:05 +02:00
Anton Khirnov
cb79881b49 vf_yadif: support slice threading 2013-05-24 09:32:07 +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
Anton Khirnov
1dd3561143 vf_format: do not use the AVFilterFormats internals.
Use the formats.h API instead.
2013-05-17 20:30:17 +02:00
Anton Khirnov
c5ab6088ad af_aformat: cosmetics, fix indentation 2013-05-17 20:30:02 +02:00
Anton Khirnov
b01f6041f4 lavfi: rename AVFilterFormats.format_count to nb_formats
This is more consistent with naming in the rest of Libav.
2013-05-17 20:29:50 +02:00
Anton Khirnov
bc8c1cdc7b lavfi doxy: add a page for lavfi. 2013-05-17 20:26:11 +02:00
Anton Khirnov
16a645adeb vf_pixdesctest: make config_props work properly when called multiple times. 2013-05-17 07:44:23 +02:00
Anton Khirnov
3ba35a346c vf_hqdn3d: make config_props work properly when called multiple times.
Do not leak all the temp buffers.
2013-05-17 07:44:12 +02:00
Anton Khirnov
3fb29588a2 vf_drawtext: don't leak the expressions. 2013-05-17 07:44:04 +02:00
Anton Khirnov
6592cd22a2 vf_crop: make config_props work properly when called multiple times.
Do not leak the x/y expressions.
2013-05-17 07:43:57 +02:00
Anton Khirnov
d5c66d9c56 vf_setdar: make config_props work properly when called multiple times.
Do not overwrite the variable set through AVOptions.
2013-05-17 07:43:44 +02:00
Anton Khirnov
4c205f42c8 vf_drawbox: make config_props work properly when called multiple times.
Do not overwrite the variables set through AVOptions.
2013-05-17 07:43:17 +02:00
Anton Khirnov
90d9a2a04c vf_drawtext: do not reset the frame number in config_input.
Frame number should be incremented normally even if the link properties
change.
2013-05-17 07:43:07 +02:00
Anton Khirnov
7727be79d1 vf_fps: move initializing pts from config_props to init.
It should not be reinitialized if the link properties change.
2013-05-17 07:42:55 +02:00
Anton Khirnov
d371c3c2e2 vf_frei0r: make config_props work properly when called multiple times.
Do not leak the initialized filter instance.
2013-05-17 07:42:46 +02:00
Anton Khirnov
87c31cfd7a vf_gradfun: make config_props work properly when called multiple times. 2013-05-17 07:42:39 +02:00
Anton Khirnov
b06848f4de vf_lut: make config_props work properly when called multiple times.
Do not leak the expressions.
2013-05-17 07:42:28 +02:00
Anton Khirnov
3062ac4c47 vf_pad: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:36:10 +02:00
Anton Khirnov
a70519aad1 vf_overlay: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:36:04 +02:00
Anton Khirnov
8d2565c28b vf_lut: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:35:59 +02:00
Anton Khirnov
4753f802c0 vf_libopencv: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:35:53 +02:00
Anton Khirnov
56e4ce0d13 vf_hqdn3d: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:35:48 +02:00
Anton Khirnov
7af5ae2d07 vf_hflip: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:33:38 +02:00
Anton Khirnov
05fab5530b vf_gradfun: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:33:29 +02:00
Anton Khirnov
f6b6d6ac42 vf_frei0r: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:33:23 +02:00
Anton Khirnov
cbec213a90 vf_format: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:33:17 +02:00
Anton Khirnov
d64cf54b34 vf_fieldorder: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:33:07 +02:00
Anton Khirnov
9bbf6c681a vf_fieldorder: cosmetics, remove an extra linebreak 2013-05-16 07:32:49 +02:00
Anton Khirnov
c0279956b3 vf_fade: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:32:43 +02:00
Anton Khirnov
d3735f7ad6 vf_drawtext: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:32:34 +02:00
Anton Khirnov
20e2794eea vf_drawbox: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:32:27 +02:00
Anton Khirnov
ba09675f44 vf_delogo: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:31:57 +02:00
Anton Khirnov
e16e23d70e vf_cropdetect: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:31:50 +02:00
Anton Khirnov
671563d9fd vf_crop: cosmetics, break lines 2013-05-16 07:31:31 +02:00
Anton Khirnov
7f83959598 vf_crop: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:31:11 +02:00
Anton Khirnov
762df56ef9 vf_boxblur: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:30:56 +02:00
Anton Khirnov
a2a696990c vf_blackframe: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:30:41 +02:00
Anton Khirnov
b3ea76624a vf_aspect: use the name 's' for the pointer to the private context
This is shorter and consistent across filters.
2013-05-16 07:30:28 +02:00
Diego Biurrun
2832ea26f3 Remove commented-out debug #define cruft 2013-05-16 00:23:30 +02:00
Anton Khirnov
e6c4ac7b5f pixdesc: rename PIX_FMT_* flags to AV_PIX_FMT_FLAG_* 2013-05-15 07:46:51 +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
096696ef0d avfiltergraph: simplify inserting conversion filters.
There is now no need to explicitly pass 0:0 as width/height to scale,
those are the defaults.
2013-05-15 07:45:51 +02:00
James Darnley
d10499a32a yadif: correct strides in filter_edges_16bit
The C code treats the data as arrays of uint16_t so strides must not
be in bytes but in pixels.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-05-14 09:24:13 +02:00
James Darnley
b0ef0ae776 yadif: restore speed of the C filtering code
Always use the special filter for the first and last 3 columns (only).

Changes made in 64ed397 slowed the filter to just under 3/4 of what it
was.  This commit restores the speed while maintaining identical output.

For reference, on my Athlon64:
1733222 decicycles in old
2358563 decicycles in new
1727558 decicycles in this

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-05-14 09:23:55 +02:00
Anton Khirnov
16a4a18db0 af_asyncts: fix offset calculation
delta is in samples, not bytes. Also the sample format is not guaranteed
to be planar.

CC:libav-stable@libav.org
2013-05-10 09:31:27 +02:00
Diego Biurrun
6e9f8d6a7d x86: vf_yadif: Remove stray dsputil_mmx #include 2013-05-08 18:18:23 +02:00
Janne Grunau
5f87c277bd vf_scale: add endianness conversion pixel format in query_formats 2013-05-06 21:48:15 +02:00
Hendrik Leppkes
20c86571cc lavfi: let gcc realign the stack on public graph driving functions
The functions which actually drive the filter graph by pushing
frames through it need to ensure an aligned stack for SIMD functions.

This fixes a crash in YADIF filter when using a mingw build in a MSVC
application.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-05-04 23:40:13 +03:00
Diego Biurrun
093804a93c avfilter: Add av_cold attributes to init/uninit functions 2013-05-04 21:10:05 +02:00
Anton Khirnov
a1e05b0487 lavfi: add trim and atrim filters. 2013-04-30 11:24:57 +02:00
Anton Khirnov
b472938233 lavfi: add an asetpts filter 2013-04-30 11:17:57 +02:00
Anton Khirnov
2548834b22 vf_setpts: cosmetics, reformat 2013-04-30 11:17:23 +02:00
Anton Khirnov
c22263d3e8 graphparser: only print filter arguments if they are non-NULL 2013-04-30 11:16:57 +02:00
Anton Khirnov
8aaab1113c af_channelmap: ensure the output channel layout is valid. 2013-04-30 11:16:37 +02:00
Anton Khirnov
949c603ed9 af_channelmap: remove now unnecessary goto
Options are freed from the generic code now, there is no need to call
av_opt_free() from the filter.
2013-04-30 11:16:22 +02:00
Anton Khirnov
1012155722 vf_split: fix description
It now allows an arbitrary number of inputs, not just two.
2013-04-30 11:16:16 +02:00
Diego Biurrun
c1ad70c3cb x86: Move some conditional code around to avoid unused variable warnings 2013-04-22 17:50:02 +02:00
Anton Khirnov
9bfc6e02ba afifo: fix request_samples on the last frame in certain cases
The current code can fail to return the last frame if it contains
exactly the requested number of samples.

Fixes the join filter test, which previously did not include the last
408 samples in most cases.

CC:libav-stable@libav.org

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-04-22 02:29:56 +02:00
Anton Khirnov
c0771a1ac6 af_channelmap: cosmetics, use an extra local variable to shorten the code 2013-04-17 08:37:59 +02:00
Anton Khirnov
aafed1175d af_channelmap: sanity check input channel indices in all cases.
Fixes invalid reads from non-existing channels.

CC:libav-stable@libav.org
2013-04-17 08:37:59 +02:00
Vittorio Giovara
3fce136798 lavfi: new interlace filter
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-04-11 21:33:07 +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