ffmpeg.git
2 years agoswscale: Introduce a helper to identify semi-planar formats
Philip Langdale [Fri, 2 Mar 2018 17:09:05 +0000 (09:09 -0800)]
swscale: Introduce a helper to identify semi-planar formats

This cleans up the ever-more-unreadable list of semi-planar
exclusions for selecting the planar copy wrapper.

2 years agodoc/bitstream_filters: correct dump_extra bsfs docs.
Jun Zhao [Fri, 23 Feb 2018 05:53:05 +0000 (13:53 +0800)]
doc/bitstream_filters: correct dump_extra bsfs docs.

Update dump_extra bit stream filter docs to follow current
code implement.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/mov: Add manu/modl to mov_read_udta_string.
Tianqiang Liu [Fri, 2 Mar 2018 17:17:11 +0000 (09:17 -0800)]
avformat/mov: Add manu/modl to mov_read_udta_string.

Documentation: http://mp4ra.org/atoms.html

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mediacodecdec: factorize codec declarations
Matthieu Bouron [Fri, 2 Mar 2018 11:06:19 +0000 (12:06 +0100)]
avcodec/mediacodecdec: factorize codec declarations

2 years agoavcodec/mediacodecdec: factorize common extradata functions
Matthieu Bouron [Fri, 2 Mar 2018 09:36:08 +0000 (10:36 +0100)]
avcodec/mediacodecdec: factorize common extradata functions

2 years agoavcodec/mediacodecdec: add missing "libavutil/internal.h" include
Matthieu Bouron [Fri, 2 Mar 2018 11:04:30 +0000 (12:04 +0100)]
avcodec/mediacodecdec: add missing "libavutil/internal.h" include

libavutil/internal.h defines NULL_IF_CONFIG_SMALL.

2 years agoavcodec/mediacodec_wrapper: load and use MediaFormat.constainsKey()
Matthieu Bouron [Wed, 21 Feb 2018 13:15:42 +0000 (14:15 +0100)]
avcodec/mediacodec_wrapper: load and use MediaFormat.constainsKey()

Avoids triggering an exception in MediaFormat getter functions if the
key does not exist.

2 years agoavcodec/mediacodecdec_common: remove unused field from MediaCodecDecContext
Matthieu Bouron [Tue, 20 Feb 2018 10:08:01 +0000 (11:08 +0100)]
avcodec/mediacodecdec_common: remove unused field from MediaCodecDecContext

2 years agoavcodec/mediacodecdec_common: remove spurious space
Matthieu Bouron [Mon, 19 Feb 2018 15:13:51 +0000 (16:13 +0100)]
avcodec/mediacodecdec_common: remove spurious space

2 years agoavcodec/mediacodecdec_common: refactor mediacodec_dec_parse_format()
Matthieu Bouron [Mon, 19 Feb 2018 15:13:00 +0000 (16:13 +0100)]
avcodec/mediacodecdec_common: refactor mediacodec_dec_parse_format()

2 years agoavformat/dashenc: Use HTTP DELETE for HTTP base proto
Serhii Marchuk [Tue, 27 Feb 2018 09:18:10 +0000 (11:18 +0200)]
avformat/dashenc: Use HTTP DELETE for HTTP base proto

2 years agoavformat/dashenc: fix for segment open issue when persistent connection is enabled
Vishwanath Dixit [Fri, 2 Mar 2018 06:22:37 +0000 (11:52 +0530)]
avformat/dashenc: fix for segment open issue when persistent connection is enabled

2 years agoavcodec/nvenc: Declare support for P016
Philip Langdale [Sun, 25 Feb 2018 17:08:06 +0000 (09:08 -0800)]
avcodec/nvenc: Declare support for P016

nvenc doesn't support P016, but we have two problems today:

1) We declare support for YUV444P16 which nvenc also doesn't support.
   We do this because it's the only pix_fmt we have that can
   approximate nvenc's internal format that is YUV444P10 with data in
   MSBs instead of LSBs. Because the declared format is a 16bit one,
   it will be preferrentially chosen when encoding >10bit content,
   but that content will normally be YUV420P12 or P016 which should
   get mapped to P010 and not YUV444P10.

2) Transcoding P016 content with nvenc should be possible in a pure
   hardware pipeline, and that can't be done if nvenc doesn't say it
   accepts P016. By mapping it to P010, we can use it, albeit with
   truncation. I have established that swscale doesn't know how to
   dither to 10bits so we'd get truncation anyway, even if we tried
   to do this 'properly'.

2 years agoswscale: Add p016 output support and generalise yuv420p1x to p010
Philip Langdale [Fri, 2 Mar 2018 04:16:48 +0000 (20:16 -0800)]
swscale: Add p016 output support and generalise yuv420p1x to p010

To make the best use of existing code, I generalised the wrapper
that currently does yuv420p10 to p010 to support any mixture of
input and output sizes between 10 and 16 bits. This had the side
effect of yielding a working code path for all yuv420p1x formats
to p01x.

2 years agoavcodec/hevcdec: Declare that nvdec supports 12bit decoding
Philip Langdale [Sun, 25 Feb 2018 17:44:23 +0000 (09:44 -0800)]
avcodec/hevcdec: Declare that nvdec supports 12bit decoding

2 years agoparseutils: add support for ms and us suffix for AV_OPT_TYPE_DURATION
Aurelien Jacobs [Thu, 1 Mar 2018 18:30:42 +0000 (19:30 +0100)]
parseutils: add support for ms and us suffix for AV_OPT_TYPE_DURATION

supported suffixes are:
- s: seconds (default when no suffix specified)
- m or ms: milliseconds
- u or us: microseconds

2 years agoavformat/mxg: return reference counted packets
James Almer [Tue, 27 Feb 2018 03:09:47 +0000 (00:09 -0300)]
avformat/mxg: return reference counted packets

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavformat/hlsenc: add reference stream index for split segment
Steven Liu [Fri, 2 Mar 2018 02:56:36 +0000 (10:56 +0800)]
avformat/hlsenc: add reference stream index for split segment

fix ticket: #7044
Get the first video stream to reference for split segment
when there have more than one video stream

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
Reviewed-by: Karthick Jeyapal <kjeyapal@akamai.com>
2 years agoffmpeg: Fix memset size on ctts_data in mov_read_trun() (round 2)
Xiaohan Wang [Sat, 24 Feb 2018 01:04:41 +0000 (17:04 -0800)]
ffmpeg: Fix memset size on ctts_data in mov_read_trun() (round 2)

The allocated size of sc->ctts_data is
(st->nb_index_entries + entries) * sizeof(*sc->ctts_data).

The size to memset at offset sc->ctts_data + sc->ctts_count should be
(st->nb_index_entries + entries - sc->ctts_count) *
sizeof(*sc->ctts_data))

The current code missed |entries| I believe, which was introduced in
https://patchwork.ffmpeg.org/patch/5541/.

However, after offline discussion, it seems the original code is much
more clear to read (before https://patchwork.ffmpeg.org/patch/5541/).

Hence this CL revert the memset logic to it's previous state by
remembering the |old_ctts_allocated_size|, and only memset the newly
allocated entries.

BUG=812567

Change-Id: Ibe94c7138e5818bfaae76866bfa6619a9b8a2b6b
Reviewed-on: https://chromium-review.googlesource.com/934925
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/mxfdec: always use a stream which matches the first index table when seeking
Marton Balint [Sat, 17 Feb 2018 18:31:33 +0000 (19:31 +0100)]
avformat/mxfdec: always use a stream which matches the first index table when seeking

Obviously this is still not perfect, but better then it was. Using the first
index table and mxf->current_edit_unit is still hardcoded in many places, so
this change has hopefully the less chance of breaking anything that works
now.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: compute sample_count after seek from index for audio streams
Marton Balint [Tue, 13 Feb 2018 22:44:05 +0000 (23:44 +0100)]
avformat/mxfdec: compute sample_count after seek from index for audio streams

This fixes audio timestamps if the audio streams are not frame wrapped with the
video.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: use body_offset of the partitions in mxf_absolute_bodysid_offset
Marton Balint [Thu, 8 Feb 2018 01:38:56 +0000 (02:38 +0100)]
avformat/mxfdec: use body_offset of the partitions in mxf_absolute_bodysid_offset

Use body_offset of the partitions to search for the partition with the given
offset in the essence. This makes the function find the correct partition for
non frame-wrapped essences as well, where only the essence data is part of the
the edit unit byte count, not the KLV-s.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: set index_duration from the track using the index
Marton Balint [Sat, 17 Feb 2018 15:46:41 +0000 (16:46 +0100)]
avformat/mxfdec: set index_duration from the track using the index

Also use original_duration as index_duration is in edit units.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: fix sorting of index segments
Marton Balint [Tue, 6 Feb 2018 23:20:01 +0000 (00:20 +0100)]
avformat/mxfdec: fix sorting of index segments

Fixes ticket #5320.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: use both body_sid and track_number to find the track of a packet
Marton Balint [Tue, 6 Feb 2018 21:41:16 +0000 (22:41 +0100)]
avformat/mxfdec: use both body_sid and track_number to find the track of a packet

In order to do that we have to parse the EssenceContainerData and assign the
proper body_sid and index_sid to the tracks from the corresponding source
packages.

This fixes packets returned in the wrong stream for some OP1-b files.

Based on a patch by Alex Mogurenko from https://github.com/da8eat/FFmpeg

Reference: http://mogurenko.com/2018/01/02/mxf-op1b-ffmpeg-part1/

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: use full UMID to resolve source package
Marton Balint [Mon, 5 Feb 2018 22:27:20 +0000 (23:27 +0100)]
avformat/mxfdec: use full UMID to resolve source package

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: use the first system item if available for calculating essence_offset
Marton Balint [Sat, 17 Feb 2018 14:02:19 +0000 (15:02 +0100)]
avformat/mxfdec: use the first system item if available for calculating essence_offset

Also add an additional system item key.

Fixes parsing of ffmpeg-bugs/trac/ticket2817/warehouse.mxf

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: fix essence_offset calculation
Marton Balint [Sat, 17 Feb 2018 10:47:57 +0000 (11:47 +0100)]
avformat/mxfdec: fix essence_offset calculation

The reference point for a KAG is the first byte of the key of a Partition Pack.

Fixes ticket #2817.
Fixes ticket #5317.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mxfdec: fix indentation
Marton Balint [Mon, 12 Feb 2018 22:34:23 +0000 (23:34 +0100)]
avformat/mxfdec: fix indentation

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoframe: add an av_frame_new_side_data_from_buf function
Rostislav Pehlivanov [Tue, 17 Oct 2017 22:57:28 +0000 (23:57 +0100)]
frame: add an av_frame_new_side_data_from_buf function

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agoavcodec/wmaprodec: support decoding up to 16 channels of xma
Maxton [Tue, 27 Feb 2018 09:43:52 +0000 (04:43 -0500)]
avcodec/wmaprodec: support decoding up to 16 channels of xma

Signed-off by: Maxton <maxton@maxton.xyz>

2 years agoavfilter/avf_concat: add next command
Bodecs Bela [Sun, 25 Feb 2018 16:07:40 +0000 (17:07 +0100)]
avfilter/avf_concat: add next command

This patch makes it possible to dinamically close the current segment
and step to the next one by introducing command handling capabilities
into the filter. This new feature is very usefull when working with
real-time sources or live streams as source. Combinig usage with zmqsend
tool you can interactively end the current segment and step to next one.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
2 years agoavcodec/Makefile: skip nvdec.h header when nvdec is not enabled
James Almer [Tue, 27 Feb 2018 20:51:02 +0000 (17:51 -0300)]
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>
2 years agoavcodec/msmpeg4dec: Check for input end in msmpeg4v34_decode_mb()
Michael Niedermayer [Mon, 26 Feb 2018 15:44:50 +0000 (16:44 +0100)]
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>
2 years agoavcodec/truemotion2rt: Check input buffer size
Michael Niedermayer [Thu, 22 Feb 2018 02:04:40 +0000 (03:04 +0100)]
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>
2 years agoavcodec/g2meet: Check tile dimensions with av_image_check_size2()
Michael Niedermayer [Thu, 22 Feb 2018 01:34:05 +0000 (02:34 +0100)]
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>
2 years agoavcodec/exr: fix invalid shift in unpack_14()
Michael Niedermayer [Wed, 21 Feb 2018 03:29:44 +0000 (04:29 +0100)]
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>
2 years agoavcodec/bintext: sanity check dimensions
Michael Niedermayer [Mon, 26 Feb 2018 20:17:08 +0000 (21:17 +0100)]
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>
2 years agocompat: remove in-tree NVidia headers
Timo Rothenpieler [Mon, 26 Feb 2018 00:20:51 +0000 (01:20 +0100)]
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>
2 years agoavcodec/utvideodec: Check subsample factors
Michael Niedermayer [Mon, 26 Feb 2018 02:02:48 +0000 (03:02 +0100)]
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>
2 years agoavcodec/rscc: Skip empty frames (nb_tiles == 0)
Michael Niedermayer [Mon, 26 Feb 2018 01:15:34 +0000 (02:15 +0100)]
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>
2 years agofftools/ffmpeg: replace call to av_strerror with av_err2str
Tobias Rapp [Mon, 26 Feb 2018 07:38:53 +0000 (08:38 +0100)]
fftools/ffmpeg: replace call to av_strerror with av_err2str

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2 years agoavformat/dashenc: Removed usage of deprecated 'filename' variable
Karthick Jeyapal [Sat, 24 Feb 2018 07:17:18 +0000 (12:47 +0530)]
avformat/dashenc: Removed usage of deprecated 'filename' variable

2 years agoavformat/dashenc: add option to change HTTP method
Serhii Marchuk [Fri, 23 Feb 2018 09:35:40 +0000 (11:35 +0200)]
avformat/dashenc: add option to change HTTP method

2 years agoavformat/utils: don't overwrite the return value of read_packet()
James Almer [Mon, 26 Feb 2018 03:18:53 +0000 (00:18 -0300)]
avformat/utils: don't overwrite the return value of read_packet()

This only affected demuxers that didn't return reference counted packets.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoconfigure: add missing audio_frame_queue dependency to vorbis encoder
James Almer [Mon, 26 Feb 2018 04:43:54 +0000 (01:43 -0300)]
configure: add missing audio_frame_queue dependency to vorbis encoder

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agocheckasm/vf_blend : add test for blend_simple_16, phoenix_16 and difference_16
Martin Vignali [Sat, 17 Feb 2018 20:02:12 +0000 (21:02 +0100)]
checkasm/vf_blend : add test for blend_simple_16, phoenix_16 and difference_16

2 years agoavfilter/x86/vf_blend : add 16 bit version for BLEND_SIMPLE, phoenix, difference...
Martin Vignali [Sat, 17 Feb 2018 20:01:34 +0000 (21:01 +0100)]
avfilter/x86/vf_blend : add 16 bit version for BLEND_SIMPLE, phoenix, difference for SSE and AVX2 (x86_64)

2 years agoavfilter/x86/vf_blend : indent
Martin Vignali [Sat, 17 Feb 2018 19:49:32 +0000 (20:49 +0100)]
avfilter/x86/vf_blend : indent

2 years agoavfilter/x86/vf_blend : reorganize init in order to add 16 bit version
Martin Vignali [Sat, 17 Feb 2018 19:49:12 +0000 (20:49 +0100)]
avfilter/x86/vf_blend : reorganize init in order to add 16 bit version

2 years agocheckasm/vf_blend : add depth param in order to add test for 16 bit version
Martin Vignali [Sat, 17 Feb 2018 19:48:42 +0000 (20:48 +0100)]
checkasm/vf_blend : add depth param in order to add test for 16 bit version

2 years agofate/exr : add test for long name flag
Martin Vignali [Fri, 9 Feb 2018 08:16:04 +0000 (09:16 +0100)]
fate/exr : add test for long name flag

ticket 6994

2 years agoavcodec/exr : add support for long name flag and be more explicit about unsupported...
Martin Vignali [Sat, 17 Feb 2018 19:44:12 +0000 (20:44 +0100)]
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

2 years agoavformat/concatdec: add support for very long line sizes
Marton Balint [Sat, 3 Feb 2018 21:05:21 +0000 (22:05 +0100)]
avformat/concatdec: add support for very long line sizes

Fixes ticket #6761.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/aviobuf: add ff_read_line_to_bprint and ff_read_line_to_bprint_overwrite...
Marton Balint [Sat, 3 Feb 2018 21:03:58 +0000 (22:03 +0100)]
avformat/aviobuf: add ff_read_line_to_bprint and ff_read_line_to_bprint_overwrite functions

To be able to read lines longer than a static buffer size.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoAdd myself as codec2 maintainer
Tomas Härdin [Tue, 13 Feb 2018 10:46:44 +0000 (11:46 +0100)]
Add myself as codec2 maintainer

2 years agoDon't complain about codec2's 700 bit/s modes in ffmpeg.c
Tomas Härdin [Thu, 3 Aug 2017 15:33:04 +0000 (17:33 +0200)]
Don't complain about codec2's 700 bit/s modes in ffmpeg.c

2 years agoAdd muxer/demuxer for raw codec2 and .c2 files
Tomas Härdin [Tue, 8 Aug 2017 13:28:06 +0000 (15:28 +0200)]
Add muxer/demuxer for raw codec2 and .c2 files

2 years agoAdd libcodec2 en/decoder
Tomas Härdin [Tue, 8 Aug 2017 13:27:27 +0000 (15:27 +0200)]
Add libcodec2 en/decoder

2 years agoavformat/dashenc: chunk streaming support for low latency use cases
Vishwanath Dixit [Mon, 19 Feb 2018 05:55:36 +0000 (11:25 +0530)]
avformat/dashenc: chunk streaming support for low latency use cases

2 years agoavformat/dashenc: opening a segment file when its first frame is ready
Vishwanath Dixit [Mon, 19 Feb 2018 05:55:25 +0000 (11:25 +0530)]
avformat/dashenc: opening a segment file when its first frame is ready

2 years agoffmpeg_opt: fix max_error_rate help info display issue.
Jun Zhao [Fri, 23 Feb 2018 07:58:10 +0000 (15:58 +0800)]
ffmpeg_opt: fix max_error_rate help info display issue.

ffmpeg -h display "max_error_rate" option help information have
been cut off, the root cause is used a wrong initial order.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/smc: Check input packet size
Michael Niedermayer [Fri, 23 Feb 2018 02:40:02 +0000 (03:40 +0100)]
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>
2 years agodoc/bitstream_filters: documents delete_filler option.
Jun Zhao [Fri, 23 Feb 2018 07:02:29 +0000 (15:02 +0800)]
doc/bitstream_filters: documents delete_filler option.

documents delete_filler option for bsf h264_metadata.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/hvcc: zero initialize the nal buffers past the last written byte
James Almer [Fri, 23 Feb 2018 03:03:15 +0000 (00:03 -0300)]
avformat/hvcc: zero initialize the nal buffers past the last written byte

Prevents use of uninitialized values.

Fixes ticket #7038.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavcodec/Makefile: add missing dependencies for some cuvid decoders
James Almer [Sat, 24 Feb 2018 00:52:42 +0000 (21:52 -0300)]
avcodec/Makefile: add missing dependencies for some cuvid decoders

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agolavfi/vf_transpose: fix regression with semiplanar formats
Rodger Combs [Thu, 22 Feb 2018 04:01:51 +0000 (22:01 -0600)]
lavfi/vf_transpose: fix regression with semiplanar formats

(e.g. nv12)

Regression since 7b19e76aeb0ace57b99aaef156bbfe592e43e65e

2 years agoavformat/mpegts: set AV_DISPOSITION_DEPENDENT for mix_type=0 supplementary audio
Aman Gupta [Fri, 23 Feb 2018 21:38:33 +0000 (13:38 -0800)]
avformat/mpegts: set AV_DISPOSITION_DEPENDENT for mix_type=0 supplementary audio

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agoavformat/dump: tag AV_DISPOSITION_DESCRIPTIONS streams
Aman Gupta [Fri, 23 Feb 2018 21:38:20 +0000 (13:38 -0800)]
avformat/dump: tag AV_DISPOSITION_DESCRIPTIONS streams

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agolavf/mpegts: add supplementary audio descriptor
Stefan Pöschel [Tue, 20 Feb 2018 17:15:00 +0000 (18:15 +0100)]
lavf/mpegts: add supplementary audio descriptor

The supplementary audio descriptor is defined in ETSI EN 300 468 and
provides more details regarding accessibility audio tracks, especially
the normative annex J contains a detailed description of its use.

Its language code (if present) overrides the language code of an also
present ISO 639 language descriptor.

Note that this also changes the priority of multiple descriptors with
language from "the last descriptor with language within the ES loop" to
"specific descriptor over general ISO 639 descriptor".

Signed-off-by: Aman Gupta <aman@tmm1.net>
2 years agohlsenc: Fixing HLS_TEMP_FILE usage with HLS_SECOND_LEVEL_SEGMENT_...
Bela Bodecs [Mon, 19 Feb 2018 20:36:25 +0000 (21:36 +0100)]
hlsenc: Fixing HLS_TEMP_FILE usage with HLS_SECOND_LEVEL_SEGMENT_...

Currently using HLS_TEMP together with HLS_SECOND_LEVEL_SEGMENT_DURATION
or HLS_SECOND_LEVEL_SEGMENT_SIZE gives error at end of each segment
writing and the final segment file names do not contain the desired
data. This patch fixes this bug by delaying the initilization of
original segment filename after actual temp file renaming will skip the
interfering.

Signed-off-by: Bela Bodecs <bodecsb@vivanet.hu>
2 years agoavutil/timecode: fix starting frame number for 59.94 fps
Gyan Doshi [Thu, 22 Feb 2018 12:34:42 +0000 (18:04 +0530)]
avutil/timecode: fix starting frame number for 59.94 fps

The existing code for adjusting starting frame number assumes 29.97 as
stream fps.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/flvdec: Set broken_sizes for FlixEngine.
Nikolas Bowe [Fri, 16 Feb 2018 23:25:17 +0000 (15:25 -0800)]
avformat/flvdec: Set broken_sizes for FlixEngine.

we found some very old videos which suffered from
corruption after 9e6a2427558a718be0c1fffacffd935f630a7a8d, but were fine
before.
These had "End of AC stream reached in vp6_parse_coeff" warnings in logs.
These also had flv Packet mismatch warnings.
Adding FlixEngine to the list of flv muxers which produce broken packet
sizes fixes this corruption.

FlixEngine is very old and not maintained or available anymore (since
2010), so we won't need to worry about newer versions fixing the issue.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agodoc/filters: add links to ffmpeg-utils and ffmpeg documentation
Tobias Rapp [Thu, 22 Feb 2018 07:53:03 +0000 (08:53 +0100)]
doc/filters: add links to ffmpeg-utils and ffmpeg documentation

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2 years agoParse and drop gain control data, so that SSR packets decode.
Dale Curtis [Fri, 16 Feb 2018 00:22:55 +0000 (16:22 -0800)]
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>
2 years agoavcodec/nvdec: Implement mjpeg nvdec hwaccel
Philip Langdale [Sun, 18 Feb 2018 23:53:33 +0000 (15:53 -0800)]
avcodec/nvdec: Implement mjpeg nvdec hwaccel

2 years agovaapi: Add MJPEG decode hwaccel
Mark Thompson [Thu, 23 Nov 2017 23:47:52 +0000 (23:47 +0000)]
vaapi: Add MJPEG decode hwaccel

2 years agovaapi_decode: Make the frames context format selection more general
Mark Thompson [Mon, 19 Feb 2018 20:04:31 +0000 (20:04 +0000)]
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.

2 years agohwcontext_vaapi: Fix frames context creation with external attributes
Mark Thompson [Mon, 19 Feb 2018 20:04:25 +0000 (20:04 +0000)]
hwcontext_vaapi: Fix frames context creation with external attributes

2 years agohwcontext_vaapi: Add more surface formats
Mark Thompson [Mon, 19 Feb 2018 20:03:08 +0000 (20:03 +0000)]
hwcontext_vaapi: Add more surface formats

Adds YUV 4:1:1, 4:4:0 and 4:4:4 - these will be needed for JPEG decoding.

2 years agomjpegdec: Add hwaccel hooks
Mark Thompson [Thu, 23 Nov 2017 23:45:32 +0000 (23:45 +0000)]
mjpegdec: Add hwaccel hooks

Also adds some extra fields to the main context structure that may
be needed by a hwaccel decoder.

2 years agolavc/mjpeg: Add profiles for MJPEG using SOF marker codes
Mark Thompson [Thu, 23 Nov 2017 22:44:27 +0000 (22:44 +0000)]
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.

2 years agoavcodec/cavsdec: Check alpha/beta offset
Michael Niedermayer [Tue, 20 Feb 2018 22:11:01 +0000 (23:11 +0100)]
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>
2 years agoavformat/mpegenc - log error msgs for unsupported LPCM streams
Gyan Doshi [Tue, 20 Feb 2018 15:01:28 +0000 (20:31 +0530)]
avformat/mpegenc - log error msgs for unsupported LPCM streams

The MPEG-PS muxer only accepts PCM streams having up to 8 channels
and the following sampling rates: 32/44.1/48/96 kHz.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agolibavfilter/vf_fps: Add tests for start_time option
Calvin Walton [Tue, 20 Feb 2018 00:54:35 +0000 (19:54 -0500)]
libavfilter/vf_fps: Add tests for start_time option

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavdevice: add android_camera indev
Felix Matouschek [Tue, 20 Feb 2018 08:41:46 +0000 (09:41 +0100)]
avdevice: add android_camera indev

This commit adds an indev for Android devices on API level 24+ which
uses the Android NDK Camera2 API to capture video from builtin cameras

Signed-off-by: Felix Matouschek <felix@matouschek.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoMerge commit '6d5a6dde5301c81e221a37b3f39bb03149492b98'
Mark Thompson [Wed, 21 Feb 2018 22:54:07 +0000 (22:54 +0000)]
Merge commit '6d5a6dde5301c81e221a37b3f39bb03149492b98'

* commit '6d5a6dde5301c81e221a37b3f39bb03149492b98':
  h264_metadata: Add option to delete filler data

Fixes #6899.

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a'
Mark Thompson [Wed, 21 Feb 2018 22:43:13 +0000 (22:43 +0000)]
Merge commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a'

* commit 'eccc03c8fbc603a0a3257df66f0705f74fe2581a':
  cbs_h264: Add support for filler NAL units

Some bitstream -> get_bits.

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit '7157d959264f3729da463725c6faa580d9394d19'
Mark Thompson [Wed, 21 Feb 2018 22:41:00 +0000 (22:41 +0000)]
Merge commit '7157d959264f3729da463725c6faa580d9394d19'

* commit '7157d959264f3729da463725c6faa580d9394d19':
  cbs_h264: Move slice_group_id array out of PPS structure

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit '78fa0b9033c0834c049e2aedf71a8c613fed87ab'
Mark Thompson [Wed, 21 Feb 2018 22:40:08 +0000 (22:40 +0000)]
Merge commit '78fa0b9033c0834c049e2aedf71a8c613fed87ab'

* commit '78fa0b9033c0834c049e2aedf71a8c613fed87ab':
  h264_metadata: Always add the SEI user data to the first access unit

Mostly already present from a308872b049e33f69f4b629a06f47e3681906b93,
one cosmetic change applied.

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoAdd -vf scale example for making pixels square
Tomas Härdin [Mon, 19 Feb 2018 17:42:25 +0000 (18:42 +0100)]
Add -vf scale example for making pixels square

This is a common use case.

2 years agoMerge commit '69062d0f9b6aef5d9d9b8c9c9b5cfb23037caddb'
Mark Thompson [Wed, 21 Feb 2018 22:32:42 +0000 (22:32 +0000)]
Merge commit '69062d0f9b6aef5d9d9b8c9c9b5cfb23037caddb'

* commit '69062d0f9b6aef5d9d9b8c9c9b5cfb23037caddb':
  h264_metadata: Use common SEI addition function

Minor changes because the following patch is already present.

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit 'a2ca8ed903b435446031a8a0792ca535e6ee2913'
Mark Thompson [Wed, 21 Feb 2018 22:27:07 +0000 (22:27 +0000)]
Merge commit 'a2ca8ed903b435446031a8a0792ca535e6ee2913'

* commit 'a2ca8ed903b435446031a8a0792ca535e6ee2913':
  cbs_h264: Add utility functions to insert/delete SEI messages

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit 'ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2'
Mark Thompson [Wed, 21 Feb 2018 22:22:54 +0000 (22:22 +0000)]
Merge commit 'ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2'

* commit 'ce5870a3a8f2b10668ee4f04c2ae0287f66f31b2':
  cbs: Refcount all the things!

Some changes for bitstream API.

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit '13ca5d34ba5c473211daaae0a101123bcaada3e6'
Mark Thompson [Wed, 21 Feb 2018 22:05:15 +0000 (22:05 +0000)]
Merge commit '13ca5d34ba5c473211daaae0a101123bcaada3e6'

* commit '13ca5d34ba5c473211daaae0a101123bcaada3e6':
  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>
2 years agoMerge commit '0e4c166cdd6446522a085dd9731967d09ac71f72'
Mark Thompson [Wed, 21 Feb 2018 22:03:15 +0000 (22:03 +0000)]
Merge commit '0e4c166cdd6446522a085dd9731967d09ac71f72'

* commit '0e4c166cdd6446522a085dd9731967d09ac71f72':
  cbs_h2645: Remove active ps references when it is replaced

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit 'a3daecd6375279d9fdb863ac9db3545a33e97651'
Mark Thompson [Wed, 21 Feb 2018 21:54:42 +0000 (21:54 +0000)]
Merge commit 'a3daecd6375279d9fdb863ac9db3545a33e97651'

* commit 'a3daecd6375279d9fdb863ac9db3545a33e97651':
  cbs: Demote the "decomposition unimplemented" warning

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit '67eb2b16daa77f6ba3e04a28ca18e53193723b7f'
Mark Thompson [Wed, 21 Feb 2018 21:52:20 +0000 (21:52 +0000)]
Merge commit '67eb2b16daa77f6ba3e04a28ca18e53193723b7f'

* commit '67eb2b16daa77f6ba3e04a28ca18e53193723b7f':
  vaapi_h265: Mark unused entries in RefPicList[01] as explicitly invalid

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit '216c44dfc17252ec0681dcb0bbeeb45a9d14eca7'
Mark Thompson [Wed, 21 Feb 2018 21:51:28 +0000 (21:51 +0000)]
Merge commit '216c44dfc17252ec0681dcb0bbeeb45a9d14eca7'

* commit '216c44dfc17252ec0681dcb0bbeeb45a9d14eca7':
  vaapi_encode: Destroy output buffer pool before VA context

Merged-by: Mark Thompson <sw@jkqxz.net>
2 years agoMerge commit 'c8e135ea9225137050a6315fd9ba9c0f242c90b6'
Mark Thompson [Wed, 21 Feb 2018 21:46:09 +0000 (21:46 +0000)]
Merge commit 'c8e135ea9225137050a6315fd9ba9c0f242c90b6'

* commit 'c8e135ea9225137050a6315fd9ba9c0f242c90b6':
  vaapi_encode: Allocate slice structures and parameter buffers dynamically

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

Merged-by: Mark Thompson <sw@jkqxz.net>