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

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

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

20 months agortsp: rename certain options after a deprecation period
wm4 [Thu, 25 Jan 2018 17:57:26 +0000 (18:57 +0100)]
rtsp: rename certain options after a deprecation period

The "timeout" option name inherently clashes with the meaning of the
HTTP libavformat protocol option with the same name. Rename it after a
deprecation period to make it compatible with the HTTP one.

20 months agoexamples: Add a VA-API transcode example.
Jun Zhao [Thu, 11 Jan 2018 07:00:30 +0000 (15:00 +0800)]
examples: Add a VA-API transcode example.

Usage is:
./vaapi_transcode input_stream codec output_stream
For example:
- ./vaapi_transcode input.mp4 h264_vaapi output_h264.mp4
- ./vaapi_transcode input.mp4 vp8_vaapi output_vp8.ivf

Does not handle resolution changes on the input stream.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Liu, Kaixuan <kaixuan.liu@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agoavcodec: do not use init_static_data on some codecs
Muhammad Faiz [Fri, 2 Feb 2018 18:18:27 +0000 (01:18 +0700)]
avcodec: do not use init_static_data on some codecs

They don't modify AVCodec, no needs to call it at register. They will be
wasteful if these codecs are unused. Instead, call static data initialization
at codecs' init.

Benchmark:
old: 51281340 decicycles in avcodec_register_all,       1 runs,      0 skips
new:  6738960 decicycles in avcodec_register_all,       1 runs,      0 skips

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
20 months agoavcodec/wavpack: Fix integer overflow in FFABS
Michael Niedermayer [Wed, 31 Jan 2018 01:50:18 +0000 (02:50 +0100)]
avcodec/wavpack: Fix integer overflow in FFABS

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

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavfilter/af_join: Fix crash in join filter
Nikolas Bowe [Fri, 2 Feb 2018 23:11:04 +0000 (15:11 -0800)]
avfilter/af_join: Fix crash in join filter

Previously if ff_outlink_frame_wanted() returned 0 it could dereference a null pointer when trying to read nb_samples.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/ffv1enc: mark RGB48 support as non-experimental
Jérôme Martinez [Thu, 1 Feb 2018 12:15:54 +0000 (13:15 +0100)]
avcodec/ffv1enc: mark RGB48 support as non-experimental

Remove the 2nd mark, 1st mark was removed in 58e16a4

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoffprobe: remove usage of deprecation warning removal pragmas
James Almer [Fri, 2 Feb 2018 20:51:24 +0000 (17:51 -0300)]
ffprobe: remove usage of deprecation warning removal pragmas

Fixes compilation in non Windows targets.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoffprobe: Initialize coded_width/height
Zhong Li [Fri, 19 Jan 2018 05:05:55 +0000 (13:05 +0800)]
ffprobe: Initialize coded_width/height

coded_width/height are unnitialized and will be overwritten by
dec_ctx->width/height in avcodec_open2()

This fixes tiket #6958.

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
20 months agolibrsvgdec: Fix frame clearing code
Calvin Walton [Thu, 1 Feb 2018 18:28:25 +0000 (13:28 -0500)]
librsvgdec: Fix frame clearing code

The existing code attempts to clear the frame by painting in OVER
mode with transparent black - which is a no-op. As a result if you
have many input frames (e.g. you're using a sequence of svg files),
you'll start to see new frames drawn over old frames as memory gets
re-used.

Switch the code to paint using the CLEAR compositing operator,
which fills every channel with 0 values (setting a source colour
is not required).

20 months agofate: add id3v2 test
Richard Shaffer [Sun, 28 Jan 2018 02:21:28 +0000 (18:21 -0800)]
fate: add id3v2 test

Adds basic unit test for parsing ID3v2 tags.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoconfigure: Remove carriage return ('\r') in Windows CC_IDENT
Xiaohan Wang [Wed, 31 Jan 2018 22:20:02 +0000 (14:20 -0800)]
configure: Remove carriage return ('\r') in Windows CC_IDENT

Currently the Windows CC_IDENT is ended with '\r\n'. "head -n1" will not
remove the '\r' and this is causing building error in Chromium.

This CL adds "tr -d '\r'" to remove '\r' in the CC_IDENT string. Since in
most cases '\r' only appears at the end of a string/line, this should
work in most cases.

See example:

printf "hello\r\nworld\r\n" | head -n1 | hd
00000000  68 65 6c 6c 6f 0d 0a                              |hello..|

printf "hello\r\nworld\r\n" | head -n1 | tr -d '\r' | hd
00000000  68 65 6c 6c 6f 0a                                 |hello.|

Also note a similar previous change at:
https://lists.ffmpeg.org/pipermail/ffmpeg-cvslog/2013-October/069950.html

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/aacsbr_fixed: Fix overflows in rounding in sbr_hf_assemble()
Michael Niedermayer [Wed, 31 Jan 2018 17:13:07 +0000 (18:13 +0100)]
avcodec/aacsbr_fixed: Fix overflows in rounding in sbr_hf_assemble()

Fixes: runtime error: signed integer overflow: 2052929346 + 204817098 cannot be represented in type 'int'
Fixes: 5275/clusterfuzz-testcase-minimized-5367635958038528

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/exr: Fix memleaks in decode_header()
Michael Niedermayer [Wed, 31 Jan 2018 16:50:21 +0000 (17:50 +0100)]
avcodec/exr: Fix memleaks in decode_header()

Fixes: 4793/clusterfuzz-testcase-minimized-5707366629638144

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/hls: store referer message in HLS http request
Steven Liu [Thu, 1 Feb 2018 02:57:29 +0000 (10:57 +0800)]
avformat/hls: store referer message in HLS http request

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
20 months agoavformat/http: add referer option into http
Steven Liu [Thu, 1 Feb 2018 02:56:51 +0000 (10:56 +0800)]
avformat/http: add referer option into http

add Referer message if referer have been set.
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
20 months agoavfilter: add comments for duplicate line
Steven Liu [Thu, 1 Feb 2018 02:55:19 +0000 (10:55 +0800)]
avfilter: add comments for duplicate line

comment about the looks like a duplicate line.
but that is used to reason x is expressed from y

Suggested-by: Paul B Mahol
Suggested-by: Michael Niedermayer
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
20 months agoavcodec/vc2enc: prevent bitrate overshoots
Rostislav Pehlivanov [Wed, 6 Apr 2016 10:51:24 +0000 (11:51 +0100)]
avcodec/vc2enc: prevent bitrate overshoots

The rounding caused by the size scaler wasn't compensated for and the
slice sizes grew beyond what is allowed per frame.

Signed-off-by: Rostislav Pehlivanov <rpehlivanov@obe.tv>
20 months agoavcodec/dirac_dwt: Fix several integer overflows
Michael Niedermayer [Thu, 25 Jan 2018 22:14:37 +0000 (23:14 +0100)]
avcodec/dirac_dwt: Fix several integer overflows

Fixes: runtime error: signed integer overflow: -2146071175 + -268479557 cannot be represented in type 'int'
Fixes: 5237/clusterfuzz-testcase-minimized-4569895275593728

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/indeo5: Do not leave frame_type set to an invalid value
Michael Niedermayer [Thu, 25 Jan 2018 23:24:49 +0000 (00:24 +0100)]
avcodec/indeo5: Do not leave frame_type set to an invalid value

Fixes: null pointer dereference
Fixes: 5264/clusterfuzz-testcase-minimized-4621956621008896

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/hevc_ps: Check log2_sao_offset_scale_*
Michael Niedermayer [Wed, 24 Jan 2018 02:15:23 +0000 (03:15 +0100)]
avcodec/hevc_ps: Check log2_sao_offset_scale_*

Fixes: 4868/clusterfuzz-testcase-minimized-6236542906400768
Fixes: runtime error: shift exponent 126 is too large for 32-bit type 'int'

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/mediacodecdec: use ff_hevc_ps_uninit()
James Almer [Sat, 20 Jan 2018 19:55:17 +0000 (16:55 -0300)]
avcodec/mediacodecdec: use ff_hevc_ps_uninit()

Fixes memleaks.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec/hevc_parser: use ff_hevc_decode_extradata() to parse extradata
James Almer [Sat, 20 Jan 2018 03:57:18 +0000 (00:57 -0300)]
avcodec/hevc_parser: use ff_hevc_decode_extradata() to parse extradata

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec/mpegaudio_parser: Skip APE tags when parsing mp3 packets.
Dale Curtis [Mon, 29 Jan 2018 23:10:26 +0000 (15:10 -0800)]
avcodec/mpegaudio_parser: Skip APE tags when parsing mp3 packets.

Otherwise the decoder will throw "Missing header" errors when the
packets are sent for decoding.

This is similar to 89a420b71b5.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavformat/mpegenc - fix typo in VBV warning
Gyan Doshi [Mon, 29 Jan 2018 06:23:36 +0000 (11:53 +0530)]
avformat/mpegenc - fix typo in VBV warning

Default VBV buffer size is 230KB, not 130KB.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/Makefile: add missing opus.c dependency to opus encoder
James Almer [Tue, 30 Jan 2018 03:32:27 +0000 (00:32 -0300)]
avcodec/Makefile: add missing opus.c dependency to opus encoder

Needed for ff_celt_quant_bands and ff_celt_bitalloc.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec/mlp_parser: reindent after last commit
James Almer [Fri, 19 Jan 2018 18:53:32 +0000 (15:53 -0300)]
avcodec/mlp_parser: reindent after last commit

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec/mlp_parser: don't try to combine frames when full frames are provided
James Almer [Fri, 19 Jan 2018 18:52:21 +0000 (15:52 -0300)]
avcodec/mlp_parser: don't try to combine frames when full frames are provided

Attempting full frame reconstruction is unnecessary for non raw
containers, so just skip it altogether.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavformat/matroskadec: force full frame parsing of MLP/TrueHD streams
James Almer [Tue, 30 Jan 2018 01:59:52 +0000 (22:59 -0300)]
avformat/matroskadec: force full frame parsing of MLP/TrueHD streams

There's at least one known file with a TrueHD stream that hasn't
been correctly muxed, and requires full frame parsing and repack.

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoavcodec/mpeg4videodec: Avoid possibly aliasing violating casts
Michael Niedermayer [Sun, 28 Jan 2018 01:29:02 +0000 (02:29 +0100)]
avcodec/mpeg4videodec: Avoid possibly aliasing violating casts

Found-by: kierank
Reviewed-by: Kieran Kunhya <kieran618@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/get_bits: Document the return code of get_vlc2()
Michael Niedermayer [Sun, 28 Jan 2018 01:29:01 +0000 (02:29 +0100)]
avcodec/get_bits: Document the return code of get_vlc2()

Found-by: kierank
Reviewed-by: Kieran Kunhya <kieran618@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/mpeg4videodec: Check mb_num also against 0
Michael Niedermayer [Sun, 28 Jan 2018 01:29:00 +0000 (02:29 +0100)]
avcodec/mpeg4videodec: Check mb_num also against 0

The spec implies that 0 is invalid in addition to the existing checks

Found-by: <kierank>
Reviewed-by: Kieran Kunhya <kieran618@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agodashdec: Fix segfault on decoding segment timeline
Brendan McGrath [Mon, 29 Jan 2018 02:46:50 +0000 (10:46 +0800)]
dashdec: Fix segfault on decoding segment timeline

If first_seq_no is not within the bounds of timelines then a segfault
will occur.
This patch removes the use of first_seq_no within the timelines array
It also adds first_seq_no to the value returned by calc_next_seg_no_from_timelines
(which allows for different values of 'startNumber')

Signed-off-by: Brendan McGrath <redmcg@redmandi.dyndns.org>
20 months agoavformat: deprecate AVFormatContext filename field
Marton Balint [Fri, 29 Dec 2017 00:19:37 +0000 (01:19 +0100)]
avformat: deprecate AVFormatContext filename field

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavformat: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 22:30:14 +0000 (23:30 +0100)]
avformat: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavformat/hls: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 21:00:04 +0000 (22:00 +0100)]
avformat/hls: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavdevice: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 22:29:52 +0000 (23:29 +0100)]
avdevice: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agofftools, tools, examples: migrate to AVFormatContext->url
Marton Balint [Fri, 29 Dec 2017 22:29:27 +0000 (23:29 +0100)]
fftools, tools, examples: migrate to AVFormatContext->url

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavformat: add url field to AVFormatContext
Marton Balint [Fri, 29 Dec 2017 00:01:37 +0000 (01:01 +0100)]
avformat: add url field to AVFormatContext

This will replace the 1024 character limited filename field. Compatiblity for
output contexts are provided by copying filename field to URL if URL is unset
and by providing an internal function for muxers to set both url and filename
at once.

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavformat/hlsenc: use av_bprintf without buffer limit in replace_int_data_in_filename
Marton Balint [Sat, 6 Jan 2018 17:41:27 +0000 (18:41 +0100)]
avformat/hlsenc: use av_bprintf without buffer limit in replace_int_data_in_filename

In preparation for the deprecation of AVFormatContext->filename.

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agocheckasm : add test for losslessvideoencdsp for diff bytes and sub_left_pred
Martin Vignali [Sun, 14 Jan 2018 13:23:42 +0000 (14:23 +0100)]
checkasm : add test for losslessvideoencdsp for diff bytes and sub_left_pred

20 months agoavcodec/utvideoenc : add SIMD (avx) for sub_left_prediction
Martin Vignali [Sun, 14 Jan 2018 13:23:05 +0000 (14:23 +0100)]
avcodec/utvideoenc : add SIMD (avx) for sub_left_prediction

asm code by Henrik Gramner

20 months agoavfilter/x86/vf_blend : avfilter/x86/vf_blend : add AVX2 version for each func except...
Martin Vignali [Wed, 17 Jan 2018 19:59:58 +0000 (20:59 +0100)]
avfilter/x86/vf_blend : avfilter/x86/vf_blend : add AVX2 version for each func except divide

and optimize average, grainextract, multiply, screen, grain merge

20 months agoavfilter/vf_framerate: add SIMD functions for frame blending
Marton Balint [Mon, 8 Jan 2018 00:05:45 +0000 (01:05 +0100)]
avfilter/vf_framerate: add SIMD functions for frame blending

Blend function speedups on x86_64 Core i5 4460:

ffmpeg -f lavfi -i allyuv -vf framerate=60:threads=1 -f null none

C:     447548411 decicycles in Blend,    2048 runs,      0 skips
SSSE3: 130020087 decicycles in Blend,    2048 runs,      0 skips
AVX2:  128508221 decicycles in Blend,    2048 runs,      0 skips

ffmpeg -f lavfi -i allyuv -vf format=yuv420p12,framerate=60:threads=1 -f null none

C:     228932745 decicycles in Blend,    2048 runs,      0 skips
SSE4:  123357781 decicycles in Blend,    2048 runs,      0 skips
AVX2:  121215353 decicycles in Blend,    2048 runs,      0 skips

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavfilter/vf_framerate: change blend factor precision
Marton Balint [Mon, 15 Jan 2018 21:19:46 +0000 (22:19 +0100)]
avfilter/vf_framerate: change blend factor precision

This is done mainly in preparation for the SIMD patches.

- for the 8-bit input, decrease the blend factor precision to 7-bit.
- for the 16-bit input, increase the blend factor precision to 15-bit.
- make sure the blend functions are not called with 0 or maximum blending
  factors, because we don't want the signed factor integers to overflow.

Fate test changes are due to different rounding.

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavfilter/vf_framerate: factorize blend functions and unify filter_slice
Marton Balint [Mon, 8 Jan 2018 20:44:42 +0000 (21:44 +0100)]
avfilter/vf_framerate: factorize blend functions and unify filter_slice

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agoavfilter/vf_framerate: unify luma and chroma blending
Marton Balint [Mon, 8 Jan 2018 20:01:09 +0000 (21:01 +0100)]
avfilter/vf_framerate: unify luma and chroma blending

The expressions were mathematically equvivalent...

Signed-off-by: Marton Balint <cus@passwd.hu>
20 months agofate: test the transpose filter more fully
Michael Niedermayer [Sun, 28 Jan 2018 12:34:07 +0000 (13:34 +0100)]
fate: test the transpose filter more fully

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavfilter/vf_transpose: Fix regression with packed pixel formats
Michael Niedermayer [Sun, 28 Jan 2018 01:46:56 +0000 (02:46 +0100)]
avfilter/vf_transpose: Fix regression with packed pixel formats

Regression since: c6939f65a116b1ffed345d29d8621ee4ffb32235
Found-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/nvenc: also clear data pointer after unregistering a resource
Timo Rothenpieler [Sun, 28 Jan 2018 12:05:09 +0000 (13:05 +0100)]
avcodec/nvenc: also clear data pointer after unregistering a resource

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agoavcodec/nvenc: add some more error case checks
Timo Rothenpieler [Sun, 28 Jan 2018 11:51:20 +0000 (12:51 +0100)]
avcodec/nvenc: add some more error case checks

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agoavcodec/nvenc: unregister input resource when unmapping
Timo Rothenpieler [Sun, 28 Jan 2018 11:39:03 +0000 (12:39 +0100)]
avcodec/nvenc: unregister input resource when unmapping

Currently the resource is only ever unregistered when the
registered_frames array is fully in use and an unmapped entry is re-used
and cleaned up.
I'm pretty sure the frame will have been cleaned up before that happens,
so I'm kinda surprised this never blew up.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agoavcodec/nvenc: refcount input frame mappings
Timo Rothenpieler [Fri, 26 Jan 2018 19:16:53 +0000 (20:16 +0100)]
avcodec/nvenc: refcount input frame mappings

If some logic like vsync in ffmpeg.c duplicates frames, it might pass
the same frame twice, which will result in a crash due it being
effectively mapped and unmapped twice.

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
20 months agoavcodec/hevc_cabac: Check prefix so as to avoid invalid shifts in coeff_abs_level_rem...
Michael Niedermayer [Mon, 15 Jan 2018 22:46:44 +0000 (23:46 +0100)]
avcodec/hevc_cabac: Check prefix so as to avoid invalid shifts in coeff_abs_level_remaining_decode()

I suspect that this can be limited tighter, but i failed to find anything
in the spec that would confirm that.

Fixes: 4833/clusterfuzz-testcase-minimized-5302840101699584
Fixes: runtime error: left shift of 134217730 by 4 places 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/mjpegdec: Fix integer overflow in DC dequantization
Michael Niedermayer [Wed, 24 Jan 2018 02:28:49 +0000 (03:28 +0100)]
avcodec/mjpegdec: Fix integer overflow in DC dequantization

Fixes: runtime error: signed integer overflow: -65535 * 65312 cannot be represented in type 'int'
Fixes: 4900/clusterfuzz-testcase-minimized-5769019744321536

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 agoavfilter/vf_transpose: Fix used plane count.
Michael Niedermayer [Wed, 24 Jan 2018 18:38:05 +0000 (19:38 +0100)]
avfilter/vf_transpose: Fix used plane count.

Fixes out of array access
Fixes: poc.mp4

Found-by: GwanYeong Kim <gy741.kim@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agohls: don't print a certain warning if playlist loading is aborted
wm4 [Wed, 24 Jan 2018 07:04:38 +0000 (08:04 +0100)]
hls: don't print a certain warning if playlist loading is aborted

AVERROR_EXIT happens when the user's interrupt callback signals that
playback should be aborted. In this case, the demuxer shouldn't print a
warning, as it's expected that all network accesses are stopped.

20 months agoavformat, hls: add a flag to signal unavailability of seeking
wm4 [Wed, 24 Jan 2018 07:02:25 +0000 (08:02 +0100)]
avformat, hls: add a flag to signal unavailability of seeking

The seek function can just return an error if seeking is unavailable,
but often this is too late. Add a flag that signals that the stream is
unseekable, and use it in HLS.

20 months agohls: do not allow fallback to generic seeking
wm4 [Wed, 24 Jan 2018 06:58:52 +0000 (07:58 +0100)]
hls: do not allow fallback to generic seeking

This makes little sense due to how HLS works, and only causes some
additional annoyances if the HLS read_seek function fails (for example
if it's a live stream). It was most likely unintended.

20 months agolavc/aarch64/sbrdsp_neon: fix build on old binutils
Rodger Combs [Fri, 26 Jan 2018 02:53:59 +0000 (20:53 -0600)]
lavc/aarch64/sbrdsp_neon: fix build on old binutils

20 months agoavformat/dashenc: Signal http end of chunk(http_shutdown) explicitly
Karthick Jeyapal [Tue, 2 Jan 2018 08:19:57 +0000 (13:49 +0530)]
avformat/dashenc: Signal http end of chunk(http_shutdown) explicitly

Currently http end of chunk is signalled implicitly in dashenc_io_open().
This mean playlists http writes would have to wait upto a segment duration to signal end of chunk causing delays.
This patch will fix that problem and improve performance.

20 months agoavformat/dashenc: Fix a resource leak when http persistent in enabled
Karthick Jeyapal [Tue, 2 Jan 2018 08:19:56 +0000 (13:49 +0530)]
avformat/dashenc: Fix a resource leak when http persistent in enabled

20 months agolavfi/misc_vaapi: use default value setting if without arguments.
Jun Zhao [Wed, 24 Jan 2018 01:32:50 +0000 (09:32 +0800)]
lavfi/misc_vaapi: use default value setting if without arguments.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agolavfi/procamp_vaapi: fix the green video issue if without arguments.
Jun Zhao [Wed, 24 Jan 2018 01:28:24 +0000 (09:28 +0800)]
lavfi/procamp_vaapi: fix the green video issue if without arguments.

Fix the green output issue when use procamp_vaapi without any
arguments, now if use procamp_vaapi without any arguments, will use
the default value to setting procamp_vaapi.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agoffmpeg: Ignore SIGPIPE
Mark Thompson [Thu, 18 Jan 2018 23:24:05 +0000 (23:24 +0000)]
ffmpeg: Ignore SIGPIPE

On systems which deliver SIGPIPE (Unices), a broken pipe will currently
result in the immediate termination of the ffmpeg process (the default
disposition as required by POSIX).  This is undesirable, because while
the broken pipe is likely fatal to useful cleanup of whatever component
is writing to it, there might be other components which can do useful
cleanup - for example, a muxer on another stream may still need to write
indexes to complete a file.  Therefore, set the signal disposition for
SIGPIPE to ignore the signal - the call which caused the signal will
fail with EPIPE and the error will be propagated upwards like any other
I/O failure on a single stream.

20 months agoMerge commit '559370f2c45110afd8308eec7194437736c323d4'
Mark Thompson [Thu, 25 Jan 2018 22:50:38 +0000 (22:50 +0000)]
Merge commit '559370f2c45110afd8308eec7194437736c323d4'

* commit '559370f2c45110afd8308eec7194437736c323d4':
  qsv: Skip the packet if decoding failure

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit 'a2a9e4eea0e4fde2ed8d3405b4f33f655b600c2d'
Mark Thompson [Thu, 25 Jan 2018 22:48:34 +0000 (22:48 +0000)]
Merge commit 'a2a9e4eea0e4fde2ed8d3405b4f33f655b600c2d'

* commit 'a2a9e4eea0e4fde2ed8d3405b4f33f655b600c2d':
  rtmp: Plug leak if sending bytes read report fails.

This commit is a noop, see ee88f31d34c848fd95daf12bdf054b7228efdf14

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agoMerge commit '85e10c0a9321bfe0d2afe0f3983ab6a8df6e3fba'
Mark Thompson [Thu, 25 Jan 2018 22:45:45 +0000 (22:45 +0000)]
Merge commit '85e10c0a9321bfe0d2afe0f3983ab6a8df6e3fba'

* commit '85e10c0a9321bfe0d2afe0f3983ab6a8df6e3fba':
  intreadwrite: Use __unaligned in MSVC for ARM64 as well

Merged-by: Mark Thompson <sw@jkqxz.net>
20 months agolibavformat/rtmpproto: Plug leak if sending bytes read report fails.
Josh Allmann [Wed, 24 Jan 2018 00:49:16 +0000 (16:49 -0800)]
libavformat/rtmpproto: Plug leak if sending bytes read report fails.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoqsv: Skip the packet if decoding failure
Ruiling, Song [Wed, 24 Jan 2018 02:14:51 +0000 (10:14 +0800)]
qsv: Skip the packet if decoding failure

MediaSDK may fail to decode some frame, just skip it.
Otherwise, it will keep decoding the failure packet repeatedly
without processing any packet afterwards.

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
20 months agolavfi/vf_xxx_vaapi: fix typo.
Jun Zhao [Wed, 24 Jan 2018 00:40:59 +0000 (08:40 +0800)]
lavfi/vf_xxx_vaapi: fix typo.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
20 months agortmp: Plug leak if sending bytes read report fails.
Josh Allmann [Wed, 24 Jan 2018 00:47:12 +0000 (16:47 -0800)]
rtmp: Plug leak if sending bytes read report fails.

Signed-off-by: Martin Storsjö <martin@martin.st>
20 months agoavformat/hlsenc: closed caption tags in the master playlist
Vishwanath Dixit [Wed, 24 Jan 2018 03:42:57 +0000 (11:42 +0800)]
avformat/hlsenc: closed caption tags in the master playlist

20 months agoavformat: add option to parse/store ID3 PRIV tags in metadata.
Richard Shaffer [Tue, 23 Jan 2018 17:39:53 +0000 (09:39 -0800)]
avformat: add option to parse/store ID3 PRIV tags in metadata.

Enables getting access to ID3 PRIV tags from the command-line or metadata API
when demuxing. The PRIV owner is stored as the metadata key prepended with
"id3v2_priv.", and the data is stored as the metadata value. As PRIV tags may
contain arbitrary data, non-printable characters, including NULL bytes, are
escaped as \xXX.

Similarly, any metadata tags that begin with "id3v2_priv." are inserted as ID3
PRIV tags into the output (assuming the format supports ID3). \xXX sequences in
the value are un-escaped to their byte value.

Signed-off-by: wm4 <nfxjfg@googlemail.com>
20 months agoavfilter/Makefile: skip compiling vaapi_vpp.h when vaapi is not enabled
James Almer [Wed, 24 Jan 2018 02:38:03 +0000 (23:38 -0300)]
avfilter/Makefile: skip compiling vaapi_vpp.h when vaapi is not enabled

Fixes make checkheaders

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoconfigure: fix vaapi_encode_example dependencies
James Almer [Wed, 24 Jan 2018 02:37:33 +0000 (23:37 -0300)]
configure: fix vaapi_encode_example dependencies

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agoMAINTAINERS: Add dashenc maintainer
Karthick Jeyapal [Tue, 23 Jan 2018 22:24:35 +0000 (23:24 +0100)]
MAINTAINERS: Add dashenc maintainer

If somebody else wants to maintain dashenc either now or in future,
I am absolutely fine with giving up this responsibility anytime.
But till then we need a maintainer for dashenc, and I am volunteering for that task.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec/dxtory: Fix bits left checks
Michael Niedermayer [Mon, 22 Jan 2018 13:02:59 +0000 (14:02 +0100)]
avcodec/dxtory: Fix bits left checks

Fixes: Timeout
Fixes: 4863/clusterfuzz-testcase-6347354178322432

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/hevc_cabac: Move prefix check in coeff_abs_level_remaining_decode() down
Michael Niedermayer [Mon, 15 Jan 2018 22:42:57 +0000 (23:42 +0100)]
avcodec/hevc_cabac: Move prefix check in coeff_abs_level_remaining_decode() down

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavutil/aes_ctr: Add method to set 16-byte IV.
Jacob Trimble [Mon, 8 Jan 2018 22:12:43 +0000 (14:12 -0800)]
avutil/aes_ctr: Add method to set 16-byte IV.

Signed-off-by: Jacob Trimble <modmaker@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agoavcodec: v4l2_context: remove unnecessary code
Jorge Ramirez-Ortiz [Tue, 23 Jan 2018 08:41:29 +0000 (09:41 +0100)]
avcodec: v4l2_context: remove unnecessary code

Fixes CID 1418358

Signed-off-by: Jorge Ramirez-Ortiz <jramirez@baylibre.com>
20 months agov4l2_m2m: Fix integer overflow in timestamp handling
Mark Thompson [Sun, 21 Jan 2018 00:52:18 +0000 (00:52 +0000)]
v4l2_m2m: Fix integer overflow in timestamp handling

20 months agoavcodec/mpeg12dec: fix preprocessor check for mpeg1_nvdec hwaccel
James Almer [Mon, 22 Jan 2018 01:57:41 +0000 (22:57 -0300)]
avcodec/mpeg12dec: fix preprocessor check for mpeg1_nvdec hwaccel

Signed-off-by: James Almer <jamrial@gmail.com>
20 months agov4l2_m2m: Fix free of the wrong pointer in an error path
Mark Thompson [Sun, 21 Jan 2018 22:59:29 +0000 (22:59 +0000)]
v4l2_m2m: Fix free of the wrong pointer in an error path

Fixes CIDs #1427821 and #1427822.

20 months agolavfi: add denoise and sharpness VAAPI video filters.
Jun Zhao [Mon, 8 Jan 2018 08:19:17 +0000 (16:19 +0800)]
lavfi: add denoise and sharpness VAAPI video filters.

Most code between them is common, so put them in a new file for
miscellaneous VAAPI filters.

Signed-off-by: Yun Zhou <yunx.z.zhou@intel.com>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agolavfi: add ProcAmp (color balance) VAAPI video filter.
Jun Zhao [Mon, 8 Jan 2018 08:12:41 +0000 (16:12 +0800)]
lavfi: add ProcAmp (color balance) VAAPI video filter.

Add ProcAmp(color balance) vaapi video filter, use the option
like -vf "procamp_vaapi=b=10:h=120:c=2.8:s=3.7" to set
brightness/hue/contrast/saturation.

Signed-off-by: Yun Zhou <yunx.z.zhou@intel.com>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agolavfi: use common VAAPI VPP infrastructure for vf_deinterlace_vaapi.
Jun Zhao [Mon, 8 Jan 2018 08:07:38 +0000 (16:07 +0800)]
lavfi: use common VAAPI VPP infrastructure for vf_deinterlace_vaapi.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agolavfi: use common VAAPI VPP infrastructure for vf_scale_vaapi.
Jun Zhao [Mon, 8 Jan 2018 08:02:35 +0000 (16:02 +0800)]
lavfi: use common VAAPI VPP infrastructure for vf_scale_vaapi.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agolavfi: VAAPI VPP common infrastructure.
Jun Zhao [Mon, 8 Jan 2018 07:56:43 +0000 (15:56 +0800)]
lavfi: VAAPI VPP common infrastructure.

Re-work the VAAPI common infrastructure to avoid code duplication
between filters.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
20 months agoavcodec/truemotion2: Fix integer overflow in TM2_RECALC_BLOCK()
Michael Niedermayer [Sat, 20 Jan 2018 03:10:50 +0000 (04:10 +0100)]
avcodec/truemotion2: Fix integer overflow in TM2_RECALC_BLOCK()

Fixes: signed integer overflow: 1477974040 - -1877995504 cannot be represented in type 'int'
Fixes: 4861/clusterfuzz-testcase-minimized-4570316383715328

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 agoMAINTAINERS: add myself for avcodec/v4l2_
Jorge Ramirez-Ortiz [Fri, 19 Jan 2018 16:52:32 +0000 (17:52 +0100)]
MAINTAINERS: add myself for avcodec/v4l2_

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
20 months agolavc/svq3: Do not write into memory defined as const.
Carl Eugen Hoyos [Thu, 18 Jan 2018 22:31:48 +0000 (23:31 +0100)]
lavc/svq3: Do not write into memory defined as const.

Fixes a warning on ppc:
libavcodec/svq3.c:1055:21: warning: passing argument 1 of ‘av_write_bswap32’ discards 'const' qualifier from pointer target type

20 months agolibavformat/dashdec: Fix for ticket 6856 (filename limited to 1024)
Colin NG [Sun, 21 Jan 2018 05:56:57 +0000 (13:56 +0800)]
libavformat/dashdec: Fix for ticket 6856 (filename limited to 1024)

20 months agolibavformat/dashdec: Fix for ticket 6658 (Dash demuxer segfault)
Colin NG [Sun, 21 Jan 2018 05:35:30 +0000 (13:35 +0800)]
libavformat/dashdec: Fix for ticket 6658 (Dash demuxer segfault)

1 Add function 'resolve_content_path' to propagate the baseURL from
upper level nodes.
 * if no baseURL is available, the path of mpd file will be set as the baseURL.
2 Remove checking for newly established connection.
3 Establish the communication protocol in each connection rather than
 applying one protocol to all connection.

20 months agoavformat/dashdec.c: Download dash content with byte range info
Colin NG [Sun, 21 Jan 2018 05:27:48 +0000 (13:27 +0800)]
avformat/dashdec.c: Download dash content with byte range info

20 months agodashdec: Only free url string if being reused
Brendan McGrath [Sun, 21 Jan 2018 05:20:02 +0000 (13:20 +0800)]
dashdec: Only free url string if being reused

If no representation bandwidth value is set, the url value returned
by get_content_url is corrupt (as it has been freed).
This change ensures the url string is not freed unless it is about
to be reused
Changes since v1:
 1 removed the unneeded 'if' statement (as pointed out by Michael Niedermayer
 2 added comment to make it clear why the av_free was required
Signed-off-by: Brendan McGrath <redmcg@redmandi.dyndns.org>