summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* avcodec/pngdec: Check that previous_picture has same w/h/formatMichael Niedermayer2019-07-13
| | | | | | | | | Fixes: out of array access Fixes: 15540/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_APNG_fuzzer-5684905029140480 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/huffyuvdec: Check vertical subsampling in hymtMichael Niedermayer2019-07-13
| | | | | | | | | | Fixes: out of array access Fixes: 15484/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HYMT_fuzzer-5765377054736384 Fixes: 15559/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HYMT_fuzzer-5710295743332352 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/huffyuv: remove gray8a (the format is listed but not supported by ↵Michael Niedermayer2019-07-13
| | | | | | | | | | | the implementation) Fixes: null pointer dereference Fixes: 15464/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HYMT_fuzzer-5681391150301184 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* tools/target_dec_fuzzer: Remove redundant av_free()Michael Niedermayer2019-07-13
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mpc8: Fixes invalid shift in mpc8_decode_frame()Michael Niedermayer2019-07-13
| | | | | | | | | Fixes: left shift of negative value -456 Fixes: 15561/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPC8_fuzzer-5758130404720640 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Suggested-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/af_aiir: do not ignore k option for audio filteringPaul B Mahol2019-07-13
| | | | Previously it was used only for displaying frequency response.
* avformat/mpegts: respect program number when merging streamsMarton Balint2019-07-12
| | | | | | | | | | | | | | | | | merge_pmt_versions was not usable if multiple programs were present because when it was searching for candidate streams it did not make sure that the PMT was of the same program. This caused the streams of all programs to get merged into a single (garbled) program. This patch makes sure that the program number (service ID) is also matching with the old streams when parsing the PMT making the feature useful for multi program streams. This change might cause issues for single program streams if the program number changes, but I think it is acceptable because the goal of the option is to make the parsing resilient to PID changes, and that is still working as expected. Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/movenc: use unspecified language by defaultMarton Balint2019-07-12
| | | | | | English was used before. Signed-off-by: Marton Balint <cus@passwd.hu>
* lavf/webm_chunk: Correct duration if start time > 0Andreas Rheinhardt2019-07-12
| | | | | | | Up until now, it was simply presumed that the first packet had a pts of zero; otherwise the duration of the first chunk was wrong. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* lavf/webm_chunk: Fix NULL dereferenceAndreas Rheinhardt2019-07-12
| | | | | | | | | | | | | | | | | | | | | | | | | | The earlier version of the webm_chunk muxer had several bugs: 1. If the first packet of an audio stream didn't have a PTS of zero, then no chunk will be started before a packet is delivered to the underlying Matroska/WebM muxer, i.e. the AVFormatContext used to write these packets had a NULL as AVIOContext for output. This is behind the crash in ticket #5752. 2. If an error happens during writing a packet, the underlyimg Matroska/WebM muxer context is freed. This leads to a use-after-free coupled with a double-free in webm_chunk_write_trailer (which supposes that the underlying AVFormatContext is still valid). 3. Even when no error occurs at all, webm_chunk_write_trailer is still buggy: After the underlying Matroska/WebM muxer has written its trailer, ending the chunk implicitly flushes it again which is illegal at this point. These bugs have been fixed. Fixes #5752. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* avcodec/magicyuv: add support for recently added YUV444P10Paul B Mahol2019-07-11
|
* fate: add hls_list_size fate test caseSteven Liu2019-07-11
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/hlsenc: use one handler for m3u8 and segmentsSteven Liu2019-07-11
| | | | | | | Use one handler for m3u8 and segments. Use two handler in byterange mode. Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* fate: add hls_init_time option fateSteven Liu2019-07-11
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avformat/http: change error message from numeric code to stringSteven Liu2019-07-11
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* avutil/hwcontext_vaapi: move kernel_driver into CONFIG_LIBDRMSteven Liu2019-07-11
| | | | | Reviewed-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Steven Liu <lq@onvideo.cn>
* avcodec/videotoolboxenc: remove unused variableSteven Liu2019-07-11
| | | | Signed-off-by: Steven Liu <lq@onvideo.cn>
* avfilter/avf_showfreqs: make selecting window size simplerPaul B Mahol2019-07-10
| | | | The previous solution was very bad.
* avfilter/af_afftfilt: make selecting window size simplerPaul B Mahol2019-07-10
| | | | Next step after this one will be adding support for more window sizes.
* avcodec/utils, avcodec_open2: close codec on failureJames Zern2019-07-10
| | | | | | | | | | | after a successful init if the function fails for another reason close the codec without requiring FF_CODEC_CAP_INIT_CLEANUP which is meant to cover init failures themselves. fixes a memory leak in those cases. BUG=oss-fuzz:15529 Signed-off-by: James Zern <jzern@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/rpl: Replace strcpy with av_strlcpyCameron Cawley2019-07-10
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mips/cabac: replace addi with addiuYunQiang Su2019-07-10
| | | | | | | | | | | | addi/daddi are deprecated by MIPS for years, and MIPS r6 remove them. They should be replace with addiu: ADDIU performs the same arithmetic operation but does not trap on overflow. Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avutil/mips: optimize UNPCK&SAD macros with MSA2.0 instruction.Shiyou Yin2019-07-10
| | | | | | | Loongson 3A4000 and 2k1000 has supported MSA2.0. This patch optimized SAD_UB2_UH,UNPCK_R_SH_SW,UNPCK_SB_SH and UNPCK_SH_SW with MSA2.0 instruction. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/dashdec: fix code style and remove some empty lineSteven Liu2019-07-10
|
* truehd_core: Switch to in-place modificationsAndreas Rheinhardt2019-07-09
| | | | | | | | | | | | | | | | | | | | | | The truehd_core bitstream filter decreases the sizes of the major_sync_info structure (if present), of the substream_directory and of the substreams themselves. As a consequence, there is enough space available in front of the actual substream data for the new header, so that one only needs to modify the header in front of the actual data (which apart from shrinking is left untouched) and the packet's size and buffer pointer (after having made sure that the packet is writable). This and switching to bsf_get_packet_ref also removed the need for having separate packets for in- and output. Even if the input is not writable, there are noticable performance improvements: The average of 10 iterations of processing a file with 262144 runs each (inlcuding about 20 skips per iteration) went down from 5669 to 4362 decicycles. If the input is writable, it goes down to 1363 decicycles. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* truehd_core: Use byte offsets instead of bit offsetsAndreas Rheinhardt2019-07-09
| | | | | | | | | Words of 16 bit are the unit for TrueHD's size and offset fields; in particular the sizes of the high-level structures of TrueHD are always a multiple of a byte; yet truehd_core unnecessarily used bit offsets at several places. This has been changed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* truehd_core: Miscellaneous improvementsAndreas Rheinhardt2019-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. The loop counter of the substream_directory loop is always less than the number of substreams, yet within the loop it is checked whether it is less than FFMIN(3, s->hdr.num_substreams), although the check for < 3 would suffice. 2. In case the packet is a major sync packet, the last two bytes of the major sync structure were initialized to 0xff and then immediately overwritten afterwards without ever making use of the values just set. 3. When updating the parity_nibble during writing the new substream_directory, the parity_nibble is updated one byte at a time with bytes that might be read from the output packet's data. But one can do both bytes at the same time without resorting to the data just written by XOR'ing with the variable that contains the value that has just been written as a big endian number. This changes the intermediate value of parity_nibble, but in the end it just amounts to a reordering of the sum modulo two that will eventually be written as parity_nibble. Due to associativity and commutativity, this value is unchanged. 4. init_get_bits8 already checks that no overflow happens during the conversion of its argument from bytes to bits. ff_mlp_read_major_sync makes sure not to overread (the maximum size of a major_sync_info is 60 bytes anyway) and last_offset is < 2^13, so that no overflow in the calculation of size can happen, i.e. the check for whether size is >= 0 is unnecessary. But then size is completely unnecessary and can be removed. 5. In case the packet is just passed through, it is unnecessary to read the packet's dts. This is therefore postponed to when we know that the packet is not passed through. 6. Given that it seems overkill to use a bitreader just for one variable, the size of the input access unit is now read directly. 7. A substream's offset (of the end of the substream) is now stored as is (i.e. in units of words). These changes amount to a slight performance improvement: It improved from 5897 decicycles of ten runs with about 262144 runs each (including an insignificant amount -- about 20-25 usually of skips) to 5747 decicycles under the same conditions. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* truehd_core: Return error in case of errorAndreas Rheinhardt2019-07-09
| | | | | | | | Several checks (e.g. when the size of the input packet is too small) simply used "goto fail", but didn't set the return value appropriately for an error. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* truehd_core: Correct output sizeAndreas Rheinhardt2019-07-09
| | | | | | | | | | | | | | | | If truehd_core strips Atmos data away, three parts of the output differ in size compared to the input access unit: a) The major_sync_info block if the extra_channel_meaning_data is present, as the newly written output never contains said block; b) the substream_directory (because entries relating to discarded substreams are discarded, too); and c) the actual substream data. b) and c) have already been taken into account when choosing the size of the output packet, but a) has been forgotten. This is also the reason behind the end of the output buffer having been uninitialized until 801d78f0. The workaround added in said commit has been removed, too. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* truehd_core: Disable 16-channel presentationAndreas Rheinhardt2019-07-09
| | | | | | | | | | | | | | | | | | | The most serious bit of the substream_info header field (in a mayor sync packet) indicates whether a 16-channel presentation is present in the bitstream. If set, the extended_substream_info header field contains information about the 16-channel presentation. This presentation always uses substream 3, a substream that is discarded by truehd_core. So substream_info needs to be changed to no longer indicate the presence of a 16-channel presentation in order for truehd_core's output to be consistent. This is implemented in this commit. This change also makes MediaInfo no longer display the presence of Atmos in the output of truehd_core. Also, set the (now irrelevant) extended_substream_info field to zero as this seems to be the common value for ordinary TrueHD. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* configure, cbs_h2645: Remove unneeded golomb dependencyAndreas Rheinhardt2019-07-08
| | | | | | This has been forgotten in 44cde38c. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* cbs_h264, h264_metadata: Deleting SEI messages never failsAndreas Rheinhardt2019-07-08
| | | | | | | | | | | | Given the recent changes to ff_cbs_delete_unit, it is no longer sensible to use a return value for ff_cbs_h264_delete_sei_message; instead, use asserts to ensure that the required conditions are met and remove the callers' checks for the return value. Also, document said conditions. An assert that is essentially equivalent to the one used in ff_cbs_delete_unit has been removed, too. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* cbs: ff_cbs_delete_unit: Replace return value with assertAndreas Rheinhardt2019-07-08
| | | | | | | | | | ff_cbs_delete_unit never fails if the index of the unit to delete is valid, as it is with all current callers of the function. So just assert in ff_cbs_delete_unit that the index is valid and change the return value to void in order to remove the callers' checks for whether ff_cbs_delete_unit failed. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
* lavd/avfoundation: Set correct default value 0 for option capture_raw_data.Thilo Borgmann2019-07-08
|
* doc/indevs: Add new option and example to avfoundation.Thilo Borgmann2019-07-08
|
* lavd/avfoundation: Reindent after last commit.Thilo Borgmann2019-07-08
|
* lavd/avfoundation: Support muxed type of devices including raw muxed data ↵Thilo Borgmann2019-07-08
| | | | capture.
* lavd/avfoundation: Refine some log messages.Thilo Borgmann2019-07-08
|
* lavd/avfoundation: Change binary Options to boolean type.Thilo Borgmann2019-07-08
|
* lavd/avfoundation: Remove useless index increment.Thilo Borgmann2019-07-08
|
* doc/filters: document new readeia608 optionPaul B Mahol2019-07-08
|
* avfilter/vf_readeia608: implement lowpass operation prior to processing linesPaul B Mahol2019-07-08
|
* avfilter/vf_tinterlace: re-enable lowpass optionPaul B Mahol2019-07-08
|
* avfilter/af_aiir: implement mix optionPaul B Mahol2019-07-08
|
* avfilter/af_biquads: clip gain picked from command to sane valuesPaul B Mahol2019-07-08
|
* avfilter/af_biquads: implement mix option to all filtersPaul B Mahol2019-07-08
|
* avcodec/ilbcdec: Simplify use of unsigned and fix more undefined overflowsMichael Niedermayer2019-07-08
| | | | | | | | Fixes: signed integer overflow: 2147475672 + 8192 cannot be represented in type 'int' Fixes: 15415/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ILBC_fuzzer-5712074128228352 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/golomb: Correct the doxy about get_ue_golomb() and errorsMichael Niedermayer2019-07-08
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/utils: Check timebase before use in estimate_timings()Michael Niedermayer2019-07-08
| | | | | | | | Fixes: division by 0 Fixes: 15480/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5746727434321920 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hq_hqa: Use ff_set_dimensions()Michael Niedermayer2019-07-08
| | | | | | | | Fixes: 15530/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HQ_HQA_fuzzer-5637370344374272 Fixes: signed integer overflow: 65312 * 65312 cannot be represented in type 'int' Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>