ffmpeg.git
2 years agoMerge commit 'fd36cf6bf6524247a8ff6788c028836fe7d9fd20'
James Almer [Mon, 12 Feb 2018 02:18:25 +0000 (23:18 -0300)]
Merge commit 'fd36cf6bf6524247a8ff6788c028836fe7d9fd20'

* commit 'fd36cf6bf6524247a8ff6788c028836fe7d9fd20':
  configure: Factorize check_64_bit()

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '38434a9ff5b9a1a048f32c1c7e2a9519cf12f8ba'
James Almer [Mon, 12 Feb 2018 02:11:06 +0000 (23:11 -0300)]
Merge commit '38434a9ff5b9a1a048f32c1c7e2a9519cf12f8ba'

* commit '38434a9ff5b9a1a048f32c1c7e2a9519cf12f8ba':
  configure: Simplify restrict keyword handling

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906'
James Almer [Mon, 12 Feb 2018 02:08:48 +0000 (23:08 -0300)]
Merge commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906'

* commit '4cf84e254ae75b524e1cacae499a97d7cc9e5906':
  Drop some unnecessary config.h #includes

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit 'bca41545b371efc34e38d1fa8bb12dba8b614da0'
James Almer [Mon, 12 Feb 2018 01:59:18 +0000 (22:59 -0300)]
Merge commit 'bca41545b371efc34e38d1fa8bb12dba8b614da0'

* commit 'bca41545b371efc34e38d1fa8bb12dba8b614da0':
  configure: Group code that sets the license string with licensing checks

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '2eb396b175e55e515aa6a13c5b1789a2a18d3935'
James Almer [Mon, 12 Feb 2018 01:50:57 +0000 (22:50 -0300)]
Merge commit '2eb396b175e55e515aa6a13c5b1789a2a18d3935'

* commit '2eb396b175e55e515aa6a13c5b1789a2a18d3935':
  hwcontext: Fix memory leak on derived frame allocation failure

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '96e476cc9d414e248692c773d9dce736662572b8'
James Almer [Mon, 12 Feb 2018 01:49:35 +0000 (22:49 -0300)]
Merge commit '96e476cc9d414e248692c773d9dce736662572b8'

* commit '96e476cc9d414e248692c773d9dce736662572b8':
  hwcontext: Fix documentation for av_hwdevice_ctx_alloc()

This commit is a noop, see 9365dfcbf665b83b2e60c5ec5e2abf1f0a49e2c3

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '8965e2af921ec5926b26d5ae466ee4104bb5262b'
James Almer [Mon, 12 Feb 2018 01:47:47 +0000 (22:47 -0300)]
Merge commit '8965e2af921ec5926b26d5ae466ee4104bb5262b'

* commit '8965e2af921ec5926b26d5ae466ee4104bb5262b':
  avpacket: Initialize the allocated padding area in side data

This commit is a noop, see 9cbb3fce5965f4e1423cace3d1dc340a7a8091f4

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '5085f25ace1e74846a0de3369bedd0e22d1a1bdc'
James Almer [Mon, 12 Feb 2018 01:47:05 +0000 (22:47 -0300)]
Merge commit '5085f25ace1e74846a0de3369bedd0e22d1a1bdc'

* commit '5085f25ace1e74846a0de3369bedd0e22d1a1bdc':
  vc1: skip motion compensation when data for last picture is invalid

This commit is a noop. The crash can't be reproduced with ffmpeg.

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '6829a079444e10818a847e153121fb458cc5c0a8'
James Almer [Mon, 12 Feb 2018 01:44:12 +0000 (22:44 -0300)]
Merge commit '6829a079444e10818a847e153121fb458cc5c0a8'

* commit '6829a079444e10818a847e153121fb458cc5c0a8':
  qsvdec: Relax the surface vs coded dimension check

Merged-by: James Almer <jamrial@gmail.com>
2 years agofate/libavcodec: add codec_desc test
Muhammad Faiz [Sat, 10 Feb 2018 09:30:14 +0000 (16:30 +0700)]
fate/libavcodec: add codec_desc test

Remove runtime check at codec_desc.c

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2 years agolavf/rtpdec: Constify several pointers.
Carl Eugen Hoyos [Sat, 10 Feb 2018 01:54:42 +0000 (02:54 +0100)]
lavf/rtpdec: Constify several pointers.

Fixes two warnings:
libavformat/rtpdec.c:155:20: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
libavformat/rtpdec.c:168:20: warning: return discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]

2 years agoavcodec/vp3: Error out on invalid num_coeffs in unpack_vlcs()
Michael Niedermayer [Sun, 11 Feb 2018 02:38:54 +0000 (03:38 +0100)]
avcodec/vp3: Error out on invalid num_coeffs in unpack_vlcs()

This fixes a hypothetical integer overflow

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mpeg4videodec: Ignore multiple VOL headers
Michael Niedermayer [Fri, 9 Feb 2018 21:24:58 +0000 (22:24 +0100)]
avcodec/mpeg4videodec: Ignore multiple VOL headers

Fixes: Ticket7005

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mpeg2dec: Fix motion vector rounding for chroma components
Nekopanda [Sun, 11 Feb 2018 08:15:54 +0000 (17:15 +0900)]
avcodec/mpeg2dec: Fix motion vector rounding for chroma components

In 16x8 motion compensation, for lower 16x8 region, the input to mpeg_motion() for motion_y was "motion_y + 16", which causes wrong rounding. For 4:2:0, chroma scaling for y is dividing by two and rounding toward zero. When motion_y < 0 and motion_y + 16 > 0, the rounding direction of "motion_y" and "motion_y + 16" is different and rounding "motion_y + 16" would be incorrect.

We should input "motion_y" as is to round correctly. I add "is_16x8" flag to do that.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/vp3: Check eob_run
Michael Niedermayer [Fri, 9 Feb 2018 03:17:16 +0000 (04:17 +0100)]
avcodec/vp3: Check eob_run

Fixes: out of array access
Fixes: 5919/clusterfuzz-testcase-minimized-5859311382167552
Fixes: special case for theora (untested due to lack of sample)

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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.

2 years 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

2 years 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>
2 years 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>
2 years 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

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

2 years 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

2 years 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

2 years 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

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

2 years 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

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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

2 years 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

2 years 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

2 years 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

2 years 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.

2 years 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

2 years 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.

2 years agoconfigure: Factorize check_64_bit()
Diego Biurrun [Fri, 20 Oct 2017 02:42:13 +0000 (04:42 +0200)]
configure: Factorize check_64_bit()

2 years agoconfigure: Simplify restrict keyword handling
Diego Biurrun [Fri, 10 Nov 2017 14:40:30 +0000 (15:40 +0100)]
configure: Simplify restrict keyword handling

Skip a variable indirection and only redefine restrict if necessary.

2 years agoDrop some unnecessary config.h #includes
Diego Biurrun [Fri, 3 Nov 2017 16:20:49 +0000 (17:20 +0100)]
Drop some unnecessary config.h #includes

2 years agoconfigure: Group code that sets the license string with licensing checks
Diego Biurrun [Mon, 5 Feb 2018 12:53:49 +0000 (13:53 +0100)]
configure: Group code that sets the license string with licensing checks

This also moves the setting of the licensing string out of a block that
is skipped when quiet operation is requested.

2 years 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>
2 years 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>
2 years 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.)

2 years 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.

2 years agohwcontext: Fix memory leak on derived frame allocation failure
Mark Thompson [Fri, 26 Jan 2018 23:12:18 +0000 (23:12 +0000)]
hwcontext: Fix memory leak on derived frame allocation failure

2 years agohwcontext: Fix documentation for av_hwdevice_ctx_alloc()
Jun Zhao [Sun, 19 Mar 2017 07:44:46 +0000 (15:44 +0800)]
hwcontext: Fix documentation for av_hwdevice_ctx_alloc()

From ffmpeg commit 9365dfcbf665b83b2e60c5ec5e2abf1f0a49e2c3.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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).

2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years agoavpacket: Initialize the allocated padding area in side data
Martin Storsjö [Thu, 1 Feb 2018 12:56:49 +0000 (14:56 +0200)]
avpacket: Initialize the allocated padding area in side data

This makes sure that consumers of the side data actually can
rely on the padding as intended, without having the callers of
av_packet_new_side_data to explicitly zero initialize it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years agovc1: skip motion compensation when data for last picture is invalid
Sean McGovern [Sun, 28 Jan 2018 02:19:30 +0000 (21:19 -0500)]
vc1: skip motion compensation when data for last picture is invalid

Bug-Id: 1101
Cc: libav-stable@libav.org
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>
2 years 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>