summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* avformat/movenc: free eac3 private data only when closing the streamJames Almer2019-03-31
| | | | | | | | | This makes sure the data is available when writing the moov atom during the second pass triggered by the faststart movflag. Fixes ticket #7780 Signed-off-by: James Almer <jamrial@gmail.com>
* x86/opusdsp: implement FMA3 accelerated postfilter and deemphasisLynne2019-04-01
| | | | | | | | | | | | | | | | | | | | | | | | | 58893 decicycles in deemphasis_c, 130548 runs, 524 skips 9475 decicycles in deemphasis_fma3, 130686 runs, 386 skips -> 6.21x speedup 24866 decicycles in postfilter_c, 65386 runs, 150 skips 5268 decicycles in postfilter_fma3, 65505 runs, 31 skips -> 4.72x speedup Total decoder speedup: ~14% Deemphasis SIMD based on the following unrolling: const float c1 = CELT_EMPH_COEFF, c2 = c1*c1, c3 = c2*c1, c4 = c3*c1; float state = coeff; for (int i = 0; i < len; i += 4) { y[0] = x[0] + c1*state; y[1] = x[1] + c2*state + c1*x[0]; y[2] = x[2] + c3*state + c1*x[1] + c2*x[0]; y[3] = x[3] + c4*state + c1*x[2] + c2*x[1] + c3*x[0]; state = y[3]; y += 4; x += 4; }
* opusdsp: create and move deemphasis and postfiltering from opus_celtLynne2019-04-01
|
* celt_pvq_init: only build when CONFIG_OPUS_ENCODER is enabledLynne2019-03-31
| | | | The entire function was defined away before.
* x86/opus_dsp: rename to celt_pvqLynne2019-03-31
| | | | Its only used in the encoder and in CELT's PVQ.
* avcodec/ivi: Reduce dereferencing structs in inner loop of ↵Michael Niedermayer2019-03-31
| | | | | | | | | | ivi_process_empty_tile() This speeds the code up by about 15% Testcase: 13779/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_INDEO4_fuzzer-5699589711069184 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ivi: Mark band parameter as constMichael Niedermayer2019-03-31
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ivi: fix indention for previous commitMichael Niedermayer2019-03-31
|
* avcodec/ivi: Factor ref_mb check outMichael Niedermayer2019-03-31
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/proresdec2: decode picture header before frame allocationMichael Niedermayer2019-03-31
| | | | | | | | Fixes: Timeout (21sec -> 0.3sec) Fixes: 13716/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PRORES_fuzzer-5755593333145600 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/doc, http, icecast, rtsp: Add option to disable send-expect-100Jun Li2019-03-31
| | | | | | | | | | Fix ticket #7297 The current setting for send-expect-100 option is either enabled if applicable or forced enabled, no option to force disable the header. This change is to expand the option setting to provide more flexibility, which is useful for rstp case. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/tiff: Multi-page supportNick Renieris2019-03-31
| | | | | | Option "-page N" (page index N starts from 1) can now be used to specify which TIFF page/subfile to decode. Signed-off-by: Nick Renieris <velocityra@gmail.com>
* lavf/flvdec: Cosmetics: Fix indentation for flv_read_packetJun Zhao2019-03-31
| | | | | | Commit e34ba5ec53b missed the indent Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* lavf/flvdec: add AMF date type supportJun Zhao2019-03-31
| | | | | | Support AMF date type when parse the FLV metadata. Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* swscale/ppc: VSX-optimize yuv2422_XLauri Kasanen2019-03-31
| | | | | | | | | | | | | | | | | | ./ffmpeg -f lavfi -i yuvtestsrc=duration=1:size=1200x1440 \ -s 1200x720 -f null -vframes 100 -pix_fmt $i -nostats \ -cpuflags 0 -v error - 7.2x speedup: yuyv422 126354 UNITS in yuv2packedX, 16384 runs, 0 skips 16383 UNITS in yuv2packedX, 16382 runs, 2 skips yvyu422 117669 UNITS in yuv2packedX, 16384 runs, 0 skips 16271 UNITS in yuv2packedX, 16379 runs, 5 skips uyvy422 117310 UNITS in yuv2packedX, 16384 runs, 0 skips 16226 UNITS in yuv2packedX, 16382 runs, 2 skips
* swscale/ppc: VSX-optimize yuv2422_2Lauri Kasanen2019-03-31
| | | | | | | | | | | | | | | | | | ./ffmpeg -f lavfi -i yuvtestsrc=duration=1:size=1200x1440 -sws_flags area \ -s 1200x720 -f null -vframes 100 -pix_fmt $i -nostats \ -cpuflags 0 -v error - 5.1x speedup: yuyv422 19339 UNITS in yuv2packed2, 16384 runs, 0 skips 3718 UNITS in yuv2packed2, 16383 runs, 1 skips yvyu422 19438 UNITS in yuv2packed2, 16384 runs, 0 skips 3800 UNITS in yuv2packed2, 16380 runs, 4 skips uyvy422 19128 UNITS in yuv2packed2, 16384 runs, 0 skips 3721 UNITS in yuv2packed2, 16380 runs, 4 skips
* swscale/ppc: VSX-optimize yuv2422_1Lauri Kasanen2019-03-31
| | | | | | | | | | | | | | | | | | ./ffmpeg -f lavfi -i yuvtestsrc=duration=1:size=1200x1440 \ -s 1200x1440 -f null -vframes 100 -pix_fmt $i -nostats \ -cpuflags 0 -v error - 15.3x speedup: yuyv422 14513 UNITS in yuv2packed1, 32768 runs, 0 skips 949 UNITS in yuv2packed1, 32767 runs, 1 skips yvyu422 14516 UNITS in yuv2packed1, 32767 runs, 1 skips 943 UNITS in yuv2packed1, 32767 runs, 1 skips uyvy422 14530 UNITS in yuv2packed1, 32767 runs, 1 skips 941 UNITS in yuv2packed1, 32766 runs, 2 skips
* avcodec: add Amuse Graphics decoderPaul B Mahol2019-03-31
| | | | This work is sponsored by VideoLAN.
* avutil/hcontext_cuda: Remove unnecessary stream synchronisationPhilip Langdale2019-03-30
| | | | | | | Similarly to the previous changes, we don't need to synchronise after a memcpy to device memory. On the other hand, we need to keep synchronising after a copy to host memory, otherwise there's no guarantee that subsequent host reads will return valid data.
* avcodec/cuviddec: Remove unnecessary stream synchronisationPhilip Langdale2019-03-30
| | | | | | | | We're also doing a sync here after copying the frame to be passed on down the pipleine. And it is also unnecessary. I was able to demonstrate a 33% speedup removing the sync from an example transcode pipeline.
* avfilter/vf_yadif_cuda: Remove unnecessary stream synchronisationPhilip Langdale2019-03-30
| | | | | | | | | | | | | | I put this call in by habit, rather than because there was any actual need. The filter is simply processing frames one after the other and has no need to synchronise. malakudi on the devtalk forums noticed a slowdown when using nvenc with temporal/spatial aq and that the slowdown went away if the sync call was removed. I also verified that in the basic encoding case there's an observable speedup. I also verified that we aren't doing unnecessary sync calls in any other filter.
* doc/filters: mention input requirements for ebur128Gyan Doshi2019-03-30
| | | | | | The filter requires input stream to have sample rate 48000 Hz and dbl fmt. Fixes #7812
* avcodec/libaomenc: fix default value for row-mt optionJames Almer2019-03-29
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libaomenc: Added more commandline optionsSam John via ffmpeg-devel2019-03-29
| | | | | | | | | | | The following are the newly added options: arnr_max_frames, arnr_strength, aq_mode, denoise_noise_level, denoise_block_size, rc_undershoot_pct, rc_overshoot_pct, minsection_pct, maxsection_pct, frame_parallel, enable_cdef, enable_global_motion, and intrabc. Also added macros for compiling for aom 1.0.0 and fixed the default values. Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/qsvenc: fix hevc vps extradata issuesZhong Li2019-03-29
| | | | | | | | | | | | | cbs trace qsv vps header failed due to some reasons: 1. vps_temporal_id_nesting_flag is not set but spec required it must to be 1 when vps_max_sub_layers_minus1 is equal to 0. 2. vps_num_hrd_parameters is not set and written. 3. other issues in ff_hevc_encode_nal_vps() (fixed in pervious commit_id: 520226b683). Reproduce: ffmpeg -hwaccel qsv -v verbose -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vframes 1 -c:v hevc_qsv -bsf:v trace_headers -f null - Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/hevc_ps_enc: fix vps nal issuesZhong Li2019-03-29
| | | | | | | 1. write vps_num_hrd_parameters element 2. flush left bits Signed-off-by: Zhong Li <zhong.li@intel.com>
* swscale/swscale_unscaled: Fix chroma slice heightMichael Niedermayer2019-03-28
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/dxv: Check remaining space in CHECKPOINT()Michael Niedermayer2019-03-28
| | | | | | | | Fixes: Timeout (77sec -> 1sec) Fixes: 13407/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DXV_fuzzer-5093143018471424 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* fftools/ffmpeg: Check if we do have also a filter_complex filter.Thierry Foucu2019-03-28
| | | | | | | | | | | | | | | | | Right now, the code check for no filter description, but if we use a filter_complex, the code will use the AVFrame.duration which could be wrong in case of using fps filter. How to reproduce the problem: ffmpeg -f lavfi -i testsrc=duration=1 -vf fps=fps=50 -vsync 1 -f null - output 50 frames ffmpeg -f lavfi -i testsrc=duration=1 -filter_complex fps=fps=50 -vsync 1 -f null - output 51 frames With this commit, the same command will always output 50 frames. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swscale/swscale_unscaled: fixed the issue that when width/height is not ↵Dong, Jerry2019-03-28
| | | | | | | | 2-multiple, transition of nv12 to u/v planes is not completed. Signed-off-by: Dong, Jerry <jerry.dong@intel.com> Signed-off-by: Decai Lin <decai.lin@intel.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* lavc/qsvenc_h264: remove the privite option trellisZhong Li2019-03-28
| | | | | | | | | | | | | | | | | | There are many problems of current qsv trellis option: 1. Duplicated with AVCodecContext definition 2. MFX_TRELLIS_XXX is introduced by MSDK API 1.17 Currently Without MSDK API checking thus may cause compilation issue. 3. user is inclined to enable trellis when set "-trellis 1", but actually it is to disable since MFX_TRELLIS_OFF is equal to 1. 4. It is too complex for user to enable trellis for every frame(I/P/B). Just simply remove the private option, and switch to the AVCodecContext definition. Compatibility should not a big problem (except can't exact map) since the option name is same as AVCodecContext. Signed-off-by: Zhong Li <zhong.li@intel.com> Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com> Reviewed-by: Moritz Barsnick <barsnick@gmx.net>
* lavc/qsvenc: use the common option "trellis" of AVCodecContextZhong Li2019-03-28
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* qsv: fix the dangerous macro definitionsZhong Li2019-03-28
| | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
* lavc/qsvenc: make the queried libmfx version easily reusedZhong Li2019-03-28
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* configure: include pkgconfig path as vaapi header searchZhong Li2019-03-28
| | | | | | | | | | | Currectly just standard header path can be found, check_type/struct will fail if vaapi is installed somewhere else. Move them followed "check_pkg_config" Reviewed-by: Mark Thompson <sw@jkqxz.net> Reviewed-by: Timo Rothenpieler <timo@rothenpieler.org> Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/vaapi_h264: Do not set FMO fields.Carl Eugen Hoyos2019-03-28
| | | | | | | | | | | | | | | | | | | The fields are deprecated in current vaapi, setting them to 0 in old versions is fine as FMO is not implemented. Fixes the following warnings: libavcodec/vaapi_h264.c:259:10: warning: 'num_slice_groups_minus1' is deprecated [-Wdeprecated-declarations] .num_slice_groups_minus1 = pps->slice_group_count - 1, ^ libavcodec/vaapi_h264.c:260:10: warning: 'slice_group_map_type' is deprecated [-Wdeprecated-declarations] .slice_group_map_type = pps->mb_slice_group_map_type, ^ libavcodec/vaapi_h264.c:261:10: warning: 'slice_group_change_rate_minus1' is deprecated [-Wdeprecated-declarations] .slice_group_change_rate_minus1 = 0, /* FMO is not implemented */ ^ Reviewed-by: Mark Thompson
* lavc/vaapi_hevc: Do not initialize fields twice.Carl Eugen Hoyos2019-03-28
| | | | | | | | | | | | | | | | | Fixes the following compilation warnings: libavcodec/vaapi_hevc.c:155:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] .pic_fields.bits = { ~^~~~ libavcodec/vaapi_hevc.c:125:57: note: previous initialization is here .pic_fields.value = 0, ^ libavcodec/vaapi_hevc.c:175:31: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] .slice_parsing_fields.bits = { ~^~~~ libavcodec/vaapi_hevc.c:126:57: note: previous initialization is here .slice_parsing_fields.value = 0, Reviewed-by: Mark Thompson
* configure: Do not enable both OpenCL-VAAPI interop modes simultaneouslyMark Thompson2019-03-27
| | | | | Beignet offers a far more flexiable and complete interface, so choose it by default if available.
* lavf/latmenc: Return the correct error for wrong codec.Carl Eugen Hoyos2019-03-27
| | | | Requested-by: Nicolas George
* avcodec/hevcdec: Avoid only partly skiping duplicate first slicesMichael Niedermayer2019-03-27
| | | | | | | | | | | | Fixes: NULL pointer dereference and out of array access Fixes: 13871/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5746167087890432 Fixes: 13845/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5650370728034304 This also fixes the return code for explode mode Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swscale/ppc: VSX-optimize yuv2rgb_fullLauri Kasanen2019-03-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./ffmpeg -f lavfi -i yuvtestsrc=duration=1:size=1200x1440 \ -s 1200x1440 -f null -vframes 100 -pix_fmt $i -nostats \ -cpuflags 0 -v error - This uses 32-bit mul, so POWER8 only. The following output formats get about 4.5x speedup: rgb24 39980 UNITS in yuv2packed1, 32768 runs, 0 skips 8774 UNITS in yuv2packed1, 32768 runs, 0 skips bgr24 40069 UNITS in yuv2packed1, 32768 runs, 0 skips 8772 UNITS in yuv2packed1, 32766 runs, 2 skips rgba 39759 UNITS in yuv2packed1, 32768 runs, 0 skips 8681 UNITS in yuv2packed1, 32767 runs, 1 skips bgra 39729 UNITS in yuv2packed1, 32768 runs, 0 skips 8696 UNITS in yuv2packed1, 32766 runs, 2 skips argb 39766 UNITS in yuv2packed1, 32768 runs, 0 skips 8672 UNITS in yuv2packed1, 32766 runs, 2 skips bgra 39784 UNITS in yuv2packed1, 32768 runs, 0 skips 8659 UNITS in yuv2packed1, 32767 runs, 1 skips
* swscale: Remove duplicated codeLauri Kasanen2019-03-27
| | | | In this function, the exact same clamping happens both in the if and unconditionally.
* lavc/h264_levels: add MaxMBPS checking and update fate test.Decai Lin2019-03-27
| | | | | | | | | 1. add MaxMBPS checking for level idc setting to align with AVC spec AnnexA table A-1/A-6 level limits. 2. update h264 level fate test. Signed-off-by: Decai Lin <decai.lin@intel.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
* lavc/bmp: Avoid a heap buffer overwrite for 1bpp input.Carl Eugen Hoyos2019-03-26
| | | | | Found by Mingi Cho, Seoyoung Kim, and Taekyoung Kwon of the Information Security Lab, Yonsei University.
* avformat/avformat.h: Update the comment for AVInputFormat.flagsJun Zhao2019-03-26
| | | | | | | AVFMT_NOTIMESTAMPS may be using in AVInputFormat.flags for demuxing Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* avfilter/vf_lensfun: add scale parameterDaniel Playfair Cal2019-03-25
| | | | | | | | | | | | | | | | | | | The lensfun filter wraps the lensfun library which performs transformations on videos to correct for lens distortion. Often this results in areas in the input being mapped to areas that fall outside the boundaries of the output. The library has a parameter called scale which is a scale factor applied to the output video. By decreasing it it is possible to regain the areas of the video which would otherwise have been lost. There is a special value of 0 which indicates that the library should automatically determine a scale factor that results in the output frame being filled (i.e. little or no black/unmapped areas). This patch adds a corresponding scale option to the lensfun filter which is passed through to the library. The existing behaviour of using the automatic value of 0 is retained as the default behaviour, while other values will be passed through to the library. Signed-off-by: Daniel Playfair Cal <daniel.playfair.cal@gmail.com>
* doc/filters: indicate range for zoom in lavfi/zoompanGyan Doshi2019-03-25
|
* avcodec/cbs_av1: fix range of values for Mastering Display Color Volume ↵James Almer2019-03-25
| | | | | | Metadata OBUs Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/jpeg2000dec: Skip de-quantization of empty areasMichael Niedermayer2019-03-25
| | | | | | | | Fixes: Timeout (26sec -> 18sec) Fixes: 13448/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEG2000_fuzzer-576903098243481 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/prosumer: Check decoded sizeMichael Niedermayer2019-03-25
| | | | | | | | Fixes: Timeout (longer than i had patience for -> 2sec) Fixes: 13205/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PROSUMER_fuzzer-5105644481282048 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>