34679 Commits

Author SHA1 Message Date
Hendrik Leppkes
68cb0dc8a3 Merge commit 'f7edcac040f73635fc1127489c9bb29ca8b43532'
* commit 'f7edcac040f73635fc1127489c9bb29ca8b43532':
  avpicture: Suppress warning from deprecated code

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 10:03:08 +01:00
Hendrik Leppkes
92186f2d10 Merge commit 'b805482b1fba1d82fbe47023a24c9261f18979b6'
* commit 'b805482b1fba1d82fbe47023a24c9261f18979b6':
  aac: Provide more information on the failure message

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 09:59:45 +01:00
Hendrik Leppkes
3f9c64831c Merge commit 'c5eb279e240af6b7228a624cd7193732f2d5adaa'
* commit 'c5eb279e240af6b7228a624cd7193732f2d5adaa':
  g723: Add missing header

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-08 09:50:59 +01:00
foo86
ff6dd5851b avcodec/libdcadec: honor -err_detect option
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
foo86
de12aa51b6 avcodec/libdcadec: add some useful options
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
foo86
704b278361 avcodec/libdcadec: implement logging callback
Don't print a warning when dcadec_context_filter() returns positive
warning code. Most relevant warnings are now output through the callback
function.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
foo86
704654ea17 avcodec/libdcadec: fix request_channel_layout
Take request_channel_layout as a hint and don't force 2.0 downmix by
using both the 2CH and 6CH flags together.

Remove warnings about missing coefficients because they are no longer
relevant.

Honor AV_CH_LAYOUT_NATIVE and make it possible for native DTS channel
layout to be output.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-08 03:37:04 +01:00
Vittorio Giovara
c34df42262 sgienc: Make sure to initialize skipped header portions
Fix fate tests with asan. Introduced during bytestream2 porting
(in revision 62cc8f4d79dad119e8efeaae080a58a8dcb1e89d).

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:27:42 -05:00
Vittorio Giovara
16216b713f lavc: Drop exporting 2-pass encoding stats
These variables are coming from mpegvideoenc where are supposedly used
as bit counters on various frame properties. However their use is
unclear as they lack documentation, are available only from a very small
subset of encoders, and they are hardly used in the wild. Also frame_bits
in aacenc is employed in a similar way.

Remove this functionality from AVCodecContex, these variable are mostly
frame properties, and too few encoders support setting them with anything
useful.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:27:42 -05:00
Clément Bœsch
a8bb81a05c lavc, lavu: use avutil/thread.h instead of redundant conditional includes 2015-12-07 17:25:51 +01:00
Vittorio Giovara
be00ec832c lavc: Deprecate coder_type and its symbols
Most option values are simply unused or ignored and in practice the
majory of codecs only need to check whether to enable rle or not.

Add appropriate codec private options which better expose the allowed
features.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-12-07 11:01:22 -05:00
Hendrik Leppkes
312c83e057 avcodec/g723_1: fix license header 2015-12-07 16:10:51 +01:00
Hendrik Leppkes
90c93fb129 Merge commit 'f023d57d355ff3b917f1aad9b03db5c293ec4244'
* commit 'f023d57d355ff3b917f1aad9b03db5c293ec4244':
  lavc: G.723.1 encoder

Split existing FFmpeg G.723.1 encoder into a new file.

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:50:45 +01:00
Hendrik Leppkes
6c9cc21bcc Merge commit '165cc6fb9defcd79fd71c08167f3e8df26b058ff'
* commit '165cc6fb9defcd79fd71c08167f3e8df26b058ff':
  g723_1: Move sharable functions to a separate file

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:26:41 +01:00
Hendrik Leppkes
9cf74191ed Merge commit 'aac996cc01042194bf621d845bbe684549b5882e'
* commit 'aac996cc01042194bf621d845bbe684549b5882e':
  g723_1: Rename files to better reflect their purpose

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 15:04:13 +01:00
Hendrik Leppkes
2730a2013d Merge commit 'b74b88f30da2389f333a31815d8326d5576d3331'
* commit 'b74b88f30da2389f333a31815d8326d5576d3331':
  g723_1: Handle values at the ends of the table in lsp2lpc()

Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-12-07 14:58:38 +01:00
Anton Khirnov
68e547ae8b avpacket: use ERANGE instead of EOVERFLOW
EOVERFLOW seems to be unavailable on certain platforms.
2015-12-07 11:42:26 +01:00
Anton Khirnov
f1ccd07680 h264: do not call frame_start() for missing frames
We do not need to do a full setup like for a real frame, just allocate a
buffer and set cur_pic(_ptr).
2015-12-07 11:42:26 +01:00
Anton Khirnov
d6dc5d15af aacdec: fix aac_static_table_init() prototype 2015-12-07 11:42:26 +01:00
Hendrik Leppkes
1e6cf7272f avcodec: implement vp9 dxva2 hwaccel 2015-12-07 09:38:59 +01:00
Hendrik Leppkes
585083dd1f vp9: add hwaccel hooks 2015-12-07 09:25:02 +01:00
Hendrik Leppkes
cd1b7e2bd7 vp9: fix pixel format changes with threading 2015-12-07 09:23:18 +01:00
Andreas Cadhalpun
5adb5d9d89 mjpegdec: consider chroma subsampling in size check
If the chroma components are subsampled, smaller buffers are allocated
for them. In that case the maximal block_offset for the chroma
components is not as large as for the luma component.

This fixes out of bounds writes causing segmentation faults or memory
corruption.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-12-06 22:40:41 +01:00
Rostislav Pehlivanov
d55f83de4d aacenc_tns: tune and reduce artifacts
There are a couple of major changes here:

1. Start using TNS coefficient compression.
2. Start using 3 bits per coefficient maximum for short windows.
The bits we save from these 2 changes seem to make a nice impact on the
rest of the file/windows.

3. Remove special case gain checking for short windows.
4. Modify the coefficient loop to support up to 3 windows.
The additional restrictions on TNS were something that was no in the
specifications and furthermore restricting TNS to only low energy short
windows was done to compensate for bugs elsewhere in the code.

Overall, the improvements here reduce crackling artifacts heard in very
noisy tracks.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-06 20:16:48 +00:00
Rostislav Pehlivanov
b32e989e6c aacenc: move the TNS search and filtering before PNS
The original plan was to have TNS use data from the PNS search to better
tune itself to noise but this was never used nor necessary. This should
slightly boost the PNS accuracy if TNS was used.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-06 20:16:48 +00:00
Ganesh Ajjanagadde
14886bebfe avcodec/dvdsubdec: fix typo in dlog message
Likely accidental in 764900d6458a2f79166ff91df4f20ad39cd6acec.

Fixes: CID 1341578.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-12-06 08:11:47 -05:00
Anton Khirnov
e02de9df4b lavc: export Dirac parsing API used by the ogg demuxer as public
Also, stop using AVCodecContext for storing the stream parameters.
2015-12-06 10:28:04 +01:00
Anton Khirnov
825900248b qsvenc: export CPB props side data 2015-12-06 10:25:49 +01:00
Anton Khirnov
1520c6ff05 nvenc: export CPB props side data 2015-12-06 10:25:43 +01:00
Anton Khirnov
2507b5dd67 mpegvideo_enc: export vbv_delay in side data
Deprecate AVCodecContext.vbv_delay
2015-12-06 10:25:23 +01:00
Anton Khirnov
3f5c99fcbb mpegvideo_enc: export CPB props side data 2015-12-06 10:25:08 +01:00
Anton Khirnov
732a37d146 libx264: export CPB props side data 2015-12-06 10:25:00 +01:00
Anton Khirnov
03afb62e83 libvpxenc: export CPB props side data 2015-12-06 10:24:47 +01:00
Anton Khirnov
11c9bd633f libopenh264enc: export CPB props side data 2015-12-06 10:24:21 +01:00
Anton Khirnov
f0b769c16d lavc: add a packet side data type for VBV-like parameters 2015-12-06 10:23:45 +01:00
Anton Khirnov
84adab333c lavc: add stream-global packet side data
This is similar to what is done for AVStream.
2015-12-06 10:22:43 +01:00
Anton Khirnov
31c51f7441 avpacket: add a function for wrapping existing data as side data 2015-12-06 10:22:18 +01:00
Anton Khirnov
b09ad37c83 h264: derive the delay from the level when it's not present
Fall back to maximum DPB size if the level is unknown.

This should be more spec-compliant and does not depend on the caller
setting has_b_frames before opening the decoder.

The old behaviour, when the delay is supplied by the caller setting
has_b_frames, can still be obtained by setting strict_std_compliance
below normal.
2015-12-06 09:43:52 +01:00
Anton Khirnov
792b9c9dfc h264: set frame_num in start_frame(), not decode_slice_header()
That is a more appropriate place for it, since it is not allowed to
change between slices.
2015-12-06 09:43:45 +01:00
Anton Khirnov
741b494fa8 h264: eliminate default_ref_list
According to the spec, the reference list for a slice should be
constructed by first generating an initial (what we now call "default")
reference list and then optionally applying modifications to it.

Our code has an optimization where the initial reference list is
constructed for the first inter slice and then rebuilt for other slices
if needed. This, however, adds complexity to the code, requires an extra
2.5kB array in the codec context and there is no reason to think that it
has any positive effect on performance. Therefore, simplify the code by
generating the reference list from scratch for each slice.
2015-12-06 09:42:39 +01:00
Michael Niedermayer
2140858524 avcodec/hevc: Fix integer overflow of entry_point_offset
Fixes out of array read
Fixes: d41d8cd98f00b204e9800998ecf8427e/signal_sigsegv_321165b_7641_077dfcd8cbc80b1c0b470c8554cd6ffb.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 22:34:30 +01:00
Anton Khirnov
e7078e842d hevcdsp: add x86 SIMD for MC 2015-12-05 21:11:52 +01:00
Anton Khirnov
a853388d2f hevc: change the stride of the MC buffer to be in bytes instead of elements
Currently, the frame stride is passed in bytes, while the MC buffer size
is in int16_t elements, This can be confusing, so pass both strides in
bytes.
2015-12-05 21:11:12 +01:00
Anton Khirnov
688417399c hevcdsp: split the pred functions by width
This should allow for more efficient SIMD.
2015-12-05 21:10:41 +01:00
Anton Khirnov
818bfe7f0a hevcdsp: split the epel functions by width
This should allow for more efficient SIMD.
2015-12-05 21:09:57 +01:00
Anton Khirnov
1f821750f0 hevcdsp: split the qpel functions by width instead of by the subpixel fraction
This should allow for more efficient SIMD.

Keep the C versions as they are now, to allow the compiler to inline the
interpolation coefficients.
2015-12-05 21:08:04 +01:00
Rostislav Pehlivanov
dcbe8d8abc aacenc_ltp: use an AR filter for LTP encoding as well
Seems to work better. Information on why the decoder does this is
lacking.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 19:06:39 +00:00
Rostislav Pehlivanov
3112501daf aacenc: fix aac_pred option triggering an error
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-12-05 18:43:17 +00:00
Michael Niedermayer
a08681f1e6 avcodec/dirac_parser: Check that there is a previous PU before accessing it
Fixes out of array read
Fixes: 99d142c47e6ba3510a74b872a1a2ae72/asan_heap-oob_11b36f4_3811_0f5c69e7609a88a580135678de1df844.dxa

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 17:42:45 +01:00
Michael Niedermayer
c7d6ec947c avcodec/dirac_parser: Add basic validity checks for next_pu_offset and prev_pu_offset
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-05 17:42:45 +01:00