summaryrefslogtreecommitdiff
path: root/libavcodec/opus.h
Commit message (Collapse)AuthorAgeFilesLines
* lavu/mem: move the DECLARE_ALIGNED macro family to mem_internal on next+1 bumpAnton Khirnov2021-01-011-0/+1
| | | | They are not properly namespaced and not intended for public use.
* avcodec/opusdec: Move per-stream fields to OpusStreamContextAndreas Rheinhardt2020-12-311-12/+12
| | | | | | | | Besides being more natural it also avoids allocations for separate arrays of decoded samples/output buffers/.... Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/opus: make redundancy_buf 32 byte alignedJames Almer2019-04-021-1/+1
| | | | | | Fixes ff_opus_deemphasis_fma3 segmentation fault crashes on x86_32. Signed-off-by: James Almer <jamrial@gmail.com>
* opus: merge encoder and decoder bitallocation functions into oneRostislav Pehlivanov2017-12-301-0/+3
| | | | | | There's no difference apart from which entropy coding functions get called. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* opus_celt: deduplicate band quantization/dequantization functionRostislav Pehlivanov2017-12-041-0/+3
| | | | | | No point in having the same code twice to do exactly the same thing. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* opus: add an option to toggle intensity stereo phase inversionRostislav Pehlivanov2017-12-041-0/+2
| | | | | | | | | Due to a somewhat high volume of complains, phase inversion has been made optional with RFC8251. This allows for better bass frequency response when partially downmixing to play on systems with an LFE speaker. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* opus_celt: rename structures to better names and reorganize themRostislav Pehlivanov2017-02-141-14/+8
| | | | | | | | | | | | | | | | | | | | This is meant to be applied on top of my previous patch which split PVQ into celt_pvq.c and made opus_celt.h Essentially nothing has been changed other than renaming CeltFrame to CeltBlock (CeltFrame had absolutely nothing at all to do with a frame) and CeltContext to CeltFrame. 3 variables have been put in CeltFrame as they make more sense there rather than being passed around as arguments. The coefficients have been moved to the CeltBlock structure (why the hell were they in CeltContext and not in CeltFrame??). Now the encoder would be able to use the exact context the decoder uses (plus a couple of extra fields in there). FATE passes, no slowdowns, etc. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* opus_celt: move quantization and band decoding to opus_pvq.cRostislav Pehlivanov2017-02-141-10/+0
| | | | | | | | | | | | | | A huge amount can be reused by the encoder, as the only thing which needs to be done would be to add a 10 line celt_icwrsi, a wrapper around it (celt_alg_quant) and templating the ff_celt_decode_band to replace entropy decoding functions with entropy encoding. There is no performance loss but in fact a performance gain of around 6% which is caused by the compiler being able to optimize the decoding more efficiently. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* opus: remove redundant ff_celt_window2 declarationRostislav Pehlivanov2016-12-181-2/+0
| | | | Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* opus: move the entropy decoding functions to opus_rc.cRostislav Pehlivanov2016-11-081-221/+1
| | | | | | | The intention is to have both encoding and decoding functions in opus_rc.c. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* Merge commit '14e558024642638085ae2bbeffc6087612e6a3f9'Hendrik Leppkes2015-08-021-0/+10
|\ | | | | | | | | | | | | * commit '14e558024642638085ae2bbeffc6087612e6a3f9': opusdec: properly handle mismatching configurations in multichannel streams Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * opusdec: properly handle mismatching configurations in multichannel streamsAnton Khirnov2015-08-021-0/+10
| | | | | | | | | | | | | | The substreams can have different resampling delays, so an additional level of buffering is needed to synchronize them. Bug-Id: 876
| * mpegts: add support for OpusKieran Kunhya2014-12-201-0/+9
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avcodec: use av_mod_uintp2() where usefulJames Almer2015-04-211-1/+1
| | | | | | | | | | Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* | avcodec/opusdec: Use avpriv_float_dsp_alloc()Michael Niedermayer2014-12-031-1/+1
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec: Add support for Opus in MPEG-TSKieran Kunhya2014-10-261-0/+9
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/opus: Fix () in ROUND_MULL() macroMichael Niedermayer2014-05-251-1/+1
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | avcodec/opus: fix doxygen comments to be associated with the correct fieldsMichael Niedermayer2014-05-151-12/+12
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'd3f5b94762fb803c0f3b29f9ad6c5eaa813998ba'Michael Niedermayer2014-05-151-18/+0
|\ \ | |/ | | | | | | | | | | * commit 'd3f5b94762fb803c0f3b29f9ad6c5eaa813998ba': aarch64: opus NEON iMDCT and FFT Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aarch64: opus NEON iMDCT and FFTJanne Grunau2014-05-151-18/+0
| | | | | | | | | | Opus celt decoding 11% faster and the iMDCT over 2.5 times faster on Apple's A7.
* | avcodec/opusdec: switch to swresampleMichael Niedermayer2014-05-151-2/+2
| | | | | | | | | | | | | | This also fixes linking failures in doc/examples which where apparently caused by the linking order between avcodec and avresample Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'b70d7a4ac72d23f3448f3b08b770fdf5f57de222'Michael Niedermayer2014-05-151-4/+4
|/ | | | | | | | | | | | | | | | | * commit 'b70d7a4ac72d23f3448f3b08b770fdf5f57de222': lavc: add a native Opus decoder. Conflicts: Changelog configure libavcodec/version.h Fate tests pass with both avresample as well as swresample based opus decoder, but are disabled (reference files are very large so i want to think a day or 2 about if theres an alternative or if they could be avoided, they also dont match the official samples) Merged-by: Michael Niedermayer <michaelni@gmx.at>
* lavc: add a native Opus decoder.Anton Khirnov2014-05-151-0/+429
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>