summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* lavc: minor bump and APIchanges for AVCodecDescriptor.mime_types.Nicolas George2014-04-29
| | | | The minor bump also covers AV_CODEC_ID_BIN_DATA.
* lavc: add a mime_types field to codec descriptors.Nicolas George2014-04-29
|
* lavc: add AV_CODEC_ID_BIN_DATA.Nicolas George2014-04-29
|
* lavc: add codec descriptors for TTF and OTF.Nicolas George2014-04-29
|
* lavc: add codec descriptors for deprecated ids.Nicolas George2014-04-29
|
* lavc/codec_desc: add separation comment.Nicolas George2014-04-29
|
* avcodec/vc1_parser: fix use of uinitialized memoryMichael Niedermayer2014-04-29
| | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Merge commit 'ed4b757177f9b563412cdbc8ee3405d82e10fc05'Michael Niedermayer2014-04-29
|\ | | | | | | | | | | | | | | | | | | | | | | * commit 'ed4b757177f9b563412cdbc8ee3405d82e10fc05': dxva2_h264: add a workaround for old Intel GPUs Conflicts: doc/APIchanges libavcodec/version.h See: 8b2a130d3fe61e348092714dffa425b63c4d796c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * dxva2_h264: add a workaround for old Intel GPUsHendrik Leppkes2014-04-28
| | | | | | | | | | | | | | | | | | | | 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>
| * dxva2_h264: set the correct ref frame index in the long slice structHendrik Leppkes2014-04-28
| | | | | | | | | | | | | | | | | | | | 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>
* | avcodec/hevc_cabac: decrease CABAC_MAX_BINMichael Niedermayer2014-04-28
| | | | | | | | | | | | | | | | | | | | | | Prevents shifts with undefined behavior Fixes CID1206634 Fixes CID1206635 Fixed CID1206636 Reviewed-by: smarter Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/mpeg12enc: increase declared size of block function argumentMichael Niedermayer2014-04-28
| | | | | | | | | | Fixes CID1047236 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/mjpegdec: make type of shift unsigned to avoid undefined behaviorMichael Niedermayer2014-04-28
| | | | | | | | | | Found-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/h264_cabac: fix indentionMichael Niedermayer2014-04-28
| | | | | | | | | | Fixes CID1087088 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/g729postfilter: avoid potential negative shiftMichael Niedermayer2014-04-27
| | | | | | | | | | | | Fixes CID1194402 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/tiff: Support yuv 420 and 444Michael Niedermayer2014-04-27
| | | | | | | | | | | | Fixes Ticket416 Trolled-by: jb Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/tiff: parse subsample factorsMichael Niedermayer2014-04-27
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Fix overriden typosMichael Niedermayer2014-04-27
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Fix dont and doesnt typosMichael Niedermayer2014-04-27
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Fix skiping typosMichael Niedermayer2014-04-27
| | | | | | | | | | Found-by: Alessandro Ghedini <alessandro@ghedini.me> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/shorten: check bitshiftMichael Niedermayer2014-04-27
| | | | | | | | | | | | | | Fixes invalid shift Fixes CID1194400 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/mjpegdec: Fix undefined shiftMichael Niedermayer2014-04-27
| | | | | | | | | | | | Fixes CID1194388 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/truemotion2: replace impossible condition by av_assert2Michael Niedermayer2014-04-27
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/apedec: tmpk==32 is not supported, prevent undefined behaviorMichael Niedermayer2014-04-26
| | | | | | | | | | Fixes CID1206639 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/vc1dec: print debug message if a b frame without reference is skipedMichael Niedermayer2014-04-26
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'cdf6eb5a9710566be217a3f17d3d94ac4e4d2662'Michael Niedermayer2014-04-26
|\| | | | | | | | | | | | | * commit 'cdf6eb5a9710566be217a3f17d3d94ac4e4d2662': vc1: Do not return an error when skipping b frames Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * vc1: Do not return an error when skipping b framesAlessandro Ghedini2014-04-25
| | | | | | | | | | | | | | | | | | 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>
* | avcodec/dpx: extract frame rateMichael Niedermayer2014-04-25
| | | | | | | | | | | | Fixes part of Ticket3511 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/mdct_template: Use av_malloc_array()Michael Niedermayer2014-04-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/ttaenc: use av_malloc_array()Michael Niedermayer2014-04-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/utils: use av_malloc(z)_array()Michael Niedermayer2014-04-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '6d69f9f37689c999815a65a2d99999fad3a41705'Michael Niedermayer2014-04-25
|\ \ | | | | | | | | | | | | | | | | | | * commit '6d69f9f37689c999815a65a2d99999fad3a41705': vp9: write uveob as 16-bit value for 16x16/32x32 transforms. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * | vp9: write uveob as 16-bit value for 16x16/32x32 transforms.Ronald S. Bultje2014-04-25
| | | | | | | | | | | | This fixes make fate-vp9-00-quantizer-01 THREADS=2.
* | | vp9: use LOCAL_ALIGNED_32 for left/top intra_pred pointersJames Almer2014-04-25
| | | | | | | | | | | | | | | | | | | | | | | | This is needed for future AVX2 implementations Signed-off-by: James Almer <jamrial@gmail.com> Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | | vc-1: Optimise parser (with special attention to ARM)Ben Avison2014-04-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous implementation of the parser made four passes over each input buffer (reduced to two if the container format already guaranteed the input buffer corresponded to frames, such as with MKV). But these buffers are often 200K in size, certainly enough to flush the data out of L1 cache, and for many CPUs, all the way out to main memory. The passes were: 1) locate frame boundaries (not needed for MKV etc) 2) copy the data into a contiguous block (not needed for MKV etc) 3) locate the start codes within each frame 4) unescape the data between start codes After this, the unescaped data was parsed to extract certain header fields, but because the unescape operation was so large, this was usually also effectively operating on uncached memory. Most of the unescaped data was simply thrown away and never processed further. Only step 2 - because it used memcpy - was using prefetch, making things even worse. This patch reorganises these steps so that, aside from the copying, the operations are performed in parallel, maximising cache utilisation. No more than the worst-case number of bytes needed for header parsing is unescaped. Most of the data is, in practice, only read in order to search for a start code, for which optimised implementations already existed in the H264 codec (notably the ARM version uses prefetch, so we end up doing both remaining passes at maximum speed). For MKV files, we know when we've found the last start code of interest in a given frame, so we are able to avoid doing even that one remaining pass for most of the buffer. In some use-cases (such as the Raspberry Pi) video decode is handled by the GPU, but the entire elementary stream is still fed through the parser to pick out certain elements of the header which are necessary to manage the decode process. As you might expect, in these cases, the performance of the parser is significant. To measure parser performance, I used the same VC-1 elementary stream in either an MPEG-2 transport stream or a MKV file, and fed it through ffmpeg with -c:v copy -c:a copy -f null. These are the gperftools counts for those streams, both filtered to only include vc1_parse() and its callees, and unfiltered (to include the whole binary). Lower numbers are better: Before After File Filtered Mean StdDev Mean StdDev Confidence Change M2TS No 861.7 8.2 650.5 8.1 100.0% +32.5% MKV No 868.9 7.4 731.7 9.0 100.0% +18.8% M2TS Yes 250.0 11.2 27.2 3.4 100.0% +817.9% MKV Yes 149.0 12.8 1.7 0.8 100.0% +8526.3% Yes, that last case shows vc1_parse() running 86 times faster! The M2TS case does show a larger absolute improvement though, since it was worse to begin with. This patch has been tested with the FATE suite (albeit on x86 for speed). Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | | vc-1: Add platform-specific start code search routine to VC1DSPContext.Ben Avison2014-04-25
| | | | | | | | | | | | | | | | | | | | | Initialise VC1DSPContext for parser as well as for decoder. Note, the VC-1 code doesn't actually use the function pointer yet. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | | h264: Move search code search functions into separate source files.Ben Avison2014-04-25
| | | | | | | | | | | | | | | | | | This permits re-use with parsers for codecs which use similar start codes. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | | Merge remote-tracking branch 'cehoyos/master'Michael Niedermayer2014-04-25
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cehoyos/master: Enable muxing ac-3 in caf. Use correct msvc type specifiers for ptrdiff_t and size_t. Fix vf_eq.c and vf_eq2.c compilation with !HAVE_6REGS. Fix libpostproc compilation with !HAVE_6REGS. Never write 0 as maximum bitrate for asf files. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * | | Use correct msvc type specifiers for ptrdiff_t and size_t.Carl Eugen Hoyos2014-04-24
| |/ / | | | | | | | | | | | | | | | | | | The Windows runtime aborts if it finds %t or %z. Fixes ticket #3472. Reviewed-by: Ronald Bultje
* | | Merge commit 'a88e1d1c598e641eecd5d43730211d91c82787c6'Michael Niedermayer2014-04-25
|\ \ \ | | |/ | |/| | | | | | | | | | | | | * commit 'a88e1d1c598e641eecd5d43730211d91c82787c6': lavu: add CHK_OFFS as AV_CHECK_OFFSET to check struct member offsets Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * | lavu: add CHK_OFFS as AV_CHECK_OFFSET to check struct member offsetsJanne Grunau2014-04-24
| | |
* | | x86/mpegaudiodsp: define apply_window_mp3 as SSEJames Almer2014-04-25
| |/ |/| | | | | | | | | | | None of the handwritten asm in this function seems to be SSE2 Signed-off-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '7cade8ea2bb19e78dae42b29720535a70fb2ae84'Michael Niedermayer2014-04-23
|\| | | | | | | | | | | | | * commit '7cade8ea2bb19e78dae42b29720535a70fb2ae84': on2avc: change a comment at #endif to match actual define Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * on2avc: change a comment at #endif to match actual defineKostya Shishkov2014-04-23
| |
* | avcodec/fic: avoid 2 additions per idct rowMichael Niedermayer2014-04-23
| | | | | | | | | | | | | | | | | | | | | | before: 5225 decicycles in IDCT, 32756 runs, 12 skips after: 5057 decicycles in IDCT, 32765 runs, 3 skips Reviewed-by: Derek Buitenhuis <derek.buitenhuis@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'e2834567d73bd1e46478ba67ac133cb8ef5f50fd'Michael Niedermayer2014-04-23
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'e2834567d73bd1e46478ba67ac133cb8ef5f50fd': On2 AVC decoder Conflicts: Changelog configure libavcodec/avcodec.h libavcodec/codec_desc.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * On2 AVC decoderKostya Shishkov2014-04-23
| |
| * fic: Make warning message more accurateDerek Buitenhuis2014-04-23
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * fic: Remove redundant clipsDerek Buitenhuis2014-04-23
| | | | | | | | | | | | The equations can't overflow or underflow anyway. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * fic: Simplify alpha blendingDerek Buitenhuis2014-04-22
| | | | | | | | Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>