ffmpeg.git
18 months agoavcodec/utvideodec: Add several out of array read related checks
Michael Niedermayer [Fri, 9 Feb 2018 14:27:41 +0000 (15:27 +0100)]
avcodec/utvideodec: Add several out of array read related checks

Fixes: OV_decode_plane.avi

Found-by: GwanYeong Kim <gy741.kim@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/pafvideo: Check allocated frame size
Michael Niedermayer [Sun, 4 Feb 2018 01:14:49 +0000 (02:14 +0100)]
avcodec/pafvideo: Check allocated frame size

Fixes: OOM
Fixes: 5549/clusterfuzz-testcase-minimized-5390553567985664

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/scpr: Fix reading a pixel before the first
Michael Niedermayer [Sat, 3 Feb 2018 17:49:07 +0000 (18:49 +0100)]
avcodec/scpr: Fix reading a pixel before the first

Fixes: 5540/clusterfuzz-testcase-minimized-6122458273808384

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/mpeg2dec: Fix field selection for skipped macroblocks
Nekopanda [Sat, 10 Feb 2018 09:36:32 +0000 (18:36 +0900)]
avcodec/mpeg2dec: Fix field selection for skipped macroblocks

For B field pictures, the spec says,

> The prediction shall be made from the field of the same parity as the field being predicted.

I did it.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agolavf/aptxdec: fix the limit on the APTX demuxer definition
Jan Ekström [Sat, 10 Feb 2018 14:59:54 +0000 (16:59 +0200)]
lavf/aptxdec: fix the limit on the APTX demuxer definition

Fixes breakage with --disable-muxers as it was originally limited
to the muxer, and not the demuxer.

18 months agoMAINTAINERS: add myself for aptx.c
Aurelien Jacobs [Fri, 9 Feb 2018 21:22:09 +0000 (22:22 +0100)]
MAINTAINERS: add myself for aptx.c

18 months agoavformat/mov: Fix ctts_index calculation
Xiaohan Wang [Sat, 3 Feb 2018 01:33:56 +0000 (17:33 -0800)]
avformat/mov: Fix ctts_index calculation

An index should never be equal to the count. Hence we must make sure
*ctts_index < ctts_count.

Reviewed-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavformat/format: temporarily use old next api
Muhammad Faiz [Fri, 9 Feb 2018 10:03:42 +0000 (17:03 +0700)]
avformat/format: temporarily use old next api

Should fix https://ffmpeg.org/pipermail/ffmpeg-devel/2018-February/225066.html

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
18 months agoexamples: Don't call deprecated functions which don't do anything
Mark Thompson [Wed, 7 Feb 2018 19:36:57 +0000 (19:36 +0000)]
examples: Don't call deprecated functions which don't do anything

18 months agoaptx: indentation (cosmetics only)
Aurelien Jacobs [Sat, 6 Jan 2018 16:56:21 +0000 (17:56 +0100)]
aptx: indentation (cosmetics only)

18 months agoaptx: add raw muxer and demuxer for aptX HD
Aurelien Jacobs [Sat, 6 Jan 2018 16:33:01 +0000 (17:33 +0100)]
aptx: add raw muxer and demuxer for aptX HD

18 months agoaptx: implement the aptX HD bluetooth codec
Aurelien Jacobs [Sat, 6 Jan 2018 16:11:48 +0000 (17:11 +0100)]
aptx: implement the aptX HD bluetooth codec

18 months agoaptx: do some clipping to match original codec in extreme cases
Aurelien Jacobs [Sat, 6 Jan 2018 00:31:02 +0000 (01:31 +0100)]
aptx: do some clipping to match original codec in extreme cases

18 months agoaptx: factorize FFABS calculation
Aurelien Jacobs [Sat, 6 Jan 2018 00:22:31 +0000 (01:22 +0100)]
aptx: factorize FFABS calculation

18 months agoaptx: simplify by pre-calculating factor_max
Aurelien Jacobs [Fri, 5 Jan 2018 23:23:43 +0000 (00:23 +0100)]
aptx: simplify by pre-calculating factor_max

18 months agocheckasm/Makefile: add EXTRALIBS-swresample
Muhammad Faiz [Fri, 9 Feb 2018 10:50:44 +0000 (17:50 +0700)]
checkasm/Makefile: add EXTRALIBS-swresample

Should fix https://ffmpeg.org/pipermail/ffmpeg-devel/2018-February/225058.html

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
18 months agoavcodec/codec_desc: sort codec_descriptors
Muhammad Faiz [Fri, 2 Feb 2018 18:07:44 +0000 (01:07 +0700)]
avcodec/codec_desc: sort codec_descriptors

Use bsearch on avcodec_descriptor_get().

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
18 months agodashdec: Support SegmentTimeline inside Period
sfan5 [Fri, 9 Feb 2018 02:54:24 +0000 (10:54 +0800)]
dashdec: Support SegmentTimeline inside Period

Reviewed-by: Steven Liu <lq@onvideo.cn>
18 months agoavcodec/huffyuvdec: Check input buffer size
Michael Niedermayer [Wed, 31 Jan 2018 18:20:10 +0000 (19:20 +0100)]
avcodec/huffyuvdec: Check input buffer size

Fixes: Timeout
Fixes: 5487/clusterfuzz-testcase-4696837035393024

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>
18 months agoRevert "cmdutils: make use of new iteration APIs"
James Almer [Thu, 8 Feb 2018 16:20:36 +0000 (13:20 -0300)]
Revert "cmdutils: make use of new iteration APIs"

This reverts commit cdc78058c78dfa4966758a342acd2c1f3b282c46.

It introduced several issues in the command line tools, and it's
implementing a new API that may still see some changes.
Revert for the time being until the state of the API is defined.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec: Document that init_static_data() is not intended for time consuming operations.
Michael Niedermayer [Tue, 6 Feb 2018 00:21:08 +0000 (01:21 +0100)]
avcodec: Document that init_static_data() is not intended for time consuming operations.

Reviewed-by: Muhammad Faiz <mfcc64@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agodoc/APIchanges: mention a few more recently introduced and deprecated functions
James Almer [Wed, 7 Feb 2018 20:05:01 +0000 (17:05 -0300)]
doc/APIchanges: mention a few more recently introduced and deprecated functions

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agodoc/APIchanges: fix a recent depreacted function name
James Almer [Wed, 7 Feb 2018 19:56:47 +0000 (16:56 -0300)]
doc/APIchanges: fix a recent depreacted function name

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat: fix stream_segment muxer build dependencies
James Almer [Wed, 7 Feb 2018 19:42:11 +0000 (16:42 -0300)]
avformat: fix stream_segment muxer build dependencies

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/hls: Support metadata updates from subdemuxers
Richard Shaffer [Fri, 2 Feb 2018 20:59:45 +0000 (12:59 -0800)]
avformat/hls: Support metadata updates from subdemuxers

If a subdemuxer has the updated metadata event flag set, the metadata is copied
to the corresponding stream. The flag is cleared on the subdemuxer and the
appropriate event flag is set on the stream.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
18 months agolavfi: add a gitignore file for OpenCL compiled kernels
Rostislav Pehlivanov [Mon, 5 Feb 2018 11:04:45 +0000 (11:04 +0000)]
lavfi: add a gitignore file for OpenCL compiled kernels

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
18 months agoavformat/fifo_test: remove network.h include
James Almer [Wed, 7 Feb 2018 03:29:55 +0000 (00:29 -0300)]
avformat/fifo_test: remove network.h include

It's not needed, and fixes compilation with network disabled.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agodoc/APIChanges: fix lavu version numbers in a few recent entries
James Almer [Wed, 7 Feb 2018 02:49:13 +0000 (23:49 -0300)]
doc/APIChanges: fix lavu version numbers in a few recent entries

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoapi: add missing version bumps and APIChanges entries
James Almer [Wed, 7 Feb 2018 02:38:38 +0000 (23:38 -0300)]
api: add missing version bumps and APIChanges entries

avcodec bump missed in 7e8eba2d8755962d9dca5eade57bf8f591a73c0c
avformat bump missed in ff46124b0df17a1d35249e09ae8eae9a61f16e04 and
0694d8702421e7aff1340038559c438b61bb30dd
avdevice bump missed in 0fd475704e871ef3a535947596a012894bae3cbd

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/mov: add VP8 codec support
James Almer [Tue, 6 Feb 2018 01:26:26 +0000 (22:26 -0300)]
avformat/mov: add VP8 codec support

Demuxing only. Muxing is disabled as altref frame handling is not
defined in the spec, and there's no way to know the presence of
such frames during stream initialization.

Based on a patch by Steven Liu.

Fixes ticket #7000

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/Makefile: fix fifo and fifo_test muxer build objects
James Almer [Tue, 6 Feb 2018 23:02:23 +0000 (20:02 -0300)]
avformat/Makefile: fix fifo and fifo_test muxer build objects

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/bintext: Implement bin_probe()
Michael Niedermayer [Wed, 31 Jan 2018 14:22:29 +0000 (15:22 +0100)]
avformat/bintext: Implement bin_probe()

Fixes misdetection of sbQ9.bin

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/ffv1: Support for RGBA64 and GBRAP16
Jérôme Martinez [Thu, 1 Feb 2018 12:11:53 +0000 (13:11 +0100)]
avcodec/ffv1: Support for RGBA64 and GBRAP16

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/libopus: support disabling phase inversion.
Menno [Mon, 5 Feb 2018 09:54:53 +0000 (10:54 +0100)]
avcodec/libopus: support disabling phase inversion.

Signed-off-by: Menno <mrdegier@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agolavc/bsf: make BSF iteration the same as other iterators
Josh de Kock [Fri, 2 Feb 2018 19:25:36 +0000 (19:25 +0000)]
lavc/bsf: make BSF iteration the same as other iterators

18 months agocmdutils: make use of new iteration APIs
Josh de Kock [Tue, 30 Jan 2018 21:28:28 +0000 (21:28 +0000)]
cmdutils: make use of new iteration APIs

18 months agolavd: add new API for iterating input and output devices
Josh de Kock [Tue, 2 Jan 2018 14:34:18 +0000 (14:34 +0000)]
lavd: add new API for iterating input and output devices

This also adds an avpriv function to register devices in
libavformat

18 months agolavf: add new API for iterating muxers and demuxers
Josh de Kock [Sun, 21 Jan 2018 16:06:54 +0000 (16:06 +0000)]
lavf: add new API for iterating muxers and demuxers

18 months agolavf: move fifo test muxer into separate file
Josh de Kock [Tue, 2 Jan 2018 13:36:05 +0000 (13:36 +0000)]
lavf: move fifo test muxer into separate file

This fixes the fate-fifo-muxer test with the clarified
removal of registering external formats.

18 months agolavf/rtp: replace linked list with array
Josh de Kock [Mon, 1 Jan 2018 23:31:26 +0000 (23:31 +0000)]
lavf/rtp: replace linked list with array

18 months agolavc: add new API for iterating codecs and codec parsers
Josh de Kock [Fri, 22 Dec 2017 22:17:00 +0000 (22:17 +0000)]
lavc: add new API for iterating codecs and codec parsers

Based on an unfinished patch by atomnuker.

18 months agoavcodec/me_cmp: remove ff_me_cmp_init_static()
Muhammad Faiz [Sat, 3 Feb 2018 22:44:23 +0000 (05:44 +0700)]
avcodec/me_cmp: remove ff_me_cmp_init_static()

Precalculate and constify ff_square_tab.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
18 months agoavcodec/utvideodec: Fix bytes left check in decode_frame()
Michael Niedermayer [Fri, 2 Feb 2018 20:44:57 +0000 (21:44 +0100)]
avcodec/utvideodec: Fix bytes left check in decode_frame()

Fixes: out of array read
Fixes: poc-2017.avi

Found-by: GwanYeong Kim <gy741.kim@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoid3v2: fix unsynchronization
wm4 [Tue, 30 Jan 2018 12:22:53 +0000 (13:22 +0100)]
id3v2: fix unsynchronization

The ID3v2 "unsynchronization scheme" requires replacing any 0xFF 0x00
sequences with 0xFF. This has to be done on every byte of the source
data, while the current code skipped a byte after a replacement. This
meant 0xFF 0x00 0xFF 00 was translated to 0xFF 0xFF 0x00 instead of 0xFF
0xFF. It feels a bit messy to do this correctly with the avio use. But
fortunately, this translation can be done in-place, so we can just do it
in memory.

Inspired by what taglib does.

Also see 9ae80e6a9cefcab61e867256ba19ef78a4bfe0cb. (The sample file for
that commit is gone, so it could not be retested.)

18 months agortsp: rename certain options after a deprecation period
wm4 [Thu, 25 Jan 2018 17:57:26 +0000 (18:57 +0100)]
rtsp: rename certain options after a deprecation period

The "timeout" option name inherently clashes with the meaning of the
HTTP libavformat protocol option with the same name. Rename it after a
deprecation period to make it compatible with the HTTP one.

18 months agoexamples: Add a VA-API transcode example.
Jun Zhao [Thu, 11 Jan 2018 07:00:30 +0000 (15:00 +0800)]
examples: Add a VA-API transcode example.

Usage is:
./vaapi_transcode input_stream codec output_stream
For example:
- ./vaapi_transcode input.mp4 h264_vaapi output_h264.mp4
- ./vaapi_transcode input.mp4 vp8_vaapi output_vp8.ivf

Does not handle resolution changes on the input stream.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Liu, Kaixuan <kaixuan.liu@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
18 months agoavcodec: do not use init_static_data on some codecs
Muhammad Faiz [Fri, 2 Feb 2018 18:18:27 +0000 (01:18 +0700)]
avcodec: do not use init_static_data on some codecs

They don't modify AVCodec, no needs to call it at register. They will be
wasteful if these codecs are unused. Instead, call static data initialization
at codecs' init.

Benchmark:
old: 51281340 decicycles in avcodec_register_all,       1 runs,      0 skips
new:  6738960 decicycles in avcodec_register_all,       1 runs,      0 skips

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
18 months agoavcodec/wavpack: Fix integer overflow in FFABS
Michael Niedermayer [Wed, 31 Jan 2018 01:50:18 +0000 (02:50 +0100)]
avcodec/wavpack: Fix integer overflow in FFABS

Fixes: negation of -2147483648 cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself
Fixes: 5396/clusterfuzz-testcase-minimized-6558555529281536

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavfilter/af_join: Fix crash in join filter
Nikolas Bowe [Fri, 2 Feb 2018 23:11:04 +0000 (15:11 -0800)]
avfilter/af_join: Fix crash in join filter

Previously if ff_outlink_frame_wanted() returned 0 it could dereference a null pointer when trying to read nb_samples.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/ffv1enc: mark RGB48 support as non-experimental
Jérôme Martinez [Thu, 1 Feb 2018 12:15:54 +0000 (13:15 +0100)]
avcodec/ffv1enc: mark RGB48 support as non-experimental

Remove the 2nd mark, 1st mark was removed in 58e16a4

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoffprobe: remove usage of deprecation warning removal pragmas
James Almer [Fri, 2 Feb 2018 20:51:24 +0000 (17:51 -0300)]
ffprobe: remove usage of deprecation warning removal pragmas

Fixes compilation in non Windows targets.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoffprobe: Initialize coded_width/height
Zhong Li [Fri, 19 Jan 2018 05:05:55 +0000 (13:05 +0800)]
ffprobe: Initialize coded_width/height

coded_width/height are unnitialized and will be overwritten by
dec_ctx->width/height in avcodec_open2()

This fixes tiket #6958.

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
18 months agolibrsvgdec: Fix frame clearing code
Calvin Walton [Thu, 1 Feb 2018 18:28:25 +0000 (13:28 -0500)]
librsvgdec: Fix frame clearing code

The existing code attempts to clear the frame by painting in OVER
mode with transparent black - which is a no-op. As a result if you
have many input frames (e.g. you're using a sequence of svg files),
you'll start to see new frames drawn over old frames as memory gets
re-used.

Switch the code to paint using the CLEAR compositing operator,
which fills every channel with 0 values (setting a source colour
is not required).

18 months agofate: add id3v2 test
Richard Shaffer [Sun, 28 Jan 2018 02:21:28 +0000 (18:21 -0800)]
fate: add id3v2 test

Adds basic unit test for parsing ID3v2 tags.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoconfigure: Remove carriage return ('\r') in Windows CC_IDENT
Xiaohan Wang [Wed, 31 Jan 2018 22:20:02 +0000 (14:20 -0800)]
configure: Remove carriage return ('\r') in Windows CC_IDENT

Currently the Windows CC_IDENT is ended with '\r\n'. "head -n1" will not
remove the '\r' and this is causing building error in Chromium.

This CL adds "tr -d '\r'" to remove '\r' in the CC_IDENT string. Since in
most cases '\r' only appears at the end of a string/line, this should
work in most cases.

See example:

printf "hello\r\nworld\r\n" | head -n1 | hd
00000000  68 65 6c 6c 6f 0d 0a                              |hello..|

printf "hello\r\nworld\r\n" | head -n1 | tr -d '\r' | hd
00000000  68 65 6c 6c 6f 0a                                 |hello.|

Also note a similar previous change at:
https://lists.ffmpeg.org/pipermail/ffmpeg-cvslog/2013-October/069950.html

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/aacsbr_fixed: Fix overflows in rounding in sbr_hf_assemble()
Michael Niedermayer [Wed, 31 Jan 2018 17:13:07 +0000 (18:13 +0100)]
avcodec/aacsbr_fixed: Fix overflows in rounding in sbr_hf_assemble()

Fixes: runtime error: signed integer overflow: 2052929346 + 204817098 cannot be represented in type 'int'
Fixes: 5275/clusterfuzz-testcase-minimized-5367635958038528

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/exr: Fix memleaks in decode_header()
Michael Niedermayer [Wed, 31 Jan 2018 16:50:21 +0000 (17:50 +0100)]
avcodec/exr: Fix memleaks in decode_header()

Fixes: 4793/clusterfuzz-testcase-minimized-5707366629638144

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavformat/hls: store referer message in HLS http request
Steven Liu [Thu, 1 Feb 2018 02:57:29 +0000 (10:57 +0800)]
avformat/hls: store referer message in HLS http request

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
18 months agoavformat/http: add referer option into http
Steven Liu [Thu, 1 Feb 2018 02:56:51 +0000 (10:56 +0800)]
avformat/http: add referer option into http

add Referer message if referer have been set.
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
18 months agoavfilter: add comments for duplicate line
Steven Liu [Thu, 1 Feb 2018 02:55:19 +0000 (10:55 +0800)]
avfilter: add comments for duplicate line

comment about the looks like a duplicate line.
but that is used to reason x is expressed from y

Suggested-by: Paul B Mahol
Suggested-by: Michael Niedermayer
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
18 months agoavcodec/vc2enc: prevent bitrate overshoots
Rostislav Pehlivanov [Wed, 6 Apr 2016 10:51:24 +0000 (11:51 +0100)]
avcodec/vc2enc: prevent bitrate overshoots

The rounding caused by the size scaler wasn't compensated for and the
slice sizes grew beyond what is allowed per frame.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
18 months agoavcodec/dirac_dwt: Fix several integer overflows
Michael Niedermayer [Thu, 25 Jan 2018 22:14:37 +0000 (23:14 +0100)]
avcodec/dirac_dwt: Fix several integer overflows

Fixes: runtime error: signed integer overflow: -2146071175 + -268479557 cannot be represented in type 'int'
Fixes: 5237/clusterfuzz-testcase-minimized-4569895275593728

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/indeo5: Do not leave frame_type set to an invalid value
Michael Niedermayer [Thu, 25 Jan 2018 23:24:49 +0000 (00:24 +0100)]
avcodec/indeo5: Do not leave frame_type set to an invalid value

Fixes: null pointer dereference
Fixes: 5264/clusterfuzz-testcase-minimized-4621956621008896

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/hevc_ps: Check log2_sao_offset_scale_*
Michael Niedermayer [Wed, 24 Jan 2018 02:15:23 +0000 (03:15 +0100)]
avcodec/hevc_ps: Check log2_sao_offset_scale_*

Fixes: 4868/clusterfuzz-testcase-minimized-6236542906400768
Fixes: runtime error: shift exponent 126 is too large for 32-bit 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>
18 months agoavcodec/mediacodecdec: use ff_hevc_ps_uninit()
James Almer [Sat, 20 Jan 2018 19:55:17 +0000 (16:55 -0300)]
avcodec/mediacodecdec: use ff_hevc_ps_uninit()

Fixes memleaks.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/hevc_parser: use ff_hevc_decode_extradata() to parse extradata
James Almer [Sat, 20 Jan 2018 03:57:18 +0000 (00:57 -0300)]
avcodec/hevc_parser: use ff_hevc_decode_extradata() to parse extradata

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/mpegaudio_parser: Skip APE tags when parsing mp3 packets.
Dale Curtis [Mon, 29 Jan 2018 23:10:26 +0000 (15:10 -0800)]
avcodec/mpegaudio_parser: Skip APE tags when parsing mp3 packets.

Otherwise the decoder will throw "Missing header" errors when the
packets are sent for decoding.

This is similar to 89a420b71b5.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavformat/mpegenc - fix typo in VBV warning
Gyan Doshi [Mon, 29 Jan 2018 06:23:36 +0000 (11:53 +0530)]
avformat/mpegenc - fix typo in VBV warning

Default VBV buffer size is 230KB, not 130KB.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/Makefile: add missing opus.c dependency to opus encoder
James Almer [Tue, 30 Jan 2018 03:32:27 +0000 (00:32 -0300)]
avcodec/Makefile: add missing opus.c dependency to opus encoder

Needed for ff_celt_quant_bands and ff_celt_bitalloc.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/mlp_parser: reindent after last commit
James Almer [Fri, 19 Jan 2018 18:53:32 +0000 (15:53 -0300)]
avcodec/mlp_parser: reindent after last commit

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/mlp_parser: don't try to combine frames when full frames are provided
James Almer [Fri, 19 Jan 2018 18:52:21 +0000 (15:52 -0300)]
avcodec/mlp_parser: don't try to combine frames when full frames are provided

Attempting full frame reconstruction is unnecessary for non raw
containers, so just skip it altogether.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavformat/matroskadec: force full frame parsing of MLP/TrueHD streams
James Almer [Tue, 30 Jan 2018 01:59:52 +0000 (22:59 -0300)]
avformat/matroskadec: force full frame parsing of MLP/TrueHD streams

There's at least one known file with a TrueHD stream that hasn't
been correctly muxed, and requires full frame parsing and repack.

Signed-off-by: James Almer <jamrial@gmail.com>
18 months agoavcodec/mpeg4videodec: Avoid possibly aliasing violating casts
Michael Niedermayer [Sun, 28 Jan 2018 01:29:02 +0000 (02:29 +0100)]
avcodec/mpeg4videodec: Avoid possibly aliasing violating casts

Found-by: kierank
Reviewed-by: Kieran Kunhya <kieran618@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/get_bits: Document the return code of get_vlc2()
Michael Niedermayer [Sun, 28 Jan 2018 01:29:01 +0000 (02:29 +0100)]
avcodec/get_bits: Document the return code of get_vlc2()

Found-by: kierank
Reviewed-by: Kieran Kunhya <kieran618@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/mpeg4videodec: Check mb_num also against 0
Michael Niedermayer [Sun, 28 Jan 2018 01:29:00 +0000 (02:29 +0100)]
avcodec/mpeg4videodec: Check mb_num also against 0

The spec implies that 0 is invalid in addition to the existing checks

Found-by: <kierank>
Reviewed-by: Kieran Kunhya <kieran618@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agodashdec: Fix segfault on decoding segment timeline
Brendan McGrath [Mon, 29 Jan 2018 02:46:50 +0000 (10:46 +0800)]
dashdec: Fix segfault on decoding segment timeline

If first_seq_no is not within the bounds of timelines then a segfault
will occur.
This patch removes the use of first_seq_no within the timelines array
It also adds first_seq_no to the value returned by calc_next_seg_no_from_timelines
(which allows for different values of 'startNumber')

Signed-off-by: Brendan McGrath <redmcg@redmandi.dyndns.org>
18 months agoavformat: deprecate AVFormatContext filename field
Marton Balint [Fri, 29 Dec 2017 00:19:37 +0000 (01:19 +0100)]
avformat: deprecate AVFormatContext filename field

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavformat: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 22:30:14 +0000 (23:30 +0100)]
avformat: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavformat/hls: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 21:00:04 +0000 (22:00 +0100)]
avformat/hls: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavdevice: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 22:29:52 +0000 (23:29 +0100)]
avdevice: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agofftools, tools, examples: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 22:29:27 +0000 (23:29 +0100)]
fftools, tools, examples: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavformat: add url field to AVFormatContext
Marton Balint [Fri, 29 Dec 2017 00:01:37 +0000 (01:01 +0100)]
avformat: add url field to AVFormatContext

This will replace the 1024 character limited filename field. Compatiblity for
output contexts are provided by copying filename field to URL if URL is unset
and by providing an internal function for muxers to set both url and filename
at once.

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavformat/hlsenc: use av_bprintf without buffer limit in replace_int_data_in_filename
Marton Balint [Sat, 6 Jan 2018 17:41:27 +0000 (18:41 +0100)]
avformat/hlsenc: use av_bprintf without buffer limit in replace_int_data_in_filename

In preparation for the deprecation of AVFormatContext->filename.

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agocheckasm : add test for losslessvideoencdsp for diff bytes and sub_left_pred
Martin Vignali [Sun, 14 Jan 2018 13:23:42 +0000 (14:23 +0100)]
checkasm : add test for losslessvideoencdsp for diff bytes and sub_left_pred

18 months agoavcodec/utvideoenc : add SIMD (avx) for sub_left_prediction
Martin Vignali [Sun, 14 Jan 2018 13:23:05 +0000 (14:23 +0100)]
avcodec/utvideoenc : add SIMD (avx) for sub_left_prediction

asm code by Henrik Gramner

18 months agoavfilter/x86/vf_blend : avfilter/x86/vf_blend : add AVX2 version for each func except...
Martin Vignali [Wed, 17 Jan 2018 19:59:58 +0000 (20:59 +0100)]
avfilter/x86/vf_blend : avfilter/x86/vf_blend : add AVX2 version for each func except divide

and optimize average, grainextract, multiply, screen, grain merge

18 months agoavfilter/vf_framerate: add SIMD functions for frame blending
Marton Balint [Mon, 8 Jan 2018 00:05:45 +0000 (01:05 +0100)]
avfilter/vf_framerate: add SIMD functions for frame blending

Blend function speedups on x86_64 Core i5 4460:

ffmpeg -f lavfi -i allyuv -vf framerate=60:threads=1 -f null none

C:     447548411 decicycles in Blend,    2048 runs,      0 skips
SSSE3: 130020087 decicycles in Blend,    2048 runs,      0 skips
AVX2:  128508221 decicycles in Blend,    2048 runs,      0 skips

ffmpeg -f lavfi -i allyuv -vf format=yuv420p12,framerate=60:threads=1 -f null none

C:     228932745 decicycles in Blend,    2048 runs,      0 skips
SSE4:  123357781 decicycles in Blend,    2048 runs,      0 skips
AVX2:  121215353 decicycles in Blend,    2048 runs,      0 skips

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavfilter/vf_framerate: change blend factor precision
Marton Balint [Mon, 15 Jan 2018 21:19:46 +0000 (22:19 +0100)]
avfilter/vf_framerate: change blend factor precision

This is done mainly in preparation for the SIMD patches.

- for the 8-bit input, decrease the blend factor precision to 7-bit.
- for the 16-bit input, increase the blend factor precision to 15-bit.
- make sure the blend functions are not called with 0 or maximum blending
  factors, because we don't want the signed factor integers to overflow.

Fate test changes are due to different rounding.

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavfilter/vf_framerate: factorize blend functions and unify filter_slice
Marton Balint [Mon, 8 Jan 2018 20:44:42 +0000 (21:44 +0100)]
avfilter/vf_framerate: factorize blend functions and unify filter_slice

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agoavfilter/vf_framerate: unify luma and chroma blending
Marton Balint [Mon, 8 Jan 2018 20:01:09 +0000 (21:01 +0100)]
avfilter/vf_framerate: unify luma and chroma blending

The expressions were mathematically equvivalent...

Signed-off-by: Marton Balint <cus@passwd.hu>
18 months agofate: test the transpose filter more fully
Michael Niedermayer [Sun, 28 Jan 2018 12:34:07 +0000 (13:34 +0100)]
fate: test the transpose filter more fully

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavfilter/vf_transpose: Fix regression with packed pixel formats
Michael Niedermayer [Sun, 28 Jan 2018 01:46:56 +0000 (02:46 +0100)]
avfilter/vf_transpose: Fix regression with packed pixel formats

Regression since: c6939f65a116b1ffed345d29d8621ee4ffb32235
Found-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavcodec/nvenc: also clear data pointer after unregistering a resource
Timo Rothenpieler [Sun, 28 Jan 2018 12:05:09 +0000 (13:05 +0100)]
avcodec/nvenc: also clear data pointer after unregistering a resource

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
18 months agoavcodec/nvenc: add some more error case checks
Timo Rothenpieler [Sun, 28 Jan 2018 11:51:20 +0000 (12:51 +0100)]
avcodec/nvenc: add some more error case checks

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
18 months agoavcodec/nvenc: unregister input resource when unmapping
Timo Rothenpieler [Sun, 28 Jan 2018 11:39:03 +0000 (12:39 +0100)]
avcodec/nvenc: unregister input resource when unmapping

Currently the resource is only ever unregistered when the
registered_frames array is fully in use and an unmapped entry is re-used
and cleaned up.
I'm pretty sure the frame will have been cleaned up before that happens,
so I'm kinda surprised this never blew up.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
18 months agoavcodec/nvenc: refcount input frame mappings
Timo Rothenpieler [Fri, 26 Jan 2018 19:16:53 +0000 (20:16 +0100)]
avcodec/nvenc: refcount input frame mappings

If some logic like vsync in ffmpeg.c duplicates frames, it might pass
the same frame twice, which will result in a crash due it being
effectively mapped and unmapped twice.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
18 months agoavcodec/hevc_cabac: Check prefix so as to avoid invalid shifts in coeff_abs_level_rem...
Michael Niedermayer [Mon, 15 Jan 2018 22:46:44 +0000 (23:46 +0100)]
avcodec/hevc_cabac: Check prefix so as to avoid invalid shifts in coeff_abs_level_remaining_decode()

I suspect that this can be limited tighter, but i failed to find anything
in the spec that would confirm that.

Fixes: 4833/clusterfuzz-testcase-minimized-5302840101699584
Fixes: runtime error: left shift of 134217730 by 4 places 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>
18 months agoavcodec/mjpegdec: Fix integer overflow in DC dequantization
Michael Niedermayer [Wed, 24 Jan 2018 02:28:49 +0000 (03:28 +0100)]
avcodec/mjpegdec: Fix integer overflow in DC dequantization

Fixes: runtime error: signed integer overflow: -65535 * 65312 cannot be represented in type 'int'
Fixes: 4900/clusterfuzz-testcase-minimized-5769019744321536

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agoavfilter/vf_transpose: Fix used plane count.
Michael Niedermayer [Wed, 24 Jan 2018 18:38:05 +0000 (19:38 +0100)]
avfilter/vf_transpose: Fix used plane count.

Fixes out of array access
Fixes: poc.mp4

Found-by: GwanYeong Kim <gy741.kim@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
18 months agohls: don't print a certain warning if playlist loading is aborted
wm4 [Wed, 24 Jan 2018 07:04:38 +0000 (08:04 +0100)]
hls: don't print a certain warning if playlist loading is aborted

AVERROR_EXIT happens when the user's interrupt callback signals that
playback should be aborted. In this case, the demuxer shouldn't print a
warning, as it's expected that all network accesses are stopped.