]> git.sesse.net Git - ffmpeg/log
ffmpeg
5 years agoconfigure: Add .exe suffix to toolchain calls.
Carl Eugen Hoyos [Fri, 19 Apr 2019 22:12:34 +0000 (00:12 +0200)]
configure: Add .exe suffix to toolchain calls.

Allows in-tree msvc compilation with wsl.

5 years agoavcodec/pictordec: Only recalculate d when y changes in picmemset()
Michael Niedermayer [Fri, 12 Apr 2019 23:19:03 +0000 (01:19 +0200)]
avcodec/pictordec: Only recalculate d when y changes in picmemset()

Fixes: Timeout (21->18sec)
Fixes: 14124/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PICTOR_fuzzer-5633887734071296
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavcodec/pictordec: avoid pointers in picmemset()
Michael Niedermayer [Fri, 12 Apr 2019 23:17:12 +0000 (01:17 +0200)]
avcodec/pictordec: avoid pointers in picmemset()

Improves overall speed by about 3%
Testcase: 14124/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PICTOR_fuzzer-5633887734071296

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavcodec/wmv2dec: Check that the P frame secondary header fit in the input
Michael Niedermayer [Fri, 12 Apr 2019 22:15:27 +0000 (00:15 +0200)]
avcodec/wmv2dec: Check that the P frame secondary header fit in the input

Fixes: Timeout (64sec ->2 sec)
Fixes: 14131/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV2_fuzzer-5719879556005888
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavcodec/ivi: Move buffer/block end check to caller of ivi_dc_transform()
Michael Niedermayer [Thu, 11 Apr 2019 22:09:57 +0000 (00:09 +0200)]
avcodec/ivi: Move buffer/block end check to caller of ivi_dc_transform()

Fixes: assertion failure
Fixes: 14078/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_INDEO5_fuzzer-5760571284127744
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavcodec/diracdec: Use 64bit in intermediate of global motion vector field generation
Michael Niedermayer [Sun, 7 Apr 2019 14:44:53 +0000 (16:44 +0200)]
avcodec/diracdec: Use 64bit in intermediate of global motion vector field generation

It seems the specification does not limit the value to 32bit

Fixes: signed integer overflow: -109611143 * 24 cannot be represented in type 'int'
Fixes: 13477/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5648337460527104
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavformat/apetag: tag values are unsigned
Dan Sanders [Fri, 19 Apr 2019 00:12:14 +0000 (17:12 -0700)]
avformat/apetag: tag values are unsigned

Fixes: UBSan runtime error
Found-by: Clusterfuzz
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agolibavformat: improve logs with cur_dts
Andreas Hakon [Fri, 19 Apr 2019 07:58:37 +0000 (08:58 +0100)]
libavformat: improve logs with cur_dts

This patch improves the logs when the message "cur_dts is invalid" appears.
If helps to identify which stream generates the trouble,
and the status of the stream.
A lot of users suffers with the message, and the origin varies.
The improved message can help to discover the cause.

Signed-off-by: Andreas Hakon <andreas.hakon@protonmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agotests: don't include TARGET_PATH in the sample path needlessly
Hendrik Leppkes [Wed, 3 Apr 2019 22:17:43 +0000 (00:17 +0200)]
tests: don't include TARGET_PATH in the sample path needlessly

The transcode() helper function will already prepend the TARGET_PATH to
the sample path, if its a relative path. This avoids an issue on
Windows, where the relative path check could fail.

5 years agolavu/hwcontext_d3d: Cast src pointers calling av_image_copy*().
Carl Eugen Hoyos [Thu, 18 Apr 2019 11:55:29 +0000 (13:55 +0200)]
lavu/hwcontext_d3d: Cast src pointers calling av_image_copy*().

Silences several warnings:
libavutil/hwcontext_d3d11va.c:413:49: warning: passing argument 3 of ‘av_image_copy’ from incompatible pointer type
libavutil/hwcontext_d3d11va.c:425:47: warning: passing argument 3 of ‘av_image_copy’ from incompatible pointer type
libavutil/hwcontext_dxva2.c:351:45: warning: passing argument 3 of ‘av_image_copy’ from incompatible pointer type
libavutil/hwcontext_dxva2.c:382:52: warning: passing argument 3 of ‘av_image_copy_uc_from’ from incompatible pointer type

5 years agolavf/vc1dec: Reduce probe score for streams with invalid frames.
Carl Eugen Hoyos [Fri, 19 Apr 2019 12:06:29 +0000 (14:06 +0200)]
lavf/vc1dec: Reduce probe score for streams with invalid frames.

Fixes ticket #7853.

5 years agolavc/alac: Make a variable unsigned.
Carl Eugen Hoyos [Thu, 18 Apr 2019 11:51:07 +0000 (13:51 +0200)]
lavc/alac: Make a variable unsigned.

Fixes a bogus compiler warning (max_samples_per_frame is checked):
libavcodec/alac.c: In function ‘allocate_buffers’:
./libavutil/internal.h:142:9: warning: argument 1 value ‘18446744073709551552’ exceeds maximum object size 9223372036854775807

5 years agoavcodec/get_bits: unbreak get_bits_le() with cached reader
Paul B Mahol [Tue, 26 Mar 2019 10:10:54 +0000 (11:10 +0100)]
avcodec/get_bits: unbreak get_bits_le() with cached reader

5 years agolavf/utils: Allow url credentials to contain a slash.
Carl Eugen Hoyos [Thu, 28 Mar 2019 18:33:22 +0000 (19:33 +0100)]
lavf/utils: Allow url credentials to contain a slash.

Fixes ticket #7816.

5 years agoavutil/colorspace: add macros for RGB->YUV BT.709
Gyan Doshi [Sat, 13 Apr 2019 11:31:09 +0000 (17:01 +0530)]
avutil/colorspace: add macros for RGB->YUV BT.709

5 years agotests: Add EXESUF to program calls.
Carl Eugen Hoyos [Thu, 18 Apr 2019 01:24:35 +0000 (03:24 +0200)]
tests: Add EXESUF to program calls.

Fixes fate in Windows subsystem for Linux.

5 years agorename hls_segment_filename in fate-hls-segment-size for fate
Steven Liu [Thu, 18 Apr 2019 22:22:34 +0000 (06:22 +0800)]
rename hls_segment_filename in fate-hls-segment-size for fate

5 years agoadd tests/ref/fate/hls-segment-size for the fate test
Steven Liu [Thu, 18 Apr 2019 02:02:44 +0000 (10:02 +0800)]
add tests/ref/fate/hls-segment-size for the fate test

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
5 years agodoc/mailing-list-faq: add DMARC munging
Lou Logan [Thu, 18 Apr 2019 20:01:57 +0000 (12:01 -0800)]
doc/mailing-list-faq: add DMARC munging

Signed-off-by: Lou Logan <lou@lrcd.com>
5 years agodoc/encoders: Fix libvpx option name arnr-maxframes.
Carl Eugen Hoyos [Thu, 18 Apr 2019 11:39:58 +0000 (13:39 +0200)]
doc/encoders: Fix libvpx option name arnr-maxframes.

Fixes ticket #7856.

5 years agoUpdated documentation for libaom encoder options.
Sam John [Wed, 10 Apr 2019 00:55:51 +0000 (17:55 -0700)]
Updated documentation for libaom encoder options.

Signed-off-by: Gyan Doshi <ffmpeg@gyani.pro>
5 years agoavfilter/af_agate: implement mode option
Paul B Mahol [Wed, 17 Apr 2019 21:33:51 +0000 (23:33 +0200)]
avfilter/af_agate: implement mode option

5 years agoavfilter/af_sidechaincompress: implement mode option
Paul B Mahol [Wed, 17 Apr 2019 12:31:13 +0000 (14:31 +0200)]
avfilter/af_sidechaincompress: implement mode option

5 years agotests/fate: add fate-hls-segment-size for hls_segment_size test
Steven Liu [Sun, 14 Apr 2019 13:22:22 +0000 (21:22 +0800)]
tests/fate: add fate-hls-segment-size for hls_segment_size test

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
5 years agoavcodec/cbs_av1: use the new signed value read/write functions
James Almer [Mon, 15 Apr 2019 20:52:38 +0000 (17:52 -0300)]
avcodec/cbs_av1: use the new signed value read/write functions

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/cbs_h265: fix storage type for time_offset_value in Time Code SEI
James Almer [Mon, 15 Apr 2019 20:51:49 +0000 (17:51 -0300)]
avcodec/cbs_h265: fix storage type for time_offset_value in Time Code SEI

The spec defines it as an array of signed values, inferred to 0 when not
present.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/cbs_h264: fix storage type for time_offset in Pic Timing SEI
James Almer [Mon, 15 Apr 2019 20:50:01 +0000 (17:50 -0300)]
avcodec/cbs_h264: fix storage type for time_offset in Pic Timing SEI

The spec defines it as a signed value.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/cbs_h2645: add helper macros for signed values
James Almer [Mon, 15 Apr 2019 20:48:55 +0000 (17:48 -0300)]
avcodec/cbs_h2645: add helper macros for signed values

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/cbs: add helper functions and macros to read and write signed values
James Almer [Mon, 15 Apr 2019 20:46:53 +0000 (17:46 -0300)]
avcodec/cbs: add helper functions and macros to read and write signed values

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/cbs_av1: add support for Scalability Metadata
James Almer [Sun, 14 Apr 2019 21:52:38 +0000 (18:52 -0300)]
avcodec/cbs_av1: add support for Scalability Metadata

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agolavu/hwcontext_qsv: Mark a pointer as const.
Carl Eugen Hoyos [Tue, 16 Apr 2019 12:28:09 +0000 (14:28 +0200)]
lavu/hwcontext_qsv: Mark a pointer as const.

Silences a warning:
libavutil/hwcontext_qsv.c:912:15: warning: assignment discards 'const' qualifier from pointer target type

5 years agolavc/libaomenc: Mark a potentially unused variable as av_unused.
Carl Eugen Hoyos [Tue, 16 Apr 2019 12:20:43 +0000 (14:20 +0200)]
lavc/libaomenc: Mark a potentially unused variable as av_unused.

Fixes a warning:
libavcodec/libaomenc.c:816:9: warning: unused variable ‘pict_type’

5 years agoavformat/dashenc: Disable streaming for webm output
Karthick J [Wed, 10 Apr 2019 06:36:40 +0000 (12:06 +0530)]
avformat/dashenc: Disable streaming for webm output

Currently streaming for webm output doesn't work.
Disabling explicitly will make sure that the manifest will get generated correctly.

5 years agoavcodec/videotoolbox: add support for 10bit pixel format
fumoboy007 [Sat, 13 Apr 2019 14:36:00 +0000 (16:36 +0200)]
avcodec/videotoolbox: add support for 10bit pixel format

this patch was originally posted on issue #7704 and was slightly
adjusted to check for the availability of the pixel format.

5 years agolavfi/fspp: Remove two unused macros.
Carl Eugen Hoyos [Sun, 14 Apr 2019 20:56:17 +0000 (22:56 +0200)]
lavfi/fspp: Remove two unused macros.

5 years agoavdevice/decklink_common: add support for DeckLink SDK 11
Marton Balint [Thu, 14 Mar 2019 00:37:11 +0000 (01:37 +0100)]
avdevice/decklink_common: add support for DeckLink SDK 11

Fixes ticket #7789.

Signed-off-by: Marton Balint <cus@passwd.hu>
5 years agoavdevice/decklink_common: properly check DoesSupportVideoMode result when trying...
Marton Balint [Thu, 14 Mar 2019 01:13:56 +0000 (02:13 +0100)]
avdevice/decklink_common: properly check DoesSupportVideoMode result when trying VANC flag

Signed-off-by: Marton Balint <cus@passwd.hu>
5 years agoavdevice/decklink_dec: set configs before listing formats
Marton Balint [Thu, 14 Mar 2019 01:00:27 +0000 (02:00 +0100)]
avdevice/decklink_dec: set configs before listing formats

Format list can be input and profile dependant.

Signed-off-by: Marton Balint <cus@passwd.hu>
5 years agolavf/hls: Cleanup the applehttp
Jun Zhao [Fri, 12 Apr 2019 10:54:47 +0000 (18:54 +0800)]
lavf/hls: Cleanup the applehttp

Cleanup the applehttp as demuxer name, when use the command :

ffmpeg -formats, get the confused information like:
"
 E hls             Apple HTTP Live Streaming
D  hls,applehttp   Apple HTTP Live Streaming
"
we don't use applehttp as the demuxer/muxer name usually, so
cleanup the applehttp and update the documents.

After the change, get the information from "ffmpeg -formats":
"
DE hls             Apple HTTP Live Streaming
"

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
5 years agolavf/rtsp.c: Fix stimeout option not applied on http tunnel
Jun Li [Mon, 15 Apr 2019 11:46:20 +0000 (19:46 +0800)]
lavf/rtsp.c: Fix stimeout option not applied on http tunnel

stimeout option is already used in tcp transport, since
http is based on tcp, pass the option to http for tunneling
case.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Li <junli1026@gmail.com>
5 years agoRevert "lavf/rtsp.c: Fix stimeout option not applied on http tunnel"
Steven Liu [Mon, 15 Apr 2019 11:45:39 +0000 (19:45 +0800)]
Revert "lavf/rtsp.c: Fix stimeout option not applied on http tunnel"

This reverts commit 1ae8a1073ba8a3ceb9f51d9350785c27530aa469.

5 years agolavf/rtsp.c: Fix stimeout option not applied on http tunnel
Signed-off-by: Jun Li [Mon, 15 Apr 2019 11:44:11 +0000 (19:44 +0800)]
lavf/rtsp.c: Fix stimeout option not applied on http tunnel

stimeout option is already used in tcp transport, since
http is based on tcp, pass the option to http for tunneling
case.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Li <junli1026@gmail.com>
5 years agoRevert "lavf/rtsp.c: Fix stimeout option not applied on http tunnel"
Steven Liu [Mon, 15 Apr 2019 11:43:21 +0000 (19:43 +0800)]
Revert "lavf/rtsp.c: Fix stimeout option not applied on http tunnel"

This reverts commit f502bd5432c9d7a34392ec3147bc5b5e3a868d9c.

5 years agolavf/rtsp.c: Fix stimeout option not applied on http tunnel
Steven Liu [Mon, 15 Apr 2019 07:24:56 +0000 (15:24 +0800)]
lavf/rtsp.c: Fix stimeout option not applied on http tunnel

stimeout option is already used in tcp transport, since
http is based on tcp, pass the option to http for tunneling
case.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Li <junli1026@gmail.com>
5 years agoavformat/mxfdec: use operational_pattern_ul instead of operational_pattern for metadata
Marton Balint [Sun, 14 Apr 2019 16:37:44 +0000 (18:37 +0200)]
avformat/mxfdec: use operational_pattern_ul instead of operational_pattern for metadata

This makes it more consistent with other metadata keys.

Signed-off-by: Marton Balint <cus@passwd.hu>
5 years agoavcodec/cbs_av1: add support for Padding OBUs
James Almer [Mon, 25 Mar 2019 03:11:39 +0000 (00:11 -0300)]
avcodec/cbs_av1: add support for Padding OBUs

Based on itut_t35 Matadata OBU parsing code.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/cbs_av1: add a function to strip trailing zeroes from a buffer size
James Almer [Sat, 13 Apr 2019 19:10:19 +0000 (16:10 -0300)]
avcodec/cbs_av1: add a function to strip trailing zeroes from a buffer size

Factor it out from cbs_av1_read_metadata_itut_t35()

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavformat/hlsenc: flush packets before update split message
Steven Liu [Sun, 14 Apr 2019 10:45:23 +0000 (18:45 +0800)]
avformat/hlsenc: flush packets before update split message

fix ticket: 7831

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
5 years agoavcodec/truemotion2: Fix integer overflow in tm2_decode_blocks()
Michael Niedermayer [Tue, 26 Mar 2019 23:39:56 +0000 (00:39 +0100)]
avcodec/truemotion2: Fix integer overflow in tm2_decode_blocks()

Fixes: signed integer overflow: 255 + 2147483634 cannot be represented in type 'int'
Fixes: 13472/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TRUEMOTION2_fuzzer-5712444142387200
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavcodec/imm4: flush prev_frame after seeking
Paul B Mahol [Sat, 13 Apr 2019 16:32:58 +0000 (18:32 +0200)]
avcodec/imm4: flush prev_frame after seeking

5 years agoavcodec: add LSCR decoder
Paul B Mahol [Fri, 12 Apr 2019 15:25:26 +0000 (17:25 +0200)]
avcodec: add LSCR decoder

Fixes #4711.

5 years agoavformat/file: add seekable option to disallow seeking
Marton Balint [Tue, 2 Apr 2019 23:13:55 +0000 (01:13 +0200)]
avformat/file: add seekable option to disallow seeking

Signed-off-by: Marton Balint <cus@passwd.hu>
5 years agoavformat/mxfdec: export operational pattern UL as file metadata
Marton Balint [Tue, 2 Apr 2019 16:24:21 +0000 (18:24 +0200)]
avformat/mxfdec: export operational pattern UL as file metadata

Can be useful for API users as ffmpeg/libavformat can't properly support some
operational patterns.

Signed-off-by: Marton Balint <cus@passwd.hu>
5 years agoconfigure: fix av1_frame_split bsf dependencies
James Almer [Thu, 11 Apr 2019 18:59:34 +0000 (15:59 -0300)]
configure: fix av1_frame_split bsf dependencies

Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec: add an AV1 frame split bitstream filter
James Almer [Tue, 18 Dec 2018 00:56:27 +0000 (21:56 -0300)]
avcodec: add an AV1 frame split bitstream filter

This will be needed by the eventual native AV1 decoder.

Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/agm: Check frame dimensions
Michael Niedermayer [Wed, 10 Apr 2019 22:36:48 +0000 (00:36 +0200)]
avcodec/agm: Check frame dimensions

Fixes: out of array access
Fixes: 14110/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AGM_fuzzer-5649184864075776
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>
5 years agoavcodec: add ADPCM AGM decoder
Paul B Mahol [Wed, 10 Apr 2019 10:10:09 +0000 (12:10 +0200)]
avcodec: add ADPCM AGM decoder

5 years agoavcodec/agm: add support for non-dct coding
Paul B Mahol [Tue, 9 Apr 2019 11:57:53 +0000 (13:57 +0200)]
avcodec/agm: add support for non-dct coding

5 years agoavcodec/agm: add support for higher compression
Paul B Mahol [Fri, 29 Mar 2019 13:43:42 +0000 (14:43 +0100)]
avcodec/agm: add support for higher compression

5 years agoswscale/ppc: VSX-optimize non-full-chroma yuv2rgb_2
Lauri Kasanen [Fri, 5 Apr 2019 08:31:43 +0000 (11:31 +0300)]
swscale/ppc: VSX-optimize non-full-chroma yuv2rgb_2

./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.

5 years agoavcodec/pnm_parser: Factor out next/index compensation
Michael Niedermayer [Sat, 6 Apr 2019 12:43:14 +0000 (14:43 +0200)]
avcodec/pnm_parser: Factor out next/index compensation

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavcodec/pnm_parser: Factor next initialization out
Michael Niedermayer [Sat, 6 Apr 2019 12:41:33 +0000 (14:41 +0200)]
avcodec/pnm_parser: Factor next initialization out

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
5 years agoavcodec/pnm_parser: Support concatenated ASCII images
Michael Niedermayer [Sat, 6 Apr 2019 11:11:10 +0000 (13:11 +0200)]
avcodec/pnm_parser: Support concatenated ASCII images

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>
5 years agoavdevice/opengl_enc: fix build error using msvc compiler
Don C. Bigler [Tue, 9 Apr 2019 14:54:45 +0000 (10:54 -0400)]
avdevice/opengl_enc: fix build error using msvc compiler

5 years agolibavformat/dashenc : Prevent writing manifest files multiple times
joepadmiraal [Mon, 8 Apr 2019 12:53:52 +0000 (14:53 +0200)]
libavformat/dashenc : Prevent writing manifest files multiple times

5 years agoaarch64/opusdsp: implement NEON accelerated postfilter and deemphasis
Lynne [Fri, 15 Mar 2019 14:37:31 +0000 (14:37 +0000)]
aarch64/opusdsp: implement NEON accelerated postfilter and deemphasis

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.

5 years agolibavutil/hwcontext_opencl: Fix channel order in format support check
Jarek Samic [Mon, 8 Apr 2019 02:01:23 +0000 (22:01 -0400)]
libavutil/hwcontext_opencl: Fix channel order in format support check

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>
5 years agoavformat/matroskaenc: fix leak on error
Tristan Matthews [Thu, 4 Apr 2019 16:56:26 +0000 (12:56 -0400)]
avformat/matroskaenc: fix leak on error

Signed-off-by: James Almer <jamrial@gmail.com>
5 years agolavf/movenc: Pass correct pointer to av_log().
Carl Eugen Hoyos [Sun, 7 Apr 2019 21:28:00 +0000 (23:28 +0200)]
lavf/movenc: Pass correct pointer to av_log().

5 years agolavf/matroskaenc: Fix memory leak after write trailer
Jun Zhao [Thu, 4 Apr 2019 15:47:46 +0000 (23:47 +0800)]
lavf/matroskaenc: Fix memory leak after write trailer

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>
5 years agoavformat/av1: Initialize padding in ff_isom_write_av1c
Jeremy Dorfman via ffmpeg-devel [Mon, 8 Apr 2019 12:14:27 +0000 (08:14 -0400)]
avformat/av1: Initialize padding in ff_isom_write_av1c

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>
5 years agoavfilter/af_asetnsamples: use correct function
Paul B Mahol [Sun, 7 Apr 2019 19:15:13 +0000 (21:15 +0200)]
avfilter/af_asetnsamples: use correct function

5 years agoavformat/riffdec: pass correct pointer to av_log
Paul B Mahol [Sun, 7 Apr 2019 19:09:56 +0000 (21:09 +0200)]
avformat/riffdec: pass correct pointer to av_log

5 years agoavfilter/af_asetnsamples: fix sample queuing.
Nikolas Bowe via ffmpeg-devel [Sat, 6 Apr 2019 00:11:15 +0000 (17:11 -0700)]
avfilter/af_asetnsamples: fix sample queuing.

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>
5 years agoswscale/ppc: VSX-optimize yuv2rgb_full_X
Lauri Kasanen [Mon, 1 Apr 2019 10:32:37 +0000 (13:32 +0300)]
swscale/ppc: VSX-optimize yuv2rgb_full_X

./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

5 years agoswscale/ppc: VSX-optimize yuv2rgb_full_2
Lauri Kasanen [Mon, 1 Apr 2019 10:04:11 +0000 (13:04 +0300)]
swscale/ppc: VSX-optimize yuv2rgb_full_2

./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

5 years agoswscale/ppc: VSX-optimize non-full-chroma yuv2rgb_1
Lauri Kasanen [Sun, 31 Mar 2019 14:01:37 +0000 (17:01 +0300)]
swscale/ppc: VSX-optimize non-full-chroma yuv2rgb_1

./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.

5 years agodoc/examples/metadata: fix the example can't dump FLV metadata
Jun Zhao [Wed, 3 Apr 2019 01:13:52 +0000 (09:13 +0800)]
doc/examples/metadata: fix the example can't dump FLV metadata

fix the example can't dump FLV metadata.

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
5 years agolavf/Makefile: Fix kux demuxer standalone compilation.
Carl Eugen Hoyos [Sun, 7 Apr 2019 00:00:30 +0000 (02:00 +0200)]
lavf/Makefile: Fix kux demuxer standalone compilation.

5 years agolavf/flvdec: added support for KUX container
Swaraj Hota [Sat, 6 Apr 2019 13:53:43 +0000 (15:53 +0200)]
lavf/flvdec: added support for KUX container

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.

5 years agolavd/x11grab: fix vertical repositioning
Octavio Alvarez [Thu, 28 Mar 2019 04:52:32 +0000 (22:52 -0600)]
lavd/x11grab: fix vertical repositioning

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.

5 years agoFATE: Add test for HEVC files that claim to have two first slices
Derek Buitenhuis [Mon, 18 Mar 2019 15:40:44 +0000 (15:40 +0000)]
FATE: Add test for HEVC files that claim to have two first slices

This makes sure we don't regress on 70c8c8a818f39bc262565ec29fae2baffb3e1660.

Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
5 years agoavcodec/agm: Fix integer overflow with w/h
Michael Niedermayer [Thu, 4 Apr 2019 22:20:33 +0000 (00:20 +0200)]
avcodec/agm: Fix integer overflow with w/h

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>
5 years agoavformat/matroskadec: Improve length check
Andreas Rheinhardt via ffmpeg-devel [Wed, 27 Mar 2019 11:18:44 +0000 (12:18 +0100)]
avformat/matroskadec: Improve length check

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>
5 years agoavcodec/agm: More completely check size before using it
Michael Niedermayer [Wed, 3 Apr 2019 00:12:28 +0000 (02:12 +0200)]
avcodec/agm: More completely check size before using it

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>
5 years agoavcodec/av1_metadata: add an option to remove Padding OBUs
James Almer [Mon, 25 Mar 2019 03:27:23 +0000 (00:27 -0300)]
avcodec/av1_metadata: add an option to remove Padding OBUs

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agolavc/qsvenc: enable hevc gpb option
Zhong Li [Fri, 11 Jan 2019 07:09:07 +0000 (15:09 +0800)]
lavc/qsvenc: enable hevc gpb option

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>
5 years agolavc/qsvenc: enable hevc coding options configuration
Zhong Li [Wed, 27 Mar 2019 06:33:36 +0000 (14:33 +0800)]
lavc/qsvenc: enable hevc coding options configuration

Signed-off-by: Zhong Li <zhong.li@intel.com>
5 years agolavc/qsvenc: no need to include h264.h for jpeg encoder
Zhong Li [Mon, 1 Apr 2019 04:18:57 +0000 (12:18 +0800)]
lavc/qsvenc: no need to include h264.h for jpeg encoder

Signed-off-by: Zhong Li <zhong.li@intel.com>
5 years agolavf/movenc: fix tmcd writing for non-MP4/MOV modes
Gyan Doshi [Sat, 30 Mar 2019 18:30:50 +0000 (00:00 +0530)]
lavf/movenc: fix tmcd writing for non-MP4/MOV modes

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.

5 years agofate: unbreak fate with custom binary names
Gyan Doshi [Tue, 2 Apr 2019 11:13:06 +0000 (16:43 +0530)]
fate: unbreak fate with custom binary names

5 years agolavf/hashenc: Correct the hash/MD5 muxer class name
Jun Zhao [Fri, 29 Mar 2019 14:13:10 +0000 (22:13 +0800)]
lavf/hashenc: Correct the hash/MD5 muxer class name

Follow the name style to correct the hash/md5 muxer class name

Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
5 years agoavcodec/libaomenc: fix range of values for enable-intrabc option
James Almer [Tue, 2 Apr 2019 22:54:34 +0000 (19:54 -0300)]
avcodec/libaomenc: fix range of values for enable-intrabc option

Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavcodec/cbs_av1: fix parsing spatial_id
James Almer [Mon, 25 Mar 2019 04:08:30 +0000 (01:08 -0300)]
avcodec/cbs_av1: fix parsing spatial_id

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
5 years agolibavcodec/zmbvenc: add support for 24-bit encoding, using pix_fmt BGR24.
Matthew Fearnley [Tue, 26 Mar 2019 22:13:06 +0000 (22:13 +0000)]
libavcodec/zmbvenc: add support for 24-bit encoding, using pix_fmt BGR24.

Support is #ifdef'd out at this stage, using ZMBV_ENABLE_24BPP (like in
the zmbv.c decoder)

5 years agolibavcodec/zmbv: change 24-bit decoder channel order, from RGB24 to BGR24
Matthew Fearnley [Fri, 29 Mar 2019 22:03:03 +0000 (22:03 +0000)]
libavcodec/zmbv: change 24-bit decoder channel order, from RGB24 to BGR24

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.

5 years agolibavcodec/zmbv: use PTRDIFF_SPECIFIER for `src - c->decomp_buf`.
Matthew Fearnley [Tue, 26 Mar 2019 19:44:23 +0000 (19:44 +0000)]
libavcodec/zmbv: use PTRDIFF_SPECIFIER for `src - c->decomp_buf`.

Other bit depths saw this change in ced0d6c14d, but this instance was
presumably missed because of the #ifdef block.

5 years agoavcodec/opus: make redundancy_buf 32 byte aligned
James Almer [Tue, 2 Apr 2019 14:36:56 +0000 (11:36 -0300)]
avcodec/opus: make redundancy_buf 32 byte aligned

Fixes ff_opus_deemphasis_fma3 segmentation fault crashes on x86_32.

Signed-off-by: James Almer <jamrial@gmail.com>
5 years agoavformat/dashenc: Add support for Global SIDX
Karthick J [Thu, 21 Mar 2019 06:17:08 +0000 (11:47 +0530)]
avformat/dashenc: Add support for Global SIDX

5 years agoavformat/movenc: Fix skip_trailer when global_sidx is enabled
Karthick J [Sun, 24 Mar 2019 12:00:36 +0000 (17:30 +0530)]
avformat/movenc: Fix skip_trailer when global_sidx is enabled