ffmpeg.git
19 months agoavcodec/dxtory: Remove code that corrupts dimensions
Michael Niedermayer [Sat, 17 Feb 2018 20:27:16 +0000 (21:27 +0100)]
avcodec/dxtory: Remove code that corrupts dimensions

Fixes: Timeout
Fixes: 5796/clusterfuzz-testcase-minimized-5206729085157376

Does someone have a valid sample that triggers this path ?

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
19 months agoavformat/matroskadec: fix return value
James Almer [Tue, 20 Feb 2018 13:26:21 +0000 (10:26 -0300)]
avformat/matroskadec: fix return value

err is already an AVERROR.

Signed-off-by: James Almer <jamrial@gmail.com>
19 months agoavformat/matroskadec: free the packet on webvtt side data allocation failure
James Almer [Tue, 20 Feb 2018 13:25:54 +0000 (10:25 -0300)]
avformat/matroskadec: free the packet on webvtt side data allocation failure

Fixes potential memory leaks

Signed-off-by: James Almer <jamrial@gmail.com>
19 months agoavformat/matroskadec: ignore CodecPrivate if the stream is VP9
James Almer [Sat, 13 Jan 2018 19:04:21 +0000 (16:04 -0300)]
avformat/matroskadec: ignore CodecPrivate if the stream is VP9

Defined in a recent revision of https://www.webmproject.org/docs/container/

This prevents storing the contents of CodecPrivate into extradata for
a codec that doesn't need nor expect any. It will among other things
prevent matroska specific binary data from being dumped onto other
formats during remuxing.

Signed-off-by: James Almer <jamrial@gmail.com>
19 months agodocs/codecs: remove dead codec debug options
Gyan Doshi [Mon, 15 Jan 2018 14:50:33 +0000 (20:20 +0530)]
docs/codecs: remove dead codec debug options

FF_API_DEBUG_MV has been disabled. Related options removed from docs.

Mention of non-existent debug option value 'pts' also removed.

19 months agoMerge commit 'cc1c94dacd0642ac1a6cad45deb65071f127d91a'
James Almer [Mon, 19 Feb 2018 21:35:32 +0000 (18:35 -0300)]
Merge commit 'cc1c94dacd0642ac1a6cad45deb65071f127d91a'

* commit 'cc1c94dacd0642ac1a6cad45deb65071f127d91a':
  configure: Pass the right machine types to dlltool for arm and arm64 mingw

Merged-by: James Almer <jamrial@gmail.com>
19 months agoMerge commit '97eee953e639bd4d17a9f9398293775277d00505'
James Almer [Mon, 19 Feb 2018 21:34:36 +0000 (18:34 -0300)]
Merge commit '97eee953e639bd4d17a9f9398293775277d00505'

* commit '97eee953e639bd4d17a9f9398293775277d00505':
  Revert "configure: Stop using dlltool to create an import library"

This commit is a noop, see 6d8bef8c05ea5dcb95f5930954cd6bd28868c2c9

Merged-by: James Almer <jamrial@gmail.com>
19 months agobuild: restore using dlltool/lib.exe for creating Win32 .lib files
Hendrik Leppkes [Fri, 16 Feb 2018 20:24:59 +0000 (21:24 +0100)]
build: restore using dlltool/lib.exe for creating Win32 .lib files

The GCC generated import libraries don't work properly when being imported
by MSVC, resulting in missing symbols at runtime.

This reverts 5b5365fe9 and partially reverts changes from 98a9b1f0d

19 months agoavcodec/mediacodecdec: refactor to take advantage of new decoding api
Aman Gupta [Fri, 16 Feb 2018 03:52:14 +0000 (19:52 -0800)]
avcodec/mediacodecdec: refactor to take advantage of new decoding api

This refactor splits up the main mediacodec decode loop into two
send/receive helpers, which are then used to rewrite the receive_frame
callback and take full advantage of the new decoding api. Since we
can now request packets on demand with ff_decode_get_packet(), the
fifo buffer is no longer necessary and has been removed.

This change was motivated by behavior observed on certain Android TV
devices, featuring hardware mpeg2/h264 decoders which also deinterlace
content (to produce multiple frames per field). Previously, this code
caused buffering issues because queueInputBuffer() was always invoked
before each dequeueOutputBuffer(), even though twice as many output
buffers were being generated.

With this patch, the decoder will always attempt to drain new frames
first before sending more data into the underlying codec.

Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
19 months agoconfigure: Pass the right machine types to dlltool for arm and arm64 mingw
Martin Storsjö [Fri, 16 Feb 2018 22:17:21 +0000 (00:17 +0200)]
configure: Pass the right machine types to dlltool for arm and arm64 mingw

These are supported by llvm-dlltool.

Signed-off-by: Martin Storsjö <martin@martin.st>
19 months agoRevert "configure: Stop using dlltool to create an import library"
Martin Storsjö [Fri, 16 Feb 2018 22:08:45 +0000 (00:08 +0200)]
Revert "configure: Stop using dlltool to create an import library"

This reverts commit 67c72f08a4707c18a67a4734660e3a23cc9488b6.

While the linker produced import libraries might work with MSVC in
simple test cases, they don't if e.g. linking to multiple GNU ld
produced import libraries at the same time. (They end up importing
functions from the wrong libraries.) The ones produced by dlltool
work fine though.

This issue was pointed out by Hendrik Leppkes.

Signed-off-by: Martin Storsjö <martin@martin.st>
19 months agofate: add tests for pan audio filter
Tobias Rapp [Thu, 15 Feb 2018 07:21:24 +0000 (08:21 +0100)]
fate: add tests for pan audio filter

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
19 months agoswresample/rematrix: fix update of channel matrix if input or output layout is undefined
Tobias Rapp [Wed, 14 Feb 2018 16:01:08 +0000 (17:01 +0100)]
swresample/rematrix: fix update of channel matrix if input or output layout is undefined

Prefer direct in/out channel count values over channel layout, when
available. Fixes a pan filter bug (ticket #6790).

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
20 months agoavcodec/dirac_dwt_template: Fix Integer overflow in horizontal_compose_dd137i()
Michael Niedermayer [Sat, 17 Feb 2018 20:47:09 +0000 (21:47 +0100)]
avcodec/dirac_dwt_template: Fix Integer overflow in horizontal_compose_dd137i()

Fixes: 5894/clusterfuzz-testcase-minimized-5315325420634112
Fixes: runtime error: signed integer overflow: 2147483647 + 1 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>
20 months agoavcodec/hevcdec: Check luma/chroma_log2_weight_denom
Michael Niedermayer [Sat, 17 Feb 2018 20:42:34 +0000 (21:42 +0100)]
avcodec/hevcdec: Check luma/chroma_log2_weight_denom

Fixes: signed integer overflow: 3 + 2147483647 cannot be represented in type 'int'
Fixes: 5888/clusterfuzz-testcase-minimized-5634701067812864

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agolibavfilter/vf_fps: Add more fate tests
Calvin Walton [Fri, 16 Feb 2018 20:02:02 +0000 (15:02 -0500)]
libavfilter/vf_fps: Add more fate tests

These tests cover specific rounding behaviour, to ensure that I don't
introduce any regressions with the rewritten "activate" callback based
fps filter.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/h264: Increase field_poc to 64bit in ff_h264_init_poc() to detect overflows
Michael Niedermayer [Sat, 17 Feb 2018 03:20:54 +0000 (04:20 +0100)]
avcodec/h264: Increase field_poc to 64bit in ff_h264_init_poc() to detect overflows

Fixes: Integer overflow
Fixes: 5746/clusterfuzz-testcase-minimized-6270097623613440

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/jpeg2000dec: Use av_image_check_size2()
Michael Niedermayer [Sat, 17 Feb 2018 03:20:53 +0000 (04:20 +0100)]
avcodec/jpeg2000dec: Use av_image_check_size2()

Fixes: OOM
Fixes: 5733/clusterfuzz-testcase-minimized-4906757966004224

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/vp8: Check for bitstream end before vp7_fade_frame()
Michael Niedermayer [Sat, 17 Feb 2018 03:20:52 +0000 (04:20 +0100)]
avcodec/vp8: Check for bitstream end before vp7_fade_frame()

Fixes: Timeout
Fixes: 5653/clusterfuzz-testcase-5497680018014208

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/exr: Check remaining bits in last get code loop
Michael Niedermayer [Wed, 14 Feb 2018 12:01:46 +0000 (13:01 +0100)]
avcodec/exr: Check remaining bits in last get code loop

Fixes: runtime error: shift exponent -7 is negative
Fixes: 3902/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EXR_fuzzer-6081926122176512

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavutil/common: Fix integer overflow in av_clip_uint8_c() and av_clip_uint16_c()
Michael Niedermayer [Wed, 14 Feb 2018 02:54:13 +0000 (03:54 +0100)]
avutil/common: Fix integer overflow in av_clip_uint8_c() and av_clip_uint16_c()

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

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agofate/mpegps: add tests for PCM_DVD stream remux
Gyan Doshi [Thu, 15 Feb 2018 12:18:47 +0000 (17:48 +0530)]
fate/mpegps: add tests for PCM_DVD stream remux

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/mpegenc - accept PCM_DVD streams
Gyan Doshi [Wed, 7 Feb 2018 12:35:08 +0000 (18:05 +0530)]
avformat/mpegenc - accept PCM_DVD streams

PCM_S16BE stream packets in MPEG-PS have a 3-byte header and
are recognized as PCM_DVD by the demuxer which prevents their
correct remuxing in MPEG-1/2 PS.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavutil/crypto: change length parameter to size_t on the remaining modules
James Almer [Thu, 15 Feb 2018 14:12:54 +0000 (11:12 -0300)]
avutil/crypto: change length parameter to size_t on the remaining modules

See 651ee9346105b9d492e01172ab447c04d03fa32e
fcc4ed1efa1a7575dc45fe57ce552af331941469

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavdevice/decklink_dec: Fix ;;
Michael Niedermayer [Thu, 15 Feb 2018 12:48:52 +0000 (13:48 +0100)]
avdevice/decklink_dec: Fix ;;

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavfilter/avf_avectorscope: Fix ;;
Michael Niedermayer [Thu, 15 Feb 2018 12:48:25 +0000 (13:48 +0100)]
avfilter/avf_avectorscope: Fix ;;

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/h264_cabac: Tighten allowed coeff_abs range
Michael Niedermayer [Tue, 13 Feb 2018 23:32:30 +0000 (00:32 +0100)]
avcodec/h264_cabac: Tighten allowed coeff_abs range

Fixes: integer overflows
Reported-by: "Xiaohan Wang (王消寒)" <xhwang@chromium.org>
Based on limits in "8.5 Transform coefficient decoding process and picture
construction process prior to deblocking  filter process"

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/ffv1: Support for GBRAP10 and GBRAP12
Jérôme Martinez [Wed, 14 Feb 2018 07:39:15 +0000 (08:39 +0100)]
avcodec/ffv1: Support for GBRAP10 and GBRAP12

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/aviobuf: zero initialize the AVIOContext in ffio_init_context()
James Almer [Wed, 14 Feb 2018 23:56:21 +0000 (20:56 -0300)]
avformat/aviobuf: zero initialize the AVIOContext in ffio_init_context()

This makes sure no field is ever used uninitialized.

Reviewed-by: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec: remove unnecessary calls to ff_init_buffer_info()
James Almer [Tue, 13 Feb 2018 21:42:04 +0000 (18:42 -0300)]
avcodec: remove unnecessary calls to ff_init_buffer_info()

And remove the function altogether while at it. It's a duplicate of
another.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavpacket: reset dst side_data fields in av_packet_copy_props
Yusuke Nakamura [Wed, 14 Feb 2018 02:43:24 +0000 (11:43 +0900)]
avpacket: reset dst side_data fields in av_packet_copy_props

This effectively copies the side data elements from src instead of
potentially merging them with those already existing in dst.
This by extension also removes the only dependency on existing values
in the dst packet.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavfilter/af_loudnorm: correctly initialize PTS
Niklas Haas [Sat, 3 Feb 2018 14:22:05 +0000 (15:22 +0100)]
avfilter/af_loudnorm: correctly initialize PTS

Right now, the PTS always starts out as 0, which causes problems on a
seek or when inserting this filter mid-stream.

Initialize it instead to AV_NOPTS_VALUE and copy the PTS from the first
frame instead if this is the case.

20 months agolavf/rtpdec*: Constify all RTPDynamicProtocolHandler.
Carl Eugen Hoyos [Mon, 12 Feb 2018 21:21:06 +0000 (22:21 +0100)]
lavf/rtpdec*: Constify all RTPDynamicProtocolHandler.

Reviewed-by: Muhammad Faiz
20 months agoavcodec/h264_cavlc: Set valid qscale value in ff_h264_decode_mb_cavlc()
Xiaohan Wang [Sat, 3 Feb 2018 09:43:35 +0000 (01:43 -0800)]
avcodec/h264_cavlc: Set valid qscale value in ff_h264_decode_mb_cavlc()

When ff_h264_decode_mb_cavlc() failed due to wrong sl->qscale values,
e.g. dquant out of range, set the qscale to be a valid value before
returning -1 and exiting the function. The qscale value can be used
later e.g. in loop filter.

BUG=806122

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavutil/opt: remove ABI hacks
wm4 [Tue, 13 Feb 2018 03:11:27 +0000 (04:11 +0100)]
avutil/opt: remove ABI hacks

These were needed for ABI compatibility with Libav. We don't need them
anymore.

20 months agoavdevice/decklink_dec: extract NTSC VANC
Ray Tiley [Mon, 12 Feb 2018 00:16:45 +0000 (16:16 -0800)]
avdevice/decklink_dec: extract NTSC VANC

This changes how NTSC VANC is extracted from the buffer. In NTSC the vanc data
is interleaved between luma and chroma, and not just the luma as in high
definition resolutions.

In my testing this allows a decklink card encoding valid NTSC closed
captions to pass the caption data to the x264 encoder.

Updated with reviews from Devin Heitmueller and Marton Balint.

Signed-off-by: Ray Tiley <raytiley@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavcodec/mpeg12enc: add support for specifying video_format in the sequence_display_ex...
Marton Balint [Sat, 10 Feb 2018 18:03:36 +0000 (19:03 +0100)]
avcodec/mpeg12enc: add support for specifying video_format in the sequence_display_extension

In a recent commit the default was changed from 0 (component) to 5
(unspecified), however some standards require using 0. With this option, the
user will be able to do so.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoMerge commit 'a674b31240e99a369059385b03582b35629d190f'
Mark Thompson [Mon, 12 Feb 2018 23:12:43 +0000 (23:12 +0000)]
Merge commit 'a674b31240e99a369059385b03582b35629d190f'

* commit 'a674b31240e99a369059385b03582b35629d190f':
  build: Ignore generated mpeg12framerate test binary

This commit is a noop, see fb791d28766bdacbb685a77c381101afc98ed58b

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit '5b6213ef6bf5e0781c83e86926eb0b33a98dc185'
Mark Thompson [Mon, 12 Feb 2018 23:10:09 +0000 (23:10 +0000)]
Merge commit '5b6213ef6bf5e0781c83e86926eb0b33a98dc185'

* commit '5b6213ef6bf5e0781c83e86926eb0b33a98dc185':
  avcodec/vc1dec: fix mby_start for interlaced content

This commit is a noop, see c9f72e4b81ae44d1a61459e85a3e1216a239a8ee

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit '9b09792c90b580842157ca8ce534be434725a841'
Mark Thompson [Mon, 12 Feb 2018 23:05:13 +0000 (23:05 +0000)]
Merge commit '9b09792c90b580842157ca8ce534be434725a841'

* commit '9b09792c90b580842157ca8ce534be434725a841':
  lavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWN

This commit is a noop: the code in FFmpeg is slightly different and never
contained the invalid value.

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2'
Mark Thompson [Mon, 12 Feb 2018 23:01:24 +0000 (23:01 +0000)]
Merge commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2'

* commit '8bb9824fcbc5a6ebf68391d70a2c4f03447990d2':
  qsvenc: AVBR is not supported on non-windows OS

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit 'e412d683fe0349bb8450645813a23158bb4ebd66'
Mark Thompson [Mon, 12 Feb 2018 23:00:13 +0000 (23:00 +0000)]
Merge commit 'e412d683fe0349bb8450645813a23158bb4ebd66'

* commit 'e412d683fe0349bb8450645813a23158bb4ebd66':
  hwcontext: Perform usual uninitialisation on derived frames contexts

This commit is a noop, see 0f93cef2d6405f07b42719506cbde30f07dd8702

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit 'caecb85014fc81f8734560a150073627eedab78c'
Mark Thompson [Mon, 12 Feb 2018 22:59:12 +0000 (22:59 +0000)]
Merge commit 'caecb85014fc81f8734560a150073627eedab78c'

* commit 'caecb85014fc81f8734560a150073627eedab78c':
  hwcontext: Perform usual initialisation on derived device contexts

This commit is a noop, see 309d660775e2b47af6723a0477c4d753bc0c54f4

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit 'c6bc18bc121ea66df715123c59f7ef9542c0914a'
Mark Thompson [Mon, 12 Feb 2018 22:56:12 +0000 (22:56 +0000)]
Merge commit 'c6bc18bc121ea66df715123c59f7ef9542c0914a'

* commit 'c6bc18bc121ea66df715123c59f7ef9542c0914a':
  vf_hwupload/hwmap: Support setting a fixed pool size

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit 'e4cdef00263dc8b3c8de9d34ceacd00dc68979c0'
Mark Thompson [Mon, 12 Feb 2018 22:55:24 +0000 (22:55 +0000)]
Merge commit 'e4cdef00263dc8b3c8de9d34ceacd00dc68979c0'

* commit 'e4cdef00263dc8b3c8de9d34ceacd00dc68979c0':
  vf_scale_qsv: Support increasing hardware frame pool size

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agofate: Fix fate-api reference files after AVCodecContext change
Mark Thompson [Mon, 12 Feb 2018 22:53:05 +0000 (22:53 +0000)]
fate: Fix fate-api reference files after AVCodecContext change

Broken by d23fff0d8a0e7df170c67a9dd5c1f7c1fc0da489.

20 months agoMerge commit 'b128be1748f3920a14a98307265df5f2d3433e1d'
Mark Thompson [Mon, 12 Feb 2018 22:44:28 +0000 (22:44 +0000)]
Merge commit 'b128be1748f3920a14a98307265df5f2d3433e1d'

* commit 'b128be1748f3920a14a98307265df5f2d3433e1d':
  vf_*_vaapi: Support increasing hardware frame pool size

Rewritten to apply to common VAAPI code rather than specific filters.

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit '6d86cef06ba36c0ed591e14a2382e9630059fc5d'
Mark Thompson [Mon, 12 Feb 2018 22:28:12 +0000 (22:28 +0000)]
Merge commit '6d86cef06ba36c0ed591e14a2382e9630059fc5d'

* commit '6d86cef06ba36c0ed591e14a2382e9630059fc5d':
  lavfi: Add support for increasing hardware frame pool sizes

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit 'cad739dace55e3446ef7180de688173cd19fb000'
Mark Thompson [Mon, 12 Feb 2018 22:22:30 +0000 (22:22 +0000)]
Merge commit 'cad739dace55e3446ef7180de688173cd19fb000'

* commit 'cad739dace55e3446ef7180de688173cd19fb000':
  lavc: Add per-thread surfaces in get_hw_frame_parameters()

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit '5b145290df2998a9836a93eb925289c6c8b63af0'
Mark Thompson [Mon, 12 Feb 2018 22:19:38 +0000 (22:19 +0000)]
Merge commit '5b145290df2998a9836a93eb925289c6c8b63af0'

* commit '5b145290df2998a9836a93eb925289c6c8b63af0':
  lavc: Add support for increasing hardware frame pool sizes

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agolavf/matroskaenc: Force the minimum value for -reserve_index_space to 2.
Carl Eugen Hoyos [Sun, 11 Feb 2018 19:41:32 +0000 (20:41 +0100)]
lavf/matroskaenc: Force the minimum value for -reserve_index_space to 2.

Fixes an assertion failure:
Assertion size >= 2 failed at libavformat/matroskaenc.c:298

20 months agofate: add aac id3v2 demux test
Richard Shaffer [Sun, 4 Feb 2018 07:24:45 +0000 (23:24 -0800)]
fate: add aac id3v2 demux test

A basic test for demuxing raw AAC (ADTS) with ID3v2 tags.

20 months agolibavformat/aac: Parse ID3 tags between ADTS frames.
Richard Shaffer [Fri, 2 Feb 2018 02:37:45 +0000 (18:37 -0800)]
libavformat/aac: Parse ID3 tags between ADTS frames.

While rare, ID3 tags may be inserted between ADTS frames. This change enables
parsing them and setting the appropriate metadata updated event flag.

20 months agoavformat/Makefile: use individual dependencies for librtmp protocols
James Almer [Mon, 12 Feb 2018 14:29:07 +0000 (11:29 -0300)]
avformat/Makefile: use individual dependencies for librtmp protocols

Fixes compilation of libavformat when librtmp is enabled but all the
relevant protocols are disabled.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoh264_idct: enable unmacro on newer NASM versions
Rostislav Pehlivanov [Sat, 10 Feb 2018 13:16:36 +0000 (13:16 +0000)]
h264_idct: enable unmacro on newer NASM versions

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
20 months agobuild: Ignore generated mpeg12framerate test binary
Diego Biurrun [Fri, 9 Feb 2018 17:48:27 +0000 (17:48 +0000)]
build: Ignore generated mpeg12framerate test binary

20 months agoavcodec/vc1dec: fix mby_start for interlaced content
Michael Niedermayer [Sat, 14 Dec 2013 16:11:21 +0000 (17:11 +0100)]
avcodec/vc1dec: fix mby_start for interlaced content

Bug-Id: 1100
Bug-Id: ffmpeg/Ticket2531
Cc: libav-stable@libav.org
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 months agolavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWN
Ruiling Song [Sun, 11 Feb 2018 07:43:45 +0000 (15:43 +0800)]
lavc/qsv: default la_ds to MFX_LOOKAHEAD_DS_UNKNOWN

MFX_LOOKAHEAD_DS_UNKNOWN means auto.
-1 is not a valid value.

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
20 months agoqsvenc: AVBR is not supported on non-windows OS
Zhong Li [Tue, 30 Jan 2018 10:07:23 +0000 (18:07 +0800)]
qsvenc: AVBR is not supported on non-windows OS

AVBR is supported from API 1.3 but only available for Windows

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Maxym Dmytrychenko <maxim.d33@gmail.com>
20 months 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>
20 months agohwcontext: Perform usual uninitialisation on derived frames contexts
Mark Thompson [Mon, 26 Jun 2017 19:28:07 +0000 (20:28 +0100)]
hwcontext: Perform usual uninitialisation on derived frames contexts

20 months agohwcontext: Perform usual initialisation on derived device contexts
Mark Thompson [Sun, 8 Oct 2017 14:19:17 +0000 (15:19 +0100)]
hwcontext: Perform usual initialisation on derived device contexts

The initialisation should be common.  For libmfx, it was previously
happening in the derivation function and this moves it out.

20 months agovf_hwupload/hwmap: Support setting a fixed pool size
Mark Thompson [Sat, 5 Aug 2017 21:10:46 +0000 (22:10 +0100)]
vf_hwupload/hwmap: Support setting a fixed pool size

These filters do not directly know whether the API they are using will
support dynamic frame pools, so this is somewhat tricky.  If the user
sets extra_hw_frames, we assume that they are aware of the problem and
set a fixed size based on that.  If not, most cases use dynamic sizing
just like they did previously.  The hardware-reverse-mapping case for
hwmap previously had a large fixed size (64) here, primarily as a hack
for QSV use - this is removed and extra_hw_frames will need to be set
for QSV to work since it requires fixed-size pools (as the other cases
do, and which didn't work before).

20 months agovf_scale_qsv: Support increasing hardware frame pool size
Mark Thompson [Mon, 27 Mar 2017 20:10:23 +0000 (21:10 +0100)]
vf_scale_qsv: Support increasing hardware frame pool size

The deinterlacer does not change, because it does not allocate any new
frames (for output it uses the same pool as the input).

20 months agovf_*_vaapi: Support increasing hardware frame pool size
Mark Thompson [Mon, 27 Mar 2017 20:10:10 +0000 (21:10 +0100)]
vf_*_vaapi: Support increasing hardware frame pool size

Defaults to 10 frames to preserve compatibility, but can allocate
fewer if extra_hw_frames is set explicitly.

20 months agolavfi: Add support for increasing hardware frame pool sizes
Mark Thompson [Mon, 27 Mar 2017 20:10:53 +0000 (21:10 +0100)]
lavfi: Add support for increasing hardware frame pool sizes

AVFilterContext.extra_hw_frames functions identically to the field of
the same name in AVCodecContext.

20 months agolavc: Add per-thread surfaces in get_hw_frame_parameters()
Mark Thompson [Mon, 29 Jan 2018 22:55:11 +0000 (22:55 +0000)]
lavc: Add per-thread surfaces in get_hw_frame_parameters()

This number is definitely required when frame threading is enabled, so
add it here rather than forcing all users to handle it themselves.

DXVA2 contained this addition in specific code as well (therefore being
added twice in the internal case) - just remove it from there.

20 months agolavc: Add support for increasing hardware frame pool sizes
Mark Thompson [Mon, 29 Jan 2018 22:18:00 +0000 (22:18 +0000)]
lavc: Add support for increasing hardware frame pool sizes

AVCodecContext.extra_hw_frames is added to the size of hardware frame
pools created by libavcodec for APIs which require fixed-size pools.
This allows the user to keep references to a greater number of frames
after decode, which may be necessary for some use-cases.

It is also added to the initial_pool_size value returned by
avcodec_get_hw_frames_parameters() if a fixed-size pool is required.

20 months 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]

20 months 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>
20 months 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>
20 months 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>
20 months 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>
20 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>
20 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>
20 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>
20 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>
20 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.

20 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

20 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>
20 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>
20 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

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

20 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

20 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

20 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

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

20 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

20 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>
20 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>
20 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>