summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
* libkvazaar: Set frame rate as a rational numberArttu Ylä-Outinen2016-01-20
| | | | | | | | | | | Updates libkvazaar to pass the exact frame rate to Kvazaar by setting the numerator and denominator separately instead of a single floating point number. The exact frame rate is needed for writing timing info to the bitstream. Requires Kvazaar version 0.8.1. Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen@tut.fi>
* avcodec/ass_split: Fix null pointer dereference in ff_ass_style_get()Michael Niedermayer2016-01-20
| | | | | | | | Fixes: 55d71971da50365d542ed14b65565fe1/signal_sigsegv_4765a4_8499_f146af090a94f591d6254515c7700ef5.mkv Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ccaption_dec: Fix mixed declarations and codeMichael Niedermayer2016-01-19
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* ape: Show more information for loglevel verbose.Carl Eugen Hoyos2016-01-19
| | | | Requested by Andy E, fixes bug 687.
* Merge commit 'd1cd20e4e33f8139e150034b3c457302312d81bd'Hendrik Leppkes2016-01-19
|\ | | | | | | | | | | | | * commit 'd1cd20e4e33f8139e150034b3c457302312d81bd': qsvenc: split encoding frames and reading from the async FIFO Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvenc: split encoding frames and reading from the async FIFOAnton Khirnov2016-01-07
| | | | | | | | | | | | This makes sure all the frames are returned at the end. Found-By: Maxym Dmytrychenko <maxym.dmytrychenko@intel.com>
* | Merge commit 'a6259a6ecbad18d58085e4ab23f56151e98d7b53'Hendrik Leppkes2016-01-19
|\| | | | | | | | | | | | | * commit 'a6259a6ecbad18d58085e4ab23f56151e98d7b53': qsvenc: properly handle the warning from MFXVideoCORE_SyncOperation Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
| * qsvenc: properly handle the warning from MFXVideoCORE_SyncOperationMaxym Dmytrychenko2016-01-07
| | | | | | | | | | | | Same as what is done in 3b6473b43eb69fc3faaf69f7fd0b83b51db7607f. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | avcodec/gif: Fix lzw buffer sizeMichael Niedermayer2016-01-18
| | | | | | | | | | | | | | | | Fixes out of array access Fixes: aaa479088e6fb40b04837b3119f47b04/asan_heap-oob_e38c68_8576_9d653078b2470700e2834636f12ff557.tga Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/put_bits: Assert buf_ptr in flush_put_bits()Michael Niedermayer2016-01-18
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | videodsp: fix 1-byte overread in top/bottom READ_NUM_BYTES iterations.Ronald S. Bultje2016-01-18
| | | | | | | | | | | | | | This can overread (either before start or beyond end) of the buffer in Nx1 (i.e. height=1) images. Fixes mozilla bug 1240080.
* | lavc/rawdec: Use AV_PIX_FMT_PAL8 for 1-bit raw QuickTime videoMats Peterson2016-01-18
| | | | | | | | | | | | | | | | | | | | | | Match the use of AV_PIX_FMT_PAL8 for 1-bit QuickTime Animation in lavc/qtrle. To reiterate, 1-bit video is not necessary black & white in QuickTime, merely bi-level. The two colors can be any color. The palette, either included in the sample description, or the default Macintosh palette (black & white for 1-bit video) will be set in lavf/qtpalette. See the QuickTime File Format Specification for details. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/tiff: Check subsample & rps values more completelyMichael Niedermayer2016-01-18
| | | | | | | | | | | | | | | | Fixes out of array access Fixes: 83aedfb29af669c4d6e10f1bfad974d2/asan_heap-oob_1ab42fe_4984_9f6ec14462f8d8a00ea24b320572a963.tif Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/v210: guard new avx2 functions from old assemblersJames Darnley2016-01-17
| |
* | avcodec/libaacplus: Cleanup in case of init failureMichael Niedermayer2016-01-17
| | | | | | | | | | | | | | | | Fixes: memleak Fixes: 6b343214a0c12d94c1ea0ae9c3102dba/signal_sigsegv_262857d_8792_71ba605ad9ca9068b8218a6ce3628c25.mov Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/diracdec: Fix qfactor/offset tablesMichael Niedermayer2016-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | It seems the previous tables where calculated with 32bit integers ignoring overflows. Also check for the max qindex, the value is choosen so that the qfactor/offset fit in int32. Fixes: 070b7914fd5dfe8f93248bea71363410/asan_static-oob_c8d034_2764_258e20f4a3c79158aecddb61a833d756.drc Fixes out of array reads Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | libavcodec/aacenc_tnc.c: remove unused variable w2Claudio Freire2016-01-17
| | | | | | | | No longer needed since previous commit
* | AAC encoder: TNS fixes on short windowsClaudio Freire2016-01-17
| | | | | | | | | | | | TNS was computing filter coefficients incorrectly for short windows due to a few coefficient addressing bugs. Fixing them fixes lots of instability with transients (short windows).
* | AAC encoder: use signed coeffs when measuring IS energyClaudio Freire2016-01-17
| | | | | | | | | | | | I/S energy, especially when it comes to phase cancellations, needs to use signed coefficients as input, yet it was using abs'd coefficients. That was a slight bug.
* | AAC encoder: enforce SF delta in PNS and IS SFsClaudio Freire2016-01-17
| | | | | | | | | | | | | | | | | | Make sure to properly enforce maximum scalefactor delta in PNS and I/S, not as an absolute range but relative to the previous and first scalefactor, the latter important since PNS uses an implicit inicial scalefactor derived from the global gain, and encoded in a different way, which makes a big difference in the allowed range.
* | avcodec/v210: document the requirement for sample_factorJames Darnley2016-01-17
| | | | | | | | | | The sample factor must be the same for both 8- and 10-bit functions chosen otherwise the output will be incorrect.
* | avcodec/v210: add avx2 version of the 10-bit line encoderJames Darnley2016-01-17
| | | | | | | | Around 25% faster than the ssse3 version.
* | avcodec/v210: add avx2 version of the 8-bit line encoderJames Darnley2016-01-17
| | | | | | | | | | | | Around 35% faster than the avx version. Signed-off-by: Henrik Gramner <henrik@gramner.com>
* | remove all uses of the deprecated avpicture_get_size() functionEddie Hao2016-01-17
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/wmaenc: Check input for finitenessMichael Niedermayer2016-01-16
| | | | | | | | | | | | | | | | Fixes out of array read Fixes: 1b79b985cdf860ffa228c00ee5497051/signal_sigsegv_1f99d24_315_f0f1fdb451264b1138e9c24eb7d49181.wv Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/aacenc: Check both channels for finitenessMichael Niedermayer2016-01-16
| | | | | | | | | | | | | | | | Fixes null pointer dereference Fixes: 10412fc52ecc6eab40ed67f82ca7b372/signal_sigsegv_2618c99_2129_f808373959e46afb165593332799ffbc.aif Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/motion_est: Attempt to fix "short data segment overflowed" on IA64Michael Niedermayer2016-01-16
| | | | | | | | | | | | | | This decreases the MV related encoding table sizes This should have little effect on real world video encoding performance Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | mpeg4videodec: silence ubsan warningAndreas Cadhalpun2016-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | s->ac_val[0][0] is of type 'int16_t [16]', but points into a larger buffer. Here it is used as base pointer to find the correct position in the larger buffer by adding 's->block_index[n] * 16' and thus as 'int16_t *'. This fixes clang's ubsan runtime error: index out of bounds for type 'int16_t [16]' Fixes: test_case.mp4 Found-by: Tyson Smith <twsmith@mozilla.com> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* | avformat/riff: add YUYV FourCC (Drastic YUYV)Piotr Bandurski2016-01-15
| |
* | avcodec/x86/fmtconvert: Add emms to int32_to_float_fmul_array8_sse()Michael Niedermayer2016-01-15
| | | | | | | | | | | | this should fix checkasm on x86_64-archlinux-gcc-valgrind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/pngenc: Fix mixed up linesizesMichael Niedermayer2016-01-15
| | | | | | | | | | | | | | | | Fixes out of array accesses Fixes: 0cf176e6d3ab9fe924f39738e513f547/asan_generic_4a54aa_3431_aaa28be1cb32e307a9890cad06f84fba.avi Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/pngenc: Replace memcpy by av_image_copy()Michael Niedermayer2016-01-15
| | | | | | | | | | | | | | | | Fixes out of array access Fixes: 0cf176e6d3ab9fe924f39738e513f547/asan_generic_4a54aa_3431_aaa28be1cb32e307a9890cad06f84fba.avi Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | lavc/aacenc: use isfinite to simplify isnan/isinf logicGanesh Ajjanagadde2016-01-14
| | | | | | | | | | Reviewed-by: Claudio Freire <klaussfreire@gmail.com> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
* | lavc/ccaption_dec: clear all unused rows during rollupAman Gupta2016-01-14
| | | | | | | | | | | | Sometimes rollup captions can move around the screen. This fixes "ghost" captions from below the current rollup area from continuing to be captured when a rollup moves higher up on the screen.
* | lavc/ccaption_dec: clean up whitespaceAman Gupta2016-01-14
| |
* | lavc/ccaption_dec: implement real_time optionAman Gupta2016-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new mode is useful for realtime decoding of closed captions so they can be display along with mpeg2 frames. Closed caption streams contain two major types of captions: - POPON captions, which are buffered off-screen and displayed only after EOC (end of caption, aka display buffer) - PAINTON/ROLLUP captions, which are written to the display as soon as they arrive. In a typical real-time eia608 decoder, commands like EOC (end of caption; display buffer), EDM (erase display memory) and EBM (erase buffered memory) perform their expected functions as soon as the commands are processed. This is implemented in the real_time branches added in this commit. Before this commit, and in the !real_time branches after this commit, the decoder cleverly implements its own version of the decoder which is specifically geared towards buffered decoding. It does so by actively ignoring commands like EBM (erase buffered memory), and then re-using the non-display buffer to hold the previous caption while the new one is received. This is the opposite of the real-time decoder, which uses the non-display buffer to hold the new caption while the display buffer is still showing the current caption. In addition to ignoring EBM, the buffered decoder also has custom implementations for EDM and EOC. An EDM (erase display memory) command flushes the existing contents before clearing the screen, and EOC similarly always flushes the active buffer (the previous subtitle) before flipping buffers.
* | lavc/ccaption_dec: flush context on seekAman Gupta2016-01-14
| |
* | avcodec/aacenc_is: replace pow(x, 0.75) by x/sqrtf(sqrtf(x))Claudio Freire2016-01-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is quite an accurate approximation; testing shows ~ 2ulp error in the floating point result. Tested with FATE. Alternatively, if one wants "full accuracy", one can use powf, or sqrt instead of sqrtf. With powf, one gets 1 ulp error (theoretically should be 0, as 0.75 is exactly representable) on GNU libm, with sqrt, 0 ulp error. Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com> Abstracted into pos_pow34 utility function Signed-off-by: Claudio Freire <klaussfreire@gmail.com>
* | dca: fix misaligned access in avpriv_dca_convert_bitstreamAndreas Cadhalpun2016-01-14
| | | | | | | | | | | | | | | | | | | | | | src and dst are only 8-bit-aligned, so accessing them as uint16_t causes SIGBUS crashes on architectures like sparc. This fixes ubsan runtime error: load of misaligned address for type 'const uint16_t', which requires 2 byte alignment Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
* | avcodec/aacenc: Check for +-Inf tooMichael Niedermayer2016-01-13
| | | | | | | | | | | | | | | | Fixes out of array read Fixes: 04442da73d935b776d2236282588d4f9/signal_sigsegv_2625a69_8790_ae85ffc889070663319b3417ede777b0.mov Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/wavpackenc: print channel count in av_log callJames Almer2016-01-13
| | | | | | | | Fixes a warning with -Wformat-extra-args
* | avcodec/diracdec: Handle the 0 vlc case at the top of coeff_unpack_golomb()Michael Niedermayer2016-01-13
| | | | | | | | | | | | | | decoding changes from 17 to 20 fps Reviewed-by; Rostislav Pehlivanov <atomnuker@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/diracdec: Factor +2 out of the inner loopMichael Niedermayer2016-01-13
| | | | | | | | | | Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/diracdec: Inline svq3_get_ue_golomb() and merge the sign bit ↵Michael Niedermayer2016-01-13
| | | | | | | | | | | | | | | | | | decoding into it This avoids closing and opening the bit reader Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/aacenc: mark output as const as its not written toMichael Niedermayer2016-01-13
| | | | | | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | avcodec/aacenc: Fix NAN checkMichael Niedermayer2016-01-13
| | | | | | | | | | | | | | | | | | All MDCT outputs must be checked in case of 128point MDCTs Fixes: out of array read Fixes: 04442da73d935b776d2236282588d4f9/signal_sigsegv_2625a69_351_52ca6226eb83547a2d26e322ce84ed84.mov Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* | diracdec: Add slice threading to HQ profileKieran Kunhya2016-01-13
| |
* | AAC encoder: encode out-of-phase I/S efficientlyClaudio Freire2016-01-13
| | | | | | | | | | | | | | | | | | | | | | Use the ability to invert phase with ms_mask instead of changing the codebook when possible, to avoid having to switch codebooks if some bands are INTENSTY_BT and others are INTENSITY_BT2, since usually a set ms_mask uses less bits that a codebook change. While it may not always be a win (ie: if it causes an ms_mask bitmap to be sent when it wouldn't have been otherwise), it's unlikely since the ms_mask bitmap will almost always be there already for M/S itself.
* | AAC encoder: fix I/S relative error evaluationClaudio Freire2016-01-13
| | | | | | | | | | | | | | The relative error between two encoding strategies is the simple difference of rate-distortion values, and not the absolute difference. An absolute measure would allow worsening of the quantization error as well as improving.
* | AAC encoder: various fixes in M/S codingClaudio Freire2016-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Fix sf_idx and band_type addressing to address only the first subwindow in the group (others could hold garbage values) 2. Don't step on ms_mask when is_mask is set. I/S selection already sets the ms_mask properly and shouldn't be overridden. 3. Use mid/sid cb/sf when computing coding error, as should be since those are the cb/sfs that will eventually be set. 4. Fix distortion computation on multi-subwindow groups (was subtracting the bits terms multiple times) 5. Clear ms_mask when one side uses PNS and the other doesn't. When using PNS, ms_mask signals correlated noise, which can be detected just like regular M/S detection, so we don't skip noise bands, but when only one side uses PNS setting the flag can confuse some encoders, so avoid that.