Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-08-29aac: remove now-unused redundant arrayRostislav Pehlivanov
This commit removes the array which was made redundant with the last commit. The current prediction system gets the quantization error directly (and without the single-frame delay) in the search_for_pred function. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-29aacenc_pred: rework the way prediction is doneRostislav Pehlivanov
This commit completely alters the algorithm of prediction. The original commit which introduced prediction was completely incorrect to even remotely care about what the actual coefficients contain or whether any options were enabled. Not my actual fault. This commit treats prediction the way the decoder does and expects to do: like lossy encryption. Everything related to prediction now happens at the very end but just before quantization and encoding of coefficients. On the decoder side, prediction happens before anything has had a chance to even access the coefficients. Also the original implementation had problems because it actually touched the band_type of special bands which already had their scalefactor indices marked and it's a wonder the asserion wasn't triggered when transmitting those. Overall, this now drastically increases audio quality and you should think about enabling it if you don't plan on playing anything encoded on really old low power ultra-embedded devices since they might not support decoding of prediction or AAC-Main. Though the specifications were written ages ago and as times change so do the FLOPS. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21aacenc: implement the complete AAC-Main profileRostislav Pehlivanov
This commit finalizes AAC-Main profile encoding support by implementing all mandatory and optional tools available in the specifications and current decoders. The AAC-Main profile reqires that prediction support be present (although decoders don't require it to be enabled) for an encoder to be deemed capable of AAC-Main encoding, as well as TNS, PNS and IS, all of which were implemented with previous commits or earlier of this year. Users are encouraged to test the new functionality using either -profile:a aac_main or -aac_pred 1, the former of which will enable the prediction option by default and the latter will change the profile to AAC-Main. No other options shall be changed by enabling either, it's currently up to the users to decide what's best. The current implementation works best using M/S and/or IS, so users are also welcome to enable both options and any other options (TNS, PNS) for maximum quality. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21aacenc_tns: implement temporal noise shapingRostislav Pehlivanov
This commit implements temporal noise shaping support in the encoder, along with an -aac_tns option to toggle it on or off (off by default for now). TNS will increase audio quality and reduce quantization noise by applying a multitap FIR filter across allowed coefficients and transmit side information to the decoder so it could create an inverse filter. Users are encouraged to test the new functionality by enabling -aac_tns 1 during encoding. No major bugs are observable at this time so after a while if no new problems appear and if the current implementation is deemed of high enough quality and stability it will be enabled by default, possibly at the same time the encoder has its experimental flag removed and becomes the standard aac encoder in ffmpeg. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-08-21aaccoder: move the quantization functions to a separate fileRostislav Pehlivanov
This commit moves the quantizer to a separate header file. This allows the quantizer to be used from a separate files outside of aaccoder without having to put another function pointer and will result in a slight speedup as the compiler can do more optimizations. This is required for commits following. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2015-07-27AAC Encoder: clipping avoidanceClaudio Freire
Avoid clipping due to quantization noise to produce audible artifacts, by detecting near-clipping signals and both attenuating them a little and encoding escape-encoded bands (usually the loudest) rounding towards zero instead of nearest, which tends to decrease overall energy and thus clipping. Currently fate tests measure numerical error so this change makes tests using asynth (which are near clipping) report higher error not less, because of window attenuation. Yet, they sound better, not worse (albeit subtle, other samples aren't subtle at all). Only measuring psychoacoustically weighted error would make for a representative test, so that will be left for a future patch. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-20avcodec: Implementation of AAC_fixed_decoder (SBR-module)Djordje Pesut
Add fixed poind code. Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-09libavcodec: Implementation of AAC_fixed_decoder (LC-module) [3/4]Djordje Pesut
Add fixed point implementation Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-07-09libavcodec: Implementation of AAC_fixed_decoder (LC-module) [2/4]Jovan Zelincevic
Add fixed point implementation of functions for generating tables Signed-off-by: Nedeljko Babic <nedeljko.babic@imgtec.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-06-28aac: add additional fields needed by the encoder for intensity stereoRostislav Pehlivanov
This commit adds additional fields which are used by the native encoder to add intensity stereo support. It also adds some clarifying statements to the comments for the codebooks. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-14aacenc: Adjust the initial offset for PNS valuesRostislav Pehlivanov
This commit adjusts the intial offset for PNS values, introduced with commit f7f71b5795d708763eb0c55fe5e2cb051b2b69f4 earlier. This commit shifts the value in such a way that no further offsets are required in the aaccoder.c file. Earlier version of the PNS patch had 2 offsets in both the aaccoder and aacenc. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-13aacenc: Add support for Perceptual Noise Substitution energy valuesRostislav Pehlivanov
This commit implements support for writing the noise energy values used in PNS. The difference between regular scalefactors and noise energy values is that the latter require a small preamble (NOISE_PRE + energy_value_diff) to be written as the first noise-containing band. Any following noise energy values use the previous one to base their "diff" on. Ordinary scalefactors remain unchanged other than that they ignore the noise values. This commit should not change anything by itself, the following commits will bring it in use. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-03AAC: Fix M/S stereo encodingClaudio Freire
This patch fixes a pointer arithmetic bug in adjust_frame_information that resulted in heavily corrupted audio when using M/S encoding. Also, a backup copy of untransformed coefficients has to be kept around or attempts at re-processing the frame (which happens when hevavily overspending bits during transients) will result in re-encoding of the coefficients and subsequent corruption of the resulting stream. A/B testing shows the bug as corrected, but still cannot prove that M/S coding is a win at least in numbers. Limited listening tests do show improvement on M/S encoded samples in lower bitrates, but they're hidden among the other artifacts that remain to be corrected in the encoder. Some of the regressions flagged in the report do show poor stereo image (but not buggy), so M/S encoding is clearly not good enough yet to be defaulted to auto. In numbers, Patched against Unpatched, stereo_mode auto: Files: 114 Bitrates: 6 Tests: 683 Serious Regressions: 0 (0%) Regressions: 0 (0%) Improvements: 227 (33%) Big improvements: 92 (13%) Worst regression - mybloodrusts.wv - 256k - StdDev: 28.61 pSNR: -0.43 maxdiff: 1372.00 Best improvement - 60.wv - 384k - StdDev: -369.57 pSNR: 45.02 maxdiff: -13322.00 Average - StdDev: -80.56 pSNR: 2.49 maxdiff: -8858.00 Patched against Unpatched stereo_mode ms_off shows no difference. Patched stereo_mode auto vs Unpatched stereo_mode ms_off shows a small average improvement, just not too significant: Serious Regressions: 0 (0%) Regressions: 10 (1%) Improvements: 45 (6%) Big improvements: 2 (0%) Worst regression - Illinois.wv - 256k - StdDev: 33.20 pSNR: -2.03 maxdiff: 477.00 Best improvement - song_of_circomstances.flac - 384k - StdDev: -3.97 pSNR: 7.61 maxdiff: -826.00 Average - StdDev: -10.25 pSNR: 0.20 maxdiff: -281.00 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-01Merge commit 'ee964145b5d229571e00bf6883a44189d02babe2'Michael Niedermayer
* commit 'ee964145b5d229571e00bf6883a44189d02babe2': lavc: remove unused traces of fmtconvert usage Conflicts: libavcodec/aac.h libavcodec/aacdec.c libavcodec/atrac3.c libavcodec/vorbisdec.c libavcodec/wma.c libavcodec/wma.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-28lavc: remove unused traces of fmtconvert usageAnton Khirnov
Those decoders have been switched to float output and so do not use fmtconvert anymore.
2015-02-04Merge commit 'd615187f74ddf3413778a8b5b7ae17255b0df88e'Michael Niedermayer
* commit 'd615187f74ddf3413778a8b5b7ae17255b0df88e': aacdec: Support for ER AAC ELD 480. Conflicts: libavcodec/aacdec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-04aacdec: Support for ER AAC ELD 480.Alex Converse
Based in part on work from Niel van der Westhuizen <espes@pequalsnp.com>.
2014-12-02avcodec/aacdec: Use avpriv_float_dsp_alloc()Michael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-09avcodec/aacdec: Skip processing channel elements which have not been presentMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-24avcodec/aacdec: warn user when remapping streams.Benoit Fouet
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-05-25avcodec/aac: fix () in IS_CODEBOOK_UNSIGNED macroMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-23Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: aac: Add support for Enhanced AAC Low Delay (ER AAC ELD). Conflicts: Changelog libavcodec/aacdec.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-23aac: Add support for Enhanced AAC Low Delay (ER AAC ELD).Alex Converse
This does not include support for LD SBR, epTool, data resilience, nor the 960 transform family.
2013-09-19Merge commit '1914e6f010b3320025c7b692aaea51d9b9a992a8'Michael Niedermayer
* commit '1914e6f010b3320025c7b692aaea51d9b9a992a8': aacdec: Add support for LD (Low Delay) AAC Conflicts: Changelog libavcodec/aacdec.c libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-18aacdec: Add support for LD (Low Delay) AACAlex Converse
2013-07-26Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: miscellaneous typo fixes Conflicts: configure libavformat/avisynth.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-25miscellaneous typo fixesDiego Biurrun
2013-03-08Revert "aacdec: Reconfigure output as needed, disable ↵Michael Niedermayer
pop_output_configuration()" This reverts commit 60dbf2eff92f8aa4683b6dcaba9e694890258ade. This is not needed anymore, Ticket 1694 has been fixed differently
2013-03-07aacdec: Reconfigure output as needed, disable pop_output_configuration()Michael Niedermayer
Fixes Ticket1694 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26Merge commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f'Michael Niedermayer
* commit 'c242bbd8b6939507a1a6fb64101b0553d92d303f': Remove unnecessary dsputil.h #includes Conflicts: libavcodec/ffv1.c libavcodec/h261dec.c libavcodec/h261enc.c libavcodec/h264pred.c libavcodec/lpc.h libavcodec/mjpegdec.c libavcodec/rectangle.h libavcodec/x86/idct_sse2_xvid.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-26Remove unnecessary dsputil.h #includesDiego Biurrun
2013-02-22mips: optimization for float aac decoder (sbr module)Mirjana Vulin
Signed-off-by: Mirjana Vulin <mvulin@mips.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-13Merge commit 'e57daa876bf0cf50782550e366e589441cd8c2bd'Michael Niedermayer
* commit 'e57daa876bf0cf50782550e366e589441cd8c2bd': adpcm: decode directly to the user-provided AVFrame ac3: decode directly to the user-provided AVFrame aac: decode directly to the user-provided AVFrame 8svx: decode directly to the user-provided AVFrame Conflicts: libavcodec/8svx.c libavcodec/ac3dec.c libavcodec/adpcm.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-02-12aac: decode directly to the user-provided AVFrameJustin Ruggles
2013-01-31mips: optimization for float aac decoder (core module)Mirjana Vulin
Signed-off-by: Mirjana Vulin <mvulin@mips.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-23Merge commit '73b704ac609d83e0be124589f24efd9b94947cf9'Michael Niedermayer
* commit '73b704ac609d83e0be124589f24efd9b94947cf9': arm: Add some missing header #includes floatdsp: move scalarproduct_float from dsputil to avfloatdsp. Conflicts: libavcodec/acelp_pitch_delay.c libavcodec/amrnbdec.c libavcodec/amrwbdec.c libavcodec/ra288.c libavcodec/x86/dsputil_mmx.c libavutil/x86/float_dsp.asm Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-01-22floatdsp: move scalarproduct_float from dsputil to avfloatdsp.Ronald S. Bultje
This makes the aac decoder and all voice codecs independent of dsputil.
2012-12-30aacdec: make dual mono mode selectable through AVOptions too.Michael Niedermayer
Based on patch by Akihiro Tsukada Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-12-30aacdec: simplify dmonoMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26Merge commit '3d3cf6745e2a5dc9c377244454c3186d75b177fa'Michael Niedermayer
* commit '3d3cf6745e2a5dc9c377244454c3186d75b177fa': aacdec: use float planar sample format for output Conflicts: libavcodec/aacdec.c libavcodec/aacsbr.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-11-26aacdec: use float planar sample format for outputJustin Ruggles
2012-10-19Merge commit '1cd432e167b1a80853760c89a33606e2b5f229c2'Michael Niedermayer
* commit '1cd432e167b1a80853760c89a33606e2b5f229c2': configure: fix libcdio check rtsp: Allow setting the reordering buffer size via an AVOption rtsp: Vertically align a constant definition rtp: Update the check for distinguishing between RTP and RTCP aac: fix build with hardcoded tables fate: dependencies for screen codec tests riff: Move functions around to be covered by appropriate #ifdefs Conflicts: configure tests/fate/screen.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-18aac: fix build with hardcoded tablesMans Rullgard
aac_tablegen.h includes aac.h for the POW_SF2_ZERO definition, but this also pulls in a raft of other headers, some of which are not safe to use in code built with the host compiler. Moving POW_SF2_ZERO to aac_tablegen_decl.h, where the declaration of the array it relates to already resides, fixes the problems. Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-10-06Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: yuv4mpeg: return proper error codes. Give all anonymously typedeffed structs in headers a name fate: Add parseutils test parseutils-test: Drop random colors from parsing test vf_pad/scale: use double precision for aspect ratios. build: error on variable-length arrays ppc: swscale: rework yuv2planeX_altivec() ppc: fmtconvert: kill VLA in float_to_int16_interleave_altivec() x86: dsputil: kill VLA in gmc_mmx() libspeexenc: Updated commentary to reflect recent changes libspeexenc: Add an option for enabling DTX doc/APIchanges: fill in missing dates and hashes. lavr: bump major to 1 and declare it stable. lavr: change the type of the data buffers to uint8_t**. lavc: deprecate the audio resampling API. Conflicts: cmdutils.h configure doc/APIchanges ffplay.c libavcodec/dwt.h libavcodec/libspeexenc.c libavfilter/vf_pad.c libavfilter/vf_scale.c libavformat/asf.h tests/fate/libavutil.mak tests/ref/fate/parseutils Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-10-06Give all anonymously typedeffed structs in headers a nameDiego Biurrun
Anonymous structs cannot be forward declared and have no benefit.
2012-09-15aacdec: add support for dual mono in Japanese DTVAkihiro Tsukada
Japanese DTV uses some non standard extensions in AAC audio. One example is 'dual mono', which combines two independent audio into one stereo stream, storing them in left and right channels respectively. Historically, dual mono audio has been used for multi-lingual audio, one for local/native language, and another for english, and usually the "main" (local language) channel should be output without any user interactions. The frames of those dual mono audio are allowed to set ADTS channel_config field to 0, and just contain two SCE's *WITHOUT* PCE, which is a non standard extension by Japanese DTV standard. (ref. ARIB STD-B32 PartII 5.2.3) This patch adds an AVPacket side data, AV_PKT_DATA_JP_DUALMONO, which indicates that the AVPacket is likely to contain an audio frame with the above dual mono extension, and has the parameter to specify the desired channel selection in that case. It also makes aacdec to detect dual mono and output just the desired channel when this side data is attached. Signed-off-by: Akihiro Tsukada <atsukada@users.sourceforge.net> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-09Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: float_dsp: ppc: add a separate header for Altivec function prototypes ARM: fix float_dsp breakage from d5a7229 Add a float DSP framework to libavutil PPC: Move types_altivec.h and util_altivec.h from libavcodec to libavutil ARM: Move asm.S from libavcodec to libavutil vc1dsp: mark put/avg_vc1_mspel_mc() always_inline Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-06-08Add a float DSP framework to libavutilJustin Ruggles
Move vector_fmul() from DSPContext to AVFloatDSPContext.
2012-04-18Merge remote-tracking branch 'qatar/master'Michael Niedermayer
* qatar/master: aacenc: Fix issues with huge values of bit_rate. dv_tablegen: Drop unnecessary av_unused attribute from dv_vlc_map_tableinit(). proresenc: multithreaded quantiser search riff: use bps instead of bits_per_coded_sample in the WAVEFORMATEXTENSIBLE header avconv: only set the "channels" option when it exists for the specified input format avplay: update get_buffer to be inline with avconv aacdec: More robust output configuration. faac: Fix multi-channel ordering faac: Add .channel_layouts rtmp: Support 'rtmp_playpath', an option which overrides the stream identifier rtmp: Support 'rtmp_app', an option which overrides the name of application avutil: add better documentation for AVSampleFormat Conflicts: libavcodec/aac.h libavcodec/aacdec.c libavcodec/aacenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-17aacdec: More robust output configuration.Alex Converse
Save the old output configuration (if it has been used successfully) when trying a new configuration. If the new configuration fails to decode, restore the last successful configuration.