summaryrefslogtreecommitdiffstats
path: root/libavcodec/allcodecs.c
Commit message (Collapse)AuthorAgeFilesLines
* avcodec: add a native SMPTE VC-2 HQ encoderRostislav Pehlivanov2016-02-101-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* avcodec/dca: add new decoder based on libdcadecfoo862016-01-311-1/+1
|
* avcodec/dca: remove old decoderfoo862016-01-311-1/+1
| | | | | Remove all files and functions which are not going to be reused, and disable all functions and FATE tests temporarily which will be.
* avcodec: Cineform HD DecoderKieran Kunhya2016-01-301-0/+1
| | | | | | Decodes YUV 4:2:2 10-bit and RGB 12-bit files. Older files with more subbands, skips, Bayer, alpha not supported. Alpha requires addition of GBRAP12 pixel format.
* avcodec: Remove libvo-aacenc support.Kieran Kunhya2016-01-291-1/+0
| | | | | | The internal encoder is superior to libvo-aacenc. Signed-off-by: Timothy Gu <timothygu99@gmail.com>
* avcodec: Remove libaacplusTimothy Gu2016-01-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TODO: bump minor It's inferior in quality to fdk-aac and has an arguably more problematic license. As early as 2012, a HydrogenAudio user reported: > It has however one huge advantage: much better quality at low bitrates than > faac and libaacplus. (https://hydrogenaud.io/index.php?PHPSESSID=ckiq394pdglka0kj2fin6ij8t7&topic=95989.msg804633#msg804633) I myself have made a few spectrograms for a comparison of the two encoders as well. The FDK output is consistently better than the libaacplus one, in all bitrates I tested. libaacplus license is 3GPP + LGPLv2. 3GPP copyright notice is completely proprietory, as follows: > No part may be reproduced except as authorized by written permission. > > The copyright and the foregoing restriction extend to reproduction in > all media. > > © 2008, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC). > > All rights reserved. (The latest 26410-d00 zip from 3GPP has the same notice, but the copyright year is changed to 2015) The copyright part of the FDK AAC license (section 2) is a copyleft license that permits redistribution under certain conditions (and therefore the LGPL + libfdk-aac combination is not prohibited by configure): > Redistribution and use in source and binary forms, with or without > modification, are permitted without payment of copyright license fees > provided that you satisfy the following conditions: > > You must retain the complete text of this software license in > redistributions of the FDK AAC Codec or your modifications thereto in > source code form. > > You must retain the complete text of this software license in the > documentation and/or other materials provided with redistributions of > the FDK AAC Codec or your modifications thereto in binary form. > > You must make available free of charge copies of the complete source > code of the FDK AAC Codec and your modifications thereto to recipients > of copies in binary form. > > The name of Fraunhofer may not be used to endorse or promote products > derived from this library without prior written permission. > > You may not charge copyright license fees for anyone to use, copy or > distribute the FDK AAC Codec software or your modifications thereto. > > Your modified versions of the FDK AAC Codec must carry prominent > notices stating that you changed the software and the date of any > change. For modified versions of the FDK AAC Codec, the term > "Fraunhofer FDK AAC Codec Library for Android" must be replaced by the > term "Third-Party Modified Version of the Fraunhofer FDK AAC Codec > Library for Android."
* mmaldec: support MPEG-4wm42016-01-281-0/+2
| | | | | I guess this means part 2 in both cases. Not sure which profiles exactly are actually supported properly.
* avcodec: add dvaudio parserPaul B Mahol2016-01-281-0/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec: add Ulead DV audio decoderPaul B Mahol2016-01-261-0/+1
| | | | | | Fixes #1564. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec: Remove libstagefrightDerek Buitenhuis2016-01-061-1/+0
| | | | | | | | | | | | | | | | | | It serves absolutely no purpose other than to confuse potentional Android developers about how to use hardware acceleration properly on the the platform. The stagefright "API" is not public, and the MediaCodec API is the proper way to do this. Furthermore, stagefright support in avcodec needs a series of magic incantations and version-specific stuff, such that using it actually provides downsides compared just using the actual Android frameworks properly, in that it is a lot more work and confusion to get it even running. It also leads to a lot of misinformation, like these sorts of comments (in [1]) that are absolutely incorrect. [1] http://stackoverflow.com/a/29362353/3115956 Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* vaapi: Add VP9 hwaccell supportTimo Rothenpieler2015-12-221-0/+1
| | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* lavc: add text encoderClément Bœsch2015-12-211-1/+1
|
* avcodec: implement vp9 dxva2 hwaccelHendrik Leppkes2015-12-071-0/+2
|
* mmaldec: add vc1 decoding supportwm42015-11-071-0/+2
|
* XMA1 and XMA2 stereo decodersPaul B Mahol2015-11-061-0/+2
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec: add Interplay ACM decoderPaul B Mahol2015-11-031-0/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* Merge commit 'd35d0c723e3c8fc8cde76bf677f67928f5e179a8'Hendrik Leppkes2015-11-021-1/+0
|\ | | | | | | | | | | | | * commit 'd35d0c723e3c8fc8cde76bf677f67928f5e179a8': vdpau: remove dysfunctional H.263 support Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * vdpau: remove dysfunctional H.263 supportRémi Denis-Courmont2015-10-301-1/+0
| | | | | | | | | | | | The VDPAU API never explicitly supported H.263 in the first place. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec: add ADPCM AICA decoderPaul B Mahol2015-10-291-0/+1
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | Merge commit '533a6198505edd1379e1cd722852350ae4a85acc'Hendrik Leppkes2015-10-271-0/+1
|\ \ | |/ | | | | | | | | | | * commit '533a6198505edd1379e1cd722852350ae4a85acc': innoHeim/Rsupport Screen Capture Codec decoder Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * innoHeim/Rsupport Screen Capture Codec decoderVittorio Giovara2015-10-231-0/+1
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
| * kvazaar: Add libkvazaar HEVC encoderArttu Ylä-Outinen2015-10-231-0/+1
| | | | | | | | | | Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* | avcodec: add SDX2 DPCM decoderPaul B Mahol2015-10-261-0/+1
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | mmaldec: Add mpeg2 decoding supportJulian Scheel2015-10-221-0/+2
| | | | | | | | | | | | | | | | | | | | Register mmaldec as mpeg2 decoder. Supporting mpeg2 in mmaldec is just a matter of setting the correct MMAL_ENCODING on the input port. To ease the addition of further supported mmal codecs a macro is introduced to generate the decoder and decoder class structs. Signed-off-by: Julian Scheel <julian@jusst.de> Signed-off-by: wm4 <nfxjfg@googlemail.com>
* | avcodec: add ADPCM PSX decoderPaul B Mahol2015-10-161-0/+1
| | | | | | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* | Merge commit '00332e0a064dad866812de9162b009cbaba6f5df'Hendrik Leppkes2015-10-141-0/+1
|\ \ | |/ | | | | | | | | | | * commit '00332e0a064dad866812de9162b009cbaba6f5df': wrapped_avframe: Initial implementation Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * wrapped_avframe: Initial implementationLuca Barbato2015-10-101-0/+1
| |
* | avcodec: remove leftover iff_byterun1 decoderAndreas Cadhalpun2015-10-121-1/+0
| | | | | | | | | | | | | | | | | | | | | | It was merged with the iff_ilbm decoder in commit 929a24efff9a208a52748605eb412ffb915c1403. Define AV_CODEC_ID_IFF_BYTERUN1 as AV_CODEC_ID_IFF_ILBM for API compatibility. Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* | Merge commit '9a3202a98b2e095b54dd784c3e01a09a676fc3fa'Hendrik Leppkes2015-10-031-0/+1
|\ \ | |/ | | | | | | | | | | * commit '9a3202a98b2e095b54dd784c3e01a09a676fc3fa': Screenpresso SPV1 decoder Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * Screenpresso SPV1 decoderVittorio Giovara2015-09-301-0/+1
| | | | | | | | Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec: remove missing bits from deprecated VIMA decoderJames Almer2015-09-071-3/+0
| | | | | | | | Signed-off-by: James Almer <jamrial@gmail.com>
* | Merge commit 'c45fcf30cfab687004ed1cdc06ebaa21f4262a0b'Hendrik Leppkes2015-09-071-0/+1
|\ \ | |/ | | | | | | | | | | * commit 'c45fcf30cfab687004ed1cdc06ebaa21f4262a0b': DXV decoder Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * DXV decoderVittorio Giovara2015-09-021-0/+1
| | | | | | | | Support all DXDI and DXD3 normal quality videos.
* | vaapi: Add hevc hwaccel supportTimo Rothenpieler2015-08-271-0/+1
| | | | | | | | Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
* | lavc: move vdpau decoders under FF_API_VDPAU.wm42015-08-181-0/+10
| | | | | | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* | avcodec/g729: add g729_parserGanesh Ajjanagadde2015-08-111-0/+1
| | | | | | | | | | | | | | Add trivial g729 parser; fixes Ticket4753 Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec: add new Videotoolbox hwaccel.Sebastien Zwickert2015-08-031-0/+5
| |
* | Merge commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986'Michael Niedermayer2015-07-261-0/+2
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '41d47ea85fb4ad9cfb5c2dc808a46bc1d57f3986': lavc: add Intel libmfx-based HEVC decoder. Conflicts: Changelog configure libavcodec/Makefile libavcodec/allcodecs.c libavcodec/qsvdec.c libavcodec/qsvdec_h2645.c libavcodec/version.h Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: add Intel libmfx-based HEVC decoder.Anton Khirnov2015-07-251-0/+2
| |
* | Merge commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e'Michael Niedermayer2015-07-261-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | * commit 'bf52f773913cf74bdf0d2c8c2cb4473fa1b7801e': lavc: add Intel libmfx-based MPEG2 decoder. Conflicts: configure libavcodec/qsvdec_mpeg2.c Some cosmetics merged, rest is related to the removed parser code and thus not merged Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: add Intel libmfx-based MPEG2 decoder.Anton Khirnov2015-07-251-0/+2
| |
* | Merge commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741'Michael Niedermayer2015-07-261-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | * commit 'f89f78c1c563d98f10ee1d7e1ed67c9f9e03b741': lavc: add a HEVC mp4->annex B bitstream filter Conflicts: Changelog Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * lavc: add a HEVC mp4->annex B bitstream filterAnton Khirnov2015-07-251-0/+1
| |
* | avcodec: Add QSV VC-1 video decoder.Ivan Uskov2015-07-251-0/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec: Add QSV MPEG-2 video decoder.Ivan Uskov2015-07-251-0/+2
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | Merge commit 'e1319aa1c1be9b64117c19170344fb78841dd67c'Michael Niedermayer2015-07-171-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | * commit 'e1319aa1c1be9b64117c19170344fb78841dd67c': libx264: Add support for the MPEG2 encoder Conflicts: configure libavcodec/Makefile libavcodec/libx264.c Merged-by: Michael Niedermayer <michael@niedermayer.cc>
| * libx264: Add support for the MPEG2 encoderLuca Barbato2015-07-171-0/+1
| |
* | avcodec: add libkvazaar HECV encoderArttu Ylä-Outinen2015-07-141-0/+1
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec: Implementation of AAC_fixed_decoder (LC-module) [4/4]Jovan Zelincevic2015-07-091-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Build system modified There are several warnings occurring during build after this patch is applied. The cause of most of these warnings is in that some definitions needed here are logical part of sbr module and are added in later patches. When this patches are applied these warnings stop occurring. The only warning that is added here and is not fixed with later patches is warning that warns that type mismatch for table ff_aac_eld_window_480. The reason for this warning is in that ER AAC ELD 480 is not integrated in to the fixed point implementation at this moment and there is no fixed point version of this table. Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '66acb76bb0492b263215ca9b4d927a7be39ace02'Michael Niedermayer2015-07-091-0/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '66acb76bb0492b263215ca9b4d927a7be39ace02': lavc: add Intel libmfx-based HEVC encoder Conflicts: Changelog configure libavcodec/Makefile libavcodec/allcodecs.c libavcodec/qsv.c libavcodec/qsvenc.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
OpenPOWER on IntegriCloud