summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vp9: add 10bpp simd (mmxext/ssse3) for idct_idct_4x4.Ronald S. Bultje2015-10-136-49/+159
|
* vp9: add 10/12bpp mmxext-optimized iwht_iwht_4x4 function.Ronald S. Bultje2015-10-137-22/+187
|
* x86: dct-test: add more idctsChristophe Gisquet2015-10-132-0/+14
| | | | | | In particular for 10 and 12 bits. Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/dct-test: Print failure notice below the failed *dctMichael Niedermayer2015-10-131-1/+3
| | | | | | This makes it easier to see where a failure happens Signed-off-by: Michael Niedermayer <[email protected]>
* x86: simple_idct: 12bits versionsChristophe Gisquet2015-10-133-2/+42
| | | | | | | | | | | | | | | | | | | | | | On 12 frames of a 444p 12 bits DNxHR sequence, _put function: C: 78902 decicycles in idct, 262071 runs, 73 skips avx: 32478 decicycles in idct, 262045 runs, 99 skips Difference between the 2: stddev: 0.39 PSNR:104.47 MAXDIFF: 2 This is unavoidable and due to the scale factors used in the x86 version, which cannot match the C ones. In addition, the trick of adding an initial bias to the input of a pass can overflow, as the input coefficients are already 15bits, which is the maximum this function can handle. Overall, however, the omse on 12 bits samples goes from 0.16916 to 0.16883. Reducing rowshift by 1 improves to 0.0908, but causes overflows. Signed-off-by: Michael Niedermayer <[email protected]>
* x86: simple_idct(_put): 10bits versionsChristophe Gisquet2015-10-136-33/+136
| | | | | | | | | | | | | | | | | Modeled from the prores version. Clips to [0;1023] and is bitexact. Bitexactness requires to add offsets in different places compared to prores or C, and makes the function approximately 2% slower. For 16 frames of a DNxHD 4:2:2 10bits test sequence: C: 60861 decicycles in idct, 1048205 runs, 371 skips sse2: 27567 decicycles in idct, 1048216 runs, 360 skips avx: 26272 decicycles in idct, 1048171 runs, 405 skips The add version is not implemented, so the corresponding dsp function is set to NULL to make it clear in a code executing it. Signed-off-by: Michael Niedermayer <[email protected]>
* x86: simple_idct10_template: fix overflow in passChristophe Gisquet2015-10-132-5/+16
| | | | | | | | | | | | | | When the input of a pass has 15 or 16 bits of precision (in particular the column pass), the addition of a bias to W4 may lead to overflows in the input to pmaddwd. This requires postponing the adding of the bias to after the first butterfly. To do so, the fact that m15, unused although zeroed, is exploited. In case the pass is safe, an address can be directly used, and the number of xmm regs can be decreased. Otherwise, the 32bits bias is loaded into it. Signed-off-by: Michael Niedermayer <[email protected]>
* avfilter/af_sidechaincompress: replace FFABS with fabsGanesh Ajjanagadde2015-10-131-3/+3
|
* avfilter/af_astats: replace FFABS with fabsGanesh Ajjanagadde2015-10-131-3/+3
|
* avfilter/af_agate: replace FFABS with fabsGanesh Ajjanagadde2015-10-131-3/+3
|
* fate: add 10bits YUV4:2:2 dnxhd testChristophe Gisquet2015-10-135-1/+22
| | | | | | | It was useful to (accidentally?) spot an overflow in the column pass of the x86 simple_idct10 implementation. Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/simple_idct10: improve precisionChristophe Gisquet2015-10-136-20/+42
| | | | | | | | | | | omse goes from 0.03060703 (which fails for dct-test) to 0.01663750. This also actually improve the error of decoding the sample generated by fate-vsynth3-dnxhd1080i-10bit using simple_idct10 to FAANI, which goes (when resampled to yuv422p) from: stddev: 0.06 PSNR: 72.28 MAXDIFF: 1 to identical. Signed-off-by: Michael Niedermayer <[email protected]>
* x86: prores: templatize 10 bits simple_idctChristophe Gisquet2015-10-134-260/+346
| | | | | | | This should be reused for a generic simple_idct10 function. Requires a bit of trickery to declare common constants in C. Signed-off-by: Michael Niedermayer <[email protected]>
* aacenc: shorten name of ff_aac_adjust_common_predictionRostislav Pehlivanov2015-10-125-9/+9
| | | | To keep it similar to the other functions which are all named *_pred.
* aacenc: increase size of s->planar_samples[] from 6 to 8Rostislav Pehlivanov2015-10-121-1/+1
| | | | Left out of last commit which added support for eight channel audio.
* mpegvideo: dnxhdenc: permute 10bits contentChristophe Gisquet2015-10-133-5/+11
| | | | | | | Dequant or encoding were trying to reverse a scan that hadn't been applied... Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/mips/aaccoder_mips: Disable ff_aac_coder_init_mips() to prevent ↵Michael Niedermayer2015-10-131-1/+1
| | | | | | build failure Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/webvttdec: Don't stop parsing on commentsRicardo Constantino2015-10-122-1/+3
| | | | Signed-off-by: Ricardo Constantino <[email protected]>
* fate/subtitles: Add a new test for WebVTTRicardo Constantino2015-10-122-0/+26
| | | | | | | | | | | Includes escapes that should now be supported and a few features not yet fully supported, like comments, regions, classes, ruby, and lang. All were tested with https://quuz.org/webvtt/ for validation, except regions because the validator doesn't support them yet, and I couldn't find any other way to validate WebVTT. Signed-off-by: Ricardo Constantino <[email protected]>
* avcodec/webvttdec: Deal with WebVTT escapesRicardo Constantino2015-10-121-1/+10
| | | | | | | | | Bare ampersand characters are still accepted, even though out-of-spec. Also fixes adjacent tags not being parsed. Fixes trac #4915 Signed-off-by: Ricardo Constantino <[email protected]>
* doc/filters: s/nb_inputs/inputs for stack filtersLou Logan2015-10-121-2/+2
| | | | | Signed-off-by: Lou Logan <[email protected]> Signed-off-by: Paul B Mahol <[email protected]>
* avcodec: Don't lock on init for codecs without an init functionDerek Buitenhuis2015-10-121-2/+2
| | | | Signed-off-by: Derek Buitenhuis <[email protected]>
* fate: increase fuzz on fate-aac-tns-encode testRostislav Pehlivanov2015-10-121-1/+1
| | | | Fails on SunOS and old GCC (<=4.6 is ancient) versions.
* aacenc_utils: fit find_form_factor() below 80 chars per lineRostislav Pehlivanov2015-10-121-1/+2
|
* aacenc: add support for changing options based on a profileRostislav Pehlivanov2015-10-125-51/+137
| | | | | | | | | | | | | | | | | | | | This commit adds the ability for a profile to set the default options, as well as for the user to override such options by simply stating them in the command line while still keeping the same profile, as long as those options are still permitted by the profile. Example: setting the profile to aac_low (the default) will turn PNS and IS on. They can be disabled by -aac_pns 0 and -aac_is 0, respectively. Turning on -aac_pred 1 will cause the profile to be elevated to aac_main, as long as no options forbidding aac_main have been entered (like AAC-LTP, which will be pushed soon). A useful feature is that by setting the profile to mpeg2_aac_low, all MPEG4 features will be disabled and if the user tries to enable them then the program will exit with an error. This profile is signalled with the same bitstream as aac_low (MPEG4) but some devices and decoders will fail if any MPEG4 features have been enabled.
* avfilter/drawtext: allow to format pts with strftimeAlex Agranovsky2015-10-122-2/+18
| | | | Signed-off-by: Alex Agranovsky <[email protected]>
* lavf/tee: allow multiple stream specifiers in select.Bela Bodecs2015-10-122-7/+29
| | | | | | | | | It makes possible to put multiple stream specifier into the select option separated by comma. eg. select=\'a:0,v\' Signed-off-by: Bela Bodecs <[email protected]> Signed-off-by: Nicolas George <[email protected]>
* aacenc: add support for encoding 7.1 channel audioRostislav Pehlivanov2015-10-122-10/+15
| | | | | | | This commit implements support for 7.1 channel audio. There's no more predefined bitstream channel mappings so going beyond 8 channels (and 7 channels exactly) will require programmable channel elements, which is already underway.
* aacenc_quantization: fix header descriptionRostislav Pehlivanov2015-10-121-1/+1
| | | | Two guesses as to which file was used as boilerplate.
* AAC encoder: memoize quantize_band_costClaudio Freire2015-10-127-4/+86
| | | | | | | | | | The bulk of calls to quantize_band_cost are replaced by a call to a version that memoizes, greatly improving performance, since during coefficient search there is a great deal of repeat work. Memoization cannot always be applied, so do this in a different function, and leave the original as-is.
* avformat/flvdec: set broken_sizes for "metadatacreator : MEGA"Michael Niedermayer2015-10-121-0/+2
| | | | | | | | The 2nd size value is wrong for the sample file Fixes: Ticket4903 Signed-off-by: Michael Niedermayer <[email protected]>
* AAC encoder: fix assertion error re SF differencesClaudio Freire2015-10-111-8/+16
| | | | | | | | Intermediate results can indeed violate SF delta. Instead of asserting there, just make the code safe, and assert on the final result. Also re-clamp SFs more often in short windows (which tend to violate the restriction when encoding the switch from one window to the other)
* aaccoder_twoloop.h: simplify and comment ff_pns_bits()Rostislav Pehlivanov2015-10-121-7/+3
|
* aacenc_utils: add 'inline' flag to find_form_factor, silence warningRostislav Pehlivanov2015-10-121-1/+1
| | | | Seems it was forgotten.
* x86/vf_w3fdif: use aligned loads in w3fdif_simple_highJames Almer2015-10-111-4/+2
| | | | | Found-by: Ronald S. Bultje <[email protected]> Signed-off-by: James Almer <[email protected]>
* x86/vf_w3fdif: simplify w3fdif_simple_highJames Almer2015-10-111-9/+7
| | | | Signed-off-by: James Almer <[email protected]>
* avcodec: remove leftover iff_byterun1 decoderAndreas Cadhalpun2015-10-127-25/+3
| | | | | | | | | | | 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 <[email protected]> Signed-off-by: Andreas Cadhalpun <[email protected]>
* ffplay: eliminate stream_component_close forward declarationMarton Balint2015-10-121-59/+57
| | | | | | No change in fuctionality. Signed-off-by: Marton Balint <[email protected]>
* ffplay: close streams and AVFormatContext in the main threadMarton Balint2015-10-121-14/+14
| | | | | | To avoid race conditions. Signed-off-by: Marton Balint <[email protected]>
* intmath: remove av_ctz.Ronald S. Bultje2015-10-114-17/+7
| | | | | It's a non-installed header and only used in one place (flacenc). Since ff_ctz is static inline, it's fine to use that instead.
* AAC encoder tests: increase fuzz for pred testClaudio Freire2015-10-111-1/+1
| | | | MIPS needs more fuzz
* ffmpeg: modify tty state when stderr is redirectedGanesh Ajjanagadde2015-10-111-7/+1
| | | | | | | Removes unnecessary isatty(), fixes Ticket2964 Signed-off-by: Ganesh Ajjanagadde <[email protected]> Signed-off-by: Ronald S. Bultje <[email protected]>
* AAC encoder: cosmetics from last commitClaudio Freire2015-10-112-21/+21
| | | | Reindent
* AAC encoder: Extensive improvementsClaudio Freire2015-10-1118-261/+1276
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This finalizes merging of the work in the patches in ticket #2686. Improvements to twoloop and RC logic are extensive. The non-exhaustive list of twoloop improvments includes: - Tweaks to distortion limits on the RD optimization phase of twoloop - Deeper search in twoloop - PNS information marking to let twoloop decide when to use it (turned out having the decision made separately wasn't working) - Tonal band detection and priorization - Better band energy conservation rules - Strict hole avoidance For rate control: - Use psymodel's bit allocation to allow proper use of the bit reservoir. Don't work against the bit reservoir by moving lambda in the opposite direction when psymodel decides to allocate more/less bits to a frame. - Retry the encode if the effective rate lies outside a reasonable margin of psymodel's allocation or the selected ABR. - Log average lambda at the end. Useful info for everyone, but especially for tuning of the various encoder constants that relate to lambda feedback. Psy: - Do not apply lowpass with a FIR filter, instead just let the coder zero bands above the cutoff. The FIR filter induces group delay, and while zeroing bands causes ripple, it's lost in the quantization noise. - Experimental VBR bit allocation code - Tweak automatic lowpass filter threshold to maximize audio bandwidth at all bitrates while still providing acceptable, stable quality. I/S: - Phase decision fixes. Unrelated to #2686, but the bugs only surfaced when the merge was finalized. Measure I/S band energy accounting for phase, and prevent I/S and M/S from being applied both. PNS: - Avoid marking short bands with PNS when they're part of a window group in which there's a large variation of energy from one window to the next. PNS can't preserve those and the effect is extremely noticeable. M/S: - Implement BMLD protection similar to the specified in ISO-IEC/13818:7-2003, Appendix C Section 6.1. Since M/S decision doesn't conform to section 6.1, a different method had to be implemented, but should provide equivalent protection. - Move the decision logic closer to the method specified in ISO-IEC/13818:7-2003, Appendix C Section 6.1. Specifically, make sure M/S needs less bits than dual stereo. - Don't apply M/S in bands that are using I/S Now, this of course needed adjustments in the compare targets and fuzz factors of the AAC encoder's fate tests, but if wondering why the targets go up (more distortion), consider the previous coder was using too many bits on LF content (far more than required by psy), and thus those signals will now be more distorted, not less. The extra distortion isn't audible though, I carried extensive ABX testing to make sure. A very similar patch was also extensively tested by Kamendo2 in the context of #2686.
* avfilter/buffersrc: add av_warn_unused_result attributesGanesh Ajjanagadde2015-10-111-0/+3
| | | | | | | This adds av_warn_unused_result whenever it is relevant. Signed-off-by: Ganesh Ajjanagadde <[email protected]> Signed-off-by: Ronald S. Bultje <[email protected]>
* configure: fix configure when using gccJean-Yves Avenard2015-10-111-1/+2
| | | | | | | | | | | | Fixes Ticket4922. Commit 060102389e572abb2beaed3b9f5e1036aeea43f1 broke configure, since the inversion ! was missed while converting the grep to a case statement. Reviewed-by: Nicolas George <[email protected]> Reviewed-by: Timothy Gu <[email protected]> Signed-off-by: Ganesh Ajjanagadde <[email protected]>
* x86/vf_w3fdif: move pxor outside the loop in w3fdif_complex_lowJames Almer2015-10-111-4/+4
| | | | | Reviewed-by: Paul B Mahol <[email protected]> Signed-off-by: James Almer <[email protected]>
* avcodec/sipr: use AVERROR return code instead of -1Paul B Mahol2015-10-111-1/+1
| | | | Signed-off-by: Paul B Mahol <[email protected]>
* avformat/rsd: support XADP tagPaul B Mahol2015-10-111-2/+12
| | | | | | It appears that Xbox ADPCM is same as WAV adpcm. Signed-off-by: Paul B Mahol <[email protected]>
* avcodec/pngdec: Use av_malloc_array()Michael Niedermayer2015-10-111-1/+1
| | | | | Suggested-by: ubitux Signed-off-by: Michael Niedermayer <[email protected]>