ffmpeg.git
17 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>
17 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.

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

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

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

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

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

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

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

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

17 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).

17 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).

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

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

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

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

17 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]

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

17 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

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

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

17 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

17 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

17 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

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

17 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

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

17 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

17 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

17 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

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

17 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

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

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

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

17 months 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

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

17 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>
17 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>
17 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.)