summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
...
* | avcodec/rawdec: Print stride and packet size at debug levelMats Peterson2016-02-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/rawdec: Fix nut pal8 testMats Peterson2016-02-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/rawdec: Initialize default mono palette only for ↵Mats Peterson2016-02-13
| | | | | | | | | | | | bits_per_coded_sample == 1 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | aacenc: make a better estimate for the audio bitrate if not providedRostislav Pehlivanov2016-02-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Takes into account whether there's pairing and if there's an LFE channel. An SCE has more bits than CPE/2 since IS and M/S save quite a lot of bits when channels are paired. And most of the SCEs we have are in surround layouts which map it to the center channel, which usually carries all of the dialogue and compression artifacts there are easily audiable. Also refactors the init function a little bit and labels some parts of it. Fixes bug #5233 Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* | avcodec/vc2enc_dwt: add missing headerJames Almer2016-02-12
| | | | | | | | | | | | Fixes make checkheaders Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/h264_slice: Fix dequant table init with field picturesMichael Niedermayer2016-02-12
| | | | | | | | | | | | Fixes regression of Ticket4389 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/h264_slice: assert relation between current_slice ans slice_ctxMichael Niedermayer2016-02-12
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/h264_slice: remove duplicate unconditional picture_structure setting ↵Michael Niedermayer2016-02-12
| | | | | | | | | | | | code Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/cfhd: Fix errors with valid files.Kieran Kunhya2016-02-12
| |
* | avcodec/cfhd: Check the number of tag/value pairsMichael Niedermayer2016-02-12
| | | | | | | | | | | | | | | | Fixes potentially long loop Fixes: CID1351382/11 Reviewed-by: Kieran Kunhya <kieran@kunhya.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | vc2enc: use project-standard inclusion guardsRostislav Pehlivanov2016-02-10
| | | | | | | | | | | | | | This was first reported on the mailing list in an earlier revision of this encoder but was forgotten from the final commit. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* | avcodec: add a native SMPTE VC-2 HQ encoderRostislav Pehlivanov2016-02-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a new encoder capable of creating BBC/SMPTE Dirac/VC-2 HQ profile files. Dirac is a wavelet based codec created by the BBC a little more than 10 years ago. Since then, wavelets have mostly gone out of style as they did not provide adequate encoding gains at lower bitrates. Dirac was a fully featured video codec equipped with perceptual masking, support for most popular pixel formats, interlacing, overlapped-block motion compensation, and other features. It found new life after being stripped of various features and standardized as the VC-2 codec by the SMPTE with an extra profile, the HQ profile that this encoder supports, added. The HQ profile was based off of the Low-Delay profile previously existing in Dirac. The profile forbids DC prediction and arithmetic coding to focus on high performance and low delay at higher bitrates. The standard bitrates for this profile vary but generally 1:4 compression is expected (~525 Mbps vs the 2200 Mbps for uncompressed 1080p50). The codec only supports I-frames, hence the high bitrates. The structure of this encoder is simple: do a DWT transform on the entire image, split it into multiple slices (specified by the user) and encode them in parallel. All of the slices are of the same size, making rate control and threading very trivial. Although only in C, this encoder is capable of 30 frames per second on an 4 core 8 threads Ivy Bridge. A lookup table is used to encode most of the coefficients. No code was used from the GSoC encoder from 2007 except for the 2 transform functions in diracenc_transforms.c. All other code was written from scratch. This encoder outperforms any other encoders in quality, usability and in features. Other existing implementations do not support 4 level transforms or 64x64 blocks (slices), which greatly increase compression. As previously said, the codec is meant for broadcasting, hence support for non-broadcasting image widths, heights, bit depths, aspect ratios, etc. are limited by the "level". Although this codec supports a few chroma subsamplings (420, 422, 444), signalling those is generally outside the specifications of the level used (3) and the reference decoder will outright refuse to read any image with such a flag signalled (it only supports 1920x1080 yuv422p10). However, most implementations will happily read files with alternate dimensions, framerates and formats signalled. Therefore, in order to encode files other than 1080p50 yuv422p10le, you need to provide an "-strict -2" argument to the command line. The FFmpeg decoder will happily read any files made with non-standard parameters, dimensions and subsamplings, and so will other implementations. IMO this should be "-strict -1", but I'll leave that up for discussion. There are still plenty of stuff to implement, for instance 5 more wavelet transforms are still in the specs and supported by the decoder. The encoder can be lossless, given a high enough bitrate. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* | options_table: update maximum bitrate limitRostislav Pehlivanov2016-02-10
| | | | | | | | | | | | | | The type of the option has been changed but the limit was apparently forgotten. Some video codes can handle bitrates of over ~2.2 Gbps (like VC-2). Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* | nut: Add PAL8 supportMichael Niedermayer2016-02-09
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/dirac: Fix memleak of dsh on errorMichael Niedermayer2016-02-09
| | | | | | | | | | | | Fixes CID1351360 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | diractab: Fix header guard nameTimothy Gu2016-02-07
| |
* | huffyuvencdsp: Undefine "i" macro after each useTimothy Gu2016-02-07
| |
* | libvpxenc: Allow setting tune parameterTimothy Gu2016-02-07
| |
* | diracdec: Pass DWTPlane to dwt initTimothy Gu2016-02-07
| |
* | diracdec: Split DWTPlane struct from PlaneTimothy Gu2016-02-07
| |
* | dirac_dwt: Rename init2 to initTimothy Gu2016-02-07
| | | | | | | | The functions are all private.
* | dirac_dwt: Don't pass information in context as argumentsTimothy Gu2016-02-07
| |
* | avcodec/utils: Add AV_PIX_FMT_GBRAP16?E to avcodec_align_dimensions2()Michael Niedermayer2016-02-07
| | | | | | | | | | Found-by: kierank Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | x86/dcadec: add ff_lfe_fir0_float_{sse,sse2,avx,fma3}James Almer2016-02-06
| | | | | | | | | | | | | | Up to ~4 times faster on x86_64, ~8 times on x86_32 if compiling using x87 fp math. Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/dcadsp: rename lfe_fir_float functionsJames Almer2016-02-06
| | | | | | | | | | Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* | dirac_dwt: Make x86 files/functions names consistentTimothy Gu2016-02-05
| |
* | diracdsp: Make x86 files/functions names consistentTimothy Gu2016-02-05
| |
* | lavc/dirac_dwt: fix building without asmMichael Bradshaw2016-02-06
| | | | | | | | | | clang needs HAVE_MMX to be first in order to avoid an undefined reference error.
* | avcodec/h264: Fix segfault in 4:2:2 chroma deblock with 32-bit msvcHenrik Gramner2016-02-05
| | | | | | | | | | | | Using rNm and x86inc's stack allocation with a negative value at the same time isn't supported, and caused the original stack pointer to be clobbered when using a compiler that doesn't support stack alignment.
* | avcodec/h264: mmxext 4:2:2 chroma deblock/loop filterJames Darnley2016-02-05
| | | | | | | | 2.6 times faster (366 vs. 142 cycles)
* | lavc/rawdec: Use 16-byte line alignment for B1W0 and B0W1 video in nutMats Peterson2016-02-05
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/dcadsp: replace intptr_t with ptrdiff_tJames Almer2016-02-05
| | | | | | | | | | Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* | dca_parser: ensure frame duration matches the actual sample rateHendrik Leppkes2016-02-04
| | | | | | | | | | | | | | The parser only parses the core, and thus has a duration relative to the core sample rate only, not the actual stream sample rate. FATE references changed due to now correct timestamps.
* | avcodec/libutvideoenc: Add NULL termintor to optionsMichael Niedermayer2016-02-04
| | | | | | | | | | | | Fixes segfaults Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | mjpegenc: Remove duplicate initializerDerek Buitenhuis2016-02-03
| | | | | | | | | | | | This was causing c99conv to crash. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | libutvideo: UnbreakDerek Buitenhuis2016-02-03
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | diradec: split tables away to a separate diractab fileRostislav Pehlivanov2016-02-03
| | | | | | | | Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* | diracdec: move the MAX_DWT_LEVELS macro to dirac.hRostislav Pehlivanov2016-02-03
| | | | | | | | | | | | Used by the VC-2 encoder. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* | Merge commit '0e9c4fe254073b209970df3e3cb84531bc388e99'Derek Buitenhuis2016-02-03
|\| | | | | | | | | | | | | * commit '0e9c4fe254073b209970df3e3cb84531bc388e99': lavc: Move pre_me to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move pre_me to codec private optionsVittorio Giovara2016-01-21
| | | | | | | | | | | | | | This option is only used by mpegvideoenc. It is a very codec-specific option, so deprecate the global variant. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '5b6f42da98c26a8aee8d2c2edfcbd0633ad1c607'Derek Buitenhuis2016-02-03
|\| | | | | | | | | | | | | * commit '5b6f42da98c26a8aee8d2c2edfcbd0633ad1c607': lavc: Move me_penalty_compensation to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move me_penalty_compensation to codec private optionsVittorio Giovara2016-01-21
| | | | | | | | | | | | | | This option is only used by mpegvideoenc. It is a very codec-specific options, so deprecate the global variant. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | Merge commit '2862b63783b5556f7f3fb2d097629bc6879f833a'Derek Buitenhuis2016-02-03
|\| | | | | | | | | | | | | * commit '2862b63783b5556f7f3fb2d097629bc6879f833a': lavc: Move prediction_method to codec private options Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * lavc: Move prediction_method to codec private optionsVittorio Giovara2016-01-21
| | | | | | | | | | | | | | | | | | | | This options is only used by huffyuv, ffvhuv, jpegls, mjpeg, mpegvideoenc, png, utvideo. It is a very codec-specific options, so deprecate the global variant. Set proper limits to the maximum allowed values, and update utvideoenc tests to use the new option name. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec/utils: Check the return code of av_image_fill_linesizes()Michael Niedermayer2016-02-03
| | | | | | | | | | | | Fixes CID1271741 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | cinepakenc: Stop using AVPictureTimothy Gu2016-02-02
| |
* | cfhd: fix off-by-one error in level checkAndreas Cadhalpun2016-02-03
| | | | | | | | | | | | | | | | This fixes out-of-bounds writes causing segmentation faults. Found-by: Piotr Bandurski <ami_stuff@o2.pl> Reviewed-by: Kieran Kunhya <kierank@obe.tv> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* | dca: add emms_c after usage of AV_COPY128Hendrik Leppkes2016-02-02
| | | | | | | | Similar to AV_ZERO128, AV_COPY128 can use MMX instructions in x86
* | dca: add emms_c after AV_ZERO128 macrosHendrik Leppkes2016-02-02
| | | | | | | | | | | | AV_ZERO64/128 can use MMX on x86. Reviewed-By: James Almer <jamrial@gmail.com>
* | diracdsp_mmx: Fix some more indentationsTimothy Gu2016-02-01
| |