summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avcodec/agm: add support for non-dct codingPaul B Mahol2019-04-11
|
* avcodec/agm: add support for higher compressionPaul B Mahol2019-04-11
|
* swscale/ppc: VSX-optimize non-full-chroma yuv2rgb_2Lauri Kasanen2019-04-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./ffmpeg -f lavfi -i yuvtestsrc=duration=1:size=1200x1440 -sws_flags fast_bilinear \ -s 1200x720 -f null -vframes 100 -pix_fmt $i -nostats \ -cpuflags 0 -v error - 32-bit mul, power8 only. ~2x speedup: rgb24 24431 UNITS in yuv2packed2, 16384 runs, 0 skips 13783 UNITS in yuv2packed2, 16383 runs, 1 skips bgr24 24396 UNITS in yuv2packed2, 16384 runs, 0 skips 14059 UNITS in yuv2packed2, 16384 runs, 0 skips rgba 26815 UNITS in yuv2packed2, 16383 runs, 1 skips 12797 UNITS in yuv2packed2, 16383 runs, 1 skips bgra 27060 UNITS in yuv2packed2, 16384 runs, 0 skips 13138 UNITS in yuv2packed2, 16384 runs, 0 skips argb 26998 UNITS in yuv2packed2, 16384 runs, 0 skips 12728 UNITS in yuv2packed2, 16381 runs, 3 skips bgra 26651 UNITS in yuv2packed2, 16384 runs, 0 skips 13124 UNITS in yuv2packed2, 16384 runs, 0 skips This is a low speedup, but the x86 mmx version also gets only ~2x. The mmx version is also heavily inaccurate, while the vsx version has high accuracy.
* avcodec/pnm_parser: Factor out next/index compensationMichael Niedermayer2019-04-10
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/pnm_parser: Factor next initialization outMichael Niedermayer2019-04-10
| | | | | Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/pnm_parser: Support concatenated ASCII imagesMichael Niedermayer2019-04-10
| | | | | | | | Fixes: Timeout (8sec -> 0.1sec) Fixes: 13864/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PAM_fuzzer-5737860621139968 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avdevice/opengl_enc: fix build error using msvc compilerDon C. Bigler2019-04-10
|
* libavformat/dashenc : Prevent writing manifest files multiple timesjoepadmiraal2019-04-10
|
* aarch64/opusdsp: implement NEON accelerated postfilter and deemphasisLynne2019-04-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 153372 UNITS in postfilter_c, 65536 runs, 0 skips 73164 UNITS in postfilter_neon, 65536 runs, 0 skips -> 2.1x speedup 80591 UNITS in deemphasis_c, 131072 runs, 0 skips 43969 UNITS in deemphasis_neon, 131072 runs, 0 skips -> 1.83x speedup Total decoder speedup: ~15% on a Raspberry Pi 3 (from 28.1x to 33.5x realtime) 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; } Unlike the x86 version, duplication is used instead of pslldq so the structure and tables are different.
* libavutil/hwcontext_opencl: Fix channel order in format support checkJarek Samic2019-04-09
| | | | | | | | | | | | | The `opencl_get_plane_format` function was incorrectly determining the value used to set the image channel order. This resulted in all RGB pixel formats being set to the `CL_RGBA` pixel format, regardless of whether or not they actually *were* RGBA. This patch fixes the issue by using the `offset` and depth of components rather than the loop index to determine the value of `order`. Signed-off-by: Jarek Samic <cldfire3@gmail.com> Signed-off-by: Mark Thompson <sw@jkqxz.net>
* avformat/matroskaenc: fix leak on errorTristan Matthews2019-04-09
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavf/movenc: Pass correct pointer to av_log().Carl Eugen Hoyos2019-04-09
|
* lavf/matroskaenc: Fix memory leak after write trailerJun Zhao2019-04-09
| | | | | | | | | | | | | | | | | | | Fix memory leak after write trailer for #7827, only store a audio packet whose buffer has size greater than zero in cur_audio_pkt. Audio packets with size zero, but with side-data currently lead to memleaks, in the Matroska muxer, because they are not properly freed: They are currently put into an AVPacket in the MatroskaMuxContext to ensure that the necessary audio is always available for a new cluster, but are only written and freed when their size is > 0. As the only use we have for such packets consists in updating the CodecPrivate it makes no sense to store these packets at all and this is how this commit solves the memleak. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com> Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* avformat/av1: Initialize padding in ff_isom_write_av1cJeremy Dorfman via ffmpeg-devel2019-04-08
| | | | | | | | Otherwise, AV1 encodes with FFmpeg trigger use-of-uninitialized-value warnings under MemorySanitizer, and the output buffer potentially changes from run to run. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/af_asetnsamples: use correct functionPaul B Mahol2019-04-07
|
* avformat/riffdec: pass correct pointer to av_logPaul B Mahol2019-04-07
|
* avfilter/af_asetnsamples: fix sample queuing.Nikolas Bowe via ffmpeg-devel2019-04-07
| | | | | | | | | When asetnsamples uses output samples < input samples, remaining samples build up in the fifo over time. Fix this by marking the filter as ready again if there are enough samples. Regression since ef3babb2c70f564dc1634b3f29c6e35a2b2dc239 Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* swscale/ppc: VSX-optimize yuv2rgb_full_XLauri Kasanen2019-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./ffmpeg -f lavfi -i yuvtestsrc=duration=1:size=1200x1440 \ -s 1200x720 -f null -vframes 100 -pix_fmt $i -nostats \ -cpuflags 0 -v error - 32-bit mul, power8 only. ~6.4x speedup: rgb24 214278 UNITS in yuv2packedX, 16384 runs, 0 skips 33249 UNITS in yuv2packedX, 16384 runs, 0 skips bgr24 214616 UNITS in yuv2packedX, 16384 runs, 0 skips 33233 UNITS in yuv2packedX, 16384 runs, 0 skips rgba 214517 UNITS in yuv2packedX, 16384 runs, 0 skips 33271 UNITS in yuv2packedX, 16384 runs, 0 skips bgra 214973 UNITS in yuv2packedX, 16384 runs, 0 skips 33397 UNITS in yuv2packedX, 16384 runs, 0 skips argb 214613 UNITS in yuv2packedX, 16384 runs, 0 skips 33310 UNITS in yuv2packedX, 16384 runs, 0 skips bgra 214637 UNITS in yuv2packedX, 16384 runs, 0 skips 33330 UNITS in yuv2packedX, 16384 runs, 0 skips
* swscale/ppc: VSX-optimize yuv2rgb_full_2Lauri Kasanen2019-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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 - 32-bit mul, power8 only. ~4x speedup: rgb24 52763 UNITS in yuv2packed2, 16384 runs, 0 skips 13453 UNITS in yuv2packed2, 16384 runs, 0 skips bgr24 53144 UNITS in yuv2packed2, 16384 runs, 0 skips 13616 UNITS in yuv2packed2, 16384 runs, 0 skips rgba 52796 UNITS in yuv2packed2, 16384 runs, 0 skips 12904 UNITS in yuv2packed2, 16384 runs, 0 skips bgra 52732 UNITS in yuv2packed2, 16384 runs, 0 skips 13262 UNITS in yuv2packed2, 16384 runs, 0 skips argb 52661 UNITS in yuv2packed2, 16384 runs, 0 skips 12879 UNITS in yuv2packed2, 16384 runs, 0 skips bgra 52662 UNITS in yuv2packed2, 16384 runs, 0 skips 12932 UNITS in yuv2packed2, 16384 runs, 0 skips
* swscale/ppc: VSX-optimize non-full-chroma yuv2rgb_1Lauri Kasanen2019-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./ffmpeg -f lavfi -i yuvtestsrc=duration=1:size=1200x1440 -sws_flags fast_bilinear \ -s 1200x1440 -f null -vframes 100 -pix_fmt $i -nostats \ -cpuflags 0 -v error - 32-bit mul, power8 only. 1.8-2.3x speedup: rgb24 18192 UNITS in yuv2packed1, 32767 runs, 1 skips 9983 UNITS in yuv2packed1, 32760 runs, 8 skips bgr24 18665 UNITS in yuv2packed1, 32766 runs, 2 skips 9925 UNITS in yuv2packed1, 32763 runs, 5 skips rgba 20239 UNITS in yuv2packed1, 32767 runs, 1 skips 8794 UNITS in yuv2packed1, 32759 runs, 9 skips bgra 20354 UNITS in yuv2packed1, 32768 runs, 0 skips 8770 UNITS in yuv2packed1, 32761 runs, 7 skips argb 20185 UNITS in yuv2packed1, 32768 runs, 0 skips 8761 UNITS in yuv2packed1, 32761 runs, 7 skips bgra 20360 UNITS in yuv2packed1, 32766 runs, 2 skips 8759 UNITS in yuv2packed1, 32764 runs, 4 skips This is a low speedup, but the x86 mmx version also gets only ~2x. The mmx version is also heavily inaccurate, while the vsx version has high accuracy.
* doc/examples/metadata: fix the example can't dump FLV metadataJun Zhao2019-04-07
| | | | | | fix the example can't dump FLV metadata. Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* lavf/Makefile: Fix kux demuxer standalone compilation.Carl Eugen Hoyos2019-04-07
|
* lavf/flvdec: added support for KUX containerSwaraj Hota2019-04-06
| | | | | | | | Fixes ticket #4519. The metadata starting at 0xe00004 is encrypted with the password "meta" but zlib does not support decryption, so no kux metadata is read.
* lavd/x11grab: fix vertical repositioningOctavio Alvarez2019-04-06
| | | | | | | | | | | | | | | | There is a calculation error in xcbgrab_reposition() that breaks vertical repositioning on follow_mouse. It made the bottom reposition occur when moving the mouse lower than N pixels after the capture bottom edge, instead of before. This commit fixes the calculation to match the documentation. follow_mouse: centered or number of pixels. The documentation says: When it is specified with "centered", the grabbing region follows the mouse pointer and keeps the pointer at the center of region; otherwise, the region follows only when the mouse pointer reaches within PIXELS (greater than zero) to the edge of region.
* FATE: Add test for HEVC files that claim to have two first slicesDerek Buitenhuis2019-04-05
| | | | | | This makes sure we don't regress on 70c8c8a818f39bc262565ec29fae2baffb3e1660. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* avcodec/agm: Fix integer overflow with w/hMichael Niedermayer2019-04-05
| | | | | | | | | Fixes: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself Fixes: 13999/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AGM_fuzzer-5644405991538688 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>
* avformat/matroskadec: Improve length checkAndreas Rheinhardt via ffmpeg-devel2019-04-05
| | | | | | | | | | | | | | | | | | | | | The earlier code had three flaws: 1. The case of an unknown-sized element inside a finite-sized element (which is against the specifications) was not caught. 2. The error message wasn't helpful: It compared the length of the child with the offset of the end of the parent and claimed that the first exceeds the latter, although that is not necessarily true. 3. Unknown-sized elements that are not parsed can't be skipped. Given that according to the Matroska specifications only the segment and the clusters can be of unknown-size, this is handled by not allowing any other units to have infinite size whereas the earlier code would seek back by 1 byte upon encountering an infinite-size element that ought to be skipped. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/agm: More completely check size before using itMichael Niedermayer2019-04-04
| | | | | | | | | Fixes: out of array access Fixes: 13997/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AGM_fuzzer-5701427252428800 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/av1_metadata: add an option to remove Padding OBUsJames Almer2019-04-03
| | | | | Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/qsvenc: enable hevc gpb optionZhong Li2019-04-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | GPB is the default type, just contains forward references but the slice_type is B slice with higher encoding efficiency than regular P slice, but lower performance. Add an option to allow user to set regular P slice. Fix ticket#6870 Test data on Intel Kabylake (i7-7567U CPU @ 3.50GHz): 1. ffmpeg -hwaccel qsv -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vsync passthrough -vframes 1000 -c:v hevc_qsv -gpb 0 -bf 0 -q 25 test_gpb_off_bf0_kbl.mp4 transcoding fps: 85 encoded file size of test_gpb_off_bf0_kbl.mp4: 21960100 (bytes) 2. ffmpeg -hwaccel qsv -c:v h264_qsv -i bbb_sunflower_1080p_30fps_normal.mp4 -vsync passthrough -vframes 1000 -c:v hevc_qsv -gpb 1 -bf 0 -q 25 test_gpb_on_bf0_kbl.mp4 transcoding fps: 79 encoded file size oftest_gpb_on_bf0_kbl.mp4: 21211449 (bytes) In this case, enable gpb can bring about 7% performance drop but 3.4% encoding efficiency improvment. Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvenc: enable hevc coding options configurationZhong Li2019-04-03
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavc/qsvenc: no need to include h264.h for jpeg encoderZhong Li2019-04-03
| | | | Signed-off-by: Zhong Li <zhong.li@intel.com>
* lavf/movenc: fix tmcd writing for non-MP4/MOV modesGyan Doshi2019-04-03
| | | | | | | write_tmcd allows tmcd track to be created with any mode but in mov_write_header, index for first tmcd track is only set for modes MP4 or MOV, causing a crash if tmcd creation is attempted with other modes.
* fate: unbreak fate with custom binary namesGyan Doshi2019-04-03
|
* lavf/hashenc: Correct the hash/MD5 muxer class nameJun Zhao2019-04-03
| | | | | | Follow the name style to correct the hash/md5 muxer class name Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
* avcodec/libaomenc: fix range of values for enable-intrabc optionJames Almer2019-04-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/cbs_av1: fix parsing spatial_idJames Almer2019-04-02
| | | | | Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: James Almer <jamrial@gmail.com>
* libavcodec/zmbvenc: add support for 24-bit encoding, using pix_fmt BGR24.Matthew Fearnley2019-04-02
| | | | | Support is #ifdef'd out at this stage, using ZMBV_ENABLE_24BPP (like in the zmbv.c decoder)
* libavcodec/zmbv: change 24-bit decoder channel order, from RGB24 to BGR24Matthew Fearnley2019-04-02
| | | | | | | | | | | | This brings the channel order in line with that used in 32-bit mode (BGR0). 24-bit decoding is disabled by default (#ifdef ZMBV_ENABLE_24BPP), and no prior encoders or sample videos are known to exist for this bit depth, so I consider this change in implementation is unlikely to affect anyone. The decision has been made in agreement with the DOSBox Development Team (dosbox.crew@gmail.com), specifically with harekiet, who wrote the original codec.
* libavcodec/zmbv: use PTRDIFF_SPECIFIER for `src - c->decomp_buf`.Matthew Fearnley2019-04-02
| | | | | Other bit depths saw this change in ced0d6c14d, but this instance was presumably missed because of the #ifdef block.
* avcodec/opus: make redundancy_buf 32 byte alignedJames Almer2019-04-02
| | | | | | Fixes ff_opus_deemphasis_fma3 segmentation fault crashes on x86_32. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/dashenc: Add support for Global SIDXKarthick J2019-04-02
|
* avformat/movenc: Fix skip_trailer when global_sidx is enabledKarthick J2019-04-02
|
* avformat/hls: make different warning message between open url and parse playlistSteven Liu2019-04-02
| | | | Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
* lavf/mov: skip extradata check in esds for MPEG-1/2 audioGyan Doshi2019-04-01
| | | | | | As per 14496-3 9.D.2.2, it's not defined for these audio object types. Fixes #7817.
* x86/opusdsp: fix WIN64 return valueLynne2019-04-01
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/qsvenc: get vps extradata from MSDKZhong Li2019-04-01
| | | | | Signed-off-by: Zhong Li <zhong.li@intel.com> Reviewed-by: Mark Thompson <sw@jkqxz.net>
* lavc/qsvenc: expose low_power as a common option for QSV encoderLinjie Fu2019-04-01
| | | | | | | | Always exposes low_power option for all qsv encoder, and reports a warning if VDENC is not supported in current version of MSDK. Signed-off-by: Linjie Fu <linjie.fu@intel.com> Signed-off-by: Zhong Li <zhong.li@intel.com>
* doc/general: make column key note more verboseGyan Doshi2019-04-01
| | | | Addresses #7795
* avcodec/rscc: Check that the to be uncompressed input is large enoughMichael Niedermayer2019-04-01
| | | | | | | | | Fixes: Out of array access Fixes: 13984/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RSCC_fuzzer-5734128093233152 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>