summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Interplay MVE: Implement frame format 0x10Hein-Pieter van Braam2017-06-272-23/+227
| | | | | | | | | | | | | | | | | | | | This implements the 0x10 frame format for Interplay MVE movies. The format is a variation on the 0x06 format with some changes. In addition to the decoding map there's also a skip map. This skip map is used to determine what 8x8 blocks can change in a particular frame. This format expects to be able to copy an 8x8 block from before the last time it was changed. This can be an arbitrary time in the past. In order to implement this this decoder allocates two additional AVFrames where actual decoding happens. At the end of a frame decoding changed blocks are copied to a finished frame based on the skip map. The skip map's encoding is a little convulted, I'll refer to the code for details. Values in the decoding map are the same as in format 0x06. Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
* Interplay MVE: Implement frame format 0x06Hein-Pieter van Braam2017-06-272-14/+126
| | | | | | | | | | | | | | | | | | | | | | | | | This implements the 0x06 frame format for Interplay MVE movies. The format is relatively simple. The video data consists of two parts: 16 bits per 8x8 block movement data a number of 8x8 blocks of pixel data For each 8x8 block of pixel data the movement data is consulted. There are 3 possible meanings of the movement data: * zero : copy the 8x8 block from the pixel data * negative : copy the 8x8 block from the previous frame from an offset determined by the actual value of the entry -0xC000. * positive : copy the 8x8 block from the current frame from an offset determined by the actual value of the entry -0x4000 Decoding happens in two passes, in the fist pass only new pixeldata is copied, during the second pass data is copied from the previous and current frames. The codec expects that the current frame being decoded to still has the data from 2 frames ago on it when decoding starts. Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
* Interplay MVE: Refactor IP packet formatHein-Pieter van Braam2017-06-272-28/+51
| | | | | | | | Interplay MVE can contain up to three different frame formats. They require different streams of information to render a frame. This patch changes the IP packet format to prepare for the extra frame formats. Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
* Interplay MVE: Implement MVE SEND_BUFFER operationHein-Pieter van Braam2017-06-272-11/+20
| | | | | | | | | | | Interplay MVE movies have a SEND_BUFFER operation. Only after this command does the current decoding buffer get displayed. This is required for the other frame formats. They are fixed-size and can't always encode a full frame worth of pixeldata. This code prevents half-finished frames from being emitted. Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
* avcodec/proresenc_kostya: add 4444XQ profilePaul B Mahol2017-06-272-3/+16
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/ffv1enc: compute the max number of slices and limit by thatMichael Niedermayer2017-06-271-3/+4
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat: Fix Pro-MPEG non-square matrixAndreas Håkon2017-06-271-1/+1
| | | | | Reviewed-by:vtarca@mobibase.com Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1enc: Allow less than 2 rows of slices for low vertical resolutionMichael Niedermayer2017-06-271-0/+4
| | | | | | Fixes: Ticket5548 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/utvideodec: add SIMD for restore_rgb_planesPaul B Mahol2017-06-278-47/+279
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/utvideodec: decode to GBR(A)PPaul B Mahol2017-06-267-277/+49
| | | | | | | | | | | This is actually internal utvideo format. Allows to make use of SIMD for median prediction for rgb(a) formats, thus speeding up decoding. Simplifies code, eases further developement and maintenance. Update FATE because of pixel format switch. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter: remove usage of empty headerPaul B Mahol2017-06-264-4/+0
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/g722enc: force mono channel layoutKyle Swanson2017-06-261-16/+11
| | | | Signed-off-by: Kyle Swanson <k@ylo.ph>
* avcodec/jpeg2000dwt: Fix integer overflows in sr_1d97_int()Michael Niedermayer2017-06-261-4/+4
| | | | | | | | Fixes: runtime error: signed integer overflow: 1157259380 + 1157259380 cannot be represented in type 'int' Fixes: 2365/clusterfuzz-testcase-minimized-6020421927305216 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/jpeg2000dwt: Fix integer overflow in dwt_decode97_int()Michael Niedermayer2017-06-261-1/+1
| | | | | | | | Fixes: runtime error: signed integer overflow: -163654656 * 256 cannot be represented in type 'int' Fixes: 2367/clusterfuzz-testcase-minimized-4648678897745920 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1enc: Try to choose slice count so that slice packet sizes are ↵Michael Niedermayer2017-06-261-2/+9
| | | | | | | | within the supported size Fixes assertion failure Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Increase the maximum number of slices to 1024Michael Niedermayer2017-06-261-1/+1
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc/x86: clear r2 higher bits in ff_sbr_sum_squareMatthieu Bouron2017-06-261-1/+1
| | | | Suggested-by: James Almer <jamrial@gmail.com>
* avcodec/proresenc_kostya: enable frame threadingPaul B Mahol2017-06-261-1/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/frame_thread_encoder: Fix AV_OPT_TYPE_STRING handling in priv_dataMichael Niedermayer2017-06-261-1/+7
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/proresenc_kostya: use frame metadata instead of avctxPaul B Mahol2017-06-261-3/+3
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/prores_kostya: increase bits usage when alpha is usedPaul B Mahol2017-06-251-1/+3
| | | | | | Also fix undefined left shift of negative variable. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter/vf_blend: add extremity blend modePaul B Mahol2017-06-253-0/+6
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter/vf_waveform: allow alpha output for >8 depth planar rgb inputsPaul B Mahol2017-06-251-2/+2
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter/vf_overlay: separate functions with main alphaPaul B Mahol2017-06-251-25/+46
| | | | | | ~5-15% faster overall with main input without alpha. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/hevcdec: Do not check the first ff_init_cabac_decoder() call in ↵Michael Niedermayer2017-06-251-4/+1
| | | | | | | | | | | hls_decode_entry_wpp() for failure The result of the call is not used in any testcase but breaks some cases if its failure is considered. Fixes regression found by jamrial Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/wavpack: Fix integer overflow in wv_unpack_stereo()Michael Niedermayer2017-06-251-1/+1
| | | | | | | | Fixes: runtime error: signed integer overflow: 2080374785 + 2080374784 cannot be represented in type 'int' Fixes: 2351/clusterfuzz-testcase-minimized-5359403240783872 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevc_ps: Fix max_dec_buffer checkMichael Niedermayer2017-06-251-2/+2
| | | | | | | | Fixes: runtime error: signed integer overflow: -2147483648 - 1 cannot be represented in type 'int' Fixes: 2339/clusterfuzz-testcase-minimized-6663164320022528 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vf_lut2: add support for gray10 and gray12 pixel formatsPaul B Mahol2017-06-241-1/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/adpcm_data: use uint16_t to handle all valuesPaul B Mahol2017-06-241-1/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* lavc/tests/golomb: Add unit test for set_ue_golomb_long.Jun Zhao2017-06-241-0/+19
| | | | | | | Add unit test for set_ue_golomb_long. Signed-off-by: Jun Zhao <jun.zhao@intel.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc/golobm: Add set_ue_golomb_long to support up to 2^32 -2.Jun Zhao2017-06-241-0/+15
| | | | | | | | | add set_ue_golomb_long to support up to 2^32-2. Reviewed-by: Mark Thompson <sw@jkqxz.net> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Jun Zhao <jun.zhao@intel.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc/put_bits: Add put_bits64() to support up to 64 bits.Jun Zhao2017-06-241-0/+35
| | | | | | | | | put_bits64() can write up to 64 bits into a bitstream. Reviewed-by: Mark Thompson <sw@jkqxz.net> Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Jun Zhao <jun.zhao@intel.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdec: Use error path if init_get_bits8() failsMichael Niedermayer2017-06-241-2/+2
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdec: check ff_init_cabac_decoder() for failureMichael Niedermayer2017-06-243-16/+37
| | | | | | | | | Fixes: runtime error: left shift of 1965559808 by 4 places cannot be represented in type 'int' Fixes: 2333/clusterfuzz-testcase-minimized-5223935677300736 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>
* avfilter/vf_overlay: remove rgb optionPaul B Mahol2017-06-242-12/+0
| | | | | | Its been deprecated for over 3 years. Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter/af_headphone: do not free frame that's gonna be reused laterPaul B Mahol2017-06-241-3/+1
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avfilter: do not leak AVFrame on failed buffer allocationPaul B Mahol2017-06-248-8/+24
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avformat/file: increase min/max packet size to 256k for written filesMarton Balint2017-06-241-0/+5
| | | | | | | | Buffering more than one packet can be a huge performance improvement for encoding files with small packets (e.g. wav) over SMB/CIFS. Acked-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat: make flush_packets a tri-state and set it to -1 (auto) by defaultMarton Balint2017-06-243-11/+19
| | | | | | | | | If flushing is not disabled, then mux.c will signal the end of the packets with an AVIO_DATA_MARKER_FLUSH_POINT, and aviobuf will be able to decide to flush or not based on the preferred minimum packet size set by the used protocol. Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/aviobuf: add support for specifying minimum packet size and marking ↵Marton Balint2017-06-245-2/+24
| | | | | | | flush points Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/aviobuf: fix flushing write buffers after seeking backward or forwardMarton Balint2017-06-243-29/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch makes aviobuf work more like traditinal file IO, which is how people think about it. For example, in the past, aviobuf only flushed buffers until the current buffer position, even if more data was written to it previously, and a backward seek was used to reposition the IO context. From now, aviobuf will keep track of the written data, so no explicit seek will be required till the end of the buffer, or till the end of file before flushing. This fixes at least one regression, fate-vsynth3-flv was broken if flush_packets option was set to false, an explicit seek was removed in 4e3cc4bdd8acedbcc703607ed0efbb64bb5c3cc4. Also from now on, if a forward seek in the write buffer were to cause a gap between the already written data and the new file position, a flush will happen. The must_flush varable is also removed, which might have caused needless flushes with multiple seeks whithin the write buffer. Since we know the amount of data written to it, we will know when to flush. Signed-off-by: Marton Balint <cus@passwd.hu>
* doc: Add VAAPI encodersMark Thompson2017-06-241-0/+96
| | | | (cherry picked from commit 41dda860870fb1566b17f6b0b61922f0ef89be47)
* vaapi_encode: Add VP9 supportMark Thompson2017-06-245-1/+319
| | | | (cherry picked from commit 0fd91e4bfc00a6609b59d1ce3a9f152184e62601)
* vp9: Add bsf to fix reordering in raw streamsMark Thompson2017-06-245-1/+415
| | | | | | | | | | | Takes a raw input stream containing frames with correct timestamps but possibly out of order and inserts additional show-existing-frame packets to correct the ordering. (cherry picked from commit 34e051d16850701694410a0e72e0e4ff3a5ec293) (cherry picked from commit b43b95f4789b6e60f9684918fd3c0a5f3f18aef6) Also converted from bitstream to get_bits.
* ffmpeg: Flush output BSFs when encode reaches EOFMark Thompson2017-06-241-11/+30
| | | | | | | Before this, output bitstream filters would never see EOF and therefore would not be able to flush any delayed packets. (cherry picked from commit f64d1100a54d12c78ce436181bb64229c56da6b3)
* avcodec/mpeg4videodec: Fix GMC with videos of dimension 1Michael Niedermayer2017-06-241-1/+1
| | | | | | | | Fixes: runtime error: shift exponent -1 is negative Fixes: 2338/clusterfuzz-testcase-minimized-5153426541379584 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* vf_spp: only assign function pointers if permutation matches expectations.Ronald S. Bultje2017-06-241-1/+7
|
* avfilter/vf_overlay: add auto format modePaul B Mahol2017-06-242-9/+51
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* fate: update checksums for fate-lavf-ffm and fate-lavf-mxfJames Almer2017-06-242-4/+4
| | | | | | | | | | | | | <@jamrial> durandal_1707: 04aa09c4bc broke fate-lavf-ffm and fate-lavf-mxf <@durandal_1707> how so? <@jamrial> one byte changes <@durandal_1707> jamrial: just update checksums <@jamrial> durandal_1707: but why did they change at all? the commit you reverted didn't affect them <@jamrial> why does reverting it affect these tests? <@jamrial> i don't think updating the checksum without knowing what changed is a good idea <@durandal_1707> jamrial: the lavfi core is in weird state after removal of recursive code <@durandal_1707> jamrial: the change is that older ones would get progressive flag set and new one doesnt <@jamrial> alright
* x86/mdct15: use three operand form for some instructionsJames Almer2017-06-241-6/+6
| | | | Fixes compilation with old yasm
OpenPOWER on IntegriCloud