Commit graph

40045 commits

Author SHA1 Message Date
Maxton
1be4c85790 avcodec/wmaprodec: support decoding up to 16 channels of xma
Signed-off by: Maxton <maxton@maxton.xyz>
2018-03-01 20:01:53 +01:00
James Almer
40102a2137 avcodec/Makefile: skip nvdec.h header when nvdec is not enabled
Fixes make checkheaders now that the cuda headers are no longer in-tree

Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-27 17:51:02 -03:00
Michael Niedermayer
f9cb17f988 avcodec/msmpeg4dec: Check for input end in msmpeg4v34_decode_mb()
Fixes: Timeout
Fixes: 6276/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV1_fuzzer-5881196690014208

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-27 19:37:06 +01:00
Michael Niedermayer
8b5c29b6c2 avcodec/truemotion2rt: Check input buffer size
Fixes: Timeout
Fixes: 6250/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TRUEMOTION2RT_fuzzer-5479814011027456

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-27 19:37:06 +01:00
Michael Niedermayer
3981fb8d2a avcodec/g2meet: Check tile dimensions with av_image_check_size2()
Fixes: OOM
Fixes: 6216/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_G2M_fuzzer-4983807968018432

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-27 19:37:06 +01:00
Michael Niedermayer
49062a9017 avcodec/exr: fix invalid shift in unpack_14()
Fixes: 6154/clusterfuzz-testcase-minimized-5762231061970944
Fixes: runtime error: shift exponent 63 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>
2018-02-27 19:37:06 +01:00
Michael Niedermayer
090c0abff9 avcodec/bintext: sanity check dimensions
Fixes: Timeout
Fixes: 6277/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_XBIN_fuzzer-6047202288861184

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-27 19:37:06 +01:00
Timo Rothenpieler
27cbbbb33f compat: remove in-tree NVidia headers
External headers are no longer welcome in the ffmpeg codebase because they
increase the maintenance burden. However, in the NVidia case the vanilla
headers need some modifications to be usable in ffmpeg therefore we still
provide them, but in a separate repository.

The external headers can be found at
https://git.videolan.org/?p=ffmpeg/nv-codec-headers.git

Fate-source is updated because of the deleted files, and dynlink_loader.h
license headers were updated with the standard FFmpeg headers.

Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
2018-02-27 16:22:12 +01:00
Michael Niedermayer
7414d0bda7 avcodec/utvideodec: Check subsample factors
Fixes: Out of array read
Fixes: heap_poc

Found-by: GwanYeong Kim <gy741.kim@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-27 12:23:23 +01:00
Michael Niedermayer
bbed942dfd avcodec/rscc: Skip empty frames (nb_tiles == 0)
Fixes: Timeout
Fixes: 6266/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_RSCC_fuzzer-5692431816196096

Its not known if nb_tiles is allowed so it is not treated as an error

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-27 12:23:23 +01:00
Martin Vignali
ea03f295ec avcodec/exr : add support for long name flag and be more explicit about unsupported flag
based-on patch by Carl Eugen Hoyos

Fix ticket 6994
2018-02-24 21:42:04 +01:00
Tomas Härdin
f958f431ec Add libcodec2 en/decoder 2018-02-24 17:06:31 +01:00
Michael Niedermayer
0293663483 avcodec/smc: Check input packet size
Fixes: Timeout
Fixes: 6261/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SMC_fuzzer-5811309653262336

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-24 04:50:55 +01:00
James Almer
4f273b97b0 avcodec/Makefile: add missing dependencies for some cuvid decoders
Signed-off-by: James Almer <jamrial@gmail.com>
2018-02-23 21:53:15 -03:00
Dale Curtis
a246701e9a Parse and drop gain control data, so that SSR packets decode.
This will result in poor quality audio for SSR streams, but they
will at least demux and decode without error; partially fixing
ticket #1693.

This pulls in the decode_gain_control() function from the
ffmpeg summer-of-code repo (original author Maxim Gavrilov) at
svn://svn.mplayerhq.hu/soc/aac/aac.c with some minor modifications
and adds AOT_AAC_SSR to decode_audio_specific_config_gb().

Signed-off-by: Dale Curtis <dalecurtis@chromium.org>
Co-authored-by: Maxim Gavrilov <maxim.gavrilov@gmail.com>
2018-02-21 18:17:24 -08:00
Philip Langdale
cd98f20b4a avcodec/nvdec: Implement mjpeg nvdec hwaccel 2018-02-21 23:38:42 +00:00
Mark Thompson
63c690ad15 vaapi: Add MJPEG decode hwaccel 2018-02-21 23:38:30 +00:00
Mark Thompson
99ab0a13dc vaapi_decode: Make the frames context format selection more general
Examine the supported fourcc list manually and make the best choice, then
use the external attribute on the frames context to force that fourcc.
2018-02-21 23:38:10 +00:00
Mark Thompson
6c0bfa30c0 mjpegdec: Add hwaccel hooks
Also adds some extra fields to the main context structure that may
be needed by a hwaccel decoder.
2018-02-21 23:38:10 +00:00
Mark Thompson
9ca79784e9 lavc/mjpeg: Add profiles for MJPEG using SOF marker codes
This is needed by later hwaccel code to tell which encoding process was
used for a particular frame, because hardware decoders may only support a
subset of possible methods.
2018-02-21 23:37:58 +00:00
Michael Niedermayer
ae2eb04648 avcodec/cavsdec: Check alpha/beta offset
Fixes: Integer overflow
Fixes: 6183/clusterfuzz-testcase-minimized-6269224436629504

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-02-22 00:29:27 +01:00
Mark Thompson
ecb3d6edc3 Merge commit '6d5a6dde53'
* commit '6d5a6dde53':
  h264_metadata: Add option to delete filler data

Fixes #6899.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:54:07 +00:00
Mark Thompson
fbeac5356c Merge commit 'eccc03c8fb'
* commit 'eccc03c8fb':
  cbs_h264: Add support for filler NAL units

Some bitstream -> get_bits.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:51:46 +00:00
Mark Thompson
ab6edb173b Merge commit '7157d95926'
* commit '7157d95926':
  cbs_h264: Move slice_group_id array out of PPS structure

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:41:00 +00:00
Mark Thompson
7386b4ff39 Merge commit '78fa0b9033'
* commit '78fa0b9033':
  h264_metadata: Always add the SEI user data to the first access unit

Mostly already present from a308872b04,
one cosmetic change applied.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:40:08 +00:00
Mark Thompson
fd76e7be70 Merge commit '69062d0f9b'
* commit '69062d0f9b':
  h264_metadata: Use common SEI addition function

Minor changes because the following patch is already present.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:37:07 +00:00
Mark Thompson
77eba7bd99 Merge commit 'a2ca8ed903'
* commit 'a2ca8ed903':
  cbs_h264: Add utility functions to insert/delete SEI messages

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:27:07 +00:00
Mark Thompson
0cc8e34a94 Merge commit 'ce5870a3a8'
* commit 'ce5870a3a8':
  cbs: Refcount all the things!

Some changes for bitstream API.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:22:54 +00:00
Mark Thompson
b656fa710a Merge commit '13ca5d34ba'
* commit '13ca5d34ba':
  cbs_h264: Add hack for pic_timing with no active SPS

Partially fixes #6896 - the sample stream from that ticket now works, but
more obscure cases can still fail.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:05:15 +00:00
Mark Thompson
af3727e239 Merge commit '0e4c166cdd'
* commit '0e4c166cdd':
  cbs_h2645: Remove active ps references when it is replaced

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 22:03:15 +00:00
Mark Thompson
1325ac4c93 Merge commit 'a3daecd637'
* commit 'a3daecd637':
  cbs: Demote the "decomposition unimplemented" warning

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:54:42 +00:00
Mark Thompson
f082dcab7c Merge commit '67eb2b16da'
* commit '67eb2b16da':
  vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalid

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:52:20 +00:00
Mark Thompson
9e3e9a3728 Merge commit '216c44dfc1'
* commit '216c44dfc1':
  vaapi_encode: Destroy output buffer pool before VA context

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:51:28 +00:00
Mark Thompson
fe1fb48e2b Merge commit 'c8e135ea92'
* commit 'c8e135ea92':
  vaapi_encode: Allocate slice structures and parameter buffers dynamically

Already present as e4a6eb70f4, one minor
fix for libav merged.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:46:09 +00:00
Mark Thompson
7dc8752e61 Merge commit '254e728d20'
* commit '254e728d20':
  cbs: Minor comment fixes / cosmetics

Mostly already present, one small fix.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:36:08 +00:00
Mark Thompson
cacb47633c Merge commit '1d12a545ce'
* commit '1d12a545ce':
  cbs: Add an explicit type for coded bitstream unit types

Mostly already present from 6734eef6b8, two
minor message changes are merged.

Merged-by: Mark Thompson <sw@jkqxz.net>
2018-02-21 21:25:48 +00:00
Mark Thompson
6d5a6dde53 h264_metadata: Add option to delete filler data
Deletes both filler NAL units and filler SEI messages.  (Annex B zero_bytes
between NAL units are already discarded by the read/write process.)
2018-02-20 22:04:12 +00:00
Mark Thompson
eccc03c8fb cbs_h264: Add support for filler NAL units 2018-02-20 22:04:12 +00:00
Mark Thompson
7157d95926 cbs_h264: Move slice_group_id array out of PPS structure
It's very large, and is only used in some FMO streams.
2018-02-20 22:04:12 +00:00
Mark Thompson
78fa0b9033 h264_metadata: Always add the SEI user data to the first access unit
This should be added even if the first access unit does not contain
parameter sets.
2018-02-20 22:04:12 +00:00
Mark Thompson
69062d0f9b h264_metadata: Use common SEI addition function 2018-02-20 22:04:12 +00:00
Mark Thompson
a2ca8ed903 cbs_h264: Add utility functions to insert/delete SEI messages 2018-02-20 22:04:12 +00:00
Mark Thompson
ce5870a3a8 cbs: Refcount all the things!
This makes it easier for users of the CBS API to get alloc/free right -
all subelements use the buffer API so that it's clear how to free them.
It also allows eliding some redundant copies: the packet -> fragment copy
disappears after this change if the input packet is refcounted, and more
codec-specific cases are now possible (but not included in this patch).
2018-02-20 22:04:12 +00:00
Mark Thompson
13ca5d34ba cbs_h264: Add hack for pic_timing with no active SPS
If there is exactly one possible SPS but it is not yet active then just
assume that it should be the active one.
2018-02-20 22:04:12 +00:00
Mark Thompson
0e4c166cdd cbs_h2645: Remove active ps references when it is replaced 2018-02-20 22:04:12 +00:00
Mark Thompson
a3daecd637 cbs: Demote the "decomposition unimplemented" warning
This is harmless and should not be a warning - unknown units are passed
through to the write functions unchanged, and no other code will interact
with them.
2018-02-20 22:04:12 +00:00
Mark Thompson
67eb2b16da vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalid
The iHD driver looks at entries beyond num_ref_idx_l[01]_active_minus1
for unknown reasons.
2018-02-20 22:04:12 +00:00
Mark Thompson
216c44dfc1 vaapi_encode: Destroy output buffer pool before VA context
The buffers are created associated with the context, so they should be
destroyed before the context is.  This is enforced by the iHD driver.
2018-02-20 22:04:12 +00:00
Jun Zhao
c8e135ea92 vaapi_encode: Allocate slice structures and parameter buffers dynamically
This removes the arbitrary limit on the allowed number of slices and
parameter buffers.

From ffmpeg commit e4a6eb70f4.

Signed-off-by: Mark Thompson <sw@jkqxz.net>
2018-02-20 22:04:12 +00:00
Mark Thompson
254e728d20 cbs: Minor comment fixes / cosmetics 2018-02-20 22:04:12 +00:00