Commit Graph

19211 Commits

Author SHA1 Message Date
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