OSDN Git Service
Hendrik Leppkes [Wed, 14 Oct 2015 13:00:53 +0000 (15:00 +0200)]
Merge commit '
6fdd4c678ac1ce0776f9645cd534209e5f1ae1e3'
* commit '
6fdd4c678ac1ce0776f9645cd534209e5f1ae1e3':
libschroedinger: Properly use AVFrame API
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 12:56:16 +0000 (14:56 +0200)]
Merge commit '
901f9c0a32985f48672fd68594111dc55d88a57a'
* commit '
901f9c0a32985f48672fd68594111dc55d88a57a':
qtrle: Properly use AVFrame API
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 12:54:04 +0000 (14:54 +0200)]
Merge commit '
17e41cf3614973258c24aa2452215ef7e3bfa5ed'
* commit '
17e41cf3614973258c24aa2452215ef7e3bfa5ed':
avcodec: Do not lock during init if there is no init function
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 12:46:40 +0000 (14:46 +0200)]
ffmpeg: add deprecation guards around remaining AVFMT_RAWPICTURE usage
Hendrik Leppkes [Wed, 14 Oct 2015 12:51:49 +0000 (14:51 +0200)]
ffmpeg: remove trailing whitespace that sneaked into the previous merge
Hendrik Leppkes [Wed, 14 Oct 2015 12:43:20 +0000 (14:43 +0200)]
Merge commit '
34ed5c2e4d9b7fe5c9b3aae2da5599fabb95c02e'
* commit '
34ed5c2e4d9b7fe5c9b3aae2da5599fabb95c02e':
avformat: Do not use AVFMT_RAWPICTURE
Removal from ffmpeg.c not merged because some parts of avdevice
still use it
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 12:28:20 +0000 (14:28 +0200)]
Merge commit '
16b0c929621f84983b83b9735ce973acb12723bc'
* commit '
16b0c929621f84983b83b9735ce973acb12723bc':
avconv: Add loop option.
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 12:01:11 +0000 (14:01 +0200)]
Merge commit '
11c5f438ff83da5040e85bfa6299f56b321d32ef'
* commit '
11c5f438ff83da5040e85bfa6299f56b321d32ef':
dict: Change return type of av_dict_copy()
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 11:54:50 +0000 (13:54 +0200)]
Merge commit '
c1aac39eaccd32dc3b74ccfcce701d3d888fbc6b'
* commit '
c1aac39eaccd32dc3b74ccfcce701d3d888fbc6b':
build: add Solaris symbol versioning
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 11:48:22 +0000 (13:48 +0200)]
Merge commit '
b9ece15a01782b4f301c0c139d1d7b20f848914c'
* commit '
b9ece15a01782b4f301c0c139d1d7b20f848914c':
nullenc: Use the wrapped avframe pseudo-encoder
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 11:44:33 +0000 (13:44 +0200)]
Merge commit '
d00a8fd417ad20cecbc7ca17b25f352655148fb1'
* commit '
d00a8fd417ad20cecbc7ca17b25f352655148fb1':
yuv4mpeg: Use the wrapped avframe pseudo-encoder
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Hendrik Leppkes [Wed, 14 Oct 2015 11:25:25 +0000 (13:25 +0200)]
Merge commit '
00332e0a064dad866812de9162b009cbaba6f5df'
* commit '
00332e0a064dad866812de9162b009cbaba6f5df':
wrapped_avframe: Initial implementation
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Vittorio Giovara [Mon, 12 Oct 2015 16:54:52 +0000 (18:54 +0200)]
libschroedinger: Properly use AVFrame API
Rather than copying data buffers around, allocate a proper frame, and
use the standard AVFrame functions. This effectively makes the decoder
capable of direct rendering.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Vittorio Giovara [Mon, 12 Oct 2015 17:00:31 +0000 (19:00 +0200)]
qtrle: Properly use AVFrame API
Rather than copying data buffers around, just add a reference to
the current frame.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Ganesh Ajjanagadde [Sat, 10 Oct 2015 17:39:28 +0000 (13:39 -0400)]
avformat/mov: fix integer overflow
Partially fixes Ticket 4727.
-duration is not a safe expression, since duration can be INT_MIN.
One might ask how it can become INT_MIN.
Although it is true that line 2574 is no longer reached with INT_MIN due
to commit
053e80f6eaf8d87521fe58ea96886b6ee0bbe59d (which fixed another
integer overflow issue), mov_update_dts_shift is called on line 3549 as
well, right after a read of untrusted data.
One can do the fix locally there, but that function is already a huge
mess. Changing mov_update_dts_shift is likely better.
This changes duration to INT_MIN + 1 in such cases. This should not make any
practical difference since such streams are anyway fuzzer files.
Tested with FATE.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Ganesh Ajjanagadde [Fri, 9 Oct 2015 15:25:16 +0000 (11:25 -0400)]
ffserver_config: check for INT_MIN before doing FFABS
FFABS(INT_MIN) is not safe. Alternative of using FFNABS is not as
readable.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
James Almer [Tue, 13 Oct 2015 23:03:52 +0000 (20:03 -0300)]
x86/vp9itxfm: fix register clobbering in ff_vp9_idct_idct_4x4_add_12_sse2
Reviewed-by: Henrik Gramner <henrik@gramner.com>
Signed-off-by: James Almer <jamrial@gmail.com>
Christophe Gisquet [Tue, 13 Oct 2015 20:02:41 +0000 (22:02 +0200)]
dnxhdenc: fix access outside of image
This is the same test as for the 8bit case.
Christophe Gisquet [Tue, 13 Oct 2015 19:21:39 +0000 (21:21 +0200)]
x86: simple_idct10_template: use const
This avoid going through constants.c while still sharing them
with proresdsp.asm
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Tue, 13 Oct 2015 16:29:04 +0000 (18:29 +0200)]
avutil/fifo: Fix thread saftey of av_fifo_generic_peek()
changing the context state and restoring it is not safe if another
thread writes data into the fifo
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Pedro Arthur [Tue, 13 Oct 2015 16:32:07 +0000 (13:32 -0300)]
swscale: fix ticket #4881
When scaling only a slice of a frame the output was written always
in the first lines leaving the rest of the frame black.
Nedeljko Babic [Tue, 13 Oct 2015 14:14:51 +0000 (16:14 +0200)]
avcodec/mips/aaccoder_mips: Sync with the generic code
This patch fixes build of AAC encoder optimized for mips that was broken due
to some changes in generic code that were not propagated to the optimized code.
Also, some functions in the optimized code are basically duplicate of functions
from generic code. Since they do not bring enough improvement to the optimized
code to justify their existence, they are removed (which improves
maintainability of the optimized code).
Optimizations disabled in
97437bd are enabled again.
Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ronald S. Bultje [Mon, 12 Oct 2015 13:54:59 +0000 (09:54 -0400)]
vp9: use registers for constant loading where possible.
Ronald S. Bultje [Sun, 11 Oct 2015 00:31:57 +0000 (20:31 -0400)]
vp9: refactor itx coefficients and share between 8 and 10/12bpp.
Ronald S. Bultje [Sat, 10 Oct 2015 02:35:49 +0000 (22:35 -0400)]
vp9: add itxfm_add eob shortcuts to 10/12bpp functions.
These aren't quite as helpful as the ones in 8bpp, since over there,
we can use pmulhrsw, but here the coefficients have too many bits to
be able to take advantage of pmulhrsw. However, we can still skip
cols for which all coefs are 0, and instead just zero the input data
for the row itx. This helps a few % on overall decoding speed.
Ronald S. Bultje [Mon, 12 Oct 2015 14:19:05 +0000 (10:19 -0400)]
vp9: add 10/12bpp idct_idct_32x32 sse2 SIMD version.
Ronald S. Bultje [Thu, 8 Oct 2015 20:53:44 +0000 (16:53 -0400)]
vp9: 10/12bpp sse2 SIMD for iadst16.
Ronald S. Bultje [Mon, 12 Oct 2015 14:21:48 +0000 (10:21 -0400)]
vp9: refactor 10/12bpp dc-only code in 4x4/8x8 and add to 16x16.
Ronald S. Bultje [Thu, 8 Oct 2015 14:16:36 +0000 (10:16 -0400)]
vp9: add 10/12bpp sse2 SIMD version for idct_idct_16x16.
Ronald S. Bultje [Wed, 7 Oct 2015 19:42:52 +0000 (15:42 -0400)]
vp9: add 10/12bpp sse2 SIMD versions of iadst8x8.
Ronald S. Bultje [Mon, 12 Oct 2015 14:17:23 +0000 (10:17 -0400)]
vp9: add 10/12bpp sse2 SIMD for idct_idct_8x8.
Ronald S. Bultje [Wed, 7 Oct 2015 01:59:10 +0000 (21:59 -0400)]
vp9: add 12bpp sse2 versions of iadst4.
Ronald S. Bultje [Mon, 12 Oct 2015 14:16:56 +0000 (10:16 -0400)]
vp9: initial attempt at a idct_idct_4x4 12bpp x86 simd (sse2) impl.
The trouble with this function is that intermediates overflow 31+sign
bits, so I've added some helpers (that will also be used in 10/12bpp
8x8, 16x16 and 32x32) to make that easier, basically emulating a half-
assed pmaddqd using 2xpmaddwd. It's currently sse2-only, if anyone sees
potential in adding ssse3, I'd love to hear it.
Ronald S. Bultje [Tue, 6 Oct 2015 15:42:03 +0000 (11:42 -0400)]
vp9: add x86 simd (sse2/ssse3) for iadst4 10bpp functions.
Ronald S. Bultje [Tue, 6 Oct 2015 15:03:45 +0000 (11:03 -0400)]
vp9: add 10bpp simd (mmxext/ssse3) for idct_idct_4x4.
Ronald S. Bultje [Tue, 6 Oct 2015 15:01:48 +0000 (11:01 -0400)]
vp9: add 10/12bpp mmxext-optimized iwht_iwht_4x4 function.
Christophe Gisquet [Mon, 12 Oct 2015 17:37:50 +0000 (19:37 +0200)]
x86: dct-test: add more idcts
In particular for 10 and 12 bits.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Mon, 12 Oct 2015 21:40:34 +0000 (23:40 +0200)]
avcodec/dct-test: Print failure notice below the failed *dct
This makes it easier to see where a failure happens
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Christophe Gisquet [Mon, 12 Oct 2015 17:37:49 +0000 (19:37 +0200)]
x86: simple_idct: 12bits versions
On 12 frames of a 444p 12 bits DNxHR sequence, _put function:
C: 78902 decicycles in idct, 262071 runs, 73 skips
avx: 32478 decicycles in idct, 262045 runs, 99 skips
Difference between the 2:
stddev: 0.39 PSNR:104.47 MAXDIFF: 2
This is unavoidable and due to the scale factors used in the x86
version, which cannot match the C ones.
In addition, the trick of adding an initial bias to the input of a
pass can overflow, as the input coefficients are already 15bits,
which is the maximum this function can handle.
Overall, however, the omse on 12 bits samples goes from 0.16916 to
0.16883. Reducing rowshift by 1 improves to 0.0908, but causes
overflows.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Derek Buitenhuis [Mon, 12 Oct 2015 14:32:28 +0000 (10:32 -0400)]
avcodec: Do not lock during init if there is no init function
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Mon, 12 Oct 2015 14:06:07 +0000 (16:06 +0200)]
avformat: Do not use AVFMT_RAWPICTURE
There are no formats supporting it anymore and it is deprecated.
Update the documentation accordingly.
Christophe Gisquet [Mon, 12 Oct 2015 17:37:47 +0000 (19:37 +0200)]
x86: simple_idct(_put): 10bits versions
Modeled from the prores version. Clips to [0;1023] and is bitexact.
Bitexactness requires to add offsets in different places compared to
prores or C, and makes the function approximately 2% slower.
For 16 frames of a DNxHD 4:2:2 10bits test sequence:
C: 60861 decicycles in idct,
1048205 runs, 371 skips
sse2: 27567 decicycles in idct,
1048216 runs, 360 skips
avx: 26272 decicycles in idct,
1048171 runs, 405 skips
The add version is not implemented, so the corresponding dsp
function is set to NULL to make it clear in a code executing it.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Christophe Gisquet [Mon, 12 Oct 2015 17:37:46 +0000 (19:37 +0200)]
x86: simple_idct10_template: fix overflow in pass
When the input of a pass has 15 or 16 bits of precision (in particular
the column pass), the addition of a bias to W4 may lead to overflows
in the input to pmaddwd.
This requires postponing the adding of the bias to after the first
butterfly. To do so, the fact that m15, unused although zeroed, is
exploited. In case the pass is safe, an address can be directly used,
and the number of xmm regs can be decreased. Otherwise, the 32bits bias
is loaded into it.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Alexandra Hájková [Fri, 9 Oct 2015 20:11:56 +0000 (22:11 +0200)]
avconv: Add loop option.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Ganesh Ajjanagadde [Tue, 13 Oct 2015 07:37:18 +0000 (09:37 +0200)]
avfilter/af_sidechaincompress: replace FFABS with fabs
Ganesh Ajjanagadde [Tue, 13 Oct 2015 07:34:39 +0000 (09:34 +0200)]
avfilter/af_astats: replace FFABS with fabs
Ganesh Ajjanagadde [Tue, 13 Oct 2015 07:31:16 +0000 (09:31 +0200)]
avfilter/af_agate: replace FFABS with fabs
Christophe Gisquet [Mon, 12 Oct 2015 17:37:43 +0000 (19:37 +0200)]
fate: add 10bits YUV4:2:2 dnxhd test
It was useful to (accidentally?) spot an overflow in the column pass
of the x86 simple_idct10 implementation.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Christophe Gisquet [Mon, 12 Oct 2015 17:37:45 +0000 (19:37 +0200)]
avcodec/simple_idct10: improve precision
omse goes from 0.
03060703 (which fails for dct-test) to 0.
01663750.
This also actually improve the error of decoding the sample generated
by fate-vsynth3-dnxhd1080i-10bit using simple_idct10 to FAANI, which
goes (when resampled to yuv422p) from:
stddev: 0.06 PSNR: 72.28 MAXDIFF: 1
to identical.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Christophe Gisquet [Mon, 12 Oct 2015 17:37:44 +0000 (19:37 +0200)]
x86: prores: templatize 10 bits simple_idct
This should be reused for a generic simple_idct10 function.
Requires a bit of trickery to declare common constants in C.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Rostislav Pehlivanov [Mon, 12 Oct 2015 22:33:07 +0000 (23:33 +0100)]
aacenc: shorten name of ff_aac_adjust_common_prediction
To keep it similar to the other functions which are all named *_pred.
Rostislav Pehlivanov [Mon, 12 Oct 2015 22:25:45 +0000 (23:25 +0100)]
aacenc: increase size of s->planar_samples[] from 6 to 8
Left out of last commit which added support for eight channel audio.
Christophe Gisquet [Mon, 12 Oct 2015 17:37:42 +0000 (19:37 +0200)]
mpegvideo: dnxhdenc: permute 10bits content
Dequant or encoding were trying to reverse a scan that hadn't been
applied...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Mon, 12 Oct 2015 16:45:31 +0000 (18:45 +0200)]
avcodec/mips/aaccoder_mips: Disable ff_aac_coder_init_mips() to prevent build failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ricardo Constantino [Sun, 11 Oct 2015 16:11:02 +0000 (17:11 +0100)]
avformat/webvttdec: Don't stop parsing on comments
Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
Ricardo Constantino [Sun, 11 Oct 2015 16:11:03 +0000 (17:11 +0100)]
fate/subtitles: Add a new test for WebVTT
Includes escapes that should now be supported and a few features not yet
fully supported, like comments, regions, classes, ruby, and lang.
All were tested with https://quuz.org/webvtt/ for validation, except
regions because the validator doesn't support them yet, and I couldn't
find any other way to validate WebVTT.
Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
Ricardo Constantino [Sun, 11 Oct 2015 16:11:01 +0000 (17:11 +0100)]
avcodec/webvttdec: Deal with WebVTT escapes
Bare ampersand characters are still accepted, even though out-of-spec.
Also fixes adjacent tags not being parsed.
Fixes trac #4915
Signed-off-by: Ricardo Constantino <wiiaboo@gmail.com>
Lou Logan [Mon, 12 Oct 2015 18:09:22 +0000 (10:09 -0800)]
doc/filters: s/nb_inputs/inputs for stack filters
Signed-off-by: Lou Logan <lou@lrcd.com>
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Derek Buitenhuis [Mon, 12 Oct 2015 18:25:51 +0000 (15:25 -0300)]
avcodec: Don't lock on init for codecs without an init function
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Rostislav Pehlivanov [Mon, 12 Oct 2015 16:15:30 +0000 (17:15 +0100)]
fate: increase fuzz on fate-aac-tns-encode test
Fails on SunOS and old GCC (<=4.6 is ancient) versions.
Rostislav Pehlivanov [Mon, 12 Oct 2015 16:14:50 +0000 (17:14 +0100)]
aacenc_utils: fit find_form_factor() below 80 chars per line
Rostislav Pehlivanov [Mon, 12 Oct 2015 15:50:10 +0000 (16:50 +0100)]
aacenc: add support for changing options based on a profile
This commit adds the ability for a profile to set the default
options, as well as for the user to override such options
by simply stating them in the command line while still keeping
the same profile, as long as those options are still permitted by
the profile.
Example: setting the profile to aac_low (the default) will turn
PNS and IS on. They can be disabled by -aac_pns 0 and -aac_is 0,
respectively. Turning on -aac_pred 1 will cause the profile to be
elevated to aac_main, as long as no options forbidding aac_main
have been entered (like AAC-LTP, which will be pushed soon).
A useful feature is that by setting the profile to mpeg2_aac_low,
all MPEG4 features will be disabled and if the user tries to enable
them then the program will exit with an error. This profile is
signalled with the same bitstream as aac_low (MPEG4) but some devices
and decoders will fail if any MPEG4 features have been enabled.
Alex Agranovsky [Sat, 10 Oct 2015 18:52:34 +0000 (14:52 -0400)]
avfilter/drawtext: allow to format pts with strftime
Signed-off-by: Alex Agranovsky <alex@sighthound.com>
Bela Bodecs [Sat, 10 Oct 2015 19:29:12 +0000 (21:29 +0200)]
lavf/tee: allow multiple stream specifiers in select.
It makes possible to put multiple stream specifier into the select
option separated by comma.
eg. select=\'a:0,v\'
Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
Signed-off-by: Nicolas George <george@nsup.org>
Rostislav Pehlivanov [Mon, 12 Oct 2015 14:53:17 +0000 (15:53 +0100)]
aacenc: add support for encoding 7.1 channel audio
This commit implements support for 7.1 channel audio. There's no
more predefined bitstream channel mappings so going beyond 8 channels
(and 7 channels exactly) will require programmable channel elements,
which is already underway.
Rostislav Pehlivanov [Mon, 12 Oct 2015 14:41:50 +0000 (15:41 +0100)]
aacenc_quantization: fix header description
Two guesses as to which file was used as boilerplate.
Vittorio Giovara [Sun, 4 Oct 2015 11:27:15 +0000 (13:27 +0200)]
dict: Change return type of av_dict_copy()
av_dict_set() could return an error, so forward it appropriately.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Claudio Freire [Mon, 12 Oct 2015 06:56:22 +0000 (03:56 -0300)]
AAC encoder: memoize quantize_band_cost
The bulk of calls to quantize_band_cost are replaced
by a call to a version that memoizes, greatly improving
performance, since during coefficient search there is
a great deal of repeat work.
Memoization cannot always be applied, so do this in a
different function, and leave the original as-is.
Michael Niedermayer [Mon, 12 Oct 2015 01:32:54 +0000 (03:32 +0200)]
avformat/flvdec: set broken_sizes for "metadatacreator : MEGA"
The 2nd size value is wrong for the sample file
Fixes: Ticket4903
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Claudio Freire [Mon, 12 Oct 2015 02:00:46 +0000 (23:00 -0300)]
AAC encoder: fix assertion error re SF differences
Intermediate results can indeed violate SF delta. Instead of asserting
there, just make the code safe, and assert on the final result.
Also re-clamp SFs more often in short windows (which tend to violate
the restriction when encoding the switch from one window to the other)
Rostislav Pehlivanov [Mon, 12 Oct 2015 00:42:43 +0000 (01:42 +0100)]
aaccoder_twoloop.h: simplify and comment ff_pns_bits()
Rostislav Pehlivanov [Mon, 12 Oct 2015 00:12:43 +0000 (01:12 +0100)]
aacenc_utils: add 'inline' flag to find_form_factor, silence warning
Seems it was forgotten.
James Almer [Sun, 11 Oct 2015 23:07:12 +0000 (20:07 -0300)]
x86/vf_w3fdif: use aligned loads in w3fdif_simple_high
Found-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
James Almer [Sat, 10 Oct 2015 23:29:56 +0000 (20:29 -0300)]
x86/vf_w3fdif: simplify w3fdif_simple_high
Signed-off-by: James Almer <jamrial@gmail.com>
Andreas Cadhalpun [Sun, 11 Oct 2015 20:31:45 +0000 (22:31 +0200)]
avcodec: remove leftover iff_byterun1 decoder
It was merged with the iff_ilbm decoder in commit
929a24efff9a208a52748605eb412ffb915c1403.
Define AV_CODEC_ID_IFF_BYTERUN1 as AV_CODEC_ID_IFF_ILBM for API
compatibility.
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Marton Balint [Tue, 6 Oct 2015 23:21:40 +0000 (01:21 +0200)]
ffplay: eliminate stream_component_close forward declaration
No change in fuctionality.
Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint [Fri, 6 Feb 2015 00:37:53 +0000 (01:37 +0100)]
ffplay: close streams and AVFormatContext in the main thread
To avoid race conditions.
Signed-off-by: Marton Balint <cus@passwd.hu>
Ronald S. Bultje [Sun, 11 Oct 2015 21:43:29 +0000 (17:43 -0400)]
intmath: remove av_ctz.
It's a non-installed header and only used in one place (flacenc).
Since ff_ctz is static inline, it's fine to use that instead.
Claudio Freire [Sun, 11 Oct 2015 21:45:27 +0000 (18:45 -0300)]
AAC encoder tests: increase fuzz for pred test
MIPS needs more fuzz
Ganesh Ajjanagadde [Fri, 31 Jul 2015 12:36:27 +0000 (08:36 -0400)]
ffmpeg: modify tty state when stderr is redirected
Removes unnecessary isatty(), fixes Ticket2964
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Claudio Freire [Sun, 11 Oct 2015 21:06:02 +0000 (18:06 -0300)]
AAC encoder: cosmetics from last commit
Reindent
Claudio Freire [Sun, 11 Oct 2015 20:29:50 +0000 (17:29 -0300)]
AAC encoder: Extensive improvements
This finalizes merging of the work in the patches in ticket #2686.
Improvements to twoloop and RC logic are extensive.
The non-exhaustive list of twoloop improvments includes:
- Tweaks to distortion limits on the RD optimization phase of twoloop
- Deeper search in twoloop
- PNS information marking to let twoloop decide when to use it
(turned out having the decision made separately wasn't working)
- Tonal band detection and priorization
- Better band energy conservation rules
- Strict hole avoidance
For rate control:
- Use psymodel's bit allocation to allow proper use of the bit
reservoir. Don't work against the bit reservoir by moving lambda
in the opposite direction when psymodel decides to allocate more/less
bits to a frame.
- Retry the encode if the effective rate lies outside a reasonable
margin of psymodel's allocation or the selected ABR.
- Log average lambda at the end. Useful info for everyone, but especially
for tuning of the various encoder constants that relate to lambda
feedback.
Psy:
- Do not apply lowpass with a FIR filter, instead just let the coder
zero bands above the cutoff. The FIR filter induces group delay,
and while zeroing bands causes ripple, it's lost in the quantization
noise.
- Experimental VBR bit allocation code
- Tweak automatic lowpass filter threshold to maximize audio bandwidth
at all bitrates while still providing acceptable, stable quality.
I/S:
- Phase decision fixes. Unrelated to #2686, but the bugs only surfaced
when the merge was finalized. Measure I/S band energy accounting for
phase, and prevent I/S and M/S from being applied both.
PNS:
- Avoid marking short bands with PNS when they're part of a window
group in which there's a large variation of energy from one window
to the next. PNS can't preserve those and the effect is extremely
noticeable.
M/S:
- Implement BMLD protection similar to the specified in
ISO-IEC/13818:7-2003, Appendix C Section 6.1. Since M/S decision
doesn't conform to section 6.1, a different method had to be
implemented, but should provide equivalent protection.
- Move the decision logic closer to the method specified in
ISO-IEC/13818:7-2003, Appendix C Section 6.1. Specifically,
make sure M/S needs less bits than dual stereo.
- Don't apply M/S in bands that are using I/S
Now, this of course needed adjustments in the compare targets and
fuzz factors of the AAC encoder's fate tests, but if wondering why
the targets go up (more distortion), consider the previous coder
was using too many bits on LF content (far more than required by
psy), and thus those signals will now be more distorted, not less.
The extra distortion isn't audible though, I carried extensive
ABX testing to make sure.
A very similar patch was also extensively tested by Kamendo2 in
the context of #2686.
Ganesh Ajjanagadde [Tue, 6 Oct 2015 22:53:47 +0000 (18:53 -0400)]
avfilter/buffersrc: add av_warn_unused_result attributes
This adds av_warn_unused_result whenever it is relevant.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
Jean-Yves Avenard [Sun, 11 Oct 2015 13:37:42 +0000 (09:37 -0400)]
configure: fix configure when using gcc
Fixes Ticket4922.
Commit
060102389e572abb2beaed3b9f5e1036aeea43f1 broke configure, since
the inversion ! was missed while converting the grep to a case
statement.
Reviewed-by: Nicolas George <george@nsup.org>
Reviewed-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
James Almer [Sat, 10 Oct 2015 23:28:11 +0000 (20:28 -0300)]
x86/vf_w3fdif: move pxor outside the loop in w3fdif_complex_low
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
Paul B Mahol [Sat, 10 Oct 2015 15:31:12 +0000 (17:31 +0200)]
avcodec/sipr: use AVERROR return code instead of -1
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sun, 11 Oct 2015 16:33:57 +0000 (18:33 +0200)]
avformat/rsd: support XADP tag
It appears that Xbox ADPCM is same as WAV adpcm.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Michael Niedermayer [Sun, 11 Oct 2015 14:39:41 +0000 (16:39 +0200)]
avcodec/pngdec: Use av_malloc_array()
Suggested-by: ubitux
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sun, 11 Oct 2015 12:52:39 +0000 (14:52 +0200)]
avcodec/jpeg2000dec: Check that step_x/y are valid before use in JPEG2000_PGOD_PCRL
Fixes: CID1322305 and CID1322304
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Sean McGovern [Wed, 7 Oct 2015 21:39:37 +0000 (17:39 -0400)]
build: add Solaris symbol versioning
The versioning facility in the Solaris linker differs from Linux in 3 ways:
1. It does not support globs in linker scripts for
symbol versioning -- this is a GNU extension.
2. The linker argument is '-M', instead of '--version-script'.
3. It is picky about line endings.
Each symbol or directive must be on a line of it's own.
Let's use make_sunver.pl from GCC to generate a version script that works
correctly with the Solaris linker. It's function is to correctly expand the
globs in the original generated version script.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Clément Bœsch [Sun, 7 Jun 2015 18:21:28 +0000 (20:21 +0200)]
avfilter: add selectivecolor filter
Michael Niedermayer [Sun, 11 Oct 2015 11:09:56 +0000 (13:09 +0200)]
avcodec/pngdec: Alloc buffer after blend_op check in handle_p_frame_apng()
Avoids memleak on error
Fixes CID1322342
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sun, 11 Oct 2015 10:10:42 +0000 (12:10 +0200)]
Revert "Merge commit '
8b830ee9a26d47b138f12a82085cdb372f407f1e'" (avconv: Do not try to configure filter outputs without streams)
FFmpeg already tests for this case in configure_output_filter() and printed a
clearer error message
example:
./ffmpeg -f lavfi -i color -f lavfi -i color -filter_complex "[1]null[x],[0][1]overlay" -f null -
before the merge / after the revert:
Filter null has a unconnected output
after the merge / before the revert:
Output pad "default" with type video of the filter instance "Parsed_null_0" of null not connected to any destination
Error configuring complex filters.
Invalid argument
This reverts commit
3e3779cd517e4d2d1f21d5eb6afdb428cd3c1aa0, reversing
changes made to
0b28039a44b33753d77116691d680bd60f3bac1f.
Reviewed-by: Ganesh Ajjanagadde <gajjanag@mit.edu>
Michael Niedermayer [Sun, 11 Oct 2015 02:21:01 +0000 (04:21 +0200)]
avutil/intmath: Change debruijn_ctz64 to use 8bit elements
This reduces the memory & cache need from 256 to 64 bytes
the code also seems faster with this change
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ganesh Ajjanagadde [Sun, 11 Oct 2015 01:58:47 +0000 (21:58 -0400)]
avutil/mathematics: speed up av_gcd by using Stein's binary GCD algorithm
This uses Stein's binary GCD algorithm:
https://en.wikipedia.org/wiki/Binary_GCD_algorithm
to get a roughly 4x speedup over Euclidean GCD on standard architectures
with a compiler intrinsic for ctzll, and a roughly 2x speedup otherwise.
At the moment, the compiler intrinsic is used on GCC and Clang due to
its easy availability.
Quick note regarding overflow: yes, subtractions on int64_t can, but the
llabs takes care of that. The llabs is also guaranteed to be safe, with
no annoying INT64_MIN business since INT64_MIN being a power of 2, is
shifted down before being sent to llabs.
The binary GCD needs ff_ctzll, an extension of ff_ctz for long long (int64_t). On
GCC, this is provided by a built-in. On Microsoft, there is a
BitScanForward64 analog of BitScanForward that should work; but I can't confirm.
Apparently it is not available on 32 bit builds; so this may or may not
work correctly. On Intel, per the documentation there is only an
intrinsic for _bit_scan_forward and people have posted on forums
regarding _bit_scan_forward64, but often their documentation is
woeful. Again, I don't have it, so I can't test.
As such, to be safe, for now only the GCC/Clang intrinsic is added, the rest
use a compiled version based on the De-Bruijn method of Leiserson et al:
http://supertech.csail.mit.edu/papers/debruijn.pdf.
Tested with FATE, sample benchmark (x86-64, GCC 5.2.0, Haswell)
with a START_TIMER and STOP_TIMER in libavutil/rationsl.c, followed by a
make fate.
aac-am00_88.err:
builtin:
714 decicycles in av_gcd, 4095 runs, 1 skips
de-bruijn:
1440 decicycles in av_gcd, 4096 runs, 0 skips
previous:
2889 decicycles in av_gcd, 4096 runs, 0 skips
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sun, 11 Oct 2015 01:46:44 +0000 (03:46 +0200)]
avcodec/pngdec: Check blend_op.
Fixes CID1322359, CID1322358
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ganesh Ajjanagadde [Sat, 10 Oct 2015 16:48:08 +0000 (12:48 -0400)]
doc/resampler, swresample/options: use proper capitalization
Proper names should be capitalized in all user facing API as far as
possible. The option names themselves have not been changed since:
1. We consistently keep option names in lower case.
2. Changing them would break existing scripts.
3. I suspect that we want to be similar to Sox and its relevant options.
The converse is also true: improper names should not be capitalized
generally.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ganesh Ajjanagadde [Sat, 10 Oct 2015 16:36:27 +0000 (12:36 -0400)]
gitignore: ignore object file temporaries
During a build, a lot of *.o.-hash files are created - had not noticed
this as they are usually dumped in tmpfs on Linux. However, they
sometimes are present during a long build in the project directory, making it
annoying to commit while the project is being built.
These have been observed with Clang, -fsanitize-undefined on Arch Linux,
though other configurations may also generate such temporaries.
The solution here is on lines with the Linux kernel's .gitignore:
https://github.com/torvalds/linux/blob/master/.gitignore.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ganesh Ajjanagadde [Sat, 10 Oct 2015 16:54:33 +0000 (12:54 -0400)]
doc/scaler, swscale/options: use proper capitalization
Proper names should be capitalized in all user facing API as far as
possible. The option names themselves have not been changed since:
1. We consistently keep option names in lower case.
2. Changing them would break existing scripts.
The converse is also true: improper names should not be capitalized
generally.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Zhang Rui [Sat, 10 Oct 2015 09:51:09 +0000 (17:51 +0800)]
fate/async: test error code from underlying protocol
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>