summaryrefslogtreecommitdiff
path: root/libavcodec/aaccoder.c
Commit message (Collapse)AuthorAge
* aaccoder: use put_sbits()James Almer2015-04-18
| | | | | Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: James Almer <jamrial@gmail.com>
* aaccoder: Implement Perceptual Noise Substitution for AACRostislav Pehlivanov2015-04-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements the perceptual noise substitution AAC extension. This is a proof of concept implementation, and as such, is not enabled by default. This is the fourth revision of this patch, made after some problems were noted out. Any changes made since the previous revisions have been indicated. In order to extend the encoder to use an additional codebook, the array holding each codebook has been modified with two additional entries - 13 for the NOISE_BT codebook and 12 which has a placeholder function. The cost system was modified to skip the 12th entry using an array to map the input and outputs it has. It also does not accept using the 13th codebook for any band which is not marked as containing noise, thereby restricting its ability to arbitrarily choose it for bands. The use of arrays allows the system to be easily extended to allow for intensity stereo encoding, which uses additional codebooks. The 12th entry in the codebook function array points to a function which stops the execution of the program by calling an assert with an always 'false' argument. It was pointed out in an email discussion with Claudio Freire that having a 'NULL' entry can result in unexpected behaviour and could be used as a security hole. There is no danger of this function being called during encoding due to the codebook maps introduced. Another change from version 1 of the patch is the addition of an argument to the encoder, '-aac_pns' to enable and disable the PNS. This currently defaults to disable the PNS, as it is experimental. The switch will be removed in the future, when the algorithm to select noise bands has been improved. The current algorithm simply compares the energy to the threshold (multiplied by a constant) to determine noise, however the FFPsyBand structure contains other useful figures to determine which bands carry noise more accurately. Some of the sample files provided triggered an assertion when the parameter to tune the threshold was set to a value of '2.2'. Claudio Freire reported the problem's source could be in the range of the scalefactor indices for noise and advised to measure the minimal index and clip anything above the maximum allowed value. This has been implemented and all the files which used to trigger the asserion now encode without error. The third revision of the problem also removes unneded variabes and comparisons. All of them were redundant and were of little use for when the PNS implementation would be extended. The fourth revision moved the clipping of the noise scalefactors outside the second loop of the two-loop algorithm in order to prevent their redundant calculations. Also, freq_mult has been changed to a float variable due to the fact that rounding errors can prove to be a problem at low frequencies. Considerations were taken whether the entire expression could be evaluated inside the expression , but in the end it was decided that it would be for the best if just the type of the variable were to change. Claudio Freire reported the two problems. There is no change of functionality (except for low sampling frequencies) so the spectral demonstrations at the end of this commit's message were not updated. Finally, the way energy values are converted to scalefactor indices has changed since the first commit, as per the suggestion of Claudio Freire. This may still have some drawbacks, but unlike the first commit it works without having redundant offsets and outputs what the decoder expects to have, in terms of the ranges of the scalefactor indices. Some spectral comparisons: https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/Original.png (original), https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS_NO.png (encoded without PNS), https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS1.2.png (encoded with PNS, const = 1.2), https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/Difference1.png (spectral difference). The constant is the value which multiplies the threshold when it gets compared to the energy, larger values means more noise will be substituded by PNS values. Example when const = 2.2: https://trac.ffmpeg.org/attachment/wiki/Encode/AAC/PNS_2.2.png Reviewed-by: Claudio Freire <klaussfreire@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* AAC: Fix M/S stereo encodingClaudio Freire2015-03-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Merge commit '9abc80f1ed673141326341e26a05c3e1f78576d0'Michael Niedermayer2015-02-21
|\ | | | | | | | | | | | | | | | | | | * commit '9abc80f1ed673141326341e26a05c3e1f78576d0': libavcodec: Make use of av_clip functions Conflicts: libavcodec/takdec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * libavcodec: Make use of av_clip functionsPeter Meerwald2015-02-21
| | | | | | | | | | Signed-off-by: Peter Meerwald <pmeerw@pmeerw.net> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
| * aacenc: Fix target bitrate for twoloop quantiser searchClaudio Freire2013-05-14
| | | | | | | | | | | | | | This fixes a case where multichannel bitrate isn't accurately targetted by psy model alone, never achieving the target bitrate. Signed-off-by: Martin Storsjö <martin@martin.st>
* | Add missing "const" all over the place.Reimar Döffinger2014-08-29
| | | | | | | | | | | | Only "./configure --enable-gpl" on x86 was tested. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* | aaccoder: remove unused assignmentTimothy Gu2014-07-16
| | | | | | | | | | Signed-off-by: Timothy Gu <timothygu99@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | aacenc: add AAC_CODER_(FAAC|ANMR|etc.) macrosTimothy Gu2013-09-12
| | | | | | | | | | Signed-off-by: Timothy Gu <timothygu99@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | AAC encoder: Fix rate control on twoloop.Claudio Freire2013-05-05
| | | | | | | | | | | | | | | | Fixes a case where multichannel bitrate isn't accurately targetted by psy model alone, never achieving the target bitrate. Now fixed. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-10-01
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: avcodec: Convert some commented-out printf/av_log instances to av_dlog avcodec: Drop silly and/or broken printf debug output avcodec: Drop some silly commented-out av_log() invocations avformat: Convert some commented-out printf/av_log instances to av_dlog avformat: Remove non-compiling and/or silly commented-out printf/av_log statements Remove some silly disabled code. ac3dec: ensure get_buffer() gets a buffer for the correct number of channels Conflicts: libavcodec/dnxhddec.c libavcodec/ffv1.c libavcodec/h264.c libavcodec/h264_parser.c libavcodec/mjpegdec.c libavcodec/motion_est_template.c libavcodec/mpegaudiodec.c libavcodec/mpegvideo_enc.c libavcodec/put_bits.h libavcodec/ratecontrol.c libavcodec/wmaenc.c libavdevice/timefilter.c libavformat/asfdec.c libavformat/avidec.c libavformat/avienc.c libavformat/flvenc.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avcodec: Drop some silly commented-out av_log() invocationsDiego Biurrun2012-10-01
| |
| * aacenc: Fix issues with huge values of bit_rate.Reimar Döffinger2012-04-17
| | | | | | | | | | | | | | | | | | | | Do not pointlessly call ff_alloc_packet multiple times, and fix an infinite loop by clamping the maximum number of bits to target in the algorithm that does not use lambda. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de> Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* | aaccoder: switch to av_assertMichael Niedermayer2012-09-04
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | search_for_quantizers_faac: fix curbandMichael Niedermayer2012-06-06
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | aacenc: Fix issues with huge values of bit_rate.Reimar Döffinger2012-04-07
| | | | | | | | | | | | | | | | | | Do not pointlessly call ff_alloc_packet2 multiple times, and fix an infinite loop by clamping the maximum number of bits to target in the algorithm that does not use lambda. Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-03-29
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: asf: only set index_read if the index contained entries. cabac: add overread protection to BRANCHLESS_GET_CABAC(). cabac: increment jump locations by one in callers of BRANCHLESS_GET_CABAC(). cabac: remove unused argument from BRANCHLESS_GET_CABAC_UPDATE(). cabac: use struct+offset instead of memory operand in BRANCHLESS_GET_CABAC(). h264: add overread protection to get_cabac_bypass_sign_x86(). h264: reindent get_cabac_bypass_sign_x86(). h264: use struct offsets in get_cabac_bypass_sign_x86(). h264: fix overreads in cabac reader. wmall: fix seeking. lagarith: fix buffer overreads. dvdec: drop unnecessary dv_tablegen.h #include build: fix doc generation errors in parallel builds Replace memset(0) by zero initializations. faandct: Remove FAAN_POSTSCALE define and related code. dvenc: print allowed profiles if the video doesn't conform to any of them. avcodec_encode_{audio,video}: only reallocate output packet when it has non-zero size. FATE: add a test for vp8 with changing frame size. fate: add kgv1 fate test. oggdec: calculate correct timestamps in Ogg/FLAC Conflicts: libavcodec/4xm.c libavcodec/cook.c libavcodec/dvdata.c libavcodec/dvdsubdec.c libavcodec/lagarith.c libavcodec/lagarithrac.c libavcodec/utils.c tests/fate/video.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Replace memset(0) by zero initializations.Diego Biurrun2012-03-28
| | | | | | | | Also remove one pointless zero initialization in rangecoder.c.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-01-24
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: Remove ffmpeg. aacenc: Simplify windowing aacenc: Move saved overlap samples to the beginning of the same buffer as incoming samples. aacenc: Deinterleave input samples before processing. aacenc: Store channel count in AACEncContext. aacenc: Move Q^3/4 calculation to it's own table aacenc: Request normalized float samples instead of converting s16 samples to float. aacpsy: Replace an if with FFMAX in LAME windowing. aacenc: cosmetics, replace 'rd' with 'bits' in codebook_trellis_rate to make it more clear what is being calculated. aacpsy: cosmetics, change a FIXME to a NOTE about subshort comparisons aacenc: cosmetics: move init() and end() to the bottom of the file. aacenc: aac_encode_init() cleanup XWD encoder and decoder vc1: don't read the interpfrm and bfraction elements for interlaced frames mxfdec: fix memleak on mxf_read_close() westwood: split the AUD and VQA demuxers into separate files. Conflicts: .gitignore Changelog Makefile configure doc/ffmpeg.texi ffmpeg.c libavcodec/Makefile libavcodec/aacenc.c libavcodec/allcodecs.c libavcodec/avcodec.h libavcodec/version.h libavformat/Makefile libavformat/img2.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aacenc: Move Q^3/4 calculation to it's own tableNathan Caldwell2012-01-23
| | | | | | | | | | | | This should be moved to tablegen at some point. Signed-off-by: Alex Converse <alex.converse@gmail.com>
| * aacenc: cosmetics, replace 'rd' with 'bits' in codebook_trellis_rate to make ↵Nathan Caldwell2012-01-23
| | | | | | | | | | | | it more clear what is being calculated. Signed-off-by: Alex Converse <alex.converse@gmail.com>
* | aacenc: add AAC_CODER_NBMichael Niedermayer2011-11-27
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-11-23
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (22 commits) aacdec: Fix PS in ADTS. avconv: Consistently use PIX_FMT_NONE. dsputil: use cpuflags in x86 emu_edge_core dsputil: use movups instead of movdqu in ff_emu_edge_core_sse() wma: initialize prev_block_len_bits, next_block_len_bits, and block_len_bits. mov: Remove some redundant and obsolete comments. Add libavutil/mathematics.h #includes for INFINITY doxy: structure libavformat groups doxy: introduce an empty structure in libavcodec doxy: provide a start page and document libavutil doxy: cleanup pixfmt.h regtest: split video encode/decode tests into individual targets ARM: add explicit .arch and .fpu directives to asm.S pthread: do not touch has_b_frames avconv: cleanup the transcoding loop in output_packet(). avconv: split subtitle transcoding out of output_packet(). avconv: split video transcoding out of output_packet(). avconv: split audio transcoding out of output_packet(). avconv: reindent. avconv: move streamcopy-only code out of decoding loop. ... Conflicts: avconv.c libavcodec/aaccoder.c libavcodec/pthread.c libavcodec/version.h libavutil/audioconvert.h libavutil/avutil.h libavutil/mem.h tests/ref/vsynth1/dv tests/ref/vsynth1/mpeg2thread tests/ref/vsynth2/dv tests/ref/vsynth2/mpeg2thread Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Add libavutil/mathematics.h #includes for INFINITYMans Rullgard2011-11-22
| | | | | | | | | | | | This fixes build errors in some environments. Signed-off-by: Mans Rullgard <mans@mansr.com>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-06-30
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: rational-test: Add proper main() declaration to fix gcc warnings. configure: Add vdpau and dxva2 to configure results output. Remove unused, never built libavutil/pca.[ch] matroskadec: forward parsing errors to caller. av_find_stream_info: simplify EAGAIN handling. aacenc: Fix determination of Mid/Side Mode. psymodel: Remove the single channel analysis function aacenc: Implement dummy channel group analysis that just calls the single channel analysis for each channel. psymodel: Add channels and channel groups to the psymodel. ARM: remove check for PLD instruction fate: move amr[nw]b test rules into separate files ogg: fix double free when finding length of small chained oggs. swscale: implement >8bit scaling support. build: fix creation of tools dir with make 3.81 build: Mark all-yes Makefile target as phony. pixfmt: fix YUV422/444 wrong endian comment build: create output directories as needed Add new yuv444 pixfmts to avcodec_align_dimensions2 Conflicts: Makefile configure libavutil/pca.c libavutil/pca.h libavutil/pixfmt.h libswscale/swscale.c libswscale/utils.c libswscale/x86/swscale_template.c tests/ref/lavfi/pixdesc tests/ref/lavfi/pixfmts_copy tests/ref/lavfi/pixfmts_null tests/ref/lavfi/pixfmts_scale tests/ref/lavfi/pixfmts_vflip Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * psymodel: Add channels and channel groups to the psymodel.Nathan Caldwell2011-06-29
| |
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-06-29
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (21 commits) swscale: Add Doxygen for hyscale_fast/hScale. fate: enable lavfi-pixmt tests on big endian systems PPC: swscale: disable altivec functions for unsupported formats fate: merge identical pixdesc_be/le tests swscale: Add Doxygen for yuv2planar*/yuv2packed* functions. build: call texi2pod.pl with full path instead of symlink build: include sub-makefiles using full path instead of symlinks swscale: update big endian reference values after dff5a835. wavpack: skip blocks with no samples cosmetics: remove outdated comment that is no longer true build: replace some addprefix/addsuffix with substitution refs avutil: Remove unused arbitrary precision integer code. configure: Drop check for availability of ten assembler operands. aacenc: Save channel configuration for later use. aacenc: Fix codebook trellising for zeroed bands. swscale: change prototypes of scaled YUV output functions. swscale: re-add support for non-native endianness. swscale: disentangle yuv2rgbX_c_full() into small functions. swscale: split yuv2packed[12X]_c() remainders into small functions. swscale: split yuv2packedX_altivec in smaller functions. ... Conflicts: Makefile configure libavcodec/x86/dsputil_mmx.c libavfilter/Makefile libavformat/Makefile libavutil/integer.c libavutil/integer.h libswscale/swscale.c libswscale/swscale_internal.h libswscale/x86/swscale_template.c tests/ref/lavfi/pixdesc_le tests/ref/lavfi/pixfmts_scale Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aacenc: Fix codebook trellising for zeroed bands.Alex Converse2011-06-27
| | | | | | | | | | Choose band type (codebook) zero, count its bits, and mark the other states as unnavigable.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-06-03
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (25 commits) Replace custom DEBUG preprocessor trickery by the standard one. vorbis: Remove non-compiling debug statement. vorbis: Remove pointless DEBUG #ifdef around debug output macros. cook: Remove non-compiling debug output. Remove pointless #ifdefs around function declarations in a header. Replace #ifdef + av_log() combinations by av_dlog(). Replace custom debug output functions by av_dlog(). cook: Remove unused debug functions. Remove stray extra arguments from av_dlog() invocations. targa: fix big-endian build v4l2: remove one forgotten use of AVFormatParameters.pix_fmt. vfwcap: add a framerate private option. v4l2: add a framerate private option. libdc1394: add a framerate private option. fbdev: add a framerate private option. bktr: add a framerate private option. oma: check avio_read() return value nutdec: remove unused variable Remove unused variables swscale: allocate larger buffer to handle altivec overreads. ... Conflicts: ffmpeg.c libavcodec/dca.c libavcodec/dirac.c libavcodec/error_resilience.c libavcodec/h264.c libavcodec/mpeg12.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/mpegvideo_enc.c libavcodec/pthread.c libavcodec/rv10.c libavcodec/s302m.c libavcodec/shorten.c libavcodec/truemotion2.c libavcodec/utils.c libavdevice/dv1394.c libavdevice/fbdev.c libavdevice/libdc1394.c libavdevice/v4l2.c libavformat/4xm.c libavformat/apetag.c libavformat/asfdec.c libavformat/avidec.c libavformat/mmf.c libavformat/mpeg.c libavformat/mpegenc.c libavformat/mpegts.c libavformat/oggdec.c libavformat/oggparseogm.c libavformat/rl2.c libavformat/rmdec.c libavformat/rpl.c libavformat/rtpdec_latm.c libavformat/sauce.c libavformat/sol.c libswscale/utils.c tests/ref/vsynth1/error tests/ref/vsynth2/error Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Remove unused variablesMans Rullgard2011-06-02
| |
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-05-12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (32 commits) 10-bit H.264 x86 chroma v loopfilter asm Port SMPTE S302M audio decoder from FFmbc 0.3. [Copyright headers corrected] Fix crash of interlaced MPEG2 decoding h264pred: fix one more aliasing violation. doc/APIchanges: fill in missing hashes and dates. flacenc: use proper initializers for AVOption default values. lavc: deprecate named constants for deprecated antialias_algo. aac: workaround for compilation on cygwin swscale: extend YUV422p support to 10bits depth tiff: add support for inverted FillOrder for uncompressed data Remove unused softfloat implementation. h264pred: fix aliasing violations. rotozoom: Eliminate French variable name. rotozoom: Check return value of fread(). rotozoom: Return an error value instead of calling exit(). rotozoom: Make init_demo() return int and check for errors on invocation. rotozoom: Drop silly UINT8 typedef. rotozoom: Drop some unnecessary parentheses. rotozoom: K&R coding style cosmetics rtsp: Only do keepalive using GET_PARAMETER if the server supports it ... Conflicts: Changelog cmdutils.c doc/APIchanges doc/general.texi ffmpeg.c ffplay.c libavcodec/h264pred_template.c libavcodec/resample.c libavutil/pixfmt.h libavutil/softfloat.c libavutil/softfloat.h tests/rotozoom.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aac: workaround for compilation on cygwinReinhard Tartler2011-05-11
| | | | | | | | | | | | | | | | | | On cygwin, math.h needs to be included before float.h because of a bug in the system headers. Including libavutil/libm.h first works around this issue. Longer discussion of the topic: http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/128582
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-28
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: vorbisdec: Rename silly "class_" variable to plain "class". simple_idct_alpha: Drop some useless casts. Simplify av_log_missing_feature(). ac3enc: remove check for mismatching channels and channel_layout If AVCodecContext.channels is 0 and AVCodecContext.channel_layout is non-zero, set channels based on channel_layout. If AVCodecContext.channel_layout and AVCodecContext.channels are both non-zero, check to make sure they do not contradict eachother. cosmetics: indentation Check AVCodec.supported_samplerates and AVCodec.channel_layouts in avcodec_open(). aacdec: remove sf_scale and sf_offset. aacdec: use a scale of 2 in the LTP MDCT rather than doubling the coefficient table values from the spec. Define POW_SF2_ZERO in aac.h and use for ff_aac_pow2sf_tabp[] offsets instead of hardcoding 200 everywhere. Large intensity stereo and PNS indices are legal. Clip them instead of erroring out. A magnitude of 100 corresponds to 2^25 so the will most likely result in clipped output anyway. qpeg: use reget_buffer() in decode_frame() ultimotion: use reget_buffer() in ulti_decode_frame() smacker: remove unnecessary call to avctx->release_buffer in decode_frame() avparser: don't av_malloc(0). Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * Define POW_SF2_ZERO in aac.h and use for ff_aac_pow2sf_tabp[] offsets insteadAlex Converse2011-04-27
| | | | | | | | of hardcoding 200 everywhere.
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (23 commits) ac3enc: correct the flipped sign in the ac3_fixed encoder Eliminate pointless '#if 1' statements without matching '#else'. Add AVX FFT implementation. Increase alignment of av_malloc() as needed by AVX ASM. Update x86inc.asm from x264 to allow AVX emulation using SSE and MMX. mjpeg: Detect overreads in mjpeg_decode_scan() and error out. documentation: extend documentation for ffmpeg -aspect option APIChanges: update commit hashes for recent additions. lavc: deprecate FF_*_TYPE macros in favor of AV_PICTURE_TYPE_* enums aac: add headers needed for log2f() lavc: remove FF_API_MB_Q cruft lavc: remove FF_API_RATE_EMU cruft lavc: remove FF_API_HURRY_UP cruft pad: make the filter parametric vsrc_movie: add key_frame and pict_type. vsrc_movie: fix leak in request_frame() lavfi: add key_frame and pict_type to AVFilterBufferRefVideo. vsrc_buffer: add sample_aspect_ratio fields to arguments. lavfi: add fieldorder filter scale: make the filter parametric ... Conflicts: Changelog doc/filters.texi ffmpeg.c libavcodec/ac3dec.h libavcodec/dsputil.c libavfilter/avfilter.h libavfilter/vf_scale.c libavfilter/vf_yadif.c libavfilter/vsrc_buffer.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aac: add headers needed for log2f()Michael Niedermayer2011-04-26
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | aac: add math.h needed for log2f()Michael Niedermayer2011-04-23
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-04-05
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (22 commits) ac3enc: move extract_exponents inner loop to ac3dsp avio: deprecate url_get_filename(). avio: deprecate url_max_packet_size(). avio: make url_get_file_handle() internal. avio: make url_filesize() internal. avio: make url_close() internal. avio: make url_seek() internal. avio: cosmetics, move AVSEEK_SIZE/FORCE declarations together avio: make url_write() internal. avio: make url_read_complete() internal. avio: make url_read() internal. avio: make url_open() internal. avio: make url_connect internal. avio: make url_alloc internal. applehttp: Merge two for loops applehttp: Restructure the demuxer to use a custom AVIOContext applehttp: Move finished and target_duration to the variant struct aacenc: reduce the number of loop index variables avio: deprecate url_open_protocol avio: deprecate url_poll and URLPollEntry ... Conflicts: libavformat/applehttp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aacenc: reduce the number of loop index variablesYoung Han Lee2011-04-04
| | | | | | | | Signed-off-by: Janne Grunau <janne-libav@jannau.net>
* | Merge remote-tracking branch 'newdev/master'Michael Niedermayer2011-03-26
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * newdev/master: mov: set audio service type for AC-3 from bitstream mode in the 'dac3' atom. Get audio_service_type for AC-3 based on bitstream mode in the AC-3 parser and decoder, and vice-versa for the AC-3 encoder. Use audio_service_type to set stream disposition. Add APIchanges entry for audio_service_type. Add audio_service_type field to AVCodecContext for encoding and reporting of the service type in the audio bitstream. configure: in check_ld, place new -l flags before existing ones support @heading, @subheading, @subsubheading, and @subsubsection in texi2pod.pl doc: update build system documentation aacenc: indentation aacenc: fix the side calculation in search_for_ms vp8.c: rename EDGE_* to VP8_EDGE_*. Conflicts: doc/APIchanges libavcodec/avcodec.h libavcodec/version.h libavcodec/vp8.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * aacenc: indentationYoung Han Lee2011-03-24
| |
| * aacenc: fix the side calculation in search_for_msYoung Han Lee2011-03-24
| |
| * Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
|/ | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* aacenc: cosmetics, indentation, and comment clarificationNathan Caldwell2011-03-16
| | | | | Correct bad indentation in aaccoder Clarify and correct comments in 3GPP psymodel, other cosmetics.
* aaccoder: Change FFMAX for allzero flag to OR bit operationYoung Han Lee2011-03-16
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* aacenc: TLS: Save maximum values for each swb in a table.Alex Converse2010-07-24
| | | | | | This gives an almost 20% speedup. Originally committed as revision 24484 to svn://svn.ffmpeg.org/ffmpeg/trunk
* 10l: Remove some commented out code that slipped in.Alex Converse2010-07-24
| | | | Originally committed as revision 24483 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: TLS: Try to preserve some energy in each non-zero band.Alex Converse2010-07-24
| | | | | | | Reduce scalefactors in non-zero bands that underflow by twice as much as those in bands that just fail to hit psy targets. Originally committed as revision 24482 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Prevent premature termination of the two loop search.Alex Converse2010-07-24
| | | | Originally committed as revision 24476 to svn://svn.ffmpeg.org/ffmpeg/trunk
* aacenc: Favor log2f() and sqrtf() over log2() and sqrt().Alex Converse2010-07-24
| | | | Originally committed as revision 24473 to svn://svn.ffmpeg.org/ffmpeg/trunk