Martin Storsjö [Tue, 19 Feb 2013 22:07:35 +0000 (00:07 +0200)]
h264: Get rid of unnecessary casts
This gets rid of a number of warnings about casts discarding
qualifiers from the pointer target, present since
7ebfb466a.
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Mon, 18 Feb 2013 01:01:26 +0000 (17:01 -0800)]
h264/svq3: Stop using draw_edges
Instead, only extend edges on-demand when the motion vector actually
crosses the visible decoded area using ff_emulated_edge_mc(). This
changes decoding time for cathedral from 8.722sec to 8.706sec, i.e.
0.2% faster overall. More generally (VP8 uses this also), low-motion
content gets significant speed improvements, whereas high-motion content
tends to decode in approximately the same time.
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Sun, 17 Feb 2013 22:52:24 +0000 (14:52 -0800)]
h264: Don't store intra pcm samples in h->mb
Instead, keep them in the bitstream buffer until we read them verbatim,
this saves a memcpy() and a subsequent clearing of the target buffer.
decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from
6121.4 to 6095.5 cycles, i.e. 26 cycles faster.
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Mon, 11 Feb 2013 00:46:07 +0000 (16:46 -0800)]
get_bits: Return pointer to buffer that is the result of the alignment
This allows more transparent mixing of get_bits and whole-byte access
without having to touch get_bits internals.
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Tue, 12 Feb 2013 01:04:27 +0000 (17:04 -0800)]
h264: Add add_pixels4/8() to h264dsp, and remove add_pixels4 from dsputil
These functions are mostly H264-specific (the only other user I can
spot is bink), and this allows us to special-case some functionality
for H264. Also remove the 16-bit-coeff with >8bpp versions (unused)
and merge the duplicate 32-bit-coeff for >8bpp (identical).
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Mon, 11 Feb 2013 21:52:38 +0000 (13:52 -0800)]
h264chroma: Remove duplicate 9/10 bit functions
These functions do the same thing in 16 bit space and don't need
any depth specific clipping.
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Tue, 29 Jan 2013 23:55:19 +0000 (15:55 -0800)]
x86: Use simple nop codes for <= sse (rather than <= mmx)
The "CentaurHauls family 6 model 9 stepping 8" family of CPUs
(flags: fpu vme de pse tsc msr cx8 sep mtrr pge mov pat mmx fxsr sse
up rng rng_en ace ace_en) SIGILLs on long nop codes.
Signed-off-by: Martin Storsjö <martin@martin.st>
Ronald S. Bultje [Fri, 1 Feb 2013 19:04:50 +0000 (11:04 -0800)]
vp56: Remove clear_blocks call, and clear alpha plane U/V DC only
The non-alpha and alpha-Y planes are cleared in the idct_put/add()
calls. For the alpha U/V planes, we only care about the DC for entropy
context prediction purposes, the rest of the data is unused.
Signed-off-by: Martin Storsjö <martin@martin.st>
Daniel Kang [Mon, 18 Feb 2013 15:50:06 +0000 (10:50 -0500)]
x86: dsputil: Fix h263 loop filter link error in some configurations
This was caused by unconditionally referencing a conditionally compiled
table. Now the code is also compiled conditionally.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Daniel Kang [Fri, 15 Feb 2013 20:13:58 +0000 (15:13 -0500)]
x86: dsputil: int --> ptrdiff_t for ff_put_pixels16_mmxext line_size param
This avoids SIMD-optimized functions having to sign-extend their
line size argument manually to be able to do pointer arithmetic.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
Vicente Jimenez Aguilar [Sat, 16 Feb 2013 02:08:36 +0000 (03:08 +0100)]
doc: Fix some obsolete references to av* tools as ff* tools
Signed-off-by: Diego Biurrun <diego@biurrun.de>
CC: libav-stable@libav.org
Matti Hamalainen [Mon, 18 Feb 2013 01:55:07 +0000 (02:55 +0100)]
svq3: unbreak decoding
a7d2861d36756b913e85681b86ed3385274e8ced removed necessary braces.
Luca Barbato [Sun, 17 Feb 2013 21:00:36 +0000 (22:00 +0100)]
build: make audio_frame_queue a stand-alone component
Encoders requiring it have the dependency expressed in the
configure.
Diego Biurrun [Sat, 16 Feb 2013 22:05:05 +0000 (23:05 +0100)]
build: The libopencore-amrnb encoder depends on audio_frame_queue
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diego Biurrun [Sat, 16 Feb 2013 22:05:04 +0000 (23:05 +0100)]
libopencore-amrwb: Make AMR-WB ifdeffery more precise
The library might provide an encoder in the future, so it's better to
check for the presence of the decoder rather than just the library.
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diego Biurrun [Sat, 16 Feb 2013 22:05:03 +0000 (23:05 +0100)]
libopencore-amr: Conditionally compile decoder and encoder bits
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diego Biurrun [Sat, 16 Feb 2013 22:05:02 +0000 (23:05 +0100)]
libopencore-amrnb: cosmetics: Group all encoder-related code together
CC: libav-stable@libav.org
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Luca Barbato [Sat, 9 Feb 2013 23:17:20 +0000 (00:17 +0100)]
dsputil: convert remaining op_pixels_func
Convert to diffptr_t the line_size parameters still int.
Remove all the warnings in dsputil.c
Michael Niedermayer [Thu, 29 Nov 2012 14:18:17 +0000 (15:18 +0100)]
roqvideodec: check dimensions validity
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit
3ae610451170cd5a28b33950006ff0bd23036845)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit
fee26d352a52eb9f7fcd8d9167fb4a5ba015b612)
CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Michael Niedermayer [Fri, 25 Jan 2013 05:11:59 +0000 (06:11 +0100)]
vqavideo: check chunk sizes before reading chunks
Fixes out of array writes
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit
ab6c9332bfa1e20127a16392a0b85a4aa4840889)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit
13093f9767b922661132a3c1f4b5ba2c7338b660)
CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Michael Niedermayer [Fri, 30 Nov 2012 22:59:40 +0000 (23:59 +0100)]
qdm2: check array index before use, fix out of array accesses
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit
a7ee6281f7ef1c29284e3a4cadfe0f227ffde1ed)
CC: libav-stable@libav.org
Signed-off-by: Reinhard Tartler <siretart@tauware.de>
Anton Khirnov [Sat, 16 Feb 2013 19:58:18 +0000 (20:58 +0100)]
error_resilience: add required headers.
Anton Khirnov [Sun, 3 Feb 2013 10:10:05 +0000 (11:10 +0100)]
h264: deMpegEncContextize
Most of the changes are just trivial are just trivial replacements of
fields from MpegEncContext with equivalent fields in H264Context.
Everything in h264* other than h264.c are those trivial changes.
The nontrivial parts are:
1) extracting a simplified version of the frame management code from
mpegvideo.c. We don't need last/next_picture anymore, since h264 uses
its own more complex system already and those were set only to appease
the mpegvideo parts.
2) some tables that need to be allocated/freed in appropriate places.
3) hwaccels -- mostly trivial replacements.
for dxva, the draw_horiz_band() call is moved from
ff_dxva2_common_end_frame() to per-codec end_frame() callbacks,
because it's now different for h264 and MpegEncContext-based
decoders.
4) svq3 -- it does not use h264 complex reference system, so I just
added some very simplistic frame management instead and dropped the
use of ff_h264_frame_start(). Because of this I also had to move some
initialization code to svq3.
Additional fixes for chroma format and bit depth changes by
Janne Grunau <janne-libav@jannau.net>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Anton Khirnov [Sun, 3 Feb 2013 13:26:34 +0000 (14:26 +0100)]
mpegvideo: split ff_draw_horiz_band().
Split out dependency on MpegEncContext.
Anton Khirnov [Sat, 2 Feb 2013 19:42:07 +0000 (20:42 +0100)]
error_resilience: decouple ER from MpegEncContext
Anton Khirnov [Mon, 4 Feb 2013 10:21:10 +0000 (11:21 +0100)]
svq3: remove a pointless if()
The H264 context is always uninitialized at this point.
Anton Khirnov [Sun, 3 Feb 2013 09:21:39 +0000 (10:21 +0100)]
h264: remove a pointless if()
!encoding is always true, we do not have a H.264 encoder
Anton Khirnov [Sat, 2 Feb 2013 14:18:00 +0000 (15:18 +0100)]
h264: simplify calls to ff_er_add_slice().
partitioned_frame is never set for h264 (as easily seen from git grep).
Anton Khirnov [Wed, 30 Jan 2013 15:41:08 +0000 (16:41 +0100)]
get_buffer(): do not initialize the data.
There may be more decoders that rely on this. Those should be found and
fixed.
Anton Khirnov [Thu, 7 Feb 2013 17:31:45 +0000 (18:31 +0100)]
vf_yadif: fix out-of line reads
Some changes in the border pixels, visually indistinguishable.
Anton Khirnov [Sat, 9 Feb 2013 07:28:37 +0000 (08:28 +0100)]
vf_yadif: factorize initializing the filtering callbacks
Do it all in config_props().
Diego Biurrun [Fri, 15 Feb 2013 01:13:42 +0000 (02:13 +0100)]
sparc: dsputil: Simplify high_bit_depth checks
Diego Biurrun [Fri, 18 Jan 2013 22:00:18 +0000 (23:00 +0100)]
h264idct: Replace duplicate scan8 table by appropriate #include
Diego Biurrun [Thu, 14 Feb 2013 18:07:21 +0000 (19:07 +0100)]
avutil: Ensure that emms_c is always defined, even on non-x86
Diego Biurrun [Wed, 13 Feb 2013 19:00:47 +0000 (20:00 +0100)]
configure: Move MinGW CPPFLAGS setting to libc section, where it belongs
Diego Biurrun [Tue, 22 Jan 2013 01:22:29 +0000 (02:22 +0100)]
avutil: Move emms code to x86-specific header
Derek Buitenhuis [Wed, 13 Feb 2013 23:41:37 +0000 (18:41 -0500)]
doc/platform: Fix 10l typo
This error was somehow missed for months.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Diego Biurrun [Fri, 8 Feb 2013 14:55:52 +0000 (15:55 +0100)]
dsputil: Move STRIDE_ALIGN macro to the only place it is used
Justin Ruggles [Sun, 27 Jan 2013 19:47:54 +0000 (14:47 -0500)]
lavr: fix mixing matrix reduction when normalization is disabled
In some cases when an input contributes fully to the corresponding
output, other inputs may also contribute to the same output. This is the
case, for example, for the default 5.1 to stereo downmix matrix without
normalization.
Justin Ruggles [Fri, 18 Jan 2013 18:44:10 +0000 (13:44 -0500)]
lavr: fix matrix reduction for upmixing in certain cases
Do not skip an output if the corresponding input contributes to other output
channels.
Justin Ruggles [Fri, 18 Jan 2013 18:34:26 +0000 (13:34 -0500)]
lavr: cosmetics: reindent
Justin Ruggles [Fri, 18 Jan 2013 18:27:50 +0000 (13:27 -0500)]
lavr: make sure that the mix function is reset even if no mixing will be done
If the matrix reduction ends up with no mixing matrix needed, we need to still
reset the mix function accordingly and log the info to the user.
Justin Ruggles [Fri, 18 Jan 2013 18:25:19 +0000 (13:25 -0500)]
lavr: print out the mix matrix in ff_audio_mix_set_matrix()
This will print the new matrix if it is set after initialization.
Justin Ruggles [Mon, 24 Dec 2012 01:31:24 +0000 (20:31 -0500)]
ws-snd1: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:29:44 +0000 (20:29 -0500)]
wmavoice: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:26:15 +0000 (20:26 -0500)]
wmaenc: alloc/free coded_frame instead of keeping it in the WMACodecContext
Justin Ruggles [Mon, 24 Dec 2012 01:25:52 +0000 (20:25 -0500)]
wma: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:16:21 +0000 (20:16 -0500)]
wmapro: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:13:08 +0000 (20:13 -0500)]
wavpack: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:11:36 +0000 (20:11 -0500)]
vorbis: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:10:01 +0000 (20:10 -0500)]
vmdaudio: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:08:05 +0000 (20:08 -0500)]
twinvq: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:06:41 +0000 (20:06 -0500)]
tta: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:04:31 +0000 (20:04 -0500)]
truespeech: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:02:46 +0000 (20:02 -0500)]
tak: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 01:00:41 +0000 (20:00 -0500)]
smackaud: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:58:35 +0000 (19:58 -0500)]
sipr: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:56:32 +0000 (19:56 -0500)]
shorten: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:54:24 +0000 (19:54 -0500)]
s302m: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:52:00 +0000 (19:52 -0500)]
ra288: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:50:54 +0000 (19:50 -0500)]
ra144: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:49:38 +0000 (19:49 -0500)]
ralf: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:46:58 +0000 (19:46 -0500)]
qdm2: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:43:11 +0000 (19:43 -0500)]
qcelp: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:41:46 +0000 (19:41 -0500)]
pcm-bluray: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:39:44 +0000 (19:39 -0500)]
nellymoser: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:38:34 +0000 (19:38 -0500)]
mpc7/8: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:34:54 +0000 (19:34 -0500)]
mpegaudio: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:24:24 +0000 (19:24 -0500)]
mlp/truehd: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:22:07 +0000 (19:22 -0500)]
mace: decode directly to the user-provided AVFrame
Justin Ruggles [Mon, 24 Dec 2012 00:19:25 +0000 (19:19 -0500)]
libspeex: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 23:45:55 +0000 (18:45 -0500)]
libopus: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 23:42:58 +0000 (18:42 -0500)]
libopencore-amr: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 23:40:50 +0000 (18:40 -0500)]
libgsm: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 23:05:53 +0000 (18:05 -0500)]
libilbc: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 23:03:43 +0000 (18:03 -0500)]
dpcm: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 23:01:45 +0000 (18:01 -0500)]
imc/iac: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 23:00:01 +0000 (18:00 -0500)]
gsm: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:56:53 +0000 (17:56 -0500)]
g726: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:55:09 +0000 (17:55 -0500)]
g723.1: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:53:06 +0000 (17:53 -0500)]
g722: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:49:27 +0000 (17:49 -0500)]
flac: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:47:02 +0000 (17:47 -0500)]
cinaudio: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:43:47 +0000 (17:43 -0500)]
dca: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:41:31 +0000 (17:41 -0500)]
cook: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:37:34 +0000 (17:37 -0500)]
comfortnoise: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:35:54 +0000 (17:35 -0500)]
bmvaudio: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:10:12 +0000 (17:10 -0500)]
pcm: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:26:26 +0000 (17:26 -0500)]
binkaudio: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:24:53 +0000 (17:24 -0500)]
atrac3: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:07:10 +0000 (17:07 -0500)]
atrac1: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:05:40 +0000 (17:05 -0500)]
ape: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:03:36 +0000 (17:03 -0500)]
amrwb: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 22:01:33 +0000 (17:01 -0500)]
amrnb: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 21:59:43 +0000 (16:59 -0500)]
als: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 21:56:17 +0000 (16:56 -0500)]
alac: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 21:51:41 +0000 (16:51 -0500)]
adxenc: alloc/free coded_frame instead of keeping it in the ADXContext
Justin Ruggles [Sun, 23 Dec 2012 21:50:06 +0000 (16:50 -0500)]
adx: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 21:43:07 +0000 (16:43 -0500)]
adpcm: decode directly to the user-provided AVFrame
Justin Ruggles [Sun, 23 Dec 2012 21:40:37 +0000 (16:40 -0500)]
ac3: decode directly to the user-provided AVFrame