Commit Graph

19726 Commits

Author SHA1 Message Date
Diego Biurrun
8d695dc411 mpeg: Mark ff_mpeg_set_erpic() static
It is not used outside of the file.
2014-06-22 06:28:46 -07:00
Diego Biurrun
c54e118722 build: Have the eatqi decoder depend on the MPEG-1 decoder
eatqi uses more than just the shared mpegvideo bits.
2014-06-22 06:28:46 -07:00
Diego Biurrun
03391b5432 build: Add missing object files for Matroska demuxer 2014-06-22 06:28:46 -07:00
Diego Biurrun
9a9e2f1c8a dsputil: Split audio operations off into a separate context 2014-06-22 06:20:15 -07:00
Vittorio Giovara
ca1e36a8e4 h264: fix build when error resilience is disabled 2014-06-20 12:48:06 -04:00
Justin Ruggles
9e500efdbe Add av_image_check_sar() and use it to validate SAR 2014-06-20 10:39:33 -04:00
Anton Khirnov
d349afb07b dv: cosmetics, reindent 2014-06-20 14:15:39 +02:00
Anton Khirnov
650dee63c8 dv: get rid of global non-const tables
Instead, store them in the context and compute on each parameter change.
2014-06-20 14:15:31 +02:00
Anton Khirnov
778111592b dvenc: initialize the profile only once, at init
We do not allow the frame parameters to change during encoding, so there
is no need to do this for each frame.
2014-06-20 14:15:16 +02:00
Anton Khirnov
874390e163 lavc: add a convenience function for rescaling timestamps in a packet 2014-06-20 14:14:11 +02:00
Dirk Ausserhaus
b2290bf10b i263: skip dummy frames
Intel i263 codec has special 8-byte dummy frames that should not be decoded,
so do not even attempt to decode them and skip them instead.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-19 13:13:20 +02:00
Diego Biurrun
e74433a8e6 dsputil: Split clear_block*/fill_block* off into a separate context 2014-06-18 14:07:23 -07:00
Luca Barbato
869fc416f7 hevc: Mark num_bins_in_se as unused
Only its size is actually used. Silence a clang warning.
2014-06-18 22:03:40 +02:00
Niels Möller
f2ce63246f dcadec: replace ldexpf with a multiplication by a constant
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-18 08:23:15 +02:00
Rafaël Carré
9affa784a0 vp9 encoder: use a decent default speed setting
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-17 21:38:43 +02:00
Tristan Matthews
4910684492 tiffenc: fix packet size calculation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-17 21:24:12 +02:00
Diego Biurrun
fe4d5fe936 jpeg2000: Mark static data init functions as av_cold 2014-06-17 08:44:07 -07:00
Diego Biurrun
27631796c9 ac3: Only initialize float_dsp for the float encoder variant 2014-06-13 05:21:34 -07:00
Diego Biurrun
f0ce9913d0 Rename tpel_template.c ---> pel_template.c
The new name more accurately describes what the file is about.
2014-06-13 05:21:34 -07:00
Derek Buitenhuis
ceada893be libx265: Remove unneeded bit depth check
This is no longer needed since the version bump.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
61a344916d libx265: Add 4:2:2 support
It is also not final yet, so require -strict experimental.

Requires a bump to version 17.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Derek Buitenhuis
180e6b4806 libx265: Actually use X265_API_IMPORTS
It obvously needs to be above the include statement.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-12 16:45:02 +01:00
Diego Biurrun
dca7ba4bff Remove some unnecessary CONFIG_FOO_COMPONENT ifdefs
The files are only ever compiled if that condition is true.
2014-06-12 07:10:18 -07:00
Luca Barbato
2f4170312f libx264: Support bitrate reconfiguration
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-06-11 22:51:00 +02:00
Janne Grunau
cd62c04d00 h263enc: keep block_last_index always valid during advanced intra coding
Prevents a triggered assert during fate-vsynth{1,2}-rv20 in
dct_unquantize_h263_intra_c().
2014-06-11 21:28:39 +02:00
Janne Grunau
0ddc53dabb mpegvideo: synchronize AVFrame pointers in ERContext fully
Since error resilience uses AVFrame pointers instead of references it
has to copy NULL pointers too. After a codec flush the last/next frame
pointers in MpegEncContext are NULL and the old pointers remaining in
ERContext are invalid. Fixes a crash in vlc for android thumbnailer.
Reported and debugged by Adrien Maglo <magsoft@videolan.org>.
2014-06-11 21:28:27 +02:00
Vittorio Giovara
d7705be961 mpegvideoenc: check color_range
Rework the comparison into something simpler to understand.
2014-06-10 19:41:59 -04:00
Diego Biurrun
27860819d5 ppc: Consistently use convenience macro for runtime CPU detection 2014-06-10 15:13:57 -07:00
Diego Biurrun
205fdd4ea5 ppc: Fix runtime CPU detection for apedsp, huffyuvdsp, svq1enc 2014-06-10 15:13:57 -07:00
Martin Storsjö
570d4b2186 x86: h264: Don't keep data in the redzone across function calls on 64 bit unix
We know that the called function (ff_chroma_inter_body_mmxext)
doesn't touch the redzone, and thus will be kept intact - thus,
this doesn't fix any bug per se.

However, valgrind's memcheck tool intentionally assumes that the
redzone is clobbered on every function call and function return
(see a long comment in valgrind/memcheck/mc_main.c). This avoids
false positives in that tool, at the cost of an extra stack pointer
adjustment.

The other alternative would be a valgrind suppression for this issue,
but that's an extra burden for everybody that wants to run libavcodec
within valgrind.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-10 16:31:48 +03:00
Martin Storsjö
0776e0ef6b adpcm: Write the proper predictor in trellis mode in IMA QT
The actual predictor value, set by the trellis code, never
was written back into the variable that was written into
the block header. This was accidentally removed in b304244b.

This significantly improves the audio quality of the trellis
case, which was plain broken since b304244b.

Encoding IMA QT with trellis still actually gives a slightly
worse quality than without trellis, since the trellis encoder
doesn't use the exact same way of rounding as in
adpcm_ima_qt_compress_sample and adpcm_ima_qt_expand_nibble.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-10 16:28:47 +03:00
Martin Storsjö
3d79d0c93e adpcm: Avoid reading out of bounds in the IMA QT trellis encoder
This was broken in 095be4fb - samples+ch (for the previous
non-planar case) equals &samples_p[ch][0]. The confusion
probably stemmed from the IMA WAV case where it originally
was &samples[avctx->channels + ch], which was correctly
changed into &samples_p[ch][1].

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-06 19:23:54 +03:00
Marc-Antoine Arnaud
f558f0d2da avcodec options: add enum option for color_range
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:40:08 +01:00
Marc-Antoine Arnaud
7c29b7229b avcodec options: add enum option for colorspace
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:39:50 +01:00
Marc-Antoine Arnaud
efc2dfe6a0 avcodec options: add enum option for color_trc
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:39:34 +01:00
Marc-Antoine Arnaud
bd71c300f9 avcodec options: add enum option for color_primaries
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:39:08 +01:00
Marc-Antoine Arnaud
8a06794112 mpeg2: add sequence display extension information
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-06-06 15:38:10 +01:00
Martin Storsjö
2f7065190a libfdk-aac: Relicense the library wrappers to the ISC license
This reduces the number of different licenses used within libav,
and is preferrable since it has less ambiguous wordings than
the BSD license with respect to the duties of the user of the code.

Fraunhofer have now indicated that they're allowed to contribute
code under this license as well.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-06-06 10:48:27 +03:00
Janne Grunau
896a5bff64 arm: check if AS supports .dn
Move the GNU as check before the arch specific asm checks since the .dn
check requires gas compatible assembler.

Disable the VC-1 motion compensation NEON asm which is the only part
using that directive. The integrated assembler in the upcoming clang 3.5
does not support .dn/.qn without plans to change that. Too much effort
to implement it while it is rarely used.

http://llvm.org/bugs/show_bug.cgi?id=18199.
2014-06-03 14:23:03 +02:00
Diego Biurrun
880e2aa236 Remove all Blackfin architecture optimizations
Blackfin is a painful platform to work with, no test machines are available
and the range of multimedia applications is dubious. Thus it only represents
a maintenance burden.
2014-06-02 08:41:47 -07:00
Diego Biurrun
b88cc5cca1 bink: Rename BinkDSPContext member so as not to clash with BlockDSPContext 2014-06-02 03:41:56 -07:00
Dirk Ausserhaus
f76e3669bb Decode both parts of Indeo4 IP frames
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-01 08:53:27 +02:00
Dirk Ausserhaus
3df0d20028 Move Indeo4 frametypes into common header.
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-06-01 08:53:27 +02:00
Anton Khirnov
ed39cda029 flacenc: send final extradata in packet side data 2014-06-01 08:27:01 +02:00
Anton Khirnov
0957b274e3 lavc: add an option to enable side data-only packets during encoding
Some encoders (e.g. flac) need to send side data when there is no more
data to be output. This enables them to output a packet with no data in
it, only side data.
2014-06-01 08:26:43 +02:00
wm4
eb800f120d libavcodec: set AVFrame colorspace fields on decoding
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-01 08:23:05 +02:00
wm4
8c02adc62d lavu: add all color-related enums to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-06-01 08:22:02 +02:00
Thierry Fauck
d6d767d93e ppc: Fix compilation for ppc64le (ELFv2)
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-30 22:46:53 +03:00
Diego Biurrun
368f50359e dsputil: Split off quarterpel bits into their own context 2014-05-29 06:48:31 -07:00
Diego Biurrun
cb52a17cb6 dsputil: Move Bink-specific add_pixels8 to binkdsp 2014-05-29 06:48:08 -07:00
Diego Biurrun
054013a0fc dsputil: Move APE-specific bits into apedsp 2014-05-29 06:41:15 -07:00
Diego Biurrun
256da0770e dsputil: Move mspel_pixels_tab to the only place it is used 2014-05-29 06:41:15 -07:00
Diego Biurrun
3832a65901 dsputil: Move ff_alternate_*_scan tables to mpegvideo 2014-05-29 06:41:15 -07:00
Diego Biurrun
65d5d58658 dsputil: Move SVQ1 encoding specific bits into svq1enc 2014-05-29 06:41:15 -07:00
Diego Biurrun
2ea2612df5 svq1enc: Rename SVQ1Context to SVQ1EncContext
This allows making it visible without name clashes.
2014-05-29 06:41:14 -07:00
Diego Biurrun
b5aa485513 ppc: Move vec_unaligned_load macro to util_altivec
This allows reusing it from multiple files.
2014-05-28 03:29:33 -07:00
Anton Khirnov
5fdaf312c5 flac: make avpriv_flac_parse_block_header() inline
This avoids all the ABI troubles associated with avpriv_.
Since this function is very small and does not depend on any tables,
making it inline should have no adverse effects.
2014-05-28 07:48:30 +02:00
Anton Khirnov
f13ffb6636 flacdec: do not overwrite a channel layout set by the caller
The channel layout mask for non-standard layouts is typically stored at
the container level (as a vorbiscomment tag) for FLAC.
2014-05-28 07:46:04 +02:00
Diego Biurrun
512f3ffe9b dsputil: Split off HuffYUV encoding bits into their own context
Also shorten HuffYUV context member names to avoid clutter.
2014-05-27 08:54:53 -07:00
Diego Biurrun
0d439fbede dsputil: Split off HuffYUV decoding bits into their own context
Also shorten HuffYUV context member names to avoid clutter.
2014-05-27 08:52:34 -07:00
Diego Biurrun
888dcd8675 h264_picture: Remove pointless dsputil.h #include 2014-05-27 03:12:17 -07:00
Diego Biurrun
f1df0a4c08 on2avc: Remove pointless dsputil.h #include 2014-05-27 03:12:17 -07:00
Vittorio Giovara
21f68c2489 avcodec: bump version after rotation api
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-05-23 17:50:38 +02:00
Niels Möller
6b7b8585d7 dca: Convert dca_dmixtable to integers
Also include zero in the table, eliminating a special case in the
decoder.

Signed-off-by: Niels Möller <nisse@southpole.se>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-23 15:07:05 +02:00
Janne Grunau
132a5711a2 check: add libavcodec/vda_internal.h to SKIPHEADERS-$(CONFIG_VDA) 2014-05-20 00:43:51 +02:00
Vittorio Giovara
bddd8cbf68 Add transformation matrix API.
Add AV_PKT_DATA_DISPLAYMATRIX and AV_FRAME_DATA_DISPLAYMATRIX as stream and
frame side data (respectively) to describe a display transformation matrix
for linear transformation operations on the decoded video.

Add functions to easily extract a rotation angle from a matrix and
conversely to setup a matrix for a given rotation angle.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 13:13:10 +02:00
Anton Khirnov
9929b3564c pthread_frame: simplify the code by using new AVPacket API
This also handles side data properly.
2014-05-19 13:12:46 +02:00
Anton Khirnov
cdf58f0599 avpacket: fix copying side data in av_packet_copy_props()
Side data count is incremented by by calling av_packet_new_side_data()
in the following loop, setting it explicitly results in the resulting
value being twice what it should be.

CC: libav-stable@libav.org
2014-05-19 13:12:40 +02:00
Anton Khirnov
c9f8809ee4 hevc/intra_pred: simplify neighboring sample derivation 2014-05-19 07:12:55 +02:00
Mickaël Raulet
25bb7eaf9e hevc/intra_pred: drop unnecessary conditions in loops
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 07:12:47 +02:00
Mickaël Raulet
4c390b1ba9 hevc/intra_pred: optimize EXTEND_()*
Process 4 pixels at once.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 07:10:43 +02:00
Anton Khirnov
a1c2b48018 hevc: templatize intra_pred 2014-05-19 07:10:03 +02:00
Mickaël Raulet
04db5794cd hevc: templatize pred_planar
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-05-19 07:09:30 +02:00
Anton Khirnov
fd056029f4 lavc: add avcodec_free_context().
Right now, the caller has to manually manage some allocated
AVCodecContext fields, like extradata or subtitle_header. This is
fragile and prone to leaks, especially if we want to add more such
fields in the future.

The only reason for this behaviour is so that the AVStream codec context
can be reused for decoding. Such reuse is discouraged anyway, so this
commit is the first step to deprecating it.
2014-05-18 10:17:41 +02:00
Anton Khirnov
e1b66778b6 lavc: remove the locking code in avcodec_close()
This function should not modify any global state, so there should be no
reason for any locking.
2014-05-18 10:16:35 +02:00
Janne Grunau
d3f5b94762 aarch64: opus NEON iMDCT and FFT
Opus celt decoding 11% faster and the iMDCT over 2.5 times faster on
Apple's A7.
2014-05-15 18:17:02 +02:00
Anton Khirnov
3b2fbe67bd lavc: properly handle subtitle_header in avcodec_copy_context() 2014-05-15 07:51:39 +02:00
Anton Khirnov
efc7df6c1f lavc: preserve the original private data in avcodec_copy_context()
If a non-NULL codec was passed to avcodec_alloc_context3(), private data
will be already allocated in dest.
2014-05-15 07:51:16 +02:00
Anton Khirnov
b70d7a4ac7 lavc: add a native Opus decoder.
Initial implementation by Andrew D'Addesio <modchipv12@gmail.com> during
GSoC 2012.

Completion by Anton Khirnov <anton@khirnov.net>, sponsored by the
Mozilla Corporation.

Further contributions by:
Christophe Gisquet <christophe.gisquet@gmail.com>
Janne Grunau <janne-libav@jannau.net>
Luca Barbato <lu_zero@gentoo.org>
2014-05-15 06:49:34 +02:00
Janne Grunau
449511740f build: handle library dependencies in configure
Instead of setting FFLIBS in each library Makefile configure
exports FFLIBS-$library in config.mak.
2014-05-13 20:02:01 +02:00
Janne Grunau
9aa4592076 aarch64: assembler in clang-3.4 ignores the division by two
Values are positive powers of two, so just replace it with right shift.
2014-05-13 19:44:09 +02:00
Anton Khirnov
67afcefb35 lavc: Add new VDA hwaccel
It leverages the new hwaccel 1.2 features:

- get_buffer2 is never called
- the internal context is automatically initialized/deinitialized

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-11 15:00:03 +02:00
Anton Khirnov
31a46750c7 vda: use hwaccel private data for internal bitstream buffer 2014-05-11 15:00:03 +02:00
Anton Khirnov
dd2d3b766b lavc: Add hwaccel private data and init/uninit callbacks 2014-05-11 14:59:07 +02:00
Luca Barbato
ebc29519d1 hwaccel: Support specific frame allocators
It would reduce the boilerplate code users have to write.
2014-05-11 14:59:07 +02:00
Anton Khirnov
a871ef0cc9 hwaccel: Rename priv_data_size to frame_priv_data_size
This describes more accurately what this field is for.
2014-05-11 14:59:07 +02:00
Anton Khirnov
08bb256758 lavc: document which parts of AVHWAccel are private. 2014-05-11 14:59:07 +02:00
Anton Khirnov
5c1d7246cd lavc: set AVCodecContext.hwaccel in ff_get_format()
This way each decoder does not have to do the same thing manually.
2014-05-11 14:59:07 +02:00
Anton Khirnov
632ad2248e lavc: Add an internal wrapper around get_format()
It will be useful in the following commits.
2014-05-11 14:59:07 +02:00
nu774
9880a0d4b1 pcm-dvd: Fix 20bit decoding
Increment the pointer as needed.

Bug-Id: 592

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-05-09 16:07:15 +02:00
Martin Storsjö
3828eb8519 libfdk-aac: Relicense the library wrappers to 2-clause BSD
This should make it possible for Fraunhofer to contribute to these
wrappers - they didn't want to contribute to code under LGPL2.1 with
the "or any later version" clause (which allowed using the code
under the LGPL3 license).

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-05 14:18:43 +03:00
Jean First
15fa856b82 libfdk-aacenc: Enable 7.1 channel encoding
7.1(wide) and 7.1(wide-side) channel layouts are supported in
fdk-aac since the 0.1.3 release.

The earlier versions of fdk-aac didn't include any library
version defines in the public headers, thus checking for
the AACENCODER_LIB_VL0 define is enough to know that we're
building against a new enough version of fdk-aac.

This change includes contributions by Tim Walker,
Michael Niedermayer and Timothy Gu.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-05-05 14:01:53 +03:00
Luca Barbato
925c37874b vp9: Read the frame size as unsigned
Sample-Id: 00001723-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-05-03 18:25:17 +02:00
Luca Barbato
a90d92ce2a aac: K&R formatting cosmetics 2014-05-01 13:00:57 +02:00
Luca Barbato
c6b42e8549 flv: K&R formatting cosmetics 2014-05-01 13:00:57 +02:00
Anton Khirnov
ba71c74017 lavc: deprecate AVCodecContext.codec_name
It is undocumented and has no real use.
2014-05-01 09:31:32 +02:00
Anton Khirnov
e7fc9796d8 lavc: do not use AVCodecContext.codec_name in avcodec_string()
That field will be deprecated.
2014-05-01 09:26:57 +02:00
Anton Khirnov
a2941c8cb2 lavc: move CODEC_FLAG_MV0 to mpegvideo 2014-05-01 09:24:18 +02:00
Anton Khirnov
6484149158 lavc: make the xvid-specific "gmc" flag a private option of libxvid 2014-05-01 09:24:02 +02:00
Anton Khirnov
b2c31710c9 lavc: move CODEC_FLAG_NORMALIZE_AQP to mpegvideo 2014-05-01 09:23:19 +02:00
Anton Khirnov
5fccedaa67 lavc: deprecate CODEC_FLAG_INPUT_PRESERVED
The addition of reference-counted frames makes it pointless.
2014-05-01 09:22:47 +02:00
Anton Khirnov
9d76dd952f h264: drop commented out cruft 2014-04-29 14:49:42 +02:00
Anton Khirnov
c1f92d1358 mpegvideo: remove unused MpegEncContext.b4_stride 2014-04-29 14:49:42 +02:00
Anton Khirnov
6a13505c06 mpegvideo: move the MpegEncContext fields used from arm asm to the beginning
This should reduce the frequency with which the offsets need to be
updated.
2014-04-29 14:49:42 +02:00
Michael Niedermayer
b2b4afe811 hwaccel: fix dxva2 & vaapi loop filter parameters
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 20:23:17 +02:00
Hendrik Leppkes
ed4b757177 dxva2_h264: add a workaround for old Intel GPUs
Old Intel GPUs expect the reference frame index to the actual surface,
instead of the index into RefFrameList as specified by the spec.

This workaround should be set when using one of the "ClearVideo" decoder
devices.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 20:21:59 +02:00
Hendrik Leppkes
2fcef90bee dxva2_h264: set the correct ref frame index in the long slice struct
The latest H.264 DXVA specification states that the index in this
structure should refer to a valid entry in the RefFrameList of the picture
parameter structure, and not to the actual surface index.

Fixes H.264 DXVA2 decoding on recent Intel GPUs (tested on Sandy and Ivy)

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-28 20:12:44 +02:00
Alessandro Ghedini
cdf6eb5a97 vc1: Do not return an error when skipping b frames
This caused mpv (and possibly others) to fallback to software decoding after
seeking a VC1 stream.

Bug-Id: 667

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-25 18:22:25 +02:00
Janne Grunau
a88e1d1c59 lavu: add CHK_OFFS as AV_CHECK_OFFSET to check struct member offsets 2014-04-24 18:28:26 +02:00
Kostya Shishkov
7cade8ea2b on2avc: change a comment at #endif to match actual define 2014-04-23 20:54:29 +02:00
Kostya Shishkov
e2834567d7 On2 AVC decoder 2014-04-23 19:57:44 +02:00
Derek Buitenhuis
d7eb8f9033 fic: Make warning message more accurate
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-23 17:53:00 +01:00
Derek Buitenhuis
7596fc3d4b fic: Remove redundant clips
The equations can't overflow or underflow anyway.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-23 12:40:39 -04:00
Derek Buitenhuis
e299cb2cd3 fic: Simplify alpha blending
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 17:51:43 -04:00
Derek Buitenhuis
9155c595f1 fic: Support rendering cursors
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 21:20:23 +01:00
Derek Buitenhuis
40b331e1f4 fic: Use proper quantization matrix index
The matrices are not zigzagged.

Fixes artefacting.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-22 21:20:23 +01:00
Janne Grunau
3956a5e0ea aarch64: NEON vorbis_inverse_coupling
From the ARMv7 NEON version. 16 times faster as the C version, overall
more than 12% faster vorbis decoding on Apple's A7.
2014-04-22 22:01:45 +02:00
Janne Grunau
8f9fe6ae34 aarch64: NEON fixed/floating point MPADSP apply_window
30%/25% (fixed/float) faster mp3 decoding on Apple's A7. The floating
point decoder is approximately 7% faster.
2014-04-22 22:01:45 +02:00
Janne Grunau
ee2bc5974f aarch64: NEON float (i)MDCT
Approximately as fast as the ARM NEON version on Apple's A7.
2014-04-22 19:35:41 +02:00
Janne Grunau
650c4300d9 aarch64: NEON float FFT
Approximately as fast as the ARM NEON version on Apple's A7.
2014-04-22 19:35:40 +02:00
Anton Khirnov
b19a5e5198 lavc: improve AVCodecContext.delay doxy 2014-04-22 07:44:40 +02:00
Michael Niedermayer
1c7b71a5bd mpegvideo: Use the current_picture pts
The picture slot can be recycled by select_input_picture and
only current_picture is populated with the valid pts.

Unbreak timestamps when in cbr mode.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-21 21:58:58 +02:00
Michael Niedermayer
6f243b17c5 avcodec/fic: Fix return value check
Fixes part of Ticket3466
Found-by: Andrey_Karpov / PVS-Studio
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 14:56:17 -04:00
Michael Niedermayer
144f7a561d avcodec/fic: clear slice_data
Fixes artifacts
Fixes use of freed memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 14:56:17 -04:00
Michael Niedermayer
f34d3173fc avcodec/fic: fix slice checks
fix integer overflows

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 14:56:17 -04:00
Kostya Shishkov
93e15a3238 fic: use correct IDCT
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-21 12:37:54 -04:00
Martin Storsjö
911fa05b51 mvc: Specify the pixel format for the mv-mvc* tests
Also set the RGBA pixel format correctly as the native endian format,
which is what it returns.

This fixes the tests on big endian.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-19 21:41:34 +03:00
Peter Ross
86a0432688 Silicon Graphics Motion Video Compressor 1 & 2 decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-19 16:24:26 +02:00
Peter Ross
07761294fc Silicon Graphics RLE 8-bit video decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-19 16:24:26 +02:00
Janne Grunau
34c5a6660a h264: codec reinit: remove statements without effect
avctx->coded_{height,width} will always equal h->{height,width} since
init_dimensions() does that explicitly, Size changes are detected by
changes in mb_{height,width} earlier and propagated through the
needs_reinit variable.
2014-04-19 16:22:06 +02:00
Vittorio Giovara
6ef96292d9 utils: add yvyu422 to avcodec_align_dimensions2 2014-04-19 16:20:58 +02:00
Martin Storsjö
a6ac4fcce4 vp78: Align the intra4x4_pred_mode_top array within VP8Macroblock
This array is written using AV_WN32A, assuming alignment.

This hopefully fixes the failing vp7 fate test on sparc.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-04-14 21:27:20 +03:00
Niels Möller
b3d905b702 dcadec: Delete redundant init_get_bits call
No initialization is needed in dca_decode_frame, because the next
thing it does is calling dca_parse_frame_header, which takes care of
the needed initialization.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-14 11:56:26 +02:00
James Almer
0f524b6c69 x86/synth_filter: remove the fma3 version ifdefs
This fixes compilation failures with --disable-fma3

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-13 11:29:28 +02:00
Tim Walker
801c39e1e3 dcadec: Use correct channel count in stereo downmix check
s->prim_channels is greater than num_core_channels
when an XCh extension is present in the bitstream.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-12 23:05:37 +02:00
Tim Walker
c8cf461c19 dcadec: Do not decode the XCh extension when downmixing to stereo
This is neither necessary nor currently supported.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-04-12 23:05:07 +02:00
Jean First
e75ef2b7f4 tiffdec: support predictor type 2 with RGB48 pixel format 2014-04-12 14:52:10 -04:00
Justin Ruggles
345a96c327 tiffdec: remove an unneeded variable 2014-04-12 14:52:10 -04:00
Justin Ruggles
a9b046fb0a tiff: use a better name and enum values for PhotometricInterpretation
Also add additional known values and log as missing features.
2014-04-12 14:52:07 -04:00
Justin Ruggles
fdbe18b7b0 tiffdec: use a single strip if RowsPerStrip is 0
The spec does not specify that 0 is an error condition, and there
are samples which use 0 when the whole image is in one strip.
2014-04-12 14:49:08 -04:00
Justin Ruggles
0a467a9b59 tiffdec: use bytestream2 to simplify overread/overwrite protection
Based on a patch by Paul B Mahol <onemda@gmail.com>

CC:libav-stable@libav.org
2014-04-12 14:49:08 -04:00
Justin Ruggles
5748faf291 bytestream: add bytestream2_copy_buffer() functions
This is basically an overread/overwrite-safe memcpy between a
GetByteContext and a PutByteContext.

CC:libav-stable@libav.org
2014-04-12 14:49:08 -04:00
Paul B Mahol
de9d2705f6 bytestream: add functions for accessing size of buffer
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>

CC:libav-stable@libav.org
2014-04-12 14:49:08 -04:00
Justin Ruggles
58bc38a5f2 tiffdec: use correct data type for palette entries and set alpha to 0xFF 2014-04-12 14:49:07 -04:00
Jean First
bf2064f046 tiffdec: rename variables for consistency and fix variable shadowing
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2014-04-12 14:49:07 -04:00
Timothy Gu
71c32ed533 DNxHD: convert inline asm to yasm 2014-04-11 12:09:09 +02:00
Timothy Gu
676856204b DNxHD: make get_pixel_8x4_sym accept ptrdiff_t as stride 2014-04-11 12:09:09 +02:00
Vittorio Giovara
89ef08c992 DNxHD: K&R formatting cosmetics 2014-04-11 12:09:08 +02:00
Luca Barbato
a7448064c5 mp2: Do not force a samplerate
The default should be not to resample.
2014-04-11 00:09:34 +02:00
Derek Buitenhuis
25fbfeed98 libx265: Only set the SAR if it is valid
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:28:59 +01:00
Derek Buitenhuis
cd0ac6f6e5 libx265: Use 16-bit SAR
The spec says it is 16 bits.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:28:55 +01:00
Derek Buitenhuis
4a2226451e libx265: Use x265_param_parse to set the SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-04-10 13:06:45 +01:00
wm4
f6774f905f mpegvideo: operate with pointers to AVFrames instead of whole structs
The most interesting parts are initialization in ff_MPV_common_init() and
uninitialization in ff_MPV_common_end().

ff_mpeg_unref_picture and ff_thread_release_buffer have additional NULL
checks for Picture.f, because these functions can be called on
uninitialized or partially initialized Pictures.

NULL pointer checks are added to ff_thread_release_buffer() stub function.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-09 02:12:19 +02:00
Vittorio Giovara
b6a09ef700 rawvideo: Support decoding YVYU422 FourCC 2014-04-08 23:24:36 +02:00
Vittorio Giovara
46439e1562 mp2: match twolame default options 2014-04-07 23:50:33 +02:00
Paul B Mahol
718907cd88 libtwolame MP2 encoding support
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-07 23:50:33 +02:00
Vittorio Giovara
17a75a8c09 libxvid: fix missing end of line character
Error introduced in 5ce7ca68b8.
2014-04-07 14:56:25 +02:00
Luca Barbato
e10fd08aa7 h264: Refactor decode_nal_units 2014-04-06 23:33:17 +02:00
Timothy Gu
c389a80494 libxvid: Add SSIM displaying through a libxvidcore plugin
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 23:23:13 +02:00
Timothy Gu
5ce7ca68b8 libxvid: add working lumimasking and variance AQ
The old implementation is unusable due to changes in the Xvid API.
Further fixes by Michael Niedermayer <michaelni@gmx.at>.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 23:23:13 +02:00
Janne Grunau
d3789eeeed aarch64: implement videodsp.prefetch
8% faster h264 decoding on Apple A7.
2014-04-06 21:18:49 +02:00
Paul B Mahol
6f273093e5 LucasArts SMUSH VIMA audio decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:41:39 +02:00
Paul B Mahol
a420ccd4f2 LucasArts SMUSH SANM video decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-06 16:40:27 +02:00
Diego Biurrun
5f92204370 dsputil: Move DV-specific ff_zigzag248_direct table to dvdata 2014-04-04 19:08:05 +02:00
Diego Biurrun
57b5b84e20 x86: dsputil: Move ff_apply_window_int16_* bits to ac3dsp, where they belong 2014-04-04 19:08:05 +02:00
Diego Biurrun
c2c5be5749 x86: h264_qpel: Simplify an #if conditional
The extra conditions are covered by previous #ifs and conditional compilation.
2014-04-04 19:08:05 +02:00
Diego Biurrun
01c5779f56 x86: Drop some unnecessary YASM ifdefs
Dead code elimination is enough to avoid undefined references in these cases.
2014-04-04 19:08:05 +02:00
Diego Biurrun
b718b24bbe ppc: Drop a bunch of unnecessary dsputil_altivec.h #includes 2014-04-04 19:08:05 +02:00
Diego Biurrun
b42f49e42f x86: dsputil: Eliminate some unnecessary dsputil_x86.h #includes 2014-04-04 19:08:05 +02:00
Diego Biurrun
3dc6272bed Remove a number of unnecessary dsputil.h #includes 2014-04-04 19:08:05 +02:00
James Almer
c74b86699c x86/synth_filter: add synth_filter_fma3
Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
James Almer
81e02fae6e x86/synth_filter: add synth_filter_avx
Sandy Bridge Win64:
180 cycles in ff_synth_filter_inner_sse2
150 cycles in ff_synth_filter_inner_avx

Also switch some instructions to a three operand format to avoid
assembly errors with Yasm 1.1.0 or older.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
James Almer
2025d8026f x86/synth_filter: add synth_filter_sse
Build only on x86_32 targets.

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-04-04 17:40:51 +02:00
Janne Grunau
f37815b1d5 arm: asm decode_block_coeffs_internal is vp8 specific
Unbreaks compilation on arm due to conflicting types for
'ff_decode_block_coeffs_armv6'.
2014-04-04 10:39:29 +02:00
Peter Ross
ac4b32df71 On2 VP7 decoder
Further performance improvements and security fixes by
Vittorio Giovara, Luca Barbato and Diego Biurrun.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-04-04 04:00:11 +02:00
Vittorio Giovara
c611148340 vc1dec: fix a possible unitialized variable warning 2014-04-02 00:28:05 +02:00
Diego Biurrun
cba4e6062a More correct printf format specifiers
This avoids compiler warnings about argument and specifier type mismatch.
2014-04-02 00:27:22 +02:00
Vittorio Giovara
d2264740e6 VP3: K&R formatting cosmetics 2014-04-01 23:47:25 +02:00
Vittorio Giovara
d613091f88 sgi: decode 16bit RLE images 2014-04-01 01:19:03 +02:00
Vittorio Giovara
6c1df1f228 sgi: encode images with 4 channels at 8 and 16 bits 2014-04-01 01:19:03 +02:00
Carl Eugen Hoyos
f8dea10d3f sgi: decode images with 4 channels at 8 and 16 bits 2014-04-01 01:19:03 +02:00
Paul B Mahol
ab7c64624a sgi: remove redundant argument from read_uncompressed_sgi() 2014-04-01 01:19:03 +02:00
Michael Niedermayer
6d9ccee451 sgi: set the row boundary to the correct value 2014-04-01 01:18:55 +02:00
Michael Niedermayer
0279d1d094 sgi: fix end of line boundary detection 2014-04-01 01:13:18 +02:00
Piotr Bandurski
e7cd53bf66 sgi: check maximum supported resolution
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-01 01:13:18 +02:00
Vittorio Giovara
a7dbfcf6cb sgi: K&R formatting cosmetics 2014-04-01 01:13:18 +02:00
Paul B Mahol
ca36aa9e6b codec_desc: set lossless attribute for SGI and DPX 2014-04-01 01:13:17 +02:00
Jimmy Christensen
38389058c3 OpenEXR decoder
Additional fixes and enhancements by Vittorio Giovara, Gonzalo Garramuno,
Nicolas George, Paul B Mahol and Michael Niedermayer.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-04-01 01:13:09 +02:00
Michael Niedermayer
678e455f1d dxva2: Directly use AVFrames
The assumption of (MPEG) Picture and H264Picture layout matching might
not hold true in the future.

Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
2014-04-01 00:10:15 +02:00
Rémi Denis-Courmont
654c7446a8 vc1dec: improve hwaccel #ifdefs 2014-03-31 17:52:42 +02:00
Rémi Denis-Courmont
3325911815 h263: improve hwaccel #ifdefs 2014-03-31 17:52:38 +02:00
Marcus Gustafsson
c042cbc3a6 libx265: Use the repeat headers flag when not using global headers
This allows proper muxing and seeking in things like MPEG-TS, by
placing headers by random access points.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-31 16:24:05 +01:00
Timothy Gu
09fda6bb50 libmp3lame: add ABR support 2014-03-31 01:11:16 +02:00
Timothy Gu
292dbe5e8a libmp3lame: add comments about CBR/VBR modes 2014-03-31 01:11:16 +02:00
Paul B Mahol
729d821fd8 libmp3lame: allow joint stereo to be disabled 2014-03-31 01:11:16 +02:00
Timothy Gu
68e95ab81b dnxhdenc: return meaningful return codes 2014-03-30 14:55:09 +02:00
Martin Storsjö
508a84e672 golomb: Fix the implementation of get_se_golomb_long
This was only used in hevc muxing code so far.

This makes the return values match what get_se_golomb returns for
the same bitstream reader instances.

The logic for producing a signed golomb code out of an unsigned one
was based on the corresponding code in get_se_golomb, which operated
directly on the bitstream reader buffer - not on the equivalent
return value from get_ue_golomb.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-30 00:28:27 +02:00
Vittorio Giovara
53c20f17c7 vp8: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-29 16:11:09 +01:00
Paul B Mahol
fb5cf145b6 bmp: add a standalone parser
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-28 00:08:24 +01:00
Vittorio Giovara
678082b409 X-Bitmap decoder 2014-03-27 23:59:13 +01:00
Vittorio Giovara
792e4c21f2 xbm: use av_frame_free on close 2014-03-27 23:57:51 +01:00
Paul B Mahol
70daeacd6e PAF demuxer and decoder
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-27 23:34:47 +01:00
Vittorio Giovara
d37c96213a lavc: restore copy_block{4,16} functions
They were removed in 9e31729d69.
2014-03-27 23:25:39 +01:00
Aleksi Nurmi
ae17878fb2 BRender PIX image decoder
Further enhancements by Vittorio Giovara and Paul B Mahol.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-27 18:27:23 +01:00
Diego Biurrun
c3a0b3eb64 arm: build: Maintain decoder objects separate from infrastructure objects 2014-03-27 03:00:05 -07:00
Vittorio Giovara
e50f5d3cf9 Alias PIX image encoder and decoder 2014-03-26 23:25:02 +01:00
Ben Avison
3b5946bcce truehd: add hand-scheduled ARM asm version of ff_mlp_pack_output.
Profiling results for overall decode and the output_data function in
particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     339.6  15.1     329.3  16.0    95.8%       +3.1%  (insignificant)
6:2 function  24.6   6.0      9.9    3.1     100.0%      +148.5%
8:2 total     324.5  15.5     323.6  14.3    15.2%       +0.3%  (insignificant)
8:2 function  20.4   3.9      9.9    3.4     100.0%      +104.7%
6:6 total     572.8  20.6     539.9  24.2    100.0%      +6.1%
6:6 function  54.5   5.6      16.0   3.8     100.0%      +240.9%
8:8 total     741.5  21.2     702.5  18.5    100.0%      +5.6%
8:8 function  63.9   7.6      18.4   4.8     100.0%      +247.3%

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:32 +02:00
Ben Avison
b9eb03416d truehd: break out part of output_data into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:29 +02:00
Ben Avison
fcf5fc4445 truehd: tune VLC decoding for ARM.
Profiling on a Raspberry Pi revealed the best performance to correspond
with VLC_BITS = 5. Results for overall audio decode and the get_vlc2 function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     348.8  20.1     339.6  15.1    88.8%       +2.7%  (insignificant)
6:2 function  38.1   8.1      26.4   4.1     100.0%      +44.5%
8:2 total     339.1  15.4     324.5  15.5    99.4%       +4.5%
8:2 function  33.8   7.0      27.3   5.6     99.7%       +23.6%
6:6 total     604.6  20.8     572.8  20.6    100.0%      +5.6%
6:6 function  95.8   8.4      68.9   8.2     100.0%      +39.1%
8:8 total     766.4  17.6     741.5  21.2    100.0%      +3.4%
8:8 function  106.0  11.4     86.1   9.9     100.0%      +23.1%

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:12 +02:00
Ben Avison
483321fe78 truehd: add hand-scheduled ARM asm version of ff_mlp_rematrix_channel.
Profiling results for overall audio decode and the rematrix_channels function
in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     370.8  17.0     348.8  20.1    99.9%       +6.3%
6:2 function  46.4   8.4      45.8   6.6     18.0%       +1.2%  (insignificant)
8:2 total     343.2  19.0     339.1  15.4    54.7%       +1.2%  (insignificant)
8:2 function  38.9   3.9      40.2   6.9     52.4%       -3.2%  (insignificant)
6:6 total     658.4  15.7     604.6  20.8    100.0%      +8.9%
6:6 function  109.0  8.7      59.5   5.4     100.0%      +83.3%
8:8 total     896.2  24.5     766.4  17.6    100.0%      +16.9%
8:8 function  223.4  12.8     93.8   5.0     100.0%      +138.3%

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:10 +02:00
Ben Avison
4e5aa080bb truehd: break out part of rematrix_channels into platform-specific callback.
Verified with profiling that this doesn't have a measurable effect upon
overall performance.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:54:05 +02:00
Ben Avison
15a29c39d9 truehd: add hand-scheduled ARM asm version of mlp_filter_channel.
Profiling results for overall audio decode and the mlp_filter_channel(_arm)
function in particular are as follows:

              Before          After
              Mean   StdDev   Mean   StdDev  Confidence  Change
6:2 total     380.4  22.0     370.8  17.0    87.4%       +2.6%  (insignificant)
6:2 function  60.7   7.2      36.6   8.1     100.0%      +65.8%
8:2 total     357.0  17.5     343.2  19.0    97.8%       +4.0%  (insignificant)
8:2 function  60.3   8.8      37.3   3.8     100.0%      +61.8%
6:6 total     717.2  23.2     658.4  15.7    100.0%      +8.9%
6:6 function  140.4  12.9     81.5   9.2     100.0%      +72.4%
8:8 total     981.9  16.2     896.2  24.5    100.0%      +9.6%
8:8 function  193.4  15.0     103.3  11.5    100.0%      +87.2%

Experiments with adding preload instructions to this function yielded no
useful benefit, so these have not been included.

The assembly version has also been tested with a fuzz tester to ensure that
any combinations of inputs not exercised by my available test streams still
generate mathematically identical results to the C version.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-03-26 19:53:52 +02:00
Diego Biurrun
efc7290eb6 x86: hpeldsp: Keep all rnd_template instantiations in hpeldsp_init
There is no point in having a separate file just for the instantiation
that provides the public functions.
2014-03-26 04:31:27 -07:00
Diego Biurrun
55d7f26e7b hpeldsp_template: Move content to hpeldsp
There is no point in having this separate; it is not used as a template.
2014-03-26 04:31:27 -07:00
Diego Biurrun
09d4389de1 hpeldsp_template: Drop av_unused attribute from *_no_rnd_pixels16_8_c functions 2014-03-26 04:31:27 -07:00
Diego Biurrun
92ba965103 dsputil: Move draw_edges and clear_block* out of dsputil_template
The functions are not used templatized.
2014-03-26 04:31:27 -07:00
Diego Biurrun
da5be23525 dsputil: Move RV40-specific bits into rv40dsp 2014-03-26 04:31:27 -07:00
Diego Biurrun
8011ac911b hpeldsp_template: Detemplatize the code
The indirection makes no sense without multiple instantiation.
2014-03-26 04:31:27 -07:00
Diego Biurrun
2c01ad8b20 dsputil_template: Detemplatize the code
The indirection makes no sense without multiple instantiation.
2014-03-26 04:31:27 -07:00
Diego Biurrun
aba70bb538 Add missing headers to make template files compile (more) standalone 2014-03-26 04:31:27 -07:00
Diego Biurrun
e7373585f8 dsputil_template: Move bits that are used templatized into separate file
This allows detemplatizing the bits that are not instantiated twice.
2014-03-26 04:31:27 -07:00
Diego Biurrun
d3c3c1664a dsputil: Move hpel_template #include out of dsputil_template
Multiple inclusion makes no sense as it is only used in the 8-bit case.
2014-03-26 04:31:26 -07:00
Diego Biurrun
d0aabeab23 x86: h264_qpel: Fix typo in CALL_2X_PIXELS macro invocation
This fixes FATE with mmxext CPUFLAGS set.
2014-03-26 12:00:01 +01:00
Vittorio Giovara
dc0c70e018 avcodec: add missing includes 2014-03-25 12:28:22 +01:00
Derek Buitenhuis
21a561176e libx265: Only use one memcpy for headers
They're guaranteed by the x265 API to be contiguous in memory.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-24 15:27:41 +00:00
Michael Niedermayer
60728e8bab libx265: Write global extradata when requested
Matroska, MP4, and other containers require it.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-24 15:27:41 +00:00
Diego Biurrun
8ef33497a6 build: Add config option for CABAC code
This allows for more elegant dependency and object declarations.
2014-03-24 15:35:18 +01:00
Anton Khirnov
4a0f665143 libavcodec: when decoding, copy replaygain side data to decoded frames 2014-03-24 06:07:51 +01:00
Anton Khirnov
5a7e35dd23 Add replaygain side data type and code for parsing replaygain tags. 2014-03-24 06:07:51 +01:00
Anton Khirnov
0e2c3ee9a3 lavc: give a typedeffed name to the AVPacket.side_data struct 2014-03-24 06:07:50 +01:00
Luca Barbato
f51d0f39c0 h264: Split h264 slice decoding from nal decoding 2014-03-23 22:41:12 +01:00
Vittorio Giovara
e9a77f4bc0 h264: move macroblock decoding into its own file 2014-03-23 22:41:12 +01:00
Luca Barbato
ede2b451cc build: Sort h264 objects 2014-03-23 22:41:11 +01:00
Luca Barbato
fb7127b2c8 build: h264 parser depends on full h264 decoder 2014-03-23 22:41:11 +01:00
Vittorio Giovara
6f6c029464 lavc: drop ff_pixfmt_list_420 2014-03-23 01:56:58 +01:00
Diego Biurrun
4f4840377f lagarith: Fix typo in printf format string
libavcodec/lagarith.c:671:16: warning: '#' flag used with ‘%u’ gnu_printf format [-Wformat]
2014-03-22 18:36:33 +01:00
Diego Biurrun
57f09608e1 dsputil: Move thirdpel-related bits into their own context 2014-03-22 06:17:30 -07:00
Diego Biurrun
82dd1026cf x86: dsputil: Move hpeldsp-related declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
ae116cd3ed ppc: dsputil: Move hpeldsp-related declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
6655c933a8 x86: dsputil: Move fpel declarations to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
322a1dda97 dsputil: Refactor duplicated CALL_2X_PIXELS / PIXELS16 macros 2014-03-22 06:17:29 -07:00
Diego Biurrun
f9279ee749 dsputil: Move ff_zigzag_direct and ff_crop_tab declarations to mathops.h 2014-03-22 06:17:29 -07:00
Diego Biurrun
600b854ad8 imgconvert: Move ff_deinterlace_line_*_mmx declarations out of dsputil 2014-03-22 06:17:29 -07:00
Diego Biurrun
1a8d0cf77e x86: dsputil: Move inline assembly macros to a separate header 2014-03-22 06:17:29 -07:00
Diego Biurrun
1df0b06162 nuv: Reuse the DSPContext from RTJpegContext
There is no point in populating NuvContext with another DSPContext.

Also split static and dynamic initialization bits to avoid running the
static initialization parts over and over.
2014-03-22 06:17:29 -07:00
Diego Biurrun
cc8163e1a3 avcodec: more correct printf specifiers 2014-03-22 14:08:20 +01:00
wm4
8b6136d3d1 vaapi: switch ff_vaapi_get_surface_id from Picture to AVFrame
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:01:59 +01:00
wm4
1b1094a19d vdpau: switch ff_vdpau_get_surface_id from Picture to AVFrame
This gets rid of aliasing completely unrelated structs to Picture.

Fixes the remaining compilation warnings in the vdpau code.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 17:00:39 +01:00
wm4
7948a51b5c vdpau: don't assume Picture and H264Picture are the same
The code passed H264Picture* and Picture*, and assumed the
hwaccel_picture_private field was in the same place in both
structs. Somehow this happened to work in Libav, but broke in
FFmpeg (and probably subtly breaks in Libav too).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-03-20 16:59:46 +01:00
Diego Biurrun
82bb304801 dsputil: Use correct type in me_cmp_func function pointer 2014-03-20 05:03:23 -07:00
Diego Biurrun
0e083d7e43 build: Group general components separate from de/encoders in arch Makefiles
This is in line with how the top-level libavcodec Makefile is structured.
2014-03-20 05:03:23 -07:00
Diego Biurrun
54a6e08a65 dsputil: Conditionally compile dsputil code on all architectures 2014-03-20 05:03:23 -07:00
Diego Biurrun
5169e68895 dsputil: Propagate bit depth information to all (sub)init functions
This avoids recalculating the value over and over again.
2014-03-20 05:03:23 -07:00
Diego Biurrun
cf7a216757 arm: dsputil: K&R formatting cosmetics 2014-03-20 05:03:23 -07:00
Diego Biurrun
1675975216 ppc: dsputil: Drop trailing semicolon from macros
This allows for a more natural macro usage.
2014-03-20 05:03:22 -07:00
Diego Biurrun
b7d24fd4b2 ppc: dsputil: Merge some declarations and initializations 2014-03-20 05:03:22 -07:00
Diego Biurrun
b045283f21 ppc: dsputil: Simplify some ifdeffed function definitions 2014-03-20 05:03:22 -07:00
Diego Biurrun
8bd6f88266 ppc: dsputil: Drop some unnecessary parentheses 2014-03-20 05:03:22 -07:00
Diego Biurrun
022184a646 ppc: dsputil: more K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Diego Biurrun
30f3f95987 ppc: dsputil: K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Diego Biurrun
82ee14d2ce ppc: dsputil: comment formatting and wording/grammar improvements 2014-03-20 05:03:22 -07:00
Diego Biurrun
cce791b17b hpeldsp_template: Merge some declarations and initializations 2014-03-20 05:03:22 -07:00
Diego Biurrun
2539cf1c81 hpeldsp_template: K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Diego Biurrun
2972087e39 hpel_template: Drop some unnecessary parentheses 2014-03-20 05:03:22 -07:00
Diego Biurrun
e8eace3276 hpel_template: K&R formatting cosmetics 2014-03-20 05:03:22 -07:00
Vittorio Giovara
1b51b7ba00 libopenjpeg: Support rgba64 decoding 2014-03-18 21:54:31 +01:00
Carl Eugen Hoyos
8f45bd1433 libopenjpeg: Support rgba64 encoding 2014-03-18 21:54:31 +01:00
Vittorio Giovara
1ea9fa15c3 libopenjpeg: K&R formatting cosmetics 2014-03-18 21:54:25 +01:00
Janne Grunau
d961a79eb0 sbrdsp: move #if to disable all educational code
Avoids a warning of the unused function 'autocorrelate'.
2014-03-18 13:08:00 +01:00
Janne Grunau
c829b35c08 lavc: er: remove unused variable size
The code using it was removed in d66e305bd1.
2014-03-18 13:07:52 +01:00
Vittorio Giovara
3795ec6858 svq3: directly set pix_fmt and color_range 2014-03-18 08:21:29 +01:00
Vittorio Giovara
75177b2f5e libx264: check color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
bf0d7da7cb ljpeg: check color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
2183432e6d mdec: set color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
1c1fbc70ca mjpeg: set color_range 2014-03-16 23:31:30 +01:00
Vittorio Giovara
6612a03d74 fraps: set color_range 2014-03-16 23:31:30 +01:00
Carl Eugen Hoyos
5b1b91cfb8 tiff: Support rgba encoding 2014-03-16 23:31:29 +01:00
Carl Eugen Hoyos
58c215961a raw, nut: Support rgba64 encoding 2014-03-16 23:29:51 +01:00
Carl Eugen Hoyos
cccac7654f png: Support rgb48 and rgba64 encoding 2014-03-16 23:29:51 +01:00
Vittorio Giovara
c598b569fb png: K&R formatting cosmetics 2014-03-16 23:29:50 +01:00
Vittorio Giovara
f7518f1a0e codec_desc: update dvaudio tag 2014-03-16 23:05:48 +01:00
Vittorio Giovara
d24e9a99a4 h264 does not depend on mpegvideo any more 2014-03-16 23:05:47 +01:00
Vittorio Giovara
7245a0ae87 mpegvideo: remove h264-only fields 2014-03-16 23:05:47 +01:00
Vittorio Giovara
be039278b5 mpegvideo: move ff_draw_horiz_band() to mpegutils.c
Drop the mpegvideo dependency for svq3 in configure.
2014-03-16 23:05:39 +01:00
Vittorio Giovara
e0c16e4e32 mpegvideo: move mpegvideo formats-related defines to mpegutils.h 2014-03-16 23:04:41 +01:00
Vittorio Giovara
136034d86b h264: Remove MotionEstContext and move the relevant fields to H264Context
Unused buffers scratchpad and temp have been dropped too.
2014-03-16 23:01:01 +01:00
Vittorio Giovara
e3c2d0f3d4 h264: Replace mpegvideo-specific MAX_THREADS by private define 2014-03-16 23:01:01 +01:00
Vittorio Giovara
5d1c2e53ab h264: Replace mpegvideo-specific MAX_PICTURE_COUNT by private define 2014-03-16 23:01:01 +01:00
Vittorio Giovara
9b749c8274 h264: move relevant fields from Picture to H264Picture 2014-03-16 23:01:00 +01:00
Vittorio Giovara
d66e305bd1 er: move relevant fields from Picture to ERPicture
This is done to disentangle ER from mpegvideo. In order to use a
classic Picture, callers can use ff_mpeg_set_erpic() or use a custom function
to set the fields. Please note that buffers need to be allocated before
calling ff_er_frame_end().
2014-03-16 23:01:00 +01:00
Vittorio Giovara
1c79b1625d h264: directly use frames in ff_h264_draw_horiz_band() 2014-03-16 23:01:00 +01:00
Vittorio Giovara
75af13a0e4 mpegvideo: directly use frames in ff_draw_horiz_band() 2014-03-16 23:01:00 +01:00
Vittorio Giovara
f20977921b codec_desc: group image codecs together 2014-03-14 17:50:35 +01:00
Vittorio Giovara
d42ea06798 codec_desc: add missing .long_name 2014-03-14 17:50:35 +01:00
Vittorio Giovara
999d31d354 codec_desc: K&R formatting cosmetics 2014-03-14 17:50:34 +01:00
Diego Biurrun
36b822b8be arm: dsputil: Drop restrict keyword from add_pixels_clamped_armv6 prototype
The function is assigned to a function pointer that does not have the
restrict keyword for that parameter.

This fixes compilation for MSVC builds that don't recognize "restrict",
broken since ed9625eb62.
2014-03-14 13:45:40 +01:00
Vittorio Giovara
2e708f1708 ljpeg: fix duplicated pixel format entry 2014-03-13 22:55:37 +01:00
Diego Biurrun
eb2b8bce39 bfin: Use more sensible file names
Drop non-informative _bfin suffix, rename some files for consistency with
other architectures, rename others to reflect their content.
2014-03-13 08:15:53 -07:00
Diego Biurrun
929ec39ec4 bfin: hpeldsp: Split no_rnd pixel operations off into a separate file
This saves some space in configurations that do not enable hpeldsp.
2014-03-13 08:15:53 -07:00
Diego Biurrun
a7cc4ac9d9 bfin: dsputil: Unconditionally compile hpel pixels code
The functions it contains are used from unconditionally compiled code.
2014-03-13 08:15:53 -07:00
Diego Biurrun
13ae97b210 bfin: hpeldsp: "nornd" ---> "no_rnd" function name suffix for consistency 2014-03-13 08:15:53 -07:00
Diego Biurrun
bbf0ef57e9 bfin: Move all assembly declarations only used within one .c file there
This is done similarly for all other architectures.
2014-03-13 08:15:53 -07:00
Diego Biurrun
80173c71ba bfin: hpeldsp: K&R formatting cosmetics 2014-03-13 08:15:52 -07:00
Diego Biurrun
da785231ea bfin: Refactor duplicated assembly-related macros 2014-03-13 08:15:52 -07:00
Diego Biurrun
e99af2a3b1 bfin: Refactor duplicated l1_text/l1_data_B macros 2014-03-13 08:15:52 -07:00
Diego Biurrun
a3e7562621 bfin: dsputil: K&R formatting cosmetics
Also add a few #endif comments.
2014-03-13 08:15:52 -07:00
Diego Biurrun
1e33095b83 bfin: dsputil: Drop broken and trivial profiling code 2014-03-13 08:15:52 -07:00
Diego Biurrun
f5f0997668 bfin: hpeldsp: Drop broken put_pixels_*_xy2_nornd bits
They were marked as broken and disabled in 2009 and will never get fixed.
2014-03-13 08:15:52 -07:00
Diego Biurrun
14efbe694a bfin: dsputil: Drop broken vsad bits
They were marked as broken and disabled in 2009 and will never get fixed.
2014-03-13 08:15:52 -07:00
Diego Biurrun
671c878559 bfin: dsputil: Remove unused global variable 2014-03-13 08:15:51 -07:00
Diego Biurrun
db3f61a04f x86: dsputil_init: Drop some unnecessary parentheses 2014-03-13 08:15:51 -07:00
Diego Biurrun
441b093915 x86: dsputil_init: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
4cb4680c10 x86: dsputil_x86.h: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
f8bbebecfd x86: motion_est: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
a36947c167 dsputilenc_mmx: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
38675229a8 dsputil_mmx: K&R formatting cosmetics 2014-03-13 08:15:51 -07:00
Diego Biurrun
6a8b35dc88 dsputilenc_mmx: Merge two assignment blocks with identical conditions 2014-03-13 08:15:51 -07:00
Diego Biurrun
945673f792 dsputil_template: K&R formatting cosmetics 2014-03-13 08:15:50 -07:00
Diego Biurrun
acd2b8e42d rnd_avg.h: K&R formatting cosmetics 2014-03-13 08:15:50 -07:00
Diego Biurrun
05563ccacc dsputil: cosmetics: Lose camelCase on ff_cropTbl and ff_squareTbl names
Also switch from "tbl" to "tab" name suffixes.
2014-03-13 08:12:44 -07:00
Diego Biurrun
635ec127d4 dsputil: Merge variable declarations and initializations 2014-03-13 08:12:44 -07:00
Diego Biurrun
bb12c2e9c0 dsputil: K&R formatting cosmetics 2014-03-13 08:12:39 -07:00
Diego Biurrun
503dda7d4f dsputil.h: K&R formatting cosmetics 2014-03-13 08:11:00 -07:00
Diego Biurrun
8199bb7be0 dsputil.h: Clean up comments 2014-03-13 08:11:00 -07:00
Diego Biurrun
0a8f91b1fb dsputil: Remove disabled avg_no_rnd_qpel leftovers 2014-03-13 08:10:52 -07:00
Diego Biurrun
55519926ef x86: Make function prototype comments in assembly code consistent
This helps grepping for functions, among other things.
2014-03-13 05:50:29 -07:00
Diego Biurrun
edd1f833fa x86: h264_idct_10_bit: Use proper type in function prototype comments 2014-03-13 05:50:29 -07:00
Diego Biurrun
831a118078 Update dsputil- and SIMD-related comments to match reality more closely 2014-03-13 05:50:29 -07:00
Diego Biurrun
d1184b8110 arm: dsputil: Add a bunch of missing #includes 2014-03-13 05:50:28 -07:00
Diego Biurrun
17608f6ee3 x86: Add some more missing headers 2014-03-13 05:50:28 -07:00
Diego Biurrun
fd9e2221bd ppc: Add some missing headers 2014-03-13 05:50:28 -07:00
Diego Biurrun
ed9625eb62 dsputil: Move intreadwrite.h #include from header file to .c files 2014-03-13 05:50:28 -07:00
Diego Biurrun
9103185bd1 dsputil: Drop ff_check_alignment() function
The function is supposed to confirm that the compiler provided enough
alignment, but in practice it is only run in certain code paths and
insufficient alignment problems are restricted to legacy compilers.
2014-03-13 05:50:28 -07:00
Diego Biurrun
49676eb730 dsputil: Remove prototypes for nonexisting optimization functions 2014-03-13 05:50:28 -07:00
Diego Biurrun
08dba0e1c3 x86: mpegvideoenc: Remove some remnants of the long-gone libmpeg2 IDCT 2014-03-13 05:50:28 -07:00
Diego Biurrun
b4dd424d96 Remove all SPARC architecture optimizations
SPARC is no longer being used in any multimedia-related fields and the
VIS optimizations only represent a maintenance burden.
2014-03-13 05:50:28 -07:00
Diego Biurrun
d6096a6742 Remove all SH4 architecture optimizations
SH4 has been end-of-lifed and no more test machines are available.
2014-03-13 05:50:28 -07:00
Diego Biurrun
cd832f032f ffv1: Drop bogus dependency on dsputil
ffv1 does not use any part of the dsputil framework.
2014-03-13 05:50:27 -07:00
Diego Biurrun
88b240646f build: Drop stray mpc8 decoder dependency on dsputil 2014-03-13 05:50:27 -07:00
Janne Grunau
5a7f382a5d armv6: vp8: use explicit labels in motion compensation asm
The integrated arm assembler in clang-503.0.38 (Xcode-5.1) fails
to assemble a branch to 'label + offset' in thumb mode.
2014-03-12 15:06:05 +01:00
Vittorio Giovara
b4e355c89e copy_block: K&R formatting cosmetics 2014-03-12 14:01:41 +01:00
Luca Barbato
5eacbb5328 golomb: Add a get_se_golomb_long
Useful in libavformat mostly.
2014-03-10 10:58:37 +01:00
Vittorio Giovara
4d33873c29 hevc: make pps/sps ids unsigned where necessary
Fixes integer overflow and out of array accesses.
Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
2014-03-09 17:23:08 +01:00
Michael Niedermayer
ed06e5d92b hevc: Do not turn 32bit timebases into negative numbers
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-03-09 17:22:53 +01:00
Michael Niedermayer
6cc94e9719 hevc: use av_mallocz() for allocating tab_ipm
Fixes use of uninitialized memory and out of stack array read.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-03-09 17:08:11 +01:00
Michael Niedermayer
920c01adce hevc: Use get_bits_long() in decode_vui()
Fix assertion failure.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
2014-03-09 08:25:39 +01:00
Janne Grunau
634d9d8b39 arm: get_cabac inline asm
Based on the aarch64 asm. CPU cycle counts on cortex-a9 compared to
gcc 4.8.2:
before: 475 decicycles in get_cabac_noinline, 67106035 runs, 2829 skips
after:  393 decicycles in get_cabac_noinline, 67106474 runs, 2390 skips

Overall speedup is above 2%. Code generated by clang 3.4 is slower on
the same hardware and the relative change is a little larger.
2014-03-09 00:45:34 +01:00
Janne Grunau
dfe224f377 aarch64: get_cabac inline asm
Based on the x86 branchless get_cabac asm. get_cabac_noinline() gets
approximately 20% faster (no cycle counts available) compared to clang
from Xcode 5.1 beta5. More than 6% faster overall. A part of the overall
speedup might be explained by additional inlining of get_cabac().
2014-03-09 00:45:33 +01:00
Janne Grunau
4506a854a4 arm: vp3: remove incorrect const in ff_vp3_idct_dc_add_neon declaration
Was missed in aeaf268e52 when integrating
clear_blocks into the idct.
2014-03-09 00:45:33 +01:00
Janne Grunau
61985ad72c arm: hpeldsp: fix put_pixels8_y2_{,no_rnd_}armv6
The overread avoidance fix in cbddee1cca
broke the computation for the last row since it prevented the safe
reading from the height+1-th row.

CC: libav-stable@libav.org
2014-03-08 18:31:57 +01:00
Keiji Costantini
8c09532672 rv10: K&R formatting cosmetics
Also sort #includes into canonical order.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-08 17:41:59 +01:00
Keiji Costantini
b4d372e091 rv10: Forward error from rv10_decode_packet
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-03-08 17:19:56 +01:00
Diego Biurrun
a801453423 g2meet: K&R formatting cosmetics 2014-03-08 16:35:20 +01:00
Derek Buitenhuis
f87a6e500b fic: Properly handle skip frames
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-07 14:54:33 +00:00
Derek Buitenhuis
d67dbfa7c1 libx265: Support API version 9
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-03-06 20:21:27 +00:00
Rainer Hochecker
b66382101c dxva2: Increase maximum number of slices for mpeg2
Some content requires an higher number of slices in order to
render properly.

Rise the number to 1024 and warn if ever it exceeds.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-03-06 19:28:20 +01:00
Diego Biurrun
d48430c367 build: Let the SVQ3 decoder depend on the H.264 decoder
The SVQ3 decoder reuses large parts of the H.264 decoder so it
makes no sense to enable the former but not the latter.

Also drop unnecessary h263.o object from SVQ3 decoder object list.
2014-03-06 18:23:41 +01:00
Diego Biurrun
3bfdee00cd x86: dcadsp: Fix linking with yasm and optimizations disabled
Some optimized functions reference optimized symbols, so the functions
must be explicitly disabled when those symbols are unavailable.
2014-03-05 23:16:21 +01:00
Janne Grunau
cbddee1cca arm: hpeldsp: prevent overreads in armv6 asm
Based on a patch by Russel King <rmk+libav@arm.linux.org.uk>

Bug-Id: 646
CC: libav-stable@libav.org
2014-03-05 14:30:57 +01:00
Diego Biurrun
3741aa37c2 x86: cabac: Use correct #includes to make header compile standalone 2014-03-05 13:32:25 +01:00
Rémi Denis-Courmont
eeaf4f3b87 av_vdpau_get_profile: mask out H.264 intra profile flag
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-03-04 22:48:55 +01:00
Vittorio Giovara
973dc4e8d4 put_bits: Remove unused includes
This requires adding includes to other files that relied on these being
included implicitly.
2014-03-04 11:45:32 +01:00
Vittorio Giovara
5397386eff mathops: move macro to the only place it is used
This helps in disentangling lavf and lavc too.
2014-03-04 11:45:31 +01:00
Keiji Costantini
9514440337 ituh263: reject b-frame with pp_time = 0
Avoid a division by 0 in ff_mpeg4_set_one_direct_mv.

Sample-Id: 00000168-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-03-01 23:17:30 +01:00
Anton Khirnov
d1f9563d50 pthread_frame: flush all threads on flush, not just the first one
avcodec_flush_buffers() must release all internally held references
according to its documentation, for which all the threads need to be
flushed.

CC:libav-stable@libav.org
Bug-Id: vlc/9665
2014-02-28 21:55:46 +01:00
Diego Biurrun
2f02bbcca0 build: Let the ffvhuff decoder/encoder depend on the huffyuv decoder/encoder
Almost all of the code is shared so there is little point in
enabling one decoder/encoder without the other.
2014-02-28 21:17:01 +01:00
Diego Biurrun
34150be515 build: Let the iac decoder depend on the imc decoder
Almost all of the code is shared so there is little point in
enabling one decoder without the other.
2014-02-28 21:11:53 +01:00
Diego Biurrun
8e0cf39faf build: Let all MJPEG-related decoders depend on the MJPEG decoder
These codecs compile all of the MJPEG code anyway, so there is little
point in not enabling the MJPEG decoder directly. This also simplifies
the dependency declarations for the MJPEG codec family.
2014-02-28 20:51:10 +01:00
Diego Biurrun
0a36988e48 build: Let AMV decoder depend on the SP5X decoder
This codec compiles all of the SP5X code anyway, so there is little
point in not enabling the decoder directly. This also simplifies the
dependency declaration for the AMV decoder.
2014-02-28 20:44:53 +01:00
Vittorio Giovara
f4bd9fe326 h264: fix clang warning about uninitialized variable 2014-02-28 18:15:15 +01:00
Vittorio Giovara
17a63ff0cd h264: update flag name in ff_h264_decode_ref_pic_list_reordering()
This is the name used in the specifications.
2014-02-28 18:14:34 +01:00
Vittorio Giovara
ee6280ca12 h264: parse two additional constraint flags 2014-02-28 18:14:34 +01:00
Vittorio Giovara
e70ab7c1f5 h264: add MVCD to the list of High profiles in SPS
Also comment all previous profiles.
2014-02-28 18:14:33 +01:00
Hendrik Leppkes
3aca10bf76 latm: Always reconfigure if no extradata was set previously
AAC LOAS can have new audio config objects in the stream itself.

Make sure the decoder reconfigures itself when the first one arrives
midstream.

Bug-Id: 644
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-28 14:51:20 +01:00
Janne Grunau
6e4009d4cd arm: dcadsp: implement decode_hf as external NEON asm 2014-02-28 13:12:19 +01:00
Christophe Gisquet
4cb6964244 dcadec: simplify decoding of VQ high frequencies
The vector dequantization has a test in a loop preventing effective SIMD
implementation. By moving it out of the loop, this loop can be DSPized.

Therefore, modify the current DSP implementation. In particular, the
DSP implementation no longer has to handle null loop sizes.

The decode_hf implementations have following timings:

For x86 Arrandale:
        C  SSE SSE2 SSE4
win32: 260 162  119  104
win64: 242 N/A   89   72

The arm NEON optimizations follow in a later patch as external asm. The
now unused check for the y modifier in arm inline asm is removed from
configure.
2014-02-28 13:03:22 +01:00
Janne Grunau
7686afd049 dca: factorize scaling in inverse ADPCM
Based on a patch from Christophe Gisquet.

Unrolling of the m == 0 case avoids a possible use of the uninitilized
value sum when s->predictor_history is not set. I failed to find a
sample for it. It also reduced the cycle count from 220 to 150 on
sandy bridge, x86_64 linux, gcc 4.8.2 compared to his patch.
2014-02-28 13:00:48 +01:00
Christophe Gisquet
08e3ea60ff x86: synth filter float: implement SSE2 version
Timings for Arrandale:
          C    SSE
win32:  2108   334
win64:  1152   322

Factorizing the inner loop with a call/jmp is a >15 cycles cost, even with
the jmp destination being aligned.

Unrolling for ARCH_X86_64 is a 20 cycles gain.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:48 +01:00
Christophe Gisquet
57b1eb9f75 dcadsp: scan coefficients linearly in dca_lfe_fir
This change is inspired by x86 asm where it frees a register.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:47 +01:00
Christophe Gisquet
ad507d7907 x86: dcadsp: implement SSE lfe_dir
Results for Arrandale/Windows:
32: 1670 -> 316
64:  728 -> 298

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:47 +01:00
Christophe Gisquet
87ec849fe9 dcadec: remove scaling in lfe_interpolation_fir
The scaling factor is constant so it is faster to scale the
FIR coefficients in the tables during compilation.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-28 13:00:47 +01:00
Diego Biurrun
a55546f48d proresenc: Reuse proper dsputil infrastructure for FDCT 2014-02-28 11:19:47 +01:00
Diego Biurrun
92e598a57a prores: Drop DSP infrastructure for prores encoder bits
None of the encoder bits are arch-optimized.
2014-02-28 11:17:25 +01:00
Diego Biurrun
d6acefe058 proresenc: Drop unnecessary DCT permutation bits
No permutation is necessary for the FDCT.
2014-02-28 11:00:24 +01:00
Diego Biurrun
b23650491f prores: Use consistent names for DSP arch initialization functions 2014-02-28 10:34:55 +01:00
Diego Biurrun
f2408ec9d7 Give IDCT matrix transpose macro a more descriptive name
This also avoids a macro name clash and related warning on ARM.
2014-02-27 13:38:00 -08:00
Diego Biurrun
a63ac1106d build: Do not redundantly specifiy H.263-related object files for MSMPEG4v*
These are already covered through dependencies specified in configure.
2014-02-26 19:44:55 +01:00
Diego Biurrun
4ec336484d parser: cosmetics: Drop some unnecessary parentheses 2014-02-25 13:40:47 +01:00
Luca Barbato
a1c699659d parser: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-25 12:28:33 +01:00
Diego Biurrun
ed61f3ca8a parser: Remove commented-out cruft 2014-02-25 11:59:05 +01:00
Derek Buitenhuis
8aca00cc2b libx265: Properly handled dynamic linking with MSVC
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:07:33 -05:00
Derek Buitenhuis
0f7fa48cf1 libx265: Support SAR
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:07:33 -05:00
Derek Buitenhuis
2142b2efcd libx265: Support 4:4:4
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 11:06:59 -05:00
Derek Buitenhuis
d00a504b24 libx265: Update API usage
Framerate is now a sane rational instead of an integer, and
inputDepth is changed to what it actually is.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-24 15:50:04 +00:00
Anton Khirnov
30517a9f05 Use av_frame_copy() to simplify code where appropriate. 2014-02-24 07:25:07 +01:00
Anton Khirnov
8feac29cc4 lavc: use AVFrame API properly in ff_reget_buffer() 2014-02-24 07:25:07 +01:00
Luca Barbato
8eeacf31c5 hevc: Do not left shift a negative value in hevc_loop_filter_chroma 2014-02-23 14:34:41 +01:00
Luca Barbato
ff486c0f7f hevc: Do not right shift a negative value in get_pcm 2014-02-23 14:34:40 +01:00
Luca Barbato
50c988aa6d hevc: Drop unnecessary shifts in deblocking_filter_CTB
beta_offset is pre-multiplied by 2.
2014-02-23 14:34:34 +01:00
Luca Barbato
d922c5a5fb h264: Fix a typo from the previous commit
f777504f64 changed a - in +

CC: libav-stable@libav.org
2014-02-22 12:26:32 +01:00
Diego Biurrun
dc9e05e279 libvorbis: Give consistent names to all functions, structs, and defines 2014-02-21 11:08:09 +01:00
Vittorio Giovara
f777504f64 h264: Lower bound check for slice offsets
And use the value from the specification.

Sample-Id: 00000451-google
Found-by: Mateusz j00ru Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-20 18:58:38 +01:00
Janne Grunau
9c029f67ca aarch64: use EXTERN_ASM consistently for exported symbols
Based on e3fec3f095 for arm.
2014-02-20 15:24:35 +01:00
Christophe Gisquet
ef010f08ae dca: replace some memcpy by AV_COPY128
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-20 14:16:43 +01:00
Janne Grunau
982b596ea6 h264: avoid undefined behavior in chroma motion compensation
Makes fate-h264 pass under valgrind --undef-value-errors=yes with
-cpuflags none. {avg,put}_h264_chroma_mc8_8 approximately 5% faster,
{avg,put}_h264_chroma_mc4_8 2% faster both on x86 and arm.
2014-02-20 14:02:06 +01:00
Diego Biurrun
4bcca3611d mpeg4video_parser: Drop pointless av_-prefix from static function 2014-02-20 04:16:15 -08:00
Diego Biurrun
984e339866 avcodec: Consistently name encoder init functions foo_encode_init 2014-02-20 04:16:15 -08:00
Diego Biurrun
017a06a9ee x86: dsputil: Use correct file name as multiple inclusion guard 2014-02-20 04:16:15 -08:00
Diego Biurrun
ba42c85247 bit_depth_template: Use file name as multiple inclusion guard 2014-02-20 04:16:15 -08:00
Diego Biurrun
61e7c7f27b svq3: Adjust #endif comment 2014-02-20 04:16:15 -08:00
Luca Barbato
521726ff57 hevc: Always consider VLC NALU type mismatch fatal
Sample-Id: 00001667-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-19 16:59:40 +01:00
Luca Barbato
175e506332 hevc: Mention the missing SPS in the error message 2014-02-19 16:59:40 +01:00
Diego Biurrun
b23bc95920 x86: dca: Add missing multiple inclusion guards 2014-02-19 10:19:15 +01:00
Luca Barbato
fea6db064b h264: informative error reporting in decode_slice_header()
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-18 23:47:55 +01:00
Luca Barbato
96f9fbe109 h264: fix slice_type value reported in decode_slice_header()
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-18 23:47:32 +01:00
Diego Biurrun
4d7ab5cfeb doxygen: Add a number of missing function parameter descriptions 2014-02-17 15:36:09 +01:00
Vittorio Giovara
614b9e4db8 h264: use avpriv_request_sample for chroma_format_idc 2014-02-16 23:51:44 +01:00
Diego Biurrun
b339182eba Move all example programs to doc/examples
Also drop support for building examples in library directories.
2014-02-16 21:37:21 +01:00
Maxim Poliakovski
77fbc03265 g2meet: validate bpp and bitmasks in the display info
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-02-16 16:32:53 +01:00
Tim Walker
9cd4bc4176 ac3dec: set AV_FRAME_DATA_DOWNMIX_INFO side data. 2014-02-15 22:25:00 +01:00
Tim Walker
9c0e4b3395 ac3: update AC3PreferredStereoDownmixMode.
'11b' is reserved in the A/52 specification,
but newer encoders use it to indicate a Dolby
Pro Logic II compatible Lt/Rt downmix.
2014-02-15 22:24:48 +01:00
Vittorio Giovara
dc971acf4a h264_parser: use enum values in h264_find_frame_end() 2014-02-15 18:29:49 +01:00
Janne Grunau
98fdfa9970 ppc: reduce overreads when loading 8 pixels in altivec dsp functions
Altivec can only load naturally aligned vectors. To handle possibly
unaligned data a second vector is loaded from an offset of the original
location and the data is recovered through a vector permutation.
Overreads are minimal if the offset for second load points to the last
element of data. This is 7 for loading eight 8-bit pixels and overreads
are reduced from 16 bytes to 8 bytes if the pixels are 64-bit aligned.
For unaligned pixels the overread is reduced from 23 bytes to 15 bytes
in the worst case.
2014-02-14 18:34:04 +01:00
Jan Ekström
3fbad00714 utvideoenc: Enable support for multiple slices and use them
The official Ut Video decoder only threads with slices, thus until
now any files encoded by the libavcodec encoder have only been
decodable with a single thread. The default slice count is now
set to subsampled_height / 120.

Also sets slices to 1 for the Ut Video encoder tests to keep them
green.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-14 15:09:39 +00:00
Derek Buitenhuis
4127e6aeb6 libx265: Remove redundant default param call
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-14 14:27:45 +00:00
Derek Buitenhuis
41836c4e30 libx265: Fix use of uninitialized input picture
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-14 14:27:45 +00:00
Vittorio Giovara
066ad24984 h264_sei: reorder headers
Also drop unused assert.h.
2014-02-14 05:10:58 +01:00
Vittorio Giovara
304e916a92 h264_sei: name buffering period type consistently 2014-02-14 05:08:47 +01:00
Vittorio Giovara
15210354cf h264: drop outdated comments 2014-02-14 05:08:37 +01:00
Vittorio Giovara
3a05767028 h264: store current_sps_id inside the current sps
In preparation for MVC support.
2014-02-14 05:05:46 +01:00
Vittorio Giovara
73e8fab31d h264: print values in case of error
Also make error style consistent and drop redundant information.
2014-02-14 05:05:35 +01:00
Luca Barbato
f8c507f44b h264: Refactor ff_h264_decode_ref_pic_list_reordering
In preparation for MVC support.
2014-02-13 23:34:50 +01:00
Janne Grunau
73eca738ac mpeg12dec: do not add stereo3D side data to a non-existing frame
User data is usually coded before slice data. That means the frame
the user data belongs to is not available while parsing the user data.
The stereo3D side data has to use the same indirection over the private
context as pan scan information and A53 captions.

Bug-Id:632
2014-02-13 13:03:01 +01:00
Janne Grunau
f795a8a8bf h264: make context_count unsigned
Removes the bogus but scary looking warning 'libavcodec/h264.c:4529:49:
warning: array subscript is below array bounds [-Warray-bounds]'.
2014-02-12 15:48:03 +01:00
Derek Buitenhuis
50ea93158d Add libx265 encoder
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-12 13:13:17 +00:00
John Stebbins
462d5e8e6c aacdec: set AVFrame sample_rate
AVFrame.sample_rate is set in ff_get_buffer, but aacdec calls
ff_get_buffer before the samplerate is known. So it needs to be
set again before returning the frame.
2014-02-12 12:52:28 +01:00
John Stebbins
52771346dc lavc: set AVFrame pkt_pts and reordered_opaque in reget_buffer
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-11 14:25:01 +01:00
Kostya Shishkov
6477449243 g2meet: make JPEG tile decoder operate on 8x8 block mask
This is needed for upcoming Go2Meeting (G2M2/G2M3) decoder.
2014-02-11 12:46:27 +01:00
Maxim Poliakovski
d6d7851801 g2meet: factor out seeking to the chunk end
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-02-11 12:46:11 +01:00
Anton Khirnov
77bb0004bb rpza: limit the number of blocks to the total remaining blocks in the frame
Fixes invalid writes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-10 15:22:28 +01:00
Anton Khirnov
a46dc49744 rpza: move some variables to the blocks where they are used 2014-02-10 15:22:01 +01:00
Anton Khirnov
c7769df178 rpza: use fixed-width int types 2014-02-10 15:21:35 +01:00
Anton Khirnov
e1218ce914 rpza: switch to bytestream2 2014-02-10 15:18:21 +01:00
Luca Barbato
246d3bf0ec hevc: Conceal zero td
It was done only in check_mvset(), while mv_scale() is called also by
dist_scale().

Sample-Id: 00001579-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-09 19:53:43 +01:00
Kostya Shishkov
e95018b694 dnxhd: Support DNx444
Bug-Id: 99
Bug-Id: videolan/9620
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-02-09 19:53:35 +01:00
Ronald S. Bultje
2f6eec65ac vp8: fix PPC assembly to work if src_stride != dst_stride
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-09 18:50:53 +01:00
Janne Grunau
6a8475dc4f asvenc: free avctx->coded_frame on codec close 2014-02-09 18:50:53 +01:00
Martin Storsjö
d6eac2f1bc arm: Remove a stray .fpu directive
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-09 18:36:16 +01:00
Alexandra Khirnova
28e508a946 dnxhddec: return proper error code
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-09 18:36:16 +01:00
Maxim Poliakovski
bc3f03567a g2meet: rename FRAME_INFO to more appropriate DISPLAY_INFO
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-02-09 16:13:23 +01:00
Tim Walker
c1e7de8f62 mlp_parser: fix request_channel_layout behavior.
When request_channel_layout is 0,
all substreams should be decoded.

Thanks to Michael Niedermayer for spotting.

Also fix a mismatch between the parser and
decoder when request_channel_layout is a
subset of Stereo.
2014-02-08 20:10:51 +01:00
Michael Niedermayer
f90a4bfc43 mlpdec: fix request_channel_layout behavior.
When request_channel_layout is 0,
all substreams should be decoded.

Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-02-08 20:10:35 +01:00
Kostya Shishkov
cde7df25ef Mirillis FIC video decoder
Does not contain cursor rendering yet.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2014-02-08 15:04:13 +00:00
Tim Walker
c0c45188e5 mlp: improve request_channel_layout behavior.
Don't decode further substreams if request_channel_layout
is a subset of the current substream's channel_layout.

Before, we would only discard further substreams if
request_channel_layout matched the substream's
channel_layout extactly, thus decoding additional
channels which the caller would probably end up downmixing.
2014-02-08 13:39:37 +01:00
Janne Grunau
5c1c6e8226 dca: include dcadsp.h in {arm,x86}/dca.h for checkheaders 2014-02-08 13:38:36 +01:00
Vittorio Giovara
b141c7b37e h264: give numbers to nalus
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-08 13:38:31 +01:00
Janne Grunau
0cffd6fff5 x86: use the inline int8x8_fmul_int32 only if inline SSE2 is availbale
Fixes compilation with MSVC. Also does not rely on on earlier config.h
include but include it directly.
2014-02-08 12:10:56 +01:00
Christophe Gisquet
5fdbfcb5b7 dcadsp: split lfe_dir cases
The x86 runs short on registers because numerous elements are not static.
In addition, splitting them allows more optimized code, at least for x86.

Arm asm changes by Janne Grunau.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:54:18 +01:00
Christophe Gisquet
5b59a9fc61 x86: dcadsp: implement int8x8_fmul_int32
For the callable function (as opposed to the inline one):
         C  SSE  SSE2  SSE4
Win32:  47   42   29    26
Win64:  30   33   25    23
The SSE version is neither compiled nor set for ARCH_X86_64, as the
inlinable function takes over.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:52:40 +01:00
Christophe Gisquet
2bd44cb705 dcadsp: add int8x8_fmul_int32 to dsp context
It is currently declared as a macro who is set to inlinable functions,
among which a Neon and a default C implementations.

Add a DSP parameter to each inline function, unused except by the
default C implementation which calls a function from the DSP context.

On an Arrandale CPU, gain for an inlined SSE2 function vs. a call:
- Win32: 29 to 26 cycles
- Win64: 25 to 23 cycles

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:51:59 +01:00
Martin Storsjö
5bcbb516f2 arm: Add X() around all references to extern symbols
Don't rely on the fact that an unprefixed label currently exists.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-07 15:13:58 +02:00
Ronald S. Bultje
5351964a2b vp8: fix bilinear C code to work if src_stride != dst_stride.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-06 22:45:29 +01:00
Martin Storsjö
49ec551595 vp8: Use 2 registers for dst_stride and src_stride in neon bilin filter
Based on a patch by Ronald S. Bultje.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-06 09:32:26 +02:00
Vittorio Giovara
a91d3658d9 mpeg: K&R formatting cosmetics
Also adjust header #include order and some comments.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-04 22:29:53 +01:00
Anton Khirnov
4c3e1956ee lagarith: reallocate rgb_planes when needed
Fixes invalid writes on pixel format changes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 22:00:27 +01:00
Anton Khirnov
2240e2078d truemotion1: check the header size
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 22:00:13 +01:00
Anton Khirnov
1713eec29a shorten: pad the internal bitstream buffer
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 21:59:57 +01:00
Anton Khirnov
5430839144 eacmv: clear references on frame dimensions change
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 21:59:14 +01:00
Diego Biurrun
190d4a447b avcodec: Suppress deprecation warnings from avcodec_alloc_frame()
The function is itself obsolete and slated for removal.
2014-02-04 13:46:20 +01:00
Vittorio Giovara
d509ae5be0 jvdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-04 12:35:38 +01:00
Anton Khirnov
1f097d168d h264: reset data partitioning at the beginning of each decode call
Prevents using GetBitContexts with data from previous calls.

Fixes access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 11:26:17 +01:00
Anton Khirnov
e46ad30a80 vp8: use a fixed-size edge emu buffer
The reason is the same as for e588615d93

Based on a patch by Ronald S. Bultje <rsbultje@gmail.com>
2014-02-04 11:21:07 +01:00
Jan Ekström
5de64bb34d utvideoenc: Add support for the new BT.709 FourCCs for YCbCr
With cli usage the decoder might have not set the colorspace during
encoder init, manual colorspace override might be needed in such
cases.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 10:59:28 +01:00
Anton Khirnov
b25e84b739 hevc: check that the VCL NAL types are the same for all slice segments of a frame
Fixes possible invalid memory access for mismatching skipped/non-skipped
slice segments.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Sample-Id: 00001533-google
2014-02-04 10:39:07 +01:00
Luca Barbato
816e5b9970 hevc: Reject impossible slice segment
A dependent slice cannot have address 0.
Prevent an out of array bound load in ff_hevc_cabac_init().

Sample-Id: 00001406-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-01 17:04:49 +01:00
Luca Barbato
09e2203b8b hevc: Consider first quantization group any reference to 0, 0
According to my understanding of T-REC-H.265-2013044 chapter 8.6.1.

Sample-Id: 00001438-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-02-01 17:02:35 +01:00
Janne Grunau
7716dd9fbb xvid: switch to xvid mmx idct as soon as possible
The idct implementation cannot be changed after the quantization matrices
are read since it use a different permutaion.

Bug-Id: videolan/7411
2014-01-31 11:09:11 +01:00
Jan Ekström
5312818524 atrac3plus: Make initialization dependant on channel count rather than channel map
Makes it easier to recreate an AVCodecContext for ATRAC3+ decoding,
which is needed in multimedia frameworks, as well as in general cases
where demuxing and decoding are separate entities.
2014-01-31 11:09:10 +01:00
Ronald S. Bultje
9ee9c679a7 x86: videodsp: Fix a bug in a %if statement where we used '%%' instead of '&&'.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-30 15:33:23 +01:00
Ronald S. Bultje
51daafb02e x86: videodsp: Properly mark sse2 instructions in emulated_edge_mc as such.
Should fix crashes or corrupt output on pre-SSE2 CPUs when they were
using SSE2-code (e.g. AMD Athlon XP 2400+ or Intel Pentium III) in
hfix or hvar single-edge (left/right) extension functions.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-30 15:30:01 +01:00
John Stebbins
23d461fe87 ac3dec: Allow asymmetric application of DRC when drc_scale > 1
Amplification of quiet sounds is enhanced.
Inspired by gbooker's A52Decoder.
2014-01-29 23:26:25 +01:00
Diego Biurrun
54b2ce7418 mpeg: Drop unused parameters from ff_draw_horiz_band() 2014-01-29 16:37:23 +01:00
Janne Grunau
6d93307f8d mpeg12: check scantable indices in all decode_block functions
Add checks to the fast functions used with CODEC_FLAGS2_FAST and move
the check for all other functions to before the invalid memory is
accessed. Fixes https://trac.videolan.org/vlc/ticket/9713 with
CODEC_FLAGS2_FAST.

CC: libav-stable@libav.org
2014-01-25 21:50:20 +01:00
Janne Grunau
fb0c9d41d6 avutil: remove timer.h include from internal.h
Added libavutil/timer.h include to all files with {START,STOP}_TIMER.
2014-01-25 21:50:20 +01:00
Kostya Shishkov
28e1eed3c2 dxtory: compressed RGB555/RGB565 decoding support 2014-01-24 20:09:51 +01:00
Kostya Shishkov
0e1ad2f591 dxtory: add more compressed and uncompressed modes 2014-01-24 20:09:44 +01:00
Guillaume Martres
50866c8d95 vp9: fix bugs in updating coef probabilities with parallelmode=1
- The memcpy was completely wrong because
s->prob_ctx[s->framectxid].coef is a [4][2][2][6][6][3] array, whereas
s->prob.coef is a [4][2][2][6][6][11] array.
- The additional check was committed to ffmpeg by Ronald S. Bultje.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-24 07:03:11 +01:00
Ronald S. Bultje
bd01412313 vp9: fix mvref finding to adhere to bug in libvpx.
Fixes a particular youtube video that I unfortunately can't share.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-24 07:02:56 +01:00
Martin Storsjö
cff480e49d mpegvideo_enc: Don't call ff_h263dsp_init unconditionally
This fixes builds with e.g. --disable-decoders --disable-encoders
--enable-encoder=mjpeg.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-22 18:42:38 +02:00
Diego Biurrun
19987fa18c bfin: vp3: Mark all binary object sections appropriately
This fixes a leftover from e44d7c659b.
2014-01-22 05:38:15 -08:00
Janne Grunau
ea49f60523 h264: skip chroma edges at the picture boundary while deblocking 4:4:4
This handles macroblock edges for the chroma components in the same way
as for the luma compoment for 4:4:4 streams. The Spec explicitly states
that the deblocking filter is not applied to edges at the boundary of
the picture.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-22 13:44:28 +01:00
Anton Khirnov
e0ab5078a7 lavc: do not force the emu edge flag
The default get_buffer2() implementation (and possibly some
user ones) does not allocate edges when this flag is set, which may
expose bugs in some decoders. Until the 10 release is out, it is safer
to remove this part.
2014-01-21 17:54:09 +01:00
Kostya Shishkov
025fd76e1a dxtory: change error code for unexpected slice configuration 2014-01-21 17:47:50 +01:00
Kostya Shishkov
e91a3f1bdb dxtory: correctly handle YUV slices with average odd height 2014-01-21 17:47:50 +01:00
Diego Biurrun
ade4ecb42d dxva2: Use correct printf format strings 2014-01-21 14:42:44 +01:00
Diego Biurrun
766df7ca89 dxva2: Add missing #includes 2014-01-21 14:42:23 +01:00
Sam Lantinga
9d80b1ae95 dxva2: Log errors verbosely
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 12:46:29 +01:00
Sam Lantinga
5b2b23f2d6 dxva2: Retry IDirectXVideoDecoder_BeginFrame()
If the function returns E_PENDING retry for a fixed number of times.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 12:46:28 +01:00
Luca Barbato
e22ebd04bc hevc: Bound check cu_qp_delta
The T-REC-H.265-2013044 page 91 states it has to be in the range
[-(26 + s->sps->qp_bd_offset / 2), (25 + s->sps->qp_bd_offset / 2)].
2014-01-21 11:59:54 +01:00
Luca Barbato
0d999333f9 hevc: Bound check slice_qp
The T-REC-H.265-2013044 page 79 states it has to be in the range
[-s->sps->qp_bd_offset, 51].

Sample-Id: 00001386-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-01-21 11:59:30 +01:00
Luca Barbato
838740e642 hevc: Prevent some integer overflows
get_ue_golomb_long() returns an unsigned.

Sample-Id: 00001541-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-01-21 11:59:18 +01:00
Guillaume Martres
faf03ecba0 hevc: Remove useless clip
The src buffer should only contain values in the interval
[0, (1 << BIT_DEPTH) - 1].

Since shift = (BIT_DEPTH - 5), src[x] >> shift must be in
the interval [0, 31], so no clip is needed.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:58:52 +01:00
Guillaume Martres
a246d06fe0 hevc: clip pixels when transquant bypass is used
The reconstructed picture should always be clipped (see section 8.6.5),
previously we did not clip coding units where
cu_transquant_bypass_flag == 1.

Sample-Id: 00001325-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:58:37 +01:00
Luca Barbato
b37e796082 hevc: Use uint64 to check for tile dimensions
And use unsigned datatypes.

Otherwise it would overflow.

Sample-Id: 00001315-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-01-21 11:57:51 +01:00
Michael Niedermayer
d5c15ebeaf hevc: Fix modulo operations
Keep qp fields within the range.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:57:43 +01:00
Michael Niedermayer
a7a07cc98a hevc: check that VPS referenced from SPS exists
This matches how its done for SPS/PPS.
Fixes null pointer dereference.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-21 11:57:36 +01:00
Michael Niedermayer
dd2d0039b6 vc1: Always reset numref when parsing a new frame header.
Fixes an issue where the B-frame coding mode switches from interlaced
fields to interlaced frames, causing incorrect decisions in the motion
compensation code and resulting in visual artifacts.

CC: libav-stable@libav.org
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
2014-01-20 23:22:30 +01:00
Anton Khirnov
93c553c71e lavc: deprecate CODEC_FLAG_EMU_EDGE and avcodec_get_edge_width(). 2014-01-20 12:52:28 +01:00
Anton Khirnov
024db24912 mpegvideo: allocate edges when encoding.
Allocating edges will be removed from generic code, so the encoder must
handle this explicitly.
2014-01-20 12:50:14 +01:00
Anton Khirnov
f7e85ee996 lavc: allow the caller to override dimensions in ff_get_buffer()
This will be useful for allocating edges in the encoders.
2014-01-20 12:49:47 +01:00
Tim Walker
0d43b114cc eac3: cosmetics, re-indent. 2014-01-19 19:12:58 +01:00
Tim Walker
ade75fb811 (e)ac3: clip surround mix level indexes.
Values 0-2 are reserved, 3 (-1.5dB) should be used instead.
2014-01-19 19:12:52 +01:00
Tim Walker
c229f571fd (e)ac3: parse and store the Lt/Rt and LFE mix levels. 2014-01-19 19:12:42 +01:00
Tim Walker
1f604f96ea ac3: set default matrix encoding modes in parse_frame_header.
Deduplicates some code.
2014-01-19 19:12:33 +01:00
Anton Khirnov
8b2e5e42bb h264: check that an IDR NAL only contains I slices
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:53:31 +01:00
Anton Khirnov
9ecabd7892 h264: reset num_reorder_frames if it is invalid
An invalid VUI is not considered a fatal error, so the SPS containing it
may still be used. Leaving an invalid value of num_reorder_frames there
can result in writing over the bounds of H264Context.delayed_pic.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:53:06 +01:00
Anton Khirnov
0652e024c6 h264: reset ref count if decoding the slice header fails
Otherwise the ER code might try to use some already freed references.

Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:51:04 +01:00
Anton Khirnov
98cc9efc5f h264: prevent two matching fields from being both a short/long ref combination
Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:42:39 +01:00
Anton Khirnov
00dbff4c3e h264: do not call field_end if we do not have a current picture
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:42:21 +01:00
Anton Khirnov
7f0e81db3c h264: limit allowed pred modes in ff_h264_check_intra_pred_mode() to 3
Higher modes are not allowed for 16x16/chroma, which is what this
function is used for. Otherwise this function would return 0 (vertical
prediction) for invalid higher modes, which could result in invalid
reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:41:59 +01:00
Anton Khirnov
d1b3fabe69 h264: reset first_field if frame_start() fails for missing refs
In this case we may not have a current frame, while first_field being
set implies we do.

Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-18 20:41:24 +01:00
Diego Biurrun
aab40bbfd5 x86: dsputil: Simplify xvmc deprecation conditional 2014-01-15 15:23:46 +01:00
Diego Biurrun
dc4d726bab build: Add separate hidden config option for the intrax8 code
This allows for slightly cleaner dependency specification.
2014-01-15 15:23:46 +01:00
Janne Grunau
fe96769bed aarch64: port neon clobber test from arm 2014-01-15 12:31:07 +01:00
Janne Grunau
f896bca03f aarch64: h264 (bi)weight NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:31:07 +01:00
Janne Grunau
36e3b1f2fd aarch64: h264 loop filter NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:31:04 +01:00
Janne Grunau
c65d67ef50 aarch64: hpeldsp NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:30:24 +01:00
Janne Grunau
d5dd8c7bf0 aarch64: h264 qpel NEON optimizations
Ported from ARMv7 NEON.
2014-01-15 12:17:49 +01:00
Janne Grunau
8438b3f09f aarch64: h264 idct NEON assembler optimizations
Ported from ARMv7 NEON.
2014-01-15 12:13:41 +01:00
Janne Grunau
71617884a2 aarch64: h264 chroma motion compensation NEON optimizations
Since RV40 and VC-1 use almost the same algorithm so optimizations for
those two decoders are easy to do and included.
2014-01-15 12:07:18 +01:00
Janne Grunau
1e9265cd8f dct-test: test ff_simple_idct_neon only on ARM for now
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-15 11:58:39 +01:00
Janne Grunau
8b4119187b cabac: remove leftovers from the cabac encoder
The cabac encoder was only used by the removed cabac test.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-01-14 22:19:03 +01:00
Diego Biurrun
46bacb5cc6 x86: Consistently use cpu flag detection macros in places that still miss it 2014-01-14 00:04:58 +01:00
Diego Biurrun
7151c5d04a arm: Use full filenames as multiple inclusion guards 2014-01-14 00:04:52 +01:00
Tim Walker
49b9badcaa vc1: Enable the interlaced B-frame codepath.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-13 10:23:01 +01:00
Michael Niedermayer
6d98959c8a vc1: Add avg_no_rnd_vc1_chroma_mc4_c()
Needed for proper interlaced support.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2014-01-13 10:22:58 +01:00
Luca Barbato
c798a6fedc vc1: Factorize out chroma MC 2014-01-13 10:21:53 +01:00
Luca Barbato
a1f5164814 vc1dsp: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-01-12 18:33:25 +01:00
Martin Storsjö
44a0a98f92 arm: Add an option for making sure NEON registers aren't clobbered
This is pretty much based on the same test for XMM registers.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-11 00:03:00 +02:00
Maxim Polijakowski
e6f0bb6527 ATRAC3+ decoder
Cleanup by Diego Biurrun.

Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
2014-01-09 19:33:07 +01:00
Diego Biurrun
4c642d8d98 x86: hpeldsp: Add missing av_cold attribute to init function 2014-01-09 15:09:07 +01:00
Diego Biurrun
b0be1ae792 x86: avcodec: Add a bunch of missing #includes for av_cold 2014-01-09 15:09:07 +01:00
Diego Biurrun
4b48201d4d ac3tab.h: #include the correct headers 2014-01-09 15:09:07 +01:00
Anton Khirnov
d48132b7de mjpegdec: apply flipping after decoding, not before
This is simpler and removes a silly restriction on edges being present.
2014-01-09 09:56:51 +01:00
Guillaume Martres
e588615d93 hevc: fix decoding of one PU wide files
For those the block size may be larger than the source linesize (if the
edges are not allocated).

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-09 09:46:13 +01:00
Anton Khirnov
ca96e33716 vp9: drop support for real (non-emulated) edges
They are not measurably faster on x86, they might be somewhat faster on
other platforms due to missing emu edge SIMD, but the gain is not large
enough to justify the added complexity.
2014-01-09 09:43:59 +01:00
Anton Khirnov
ef8c93e2f1 vp8: drop support for real (non-emulated) edges
They are not measurably faster on x86, they might be somewhat faster on
other platforms due to missing emu edge SIMD, but the gain is not large
enough to justify the added complexity.
2014-01-09 09:41:24 +01:00
Anton Khirnov
ebfe622bb1 mpegvideo: drop support for real (non-emulated) edges
Several decoders disable those anyway and they are not measurably faster
on x86. They might be somewhat faster on other platforms due to missing
emu edge SIMD, but the gain is not large enough (and those decoders
relevant enough) to justify the added complexity.
2014-01-09 09:41:19 +01:00
Martin Storsjö
952d3187d8 arm: Add a missing # as prefix for an immediate constant
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:30:13 +02:00
Martin Storsjö
5dae487235 arm: Allow overriding the alignment set in the function macro
The function macro always sets .align 2 before declaring the
function label (since 5c5e1ea3) and always sets the section to
.text (since 278caa6a).

The .align 5 before certain functions, added in fc252eba, were added
before .text and .align were added to the function macro and thus
became useless/unused when the function macro got them.

This restores the original intention, to align the loop entry
points.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:29:56 +02:00
Martin Storsjö
b7b932f5e3 arm: Remove a leftover define for the pld instruction
This file no longer uses the pld instruction at all, all such uses
have been split into hpeldsp_arm.S.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:29:42 +02:00
Martin Storsjö
67bb3a4e28 arm: cosmetics: Reindent the h264dsp neon init function
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-07 19:29:31 +02:00
Diego Biurrun
794fcf79a8 Rename CONFIG_FFT_FLOAT ---> FFT_FLOAT
The define does not originate from configure, so it should not
have a name that is CONFIG_-prefixed.
2014-01-06 19:12:48 +01:00
Paul B Mahol
63debaa74c libopusenc: Change default frame duration to 20 ms
20 ms is the default in the libopus encoder, and gives better
quality than 10 ms.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-06 18:56:44 +02:00
Anton Khirnov
9cbf2d78f0 pthread_frame: unref decoded frames on failure
This is similar to what the non-threaded code already does.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:25:55 +01:00
Anton Khirnov
a03a642d5c h264: do not use 422 functions for monochrome
Fixes invalid memory access.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:25:36 +01:00
Anton Khirnov
9eef9eb301 h264: check that execute_decode_slices() is not called too many times
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:25:25 +01:00
Anton Khirnov
bfd26b7ce6 h264: reject mismatching luma/chroma bit depths during sps parsing
There is no point in delaying the check and it avoids bugs with a
half-initialized context.

Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:23:45 +01:00
Anton Khirnov
9a026c7298 h264: rebuild the default ref list if the reference count changes
Fixes possible access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:23:17 +01:00
Anton Khirnov
4736d003fa cavsdec: check ff_get_buffer() return value
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-06 08:22:48 +01:00
Anton Khirnov
50079a6aa9 lavc: do not leak the internal frame if opening the codec fails 2014-01-06 08:21:58 +01:00
Anton Khirnov
8058284ce0 lavc: add 422/444 YUV with alpha to align_dimensions()
Aligns frame dimensions to 16, which fixes potential invalid writes.
2014-01-06 08:20:56 +01:00
Kostya Shishkov
2f97094608 lagarith: do not call simd functions on unaligned lines
They end up overwriting past the line end.

Partially based on a patch by Michael Niedermayer <michaelni@gmx.at>

Bug-Id: vlc/9700
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-01-06 08:19:29 +01:00
Anton Khirnov
f4a8a00805 sgidec: fix buffer size check in expand_rle_row()
Right now it will spuriously fail if the linesize is exactly equal to
the data width.

CC:libav-stable@libav.org
2014-01-06 08:18:45 +01:00
Anton Khirnov
adb199d1bc kgv1dec: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()
implementations.

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
2014-01-06 08:15:36 +01:00
Anton Khirnov
fe80fa53bc 4xm: replace forcing EMU_EDGE by a copy
The decoder currently sets CODEC_FLAG_EMU_EDGE and relies on
get_buffer2() to always provide buffers with linesize == 2 * width.
This is wrong, since we place no such restriction on get_buffer2()
implementations.

Fix this by decoding into internal buffers and copying them to output
frames. Since this is a very obscure decoder, the performance hit should
not be an issue.
2014-01-06 08:14:14 +01:00
Anton Khirnov
fffca3d278 4xm: return a proper error code. 2014-01-06 08:13:50 +01:00
Tim Walker
7840c40445 (e)ac3dec: set AV_FRAME_DATA_MATRIXENCODING side data. 2014-01-05 16:41:56 +01:00
Tim Walker
13345fc1f8 (e)ac3: parse and store the Dolby Surround, Surround EX and Headphone mode flags. 2014-01-05 16:41:56 +01:00
Tim Walker
e92123093d mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data. 2014-01-05 16:41:56 +01:00
Tim Walker
4b7f1a7ced mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream. 2014-01-05 16:41:56 +01:00
Tim Walker
30d70e79a6 dcadec: set AV_FRAME_DATA_MATRIXENCODING side data. 2014-01-05 16:41:56 +01:00
Tim Walker
6bfdb2de88 dcadec: set the output channel mode more accurately.
When downmixing 2.1 to 2-channel, if the 2.0 portion is Lt/Rt, sum-difference or dual mono, the actual output will be the same (with the LFE either mixed-in or discarded).

Also, when downmixing an arbitrary layout to 2-channel, if the bitstream contains custom downmix coefficients targeting Lt/Rt, then the output will be Lt/Rt rather than regular Stereo.
2014-01-05 16:41:56 +01:00
Tim Walker
5b4797a21d avframe: add AV_FRAME_DATA_MATRIXENCODING side data type.
Includes a libavcodec utility function to update a frame's side data.
2014-01-05 16:41:56 +01:00
Alex Converse
7f29644108 aac: Fix low delay windowing.
AAC LD uses a low overlap sine window instead of a KBD window.
2014-01-04 14:42:38 -08:00
Alex Converse
b2212dec0f aac: Fix TNS decoding for the 512 sample window family. 2014-01-04 14:42:38 -08:00
Martin Storsjö
3348e3492d arm: Use the matching endfunc macro instead of the assembler directive directly
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-04 13:53:08 +02:00
Martin Storsjö
2ad4ee345a arm: Add a missing endfunc macro call
Signed-off-by: Martin Storsjö <martin@martin.st>
2014-01-04 13:53:02 +02:00
Anton Khirnov
a3a55645f0 mpegvideo: remove disabled bfin asm
It has been disabled as 'broken' over 3 years ago in b716a792
2014-01-03 16:54:24 +01:00
Anton Khirnov
a4d0c6e050 mpegvideo: move dct_unquantize functions up to avoid forward declarations 2014-01-03 16:54:00 +01:00
Anton Khirnov
aec25b1c46 mpegvideo: split the encoding-only parts of frame_start() into a separate function
This introduces some code duplication. However, much of it should go
away once the decoders stop using MpegEncContext.
2014-01-03 16:52:49 +01:00
Anton Khirnov
58312b2472 h264: reset data_partitioning if decoding the slice header for NAL_DPA fails
If it was set before then we can end up trying to decode a slice without
a valid slice header, which can lead to invalid memory access.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:42:02 +01:00
Anton Khirnov
e89aa4bf56 lzw: switch to bytestream2
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:40:43 +01:00
Anton Khirnov
24057c8320 eacmv: check the framerate before setting it.
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:39:09 +01:00
Anton Khirnov
5569146d48 adx: check that the offset is not negative
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:38:36 +01:00
Anton Khirnov
a6a2282c25 rv30: fix extradata size check.
It has been checking the number of bits in the offset instead of the
actual offset.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:38:33 +01:00
Anton Khirnov
feded990e3 mpegvideo: set reference/pict_type on generated reference frames
Otherwise the generic code will unref them, which can then result in
last_picture_ptr == current_picture_ptr, which causes deadlocks at least
in rv40.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-01-03 16:36:43 +01:00
Luca Barbato
4d2bb28931 h264: namespace the decode function
Make much easier debugging.
2013-12-27 07:48:13 +01:00
Diego Biurrun
b83d1ee3b4 avutil: Move library version related macros to version.h
This is a more sensible place for these macros.
2013-12-26 19:05:22 +01:00
Mason Carter
61ae993957 vc1: Fix intensity compensation performance regression
Introduced by 28243b0d35

Intensity compensation is always used once it was encountered, because
v->next_use_ic is never set back to zero.

Reset v->next_use_ic, when resetting v->next_luty/uv.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-22 18:31:44 +01:00
Guillaume Martres
7398e0516f hevc: move DSP declarations from hevc.h into hevcdsp.h
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-22 03:49:11 +01:00
Justin Ruggles
be7c323176 Add a libwebp encoder 2013-12-21 17:01:42 -05:00
Martin Storsjö
d307e408d4 arm: Don't clobber callee saved registers in scalarproduct
q4-q7/d8-d15 are supposed to not be clobbered by the callee.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-12-20 20:48:30 +02:00
Mickaël Raulet
5c3fa74b94 hevc: support luma bit depth != chroma bit depth for PCM coding units
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:39:53 +01:00
Guillaume Martres
78d0b7f36e hevc: warn when an unknown profile is used
Bitstreams conforming to the spec should not use profiles not defined
in it.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:39:38 +01:00
Gildas Cocherel
259cddb137 hevc_ps: fix indentation
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:39:10 +01:00
Gildas Cocherel
2d18aaa14b hevc: refactor Profile Tier Level
Also store a few PTL flags which were skipped before

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:38:59 +01:00
Guillaume Martres
67bbaed5c4 hevc: don't check for errors in PTL code
According to the spec, the value of XXX_reserved_zero_44bits should be
ignored, so don't report an error when it's not zero.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:36:44 +01:00
Gildas Cocherel
321cb8b048 hevc: store profile and level in AVCodecContext
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:36:24 +01:00
Gildas Cocherel
2a41826bea lavc: add HEVC profiles names
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-12-20 19:35:27 +01:00