Commit Graph

1472 Commits

Author SHA1 Message Date
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
Anton Khirnov
7cdd737ba8 lavfi: mark filters with dynamic number of inputs or outputs with special flags
This will be useful in avtools in the following commits.
Any other caller might also want to know this information.
2013-04-11 20:42:41 +02:00
Anton Khirnov
1ba95a9cca lavfi: add avfilter_init_dict() for initializing a filter with a dict. 2013-04-11 20:40:20 +02:00
Anton Khirnov
48a5adab62 lavfi: add avfilter_init_str() to replace avfilter_init_filter().
Drop the unused opaque parameter from its signature.
2013-04-11 20:39:13 +02:00
Anton Khirnov
1565cbc65c lavfi: make avfilter_free() remove the filter from its graph. 2013-04-11 20:38:48 +02:00
Anton Khirnov
111367263a lavfi: add AVFilterContext.graph.
It will be useful in the following commits.
2013-04-11 20:38:23 +02:00
Anton Khirnov
c2c9801bc9 lavfi: deprecate avfilter_graph_add_filter().
Since this function adds a standalone filter to a filter graph and we do
not support creating such filters, there is no reason for this function
to exist.
2013-04-11 20:36:42 +02:00
Anton Khirnov
bc1a985ba0 lavfi: replace avfilter_open() with avfilter_graph_alloc_filter().
Since we do not support "standalone" filters not attached to an
AVFilterGraph, we should not have a public function to create such
filters. In addition that function is horribly named, the action it does
cannot be possibly described as "opening" a filter.
2013-04-11 20:34:14 +02:00
Anton Khirnov
38f0c0781a lavfi: merge avfiltergraph.h into avfilter.h
We do not support using filters without AVFilterGraph in practice
anyway, so there is no point in pretending we do.
2013-04-11 20:33:33 +02:00
Anton Khirnov
4a37d4b3f8 lavfi: add const to the pads parameter of avfilter_pad_get_name/type 2013-04-11 20:33:23 +02:00
Anton Khirnov
91d2efa7d6 lavfi: add const to AVFilterContext.filter.
lavfi should never modify the filter through that pointer.
2013-04-11 20:32:39 +02:00
Anton Khirnov
837112c0c8 af_channelmap: fix uninitialized variable use introduced in ba8efac977 2013-04-09 22:01:34 +02:00
Anton Khirnov
cdac3acb11 lavfi: add a bump and docs entries for the AVOptions switch 2013-04-09 19:13:27 +02:00
Anton Khirnov
8114c10160 lavfi: add avfilter_get_class().
Useful for examining options, the same as the corresponding functions
for the other libs.
2013-04-09 19:13:19 +02:00
Anton Khirnov
4d1f31ea44 lavfi: make AVFilterContext export filter options. 2013-04-09 19:13:10 +02:00
Anton Khirnov
62549f9655 lavfi: error out when options are provided to a filter that does not take any 2013-04-09 19:12:59 +02:00
Anton Khirnov
c43a7ecad9 lavfi: remove now unused args parameter from AVFilter.init 2013-04-09 19:12:38 +02:00
Anton Khirnov
7b3eb745b9 vsrc_testsrc: switch to an AVOptions-based system. 2013-04-09 19:12:06 +02:00
Anton Khirnov
a42d6e6c4c vsrc_movie: switch to an AVOptions-based system. 2013-04-09 19:11:27 +02:00
Anton Khirnov
b7b3302f8f vsrc_nullsrc: switch to an AVOptions-based system. 2013-04-09 19:11:12 +02:00
Anton Khirnov
7bc1a883c9 vsrc_color: switch to an AVOptions-based system. 2013-04-09 19:11:03 +02:00
Anton Khirnov
73d5d405d4 split: switch to an AVOptions-based system. 2013-04-09 19:10:41 +02:00
Anton Khirnov
b13623e184 af_volume: switch to an AVOptions-based system. 2013-04-09 19:10:27 +02:00
Anton Khirnov
dd7fc37c71 af_join: switch to an AVOptions-based system.
Change the mappings separator from comma to '|' to avoid excessive
escaping, since comma is already used for separating filters in the
filtergraph description.
2013-04-09 19:10:12 +02:00
Anton Khirnov
3f14febbdf af_channelsplit: switch to an AVOptions-based system. 2013-04-09 19:10:00 +02:00
Anton Khirnov
ba8efac977 af_channelmap: switch to an AVOptions-based system. 2013-04-09 19:09:40 +02:00
Anton Khirnov
b2b25b0659 af_asyncts: switch to an AVOptions-based system. 2013-04-09 19:09:33 +02:00
Anton Khirnov
ac20e3ab8e af_amix: switch to an AVOptions-based system. 2013-04-09 19:09:26 +02:00
Anton Khirnov
7536c67104 vf_yadif: switch to an AVOptions-based system. 2013-04-09 19:09:03 +02:00
Anton Khirnov
b83e9efc53 vf_unsharp: switch to an AVOptions-based system. 2013-04-09 19:08:42 +02:00
Anton Khirnov
0c2466dec7 vf_transpose: switch to an AVOptions-based system. 2013-04-09 19:08:04 +02:00
Anton Khirnov
ffea3b00c3 vf_settb: switch to an AVOptions-based system. 2013-04-09 19:07:44 +02:00
Anton Khirnov
33b97faaba vf_setpts: switch to an AVOptions-based system. 2013-04-09 19:07:28 +02:00
Anton Khirnov
95f1f56a21 vf_select: switch to an AVOptions-based system. 2013-04-09 19:06:51 +02:00
Anton Khirnov
40c885c589 vf_pad: switch to an AVOptions-based system. 2013-04-09 19:06:29 +02:00
Anton Khirnov
9087eaf193 vf_overlay: switch to an AVOptions-based system. 2013-04-09 19:06:13 +02:00
Anton Khirnov
20b46f8f4f vf_lut: switch to an AVOptions-based system. 2013-04-09 19:05:32 +02:00
Anton Khirnov
ee0e8d4b15 vf_libopencv: switch to an AVOptions-based system. 2013-04-09 19:05:22 +02:00
Anton Khirnov
8c747d46f7 vf_hqdn3d: switch to an AVOptions-based system. 2013-04-09 19:05:12 +02:00
Anton Khirnov
7ed833d78e vf_gradfun: switch to an AVOptions-based system. 2013-04-09 19:04:57 +02:00
Anton Khirnov
c334c113d4 vf_scale: switch to an AVOptions-based system. 2013-04-09 19:04:45 +02:00
Anton Khirnov
5aa1a668cf vf_frei0r: switch to an AVOptions-based system. 2013-04-09 19:04:28 +02:00
Anton Khirnov
f13ab29925 vf_fps: switch to an AVOptions-based system. 2013-04-09 19:04:15 +02:00
Anton Khirnov
a39c154049 vf_fieldorder: switch to an AVOptions-based system. 2013-04-09 19:03:56 +02:00
Anton Khirnov
b9dfee9fa2 vf_fade: switch to an AVOptions-based system. 2013-04-09 19:03:43 +02:00
Anton Khirnov
8ec464c61c vf_drawtext: switch to an AVOptions-based system. 2013-04-09 19:03:23 +02:00
Anton Khirnov
335c31293b vf_drawbox: switch to an AVOptions-based system. 2013-04-09 19:03:08 +02:00
Anton Khirnov
63e58c55c1 vf_delogo: switch to an AVOptions-based system. 2013-04-09 19:02:43 +02:00
Anton Khirnov
460e7b4f6d vf_cropdetect: switch to an AVOptions-based system. 2013-04-09 19:02:32 +02:00
Anton Khirnov
fba0156af7 vf_crop: switch to an AVOptions-based system. 2013-04-09 19:00:54 +02:00
Anton Khirnov
51def31dbe vf_boxblur: switch to an AVOptions-based system. 2013-04-09 19:00:39 +02:00
Anton Khirnov
62dcdb028c vf_blackframe: switch to an AVOptions-based system. 2013-04-09 19:00:26 +02:00
Anton Khirnov
2831b307e6 vf_aspect: switch to an AVOptions-based system. 2013-04-09 18:58:30 +02:00
Anton Khirnov
e67a87eac8 vf_(no)format: switch to an AVOptions-based system. 2013-04-09 18:56:39 +02:00
Anton Khirnov
0af7fe1f95 af_aformat: switch to an AVOptions-based system. 2013-04-09 18:55:45 +02:00
Anton Khirnov
d28cb84989 buffersrc: switch to an AVOptions-based system. 2013-04-09 18:48:16 +02:00
Anton Khirnov
4fa1f52e33 af_resample: switch to an AVOptions-based system. 2013-04-09 18:45:50 +02:00
Anton Khirnov
b439c992c2 lavfi: switch to an AVOptions-based system. 2013-04-09 18:45:37 +02:00
Anton Khirnov
6d0546bbaf avfiltergraph: set deprecated filter_count. 2013-04-04 07:52:32 +02:00
Anton Khirnov
6e3c13a559 avfiltergraph: check for sws opts being non-NULL before using them.
Avoid snprintfing a NULL pointer.

CC: libav-stable@libav.org
2013-04-03 09:29:55 +02:00
Clément Bœsch
1ae44c87c9 lavfi/gradfun: remove rounding to match C and SSE code.
There is no noticable benefit for such precision.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-28 07:59:29 +01:00
Clément Bœsch
38a2f88d39 lavfi/gradfun: fix dithering in MMX code.
Current dithering only uses the first 4 instead of the whole 8 random values.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-28 07:59:18 +01:00
Clément Bœsch
2d66fc543b lavfi/gradfun: fix rounding in MMX code.
Current code divides before increasing precision.

Also reduce upper bound for strength from 255 to 64.  This will prevent
an overflow in the SSSE3 and MMX filter_line code: delta is expressed as
an u16 being shifted by 2 to the left. If it overflows, having a
strength not above 64 will make sure that m is set to 0 (making the
m*m*delta >> 14 expression void).

A value above 64 should not make any sense unless gradfun is used as
a blur filter.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-28 07:59:04 +01:00
Clément Bœsch
8b9a153ef3 lavfi/gradfun: do not increment DC pointer for odd values.
First DC is only used once otherwise. This also makes the code
consistent with ASM versions.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-28 07:58:55 +01:00
Jindřich Makovička
20a8ee3061 af_asyncts: fix compensation and PTS monotonicity
This patch improves af_asyncts behavior on streams with bogus PTS, which
are either non-monotonic, or contain PTS jitter, and trigger the
non-monotonicity error. With this patch, af_asyncts is able to correct
these streams and avoid the error.

Firstly, it fixes resample compensation calculation by supplying proper
units to avresample_set_compensation (sample count per second instead
of sample count per some arbitrary frame size). Also, the calculation of
the compensation itself is fixed - delta is proportional to an adjustment
of the compensation, not the compensation itself. Ideally, the compensation
should converge to a value that keeps delta at zero.

To be able to deal with sources with PTS jitter even without resampling,
small PTS errors are adjusted, so the output frames do not overlap.

Finally, one more monotonicity check is added.

The FATE reference changes because now there is 8 less samples of
silence because of the pts jitter.

Signed-off-by: Jindřich Makovička <makovick@gmail.com>
2013-03-22 20:09:34 +01:00
Anton Khirnov
6599b087de buffersrc: fix a typo.
Vertical shift is log2_chroma_h, not log2_chroma_w.
2013-03-19 11:12:17 +01:00
Anton Khirnov
c977039e58 lavc, lavfi: fix counting number of planes in AVBufferRef wrappers
Number of planes is not always equal to the number of components even
for formats marked with PIX_FMT_PLANAR -- e.g. NV12 has three components
in two planes.
2013-03-19 11:12:17 +01:00
Anton Khirnov
6552808014 lavc,lavfi: fix calculating the plane size in the AVBufferRef wrappers
It is supposed to be height * linesize, not width * linesize.
Thanks to Hendrik Leppkes for pointing out the bug.
2013-03-17 09:10:04 +01:00
Anton Khirnov
4750b05d67 af_join: do not leak input frames. 2013-03-16 05:37:01 +01:00
Anton Khirnov
c2b9bd97f5 asrc_anullsrc: return EOF, not -1 2013-03-16 05:36:46 +01:00
Anton Khirnov
f4281f4571 asrc_anullsrc: do not set samplerate and channel layout explicitly
They are auto-negotiated.
2013-03-16 05:36:35 +01:00
Anton Khirnov
e4a7b2177d vf_showinfo: remove its useless init function
Filter private data is memset to 0 so there is no point in explicitly
initing anything to 0.
2013-03-16 05:36:14 +01:00
Anton Khirnov
dd74e3ef33 avfiltergraph: use sizeof(var) instead of sizeof(type) 2013-03-16 05:34:20 +01:00
Anton Khirnov
42c7c61ab2 avfiltergraph: replace AVFilterGraph.filter_count with nb_filters
This is more consistent with the naming in the rest of Libav.
2013-03-16 05:33:23 +01:00
Anton Khirnov
556aab8f11 lavfi: use designated initializers in avfilter_class 2013-03-16 05:33:06 +01:00
Loren Merritt
5b3c1aecb2 hqdn3d: Fix out of array read in LOWPASS
CC:libav-stable@libav.org
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-13 09:14:59 +01:00
Anton Khirnov
d0a863ac89 vf_hqdn3d: fix uninitialized variable use
CC:libav-stable@libav.org
2013-03-11 18:28:35 +01:00
Anton Khirnov
887d31d455 vf_gradfun: fix uninitialized variable use
CC:libav-stable@libav.org
2013-03-11 18:28:34 +01:00
Xi Wang
5d639b2b4a vf_pad: fix a & instead of && typo
Avoid buffer overflow in buffer_needs_copy()

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-03-10 11:16:10 +01:00
Anton Khirnov
0651e892e1 Replace remaining includes of audioconvert.h with channel_layout.h 2013-03-08 07:42:13 +01:00
Anton Khirnov
d8b31be6ca Add the bumps and APIchanges entries for reference counted buffers changes. 2013-03-08 07:41:49 +01:00
Anton Khirnov
7e350379f8 lavfi: switch to AVFrame.
Deprecate AVFilterBuffer/AVFilterBufferRef and everything related to it
and use AVFrame instead.
2013-03-08 07:37:18 +01:00
Reimar Döffinger
efa7f42020 Use the avstring.h locale-independent character type functions
Make sure the behavior does not change with the locale.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 15:16:36 +02:00
Justin Ruggles
9f1223562e lavfi: connect libavresample options to af_resample via AVFilterGraph 2013-02-23 17:07:54 -05:00
Anton Khirnov
64ed397635 vf_yadif: fix out-of line reads
Some changes in the border pixels, visually indistinguishable.
2013-02-15 16:08:33 +01:00
Anton Khirnov
ccd70d9c16 vf_yadif: factorize initializing the filtering callbacks
Do it all in config_props().
2013-02-15 16:08:00 +01:00
Anton Khirnov
99162f8d46 vf_yadif: silence a warning.
clang says:
libavfilter/vf_yadif.c:192:28: warning: incompatible pointer types assigning to
'void (*)(uint8_t *, uint8_t *, uint8_t *, uint8_t *, int, int, int, int, int)'
from 'void (uint16_t *, uint16_t *, uint16_t *, uint16_t *, int, int, int, int, int)'
2013-02-06 10:21:51 +01:00
Diego Biurrun
e66240f22e avfilter: x86: consistent filenames for filter optimizations 2013-02-04 15:00:47 +01:00
Diego Biurrun
76d90125cd vf_hqdn3d: x86: Add proper arch optimization initialization 2013-02-01 13:11:45 +01:00
Anton Khirnov
7194330bcd vf_delogo: fix copying the input frame.
CC:libav-stable@libav.org
2013-01-29 07:33:02 +01:00
Anton Khirnov
f81c37e40f vf_delogo: fix an uninitialized read.
CC:libav-stable@libav.org
2013-01-29 07:32:54 +01:00
Vladimir Pantelic
0b55b16abc avfilter: allow setpts filter to use wallclock time for calculations
Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-25 10:50:09 +01:00
Justin Ruggles
23098bbd50 vf_fps: add final flushed frames to the dropped frame count 2013-01-15 11:26:46 -05:00
Daniel Kang
67360ccd51 yadif: x86: fix build for compilers without aligned stack
Manually load registers to avoid using 8 registers on x86_32 with
compilers that do not align the stack (e.g. MSVC).

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-01-14 09:51:52 +01:00
Daniel Kang
899157b308 yadif: Port inline assembly to yasm
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-01-09 18:41:02 +01:00
Diego Biurrun
bcb8d9eb8f Drop unnecessary 'l' length modifier when printfing double values.
%f denotes a double argument and 'l' does nothing in this case
according to the C spec.
2012-12-31 11:20:45 +01:00
Diego Biurrun
c73c87b412 cosmetics: Prettyprint codec/format/filter registration files 2012-12-28 19:18:13 +01:00
Diego Biurrun
69583bd3b1 avfilter: Refactor unconditional filter registration 2012-12-28 19:18:13 +01:00
Diego Biurrun
5af53731d9 avfilter: Compile FIFO filters unconditionally
Building libavfilter without that functionality makes little sense.
2012-12-23 18:57:01 +01:00
Diego Biurrun
69f086e0f9 build: avfilter: Remove duplicate compilation entry for vf_scale
vf_scale should not be unconditionally compiled even if disabled.
2012-12-21 00:18:34 +01:00
Justin Ruggles
4e5a8878d5 asyncts: ignore min_delta only if first_pts is set 2012-12-13 18:51:56 -05:00
Justin Ruggles
c0dc57f126 asyncts: merge two conditions 2012-12-13 18:51:56 -05:00
Justin Ruggles
0ee440fe38 asyncts: cosmetics: reindent 2012-12-13 13:02:21 -05:00
Justin Ruggles
c143de40c3 asyncts: fix the asyncts behavior when using the first_pts option
Currently it will do padding, but it does not properly handle
start-of-stream trimming as documented.
2012-12-13 13:02:21 -05:00
Justin Ruggles
8083332c2d asyncts: use clipped delta value when setting resample compensation
The max_comp option is supposed to limit maximum compensation, but
currently the clipped value is not actually used.
2012-12-13 13:02:21 -05:00
Justin Ruggles
f266486b2e asyncts: fix flushing of final samples at EOF 2012-12-13 13:02:21 -05:00
Justin Ruggles
b30a363331 x86: af_volume: add SSE2/SSSE3/AVX-optimized s32 volume scaling 2012-12-05 11:23:37 -05:00
Justin Ruggles
f96f1e06a4 x86: af_volume: add SSE2-optimized s16 volume scaling 2012-12-05 11:23:37 -05:00
Justin Ruggles
b384e031da lavfi: add volume filter
Based on the volume filter in FFmpeg written by Stefano Sabatini
<stefasab@gmail.com>.
2012-12-05 11:23:37 -05:00
Anton Khirnov
cb45553f57 Remove pointless #undefs of previously forbidden functions. 2012-12-04 21:40:22 +01:00
Anton Khirnov
4c973de9a5 vf_fieldorder: require write permissions
This filter modifies the input frame.
2012-11-28 08:50:24 +01:00
Anton Khirnov
49dd71a6f1 vf_fieldorder: reindent 2012-11-28 08:50:24 +01:00
Anton Khirnov
565e4993c6 lavfi: merge start_frame/draw_slice/end_frame
Any alleged performance benefits gained from the split are purely
mythological and do not justify added code complexity.
2012-11-28 08:50:19 +01:00
Anton Khirnov
bb6c67bb36 lavfi: remove vf_slicify
The following commit will make it useless.

The crop_scale_vflip FATE test changes because of off-by-one differences
in output when vflipped slices are passed to sws.
2012-11-28 08:44:01 +01:00
Anton Khirnov
af7d13ee4a asink_nullsink: plug a memory leak. 2012-11-28 08:43:54 +01:00
Justin Ruggles
a903f8f087 Include libavutil/channel_layout.h instead of libavutil/audioconvert.h
Also reorder some other #include when applicable.
2012-11-11 13:35:12 -05:00
Anton Khirnov
b68aac7ea3 vf_drawtext: do not use deprecated av_tree_node_size 2012-11-02 18:28:55 +01:00
Diego Biurrun
d8eda37080 x86: mmx2 ---> mmxext in function names 2012-10-31 17:53:57 +01:00
Diego Biurrun
04581c8c77 x86: yasm: Use complete source path for macro helper %includes
This is more consistent with the way we handle C #includes and
it simplifies the build system.
2012-10-31 00:37:42 +01:00
Diego Biurrun
6860b4081d x86: include x86inc.asm in x86util.asm
This is necessary to allow refactoring some x86util macros with cpuflags.
2012-10-31 00:37:42 +01:00
Anton Khirnov
20dd41af85 lavfi: add ashowinfo filter
It can be useful for debugging.

Based on a patch by Stefano Sabatini <stefano.sabatini-lala@poste.it>
2012-10-29 21:29:58 +01:00
Mans Rullgard
67a68dcec2 af_channelmap: remove stray enum declaration
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:06:43 +01:00
Mans Rullgard
6b776c61da buffersink: remove stray semicolon after function definition
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-27 13:06:27 +01:00
Janne Grunau
285b706b55 avfilter: fix graphparser memleaks on error paths
Fixes CID700635, CID700636 and CID732274.
2012-10-25 15:00:15 +02:00
Diego Biurrun
f6c38c5f4e avfilter: call x86 init functions under if (ARCH_X86), not if (HAVE_MMX) 2012-10-12 19:58:51 +02:00
Anton Khirnov
59ee9f78b0 lavfi: do not use av_pix_fmt_descriptors directly. 2012-10-12 12:45:39 +02:00
Mans Rullgard
568c70e79e lavfi: convert input/ouput list compound literals to named objects
A number of compilers, for example those from TI and IBM, choke on
these initialisers.  The current style is also quite ugly.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-10 22:26:12 +01:00
Janne Grunau
79e6e8eba2 avfilter: correct memcpy size avfilter_copy_buf_props()
Does not make a difference in this case since sizeof(uint8_t*) ==
sizeof(uint8_t**). Fixes CID703814.
2012-10-09 21:05:14 +02:00
Janne Grunau
ac9a89562a af_resample: unref out_buf when avresample_convert returns 0
Fixes CID732273.
2012-10-09 18:43:30 +02:00
Janne Grunau
8501c09868 af_amix: prevent memory leak on error path
Fixes CID732272.
2012-10-09 16:15:15 +02:00
Janne Grunau
1afd7a118f af_channelmap: free old extended_data on reallocation
Prevents writes to freed memory and the leak of the old extended data.
Fixes CID732303.
2012-10-09 15:41:24 +02:00
Anton Khirnov
716d413c13 Replace PIX_FMT_* -> AV_PIX_FMT_*, PixelFormat -> AVPixelFormat 2012-10-08 07:13:26 +02:00
Justin Ruggles
7b556be673 af_resample: avoid conversion of identical sample formats for 1 channel
When there is only 1 channel, the planar and interleaved formats of the same
data type should be treated as identical.
2012-10-07 16:45:50 -04:00
Diego Biurrun
e4cbf7529b Give all anonymously typedeffed structs in headers a name
Anonymous structs cannot be forward declared and have no benefit.
2012-10-06 09:27:11 +02:00
Anton Khirnov
ba04177eeb vf_pad/scale: use double precision for aspect ratios.
Fixes Bug 203.

CC:libav-stable@libav.org
2012-10-06 07:27:53 +02:00
Anton Khirnov
e7ba5b1de0 lavr: change the type of the data buffers to uint8_t**.
This is more consistent with what the rest of Libav does.

This breaks API.
2012-10-05 13:49:44 +02:00
Anton Khirnov
4673a5a761 vf_overlay: properly sync inputs.
Right now it incorrectly assumes that the frames are sent in the proper
order, which worked with old ffmpeg and avconv versions by accident.
2012-10-04 10:23:25 +02:00
Anton Khirnov
ab35ec29a4 vf_overlay: get rid of pointless messing with timebase.
Output frames correspond 1:1 to input frames on the main input.
So use the main input timebase for output.
2012-10-04 10:21:58 +02:00
Anton Khirnov
11d1ca4b2c Use avcodec_free_frame() to free AVFrames. 2012-09-24 12:31:25 +02:00
Anton Khirnov
e3496e5dbe avfiltergraph: silence an uninitialized variable warning
The warning is:
libavfilter/avfiltergraph.c: In function ‘avfilter_graph_config’:
libavfilter/avfiltergraph.c:528:9: warning: ‘best_idx’ may be used uninitialized in this function [-Wuninitialized]
libavfilter/avfiltergraph.c:479:13: note: ‘best_idx’ was declared here

Initialize it to an invalid value and add an assert that it's properly
set later.
2012-09-17 15:48:20 +02:00
Anton Khirnov
4e48aa8656 buffersrc: add const to the AVFrame* argument of av_buffersrc_write_frame() 2012-09-17 15:48:20 +02:00
Mans Rullgard
1fce361d70 lavfi: replace empty input/output lists with null pointers
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-17 14:35:06 +01:00
Luca Barbato
28165fee1b yadif: cosmetics 2012-09-09 15:31:18 +02:00
Anton Khirnov
91a84a5247 af_asyncts: check return value from lavr when flushing.
Fixes an infinite loop on flush when avresample_get_delay() still
reports some samples but avresample_convert() doesn't return any data.
2012-09-07 09:06:48 +02:00
Martin Storsjö
21bc440384 avopt: Explicitly store rational option defaults in .dbl
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:55 +03:00
Martin Storsjö
c7b610aa0b avopt: Explicitly store float/double option defaults in .dbl
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:51 +03:00
Martin Storsjö
e6153f173a avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:44 +03:00
Martin Storsjö
d58dd4b5b5 avopt: Store defaults for AV_OPT_TYPE_FLAGS in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:38 +03:00
Martin Storsjö
124134e424 avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:32 +03:00
Martin Storsjö
235f74db59 Rename missed cases of FF_OPT_TYPE_* to AV_OPT_TYPE_*
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-31 23:27:21 +02:00
Diego Biurrun
17337f54c0 x86: Split inline and external assembly #ifdefs 2012-08-31 01:53:25 +02:00
Diego Biurrun
cdaec0b240 avfilter: x86: Use more precise compile template names 2012-08-30 18:51:51 +02:00
Martin Storsjö
b441a4517b vf_hqdn3d: Remove a duplicate inline declaration
Compilation seems to fail on GCC 3.4 due to this duplicate
declaration.

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-27 16:40:59 +03:00
Martin Storsjö
2bd67175c7 vf_hqdn3d: Don't declare the loop variable within the for loop
This C99 feature is generally not used in the libav codebase,
since it breaks building with some fringe compilers (GCC 2.95,
MSVC).

Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-27 15:29:39 +03:00
Loren Merritt
7a1944b907 vf_hqdn3d: x86 asm
13% faster on penryn, 16% on sandybridge, 15% on bulldozer
Not simd; a compiler should have generated this, but gcc didn't.
2012-08-26 10:49:14 +00:00
Loren Merritt
566858a770 vf_hqdn3d: support 16bit colordepth 2012-08-26 10:49:14 +00:00
Anton Khirnov
4d7adec8bd AVOptions: store defaults for INT64 options in int64 union member.
Double does not have enough precision to represent all int64 numbers
exactly.
2012-08-24 11:25:06 +02:00
Martin Storsjö
7ebe3962f3 Add missing includes for code relying on external libraries
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 16:47:02 +03:00
Martin Storsjö
33e112847d Add more missing includes after removing the implicit common.h
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-16 10:49:54 +03:00
Martin Storsjö
70766c2182 Add some more missing includes after removing the implicit common.h
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 23:48:48 +03: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
Mans Rullgard
480178a295 x86: yadif: fix asm with suncc
Under some circumstances, suncc will use a single register for the
address of all memory operands, inserting lea instructions loading
the correct address prior to each memory operand being used in the
code. In the yadif code, the branch in the asm block bypasses such
an lea instruction, causing an incorrect address to be used in the
following load.

This patch replaces the tmpX arrays with a single array and uses a
register operand to hold its address. Although this prevents using
offsets from the stack pointer to access these locations, the code
still builds as 32-bit PIC even with old compilers.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-13 14:51:52 +01:00
Diego Biurrun
804d7a1aa6 doxygen: Fix function parameter names to match the code 2012-08-09 20:05:55 +02:00
Mans Rullgard
c318626ce2 x86: rename libavutil/x86_cpu.h to libavutil/x86/asm.h
This puts x86-specific things in the x86/ subdirectory where they
belong.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-09 00:58:20 +01:00
Reinhard Tartler
800750417f lavfi: properly signal out-of-memory error in ff_filter_samples
Found with a clang-scan report on http://fate.libav.org/csa/
2012-08-05 10:26:49 +02:00
Derek Buitenhuis
8b8750e061 cosmetics: Fix a few switched periods and linebreaks
Based on a patch by Piotr Bandurski.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2012-08-04 16:39:27 -04:00
Diego Biurrun
239fdf1b4a x86: build: replace mmx2 by mmxext
Refactoring mmx2/mmxext YASM code with cpuflags will force renames.
So switching to a consistent naming scheme beforehand is sensible.
The name "mmxext" is more official and widespread and also the name
of the CPU flag, as reported e.g. by the Linux kernel.
2012-08-03 22:51:05 +02:00
Diego Biurrun
d1505db067 x86: yadif: Mark mmxext optimizations as such
The yadif mmx optimizations contain the pmaxsw and pmaxub mmxext
instructions, causing sigills on CPUs that do not support mmxext.
2012-07-31 13:54:06 +02:00
Justin Ruggles
be51e589cd af_asyncts: avoid overflow in out_size with large delta values 2012-07-29 14:31:54 -04:00
Justin Ruggles
70d71b5801 af_asyncts: add first_pts option
This allows for padding/trimming at the start of stream. By default, no
assumption is made about the first frame's expected pts, so no padding or
trimming is done.
2012-07-29 14:31:54 -04:00
Loren Merritt
1ad715dbf3 vf_hqdn3d: support 9 and 10bit colordepth
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:20:06 -07:00
Loren Merritt
0f583e6cc5 vf_hqdn3d: reduce intermediate precision
11% faster on penryn, 7% on sandybridge, 5% on bulldozer
Negligible change to output.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:19:01 -07:00
Loren Merritt
85e228c71d vf_hqdn3d: simplify and optimize
14% faster on penryn, 2% on sandybridge, 9% on bulldozer

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:15:14 -07:00
Loren Merritt
fb44e7401f factor identical ff_inplace_start_frame out of two filters
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:15:14 -07:00
Loren Merritt
60b9785530 vf_hqdn3d: cosmetics
Change code style to match the rest of libav.

Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
2012-07-28 14:12:22 -07:00
Anton Khirnov
b3fa478823 lavfi: bump minor to mark stabilizing the ABI. 2012-07-28 14:33:48 +02:00
Justin Ruggles
743f07062a lavfi: better channel layout negotiation
Allow substitution of channel pairs in the input for nearby channel pairs in
the output in order to get a closer match. Also weigh LFE channel mismatch
differently to favor matching the same layout without LFE over one less
channel with LFE.
2012-07-27 14:15:33 -04:00
Anton Khirnov
b5c8aa745e vf_yadif: unset cur_buf on the input link.
The buffer is stored internally, so this prevents it from being unreffed
automatically.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Anton Khirnov
f431315a86 vf_overlay: ensure the overlay frame does not get leaked.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Michael Niedermayer
08fc1ad151 vf_overlay: prevent premature freeing of cur_buf
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-07-26 00:01:04 +02:00
Diego Biurrun
49c45a2624 avfilter: Fix printf format string conversion specifier
libavfilter/avfilter.c:224:9: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘int’ [-Wformat]
2012-07-25 09:24:25 +02:00
Ronald S. Bultje
3124886554 lavfi: place x86 inline assembly under HAVE_INLINE_ASM.
This allows compiling this code using compilers that do not understand
gcc-style inline assembly.
2012-07-22 19:44:06 -07:00
Anton Khirnov
a8a2271fe0 buffersrc: check ff_get_audio_buffer() for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov
8f3a3ce730 lavfi: check all ff_get_video_buffer() calls for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov
1dc4205018 lavfi: check all avfilter_ref_buffer() calls for errors. 2012-07-22 09:14:05 +02:00
Anton Khirnov
80e4ed279b vf_select: avoid an unnecessary avfilter_ref_buffer(). 2012-07-22 09:14:05 +02:00
Anton Khirnov
785fa50f0b buffersrc: avoid creating unnecessary buffer reference 2012-07-22 09:14:05 +02:00
Anton Khirnov
02ac7311c8 lavfi: use avfilter_unref_bufferp() where appropriate. 2012-07-22 09:14:05 +02:00
Anton Khirnov
043800a968 vf_fps: add more error checks. 2012-07-22 09:14:05 +02:00
Anton Khirnov
d515e9c225 vf_fps: fix a memleak on malloc failure. 2012-07-22 09:14:05 +02:00
Anton Khirnov
3825b52688 lavfi: check all ff_start_frame/draw_slice/end_frame calls for errors 2012-07-22 09:14:05 +02:00
Anton Khirnov
d4f89906e3 lavfi: add error handling to end_frame(). 2012-07-22 09:14:05 +02:00
Anton Khirnov
e9b992d035 lavfi: add error handling to draw_slice(). 2012-07-22 09:14:05 +02:00
Anton Khirnov
ebc8d97481 lavfi: add error handling to start_frame(). 2012-07-22 09:14:04 +02:00
Ronald S. Bultje
731fa116b4 yadif: use emms_c() instead of inline assembly for emms invocations. 2012-07-21 17:16:49 -07:00
Ronald S. Bultje
3db407038e lavfi: use const for AVFilterPad declarations in all filters. 2012-07-21 16:31:15 -07:00
Anton Khirnov
4c9080a7ef lavfi: unref AVFilterLink.out_buf in ff_end_frame().
This reduces code duplication and prevents stale pointers from remaining
on the link.
2012-07-20 21:12:49 +02:00
Anton Khirnov
07bad27810 lavfi: unref AVFilterLink.cur_buf in ff_end_frame().
This reduces code duplication and prevents stale pointers from remaining
on the link.
2012-07-20 21:10:42 +02:00
Anton Khirnov
533fd5b5b4 vsrc_testsrc: avoid an unnecessary avfilter_ref_buffer(). 2012-07-20 21:09:57 +02:00
Anton Khirnov
5b50ae94e6 vf_slicify: 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:09:48 +02:00
Anton Khirnov
0393af4f0b vf_settb: simplify start_frame().
Avoid pointless filter ref/unref. Just use the reference passed to
start_frame().
2012-07-20 21:08:50 +02:00
Anton Khirnov
9203fa0b32 vf_fieldorder: don't give up its own reference to the output buffer. 2012-07-20 21:08:26 +02:00
Anton Khirnov
f493c644cd vf_pad: don't give up its own reference to the output buffer. 2012-07-20 21:08:13 +02:00
Anton Khirnov
ad8b6326aa vf_overlay: don't access a buffer reference that's been given away. 2012-07-20 21:07:51 +02:00
Anton Khirnov
7155763b78 vf_drawtext: don't give up its own reference to the input buffer.
Directly forwarding the input buffer to the next filter means that
drawtext no longer owns any references to it and thus shouldn't refer to
it in any way.
2012-07-20 21:07:32 +02:00
Anton Khirnov
d19499c796 vf_gradfun: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:07:11 +02:00
Anton Khirnov
0fe010a36f vf_delogo: don't store two pointers to one AVFilterBufferRef. 2012-07-20 21:06:49 +02:00
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