ffmpeg.git
2 years agoMerge commit '0a39c9ac0bfd7345fe676b4e2707d9cec3cbb553'
James Almer [Tue, 31 Jan 2017 17:59:29 +0000 (14:59 -0300)]
Merge commit '0a39c9ac0bfd7345fe676b4e2707d9cec3cbb553'

* commit '0a39c9ac0bfd7345fe676b4e2707d9cec3cbb553':
  x86: hpeldsp: Don't check for bitexact flag when initializing VP3-specific code

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '95c1df929b92d81454656c222a35ec5f7db576b4'
James Almer [Tue, 31 Jan 2017 17:56:11 +0000 (14:56 -0300)]
Merge commit '95c1df929b92d81454656c222a35ec5f7db576b4'

* commit '95c1df929b92d81454656c222a35ec5f7db576b4':
  x86: hpeldsp: Drop unused function parameters

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit 'c3e83ad3b7d75f3597f47ada2616ba4479665009'
James Almer [Tue, 31 Jan 2017 17:53:27 +0000 (14:53 -0300)]
Merge commit 'c3e83ad3b7d75f3597f47ada2616ba4479665009'

* commit 'c3e83ad3b7d75f3597f47ada2616ba4479665009':
  x86: hpeldsp: Use EXTERNAL_SSE2_FAST where appropriate

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '1dfc3cf89d0eb026af28be46294b85d79499ffb5'
James Almer [Tue, 31 Jan 2017 17:49:29 +0000 (14:49 -0300)]
Merge commit '1dfc3cf89d0eb026af28be46294b85d79499ffb5'

* commit '1dfc3cf89d0eb026af28be46294b85d79499ffb5':
  x86: hpeldsp: Split off VP3-specific bits into a separate file

Merged-by: James Almer <jamrial@gmail.com>
2 years agoMAINTAINERS: Add myself for boadec.c
Michael Niedermayer [Mon, 30 Jan 2017 00:45:30 +0000 (01:45 +0100)]
MAINTAINERS: Add myself for boadec.c

It seems ive written this thing though i cannot really remember

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoMerge commit '9833a406d3d743d238e4cbee08ffcaa12e067dd2'
Clément Bœsch [Tue, 31 Jan 2017 16:35:41 +0000 (17:35 +0100)]
Merge commit '9833a406d3d743d238e4cbee08ffcaa12e067dd2'

* commit '9833a406d3d743d238e4cbee08ffcaa12e067dd2':
  examples: Properly free AVCodecContext

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit '0e0538aefc75958ded49f5d075c99a81cf6b2bbb'
Clément Bœsch [Tue, 31 Jan 2017 16:32:03 +0000 (17:32 +0100)]
Merge commit '0e0538aefc75958ded49f5d075c99a81cf6b2bbb'

* commit '0e0538aefc75958ded49f5d075c99a81cf6b2bbb':
  avprobe: Zero the allocated avio buffer memory

This commit is a noop, no such thing exists in ffprobe.

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit '5d0f85f1b2469b60d0838330aabe5353fdd9ef1d'
Clément Bœsch [Tue, 31 Jan 2017 16:27:46 +0000 (17:27 +0100)]
Merge commit '5d0f85f1b2469b60d0838330aabe5353fdd9ef1d'

* commit '5d0f85f1b2469b60d0838330aabe5353fdd9ef1d':
  libdc1394: Fill in packet data directly

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit 'e344e65109f1a75ca82aff4cecec44e79197753c'
Clément Bœsch [Tue, 31 Jan 2017 16:26:26 +0000 (17:26 +0100)]
Merge commit 'e344e65109f1a75ca82aff4cecec44e79197753c'

* commit 'e344e65109f1a75ca82aff4cecec44e79197753c':
  h264dec: do not call finish_setup() if we have not started a frame

This commit is a noop, see bdbbb8f11edbf10add874508c5125c174d8939be

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit '76f7e70aa04fc5dbef5242b11cbf8fe4499f61d4'
Clément Bœsch [Tue, 31 Jan 2017 16:17:21 +0000 (17:17 +0100)]
Merge commit '76f7e70aa04fc5dbef5242b11cbf8fe4499f61d4'

* commit '76f7e70aa04fc5dbef5242b11cbf8fe4499f61d4':
  h264dec: handle zero-sized NAL units in get_last_needed_nal()

See 641dccc2aa5e0bf6b3c06998f9a7f24a5cf725e7

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit '1f7b4f9abc6bae94e576e710b8d10117ca3c8238'
Clément Bœsch [Tue, 31 Jan 2017 16:11:24 +0000 (17:11 +0100)]
Merge commit '1f7b4f9abc6bae94e576e710b8d10117ca3c8238'

* commit '1f7b4f9abc6bae94e576e710b8d10117ca3c8238':
  h264dec: make sure not to call finish_setup() more than once per frame

This commit is a noop, see bdbbb8f11edbf10add874508c5125c174d8939be

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit 'da917fcf5183ed249ad1285b8edd330f421376c4'
Clément Bœsch [Tue, 31 Jan 2017 16:06:49 +0000 (17:06 +0100)]
Merge commit 'da917fcf5183ed249ad1285b8edd330f421376c4'

* commit 'da917fcf5183ed249ad1285b8edd330f421376c4':
  avconv_dxva2: add a profile check for hevc

This commit is a noop, see a655bc834479024ff4d60d0b8ecca290e73eb96c

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agolavc/hevc: remove a few random spaces to reduce diff with libav
Clément Bœsch [Tue, 31 Jan 2017 16:02:24 +0000 (17:02 +0100)]
lavc/hevc: remove a few random spaces to reduce diff with libav

2 years agoMerge commit '1ecb63cd1c1a4ddc5efed4abbc3158b969d8c5e4'
Clément Bœsch [Tue, 31 Jan 2017 15:57:18 +0000 (16:57 +0100)]
Merge commit '1ecb63cd1c1a4ddc5efed4abbc3158b969d8c5e4'

* commit '1ecb63cd1c1a4ddc5efed4abbc3158b969d8c5e4':
  hevc: set profile based on the profile compatibility flags if needed

This commit is a noop, see f85cc3bf12236e974403667610b39b802b8651d6

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit 'fca3c3b61952aacc45e9ca54d86a762946c21942'
Clément Bœsch [Tue, 31 Jan 2017 15:50:21 +0000 (16:50 +0100)]
Merge commit 'fca3c3b61952aacc45e9ca54d86a762946c21942'

* commit 'fca3c3b61952aacc45e9ca54d86a762946c21942':
  hevc: Add AVX2 DC IDCT

Mostly noop as we already have that code.

In the ASM, code is merged with the exception of SECTION which is kept
uppercase for consistency with the rest of the codebase.

Still in the ASM, the prototype comment is fixed to honor the '_' added
from the original commit.

idct_dc_proto() is dropped as it's not used anymore here.

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit 'cc16da75c2f99d92f7a6461100f041352deb6d88'
Clément Bœsch [Tue, 31 Jan 2017 15:02:35 +0000 (16:02 +0100)]
Merge commit 'cc16da75c2f99d92f7a6461100f041352deb6d88'

* commit 'cc16da75c2f99d92f7a6461100f041352deb6d88':
  hevc: Add coefficient limiting to speed up IDCT

Noop again as we have these changes already, only random spacing
changes.

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit 'a92fd8a06256e71a0be87b03751ec3c2a4a8aa21'
Clément Bœsch [Tue, 31 Jan 2017 14:55:35 +0000 (15:55 +0100)]
Merge commit 'a92fd8a06256e71a0be87b03751ec3c2a4a8aa21'

* commit 'a92fd8a06256e71a0be87b03751ec3c2a4a8aa21':
  hevc: Add DC IDCT

Noop, only spacing adjusted.

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit '4f247de3b797cdc9d243d26534412f81c306e5b5'
Clément Bœsch [Tue, 31 Jan 2017 14:47:58 +0000 (15:47 +0100)]
Merge commit '4f247de3b797cdc9d243d26534412f81c306e5b5'

* commit '4f247de3b797cdc9d243d26534412f81c306e5b5':
  hevcdsp_template: Templatize IDCT

This commit is a noop as we already have that code from a previous
commits (see 92cccb7bcd79845020ed8abebf35170c182443b2).

Spacing is adjusted to reduce the diff.

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agoMerge commit '1bd890ad173d79e7906c5e1d06bf0a06cca4519d'
Clément Bœsch [Tue, 31 Jan 2017 10:20:54 +0000 (11:20 +0100)]
Merge commit '1bd890ad173d79e7906c5e1d06bf0a06cca4519d'

* commit '1bd890ad173d79e7906c5e1d06bf0a06cca4519d':
  hevc: Separate adding residual to prediction from IDCT

This commit should be a noop but isn't because of the following renames:

- transform_add  → add_residual
- transform_skip → dequant
- idct_4x4_luma  → transform_4x4_luma

Merged-by: Clément Bœsch <cboesch@gopro.com>
2 years agodoc/muxers: add AVI muxer documentation
Tobias Rapp [Thu, 5 Jan 2017 10:17:39 +0000 (11:17 +0100)]
doc/muxers: add AVI muxer documentation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2 years agoavfilter/overlay: add gbrp output format
Paul B Mahol [Mon, 30 Jan 2017 15:00:29 +0000 (16:00 +0100)]
avfilter/overlay: add gbrp output format

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agolavc/alac: Export samplerate.
Carl Eugen Hoyos [Mon, 30 Jan 2017 10:03:21 +0000 (11:03 +0100)]
lavc/alac: Export samplerate.

Fixes ticket #6096.

2 years agolavf/xwma: fix incorrect format specifier
Moritz Barsnick [Mon, 30 Jan 2017 20:22:41 +0000 (21:22 +0100)]
lavf/xwma: fix incorrect format specifier

Signed-off-by: Moritz Barsnick <barsnick@gmx.net>
2 years agoavformat/avienc: add reserve_index_space option
Tobias Rapp [Wed, 25 Jan 2017 08:53:03 +0000 (09:53 +0100)]
avformat/avienc: add reserve_index_space option

Allows the user to reserve space for the ODML master index. A sufficient
sized master index in the AVI header avoids storing follow-up master
indexes within the 'movi' data later. If the option is omitted or zero
the index size is estimated from output duration and bitrate.

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2 years agoircamdec: prevent overflow during block alignment calculation
Andreas Cadhalpun [Thu, 15 Dec 2016 01:14:45 +0000 (02:14 +0100)]
ircamdec: prevent overflow during block alignment calculation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years agoavutil/frame: fix av_frame_copy for unknown layouts
Marton Balint [Mon, 30 Jan 2017 00:33:18 +0000 (01:33 +0100)]
avutil/frame: fix av_frame_copy for unknown layouts

I wonder how unknown layouts ever worked without this?

Reviewed-by: Nicolas George <george@nsup.org>
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavformat/mov: Fix integer truncation in mov_read_uuid()
Michael Niedermayer [Mon, 30 Jan 2017 22:03:02 +0000 (23:03 +0100)]
avformat/mov: Fix integer truncation in mov_read_uuid()

Fixes Ticket6102

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter: add threshold filter
Paul B Mahol [Sat, 6 Feb 2016 16:11:07 +0000 (17:11 +0100)]
avfilter: add threshold filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/msf: fix codec 4 (joint stereo ATRAC3) and align
bnnm [Mon, 30 Jan 2017 11:46:15 +0000 (12:46 +0100)]
avformat/msf: fix codec 4 (joint stereo ATRAC3) and align

Codec 4 (frame size 98) uses joint stereo per spec and examples.
Also removed an incorrect "align" var which wasn't used anyway (it was overwrittern).

Probably all/only .AT3 of frame size 98 are JS, too.

Signed-off-by: bnnm <bananaman255@gmail.com>
2 years agoavformat/Makefile: fix compilation of testprogs when networking is disabled
Tobias Rapp [Wed, 25 Jan 2017 13:57:24 +0000 (14:57 +0100)]
avformat/Makefile: fix compilation of testprogs when networking is disabled

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
2 years agodoc/libav-merge: add unmerged hevc commits hashes
Clément Bœsch [Mon, 30 Jan 2017 10:57:31 +0000 (11:57 +0100)]
doc/libav-merge: add unmerged hevc commits hashes

2 years agolavc/hevcdsp: fix pretty printing mistake
Clément Bœsch [Mon, 30 Jan 2017 10:50:38 +0000 (11:50 +0100)]
lavc/hevcdsp: fix pretty printing mistake

"Issue" introduced in 83976e40e89655162e5394cf8915d9b6d89702d9.

2 years agoavutil/eval: add atan2 function
Paul B Mahol [Sun, 29 Jan 2017 09:26:16 +0000 (10:26 +0100)]
avutil/eval: add atan2 function

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat: add SCC muxer
Paul B Mahol [Fri, 27 Jan 2017 12:58:11 +0000 (13:58 +0100)]
avformat: add SCC muxer

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/sccdec: simplify 2 sscanf calls
Paul B Mahol [Sun, 29 Jan 2017 17:11:09 +0000 (18:11 +0100)]
avformat/sccdec: simplify 2 sscanf calls

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoxvag: prevent overflow during block alignment calculation
Andreas Cadhalpun [Fri, 6 Jan 2017 19:31:26 +0000 (20:31 +0100)]
xvag: prevent overflow during block alignment calculation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years agoepafdec: prevent overflow during block alignment calculation
Andreas Cadhalpun [Fri, 6 Jan 2017 19:31:21 +0000 (20:31 +0100)]
epafdec: prevent overflow during block alignment calculation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years agogenh: prevent overflow during block alignment calculation
Andreas Cadhalpun [Thu, 15 Dec 2016 01:14:40 +0000 (02:14 +0100)]
genh: prevent overflow during block alignment calculation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years agoavfilter/showcqt: make minimum timeclamp option lower
Muhammad Faiz [Sun, 29 Jan 2017 22:41:49 +0000 (05:41 +0700)]
avfilter/showcqt: make minimum timeclamp option lower

high basefreq does not require high timeclamp

Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2 years agolavc/mjpegdec: consume SOS data even if the frame is discarded
Matthieu Bouron [Sat, 28 Jan 2017 12:49:52 +0000 (13:49 +0100)]
lavc/mjpegdec: consume SOS data even if the frame is discarded

Speeds up next marker search when a SOS marker is found but the frame is
discarded (which happens in avformat_find_stream_info).

2 years agolavfi: make ff_framequeue_skip_samples() more useful.
Nicolas George [Sun, 29 Jan 2017 09:10:40 +0000 (10:10 +0100)]
lavfi: make ff_framequeue_skip_samples() more useful.

Instead of just updating statistics and leaving the work to the
call site, have it actually do the work.

Also: skip the samples by updating the frame data pointers
instead of moving the samples. More efficient and avoid writing
into shared frames.
Found-By: Muhammad Faiz <mfcc64@gmail.com>
2 years agodoc/examples/decoder_targeted: move to tools/target_dec_fuzzer.c
Rostislav Pehlivanov [Sun, 29 Jan 2017 15:30:10 +0000 (15:30 +0000)]
doc/examples/decoder_targeted: move to tools/target_dec_fuzzer.c

Name and purpose are more appropriate there since the code isn't
an ideal example.

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
2 years agodoc/examples/decoder_targeted: Disable error concealment after 20 frames
Michael Niedermayer [Sun, 29 Jan 2017 02:22:50 +0000 (03:22 +0100)]
doc/examples/decoder_targeted: Disable error concealment after 20 frames

This allows testing EC and non EC. Avoids spending most time in EC on
high res samples and reduces the likelyhood of hitting timeouts

Fixes: Timeout in 467/fuzz-2-ffmpeg_VIDEO_AV_CODEC_ID_H263_fuzzer

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter/vf_remap: add . at end of long description
Paul B Mahol [Sun, 29 Jan 2017 12:29:33 +0000 (13:29 +0100)]
avfilter/vf_remap: add . at end of long description

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoboadec: prevent overflow during block alignment calculation
Andreas Cadhalpun [Thu, 26 Jan 2017 00:19:02 +0000 (01:19 +0100)]
boadec: prevent overflow during block alignment calculation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years agopvfdec: prevent overflow during block alignment calculation
Andreas Cadhalpun [Thu, 15 Dec 2016 01:14:54 +0000 (02:14 +0100)]
pvfdec: prevent overflow during block alignment calculation

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years agoelectronicarts: prevent overflow during block alignment calculation
Andreas Cadhalpun [Thu, 15 Dec 2016 01:14:37 +0000 (02:14 +0100)]
electronicarts: prevent overflow during block alignment calculation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years ago4xm: prevent overflow during block alignment calculation
Andreas Cadhalpun [Thu, 15 Dec 2016 01:14:31 +0000 (02:14 +0100)]
4xm: prevent overflow during block alignment calculation

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2 years agoavformat/ac3dec: Fix to prevent runaway ac3 detection by looking at the actual frame...
Marijn Meijles [Fri, 27 Jan 2017 21:08:15 +0000 (22:08 +0100)]
avformat/ac3dec: Fix to prevent runaway ac3 detection by looking at the actual frame rather than the first detected frame.

When detecting a swapped AC3 marker the data of the frame is swapped. However, in subsequent frames the data swapped is taken from the first frame rather than the current frame.

Signed-off-by: Marijn Meijles <marijn@bitpit.net>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat: Ignore ID3v2 tags if other tags are present e.g. vorbis
Paul Arzelier [Sat, 28 Jan 2017 16:25:27 +0000 (17:25 +0100)]
avformat: Ignore ID3v2 tags if other tags are present e.g. vorbis

Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/matroskaenc: don't reserve more bytes than needed for the Colour master...
James Almer [Sat, 28 Jan 2017 16:44:59 +0000 (13:44 -0300)]
avformat/matroskaenc: don't reserve more bytes than needed for the Colour master size

Found-by: Aaron Colwell <acolwell@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavformat/sccdec: attempt to fix valgrind issue
Paul B Mahol [Sat, 28 Jan 2017 16:23:31 +0000 (17:23 +0100)]
avformat/sccdec: attempt to fix valgrind issue

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat: fix ID3v2 parser for v2.2 comment frames
Chris Moeller [Fri, 27 Jan 2017 21:20:31 +0000 (13:20 -0800)]
avformat: fix ID3v2 parser for v2.2 comment frames

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agomov: Fix spherical metadata_source parsing
Aaron Colwell [Fri, 27 Jan 2017 17:33:29 +0000 (09:33 -0800)]
mov: Fix spherical metadata_source parsing

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/vf_gblur: Increase supported pixel count from 31bit to 32bit in filter_posts...
Michael Niedermayer [Sat, 21 Jan 2017 22:01:50 +0000 (23:01 +0100)]
avfilter/vf_gblur: Increase supported pixel count from 31bit to 32bit in filter_postscale()

Fixes CID1396252

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoffmpeg.c: Add output file index and stream index to vstats file.
Sasi Inguva [Thu, 26 Jan 2017 00:41:44 +0000 (16:41 -0800)]
ffmpeg.c: Add output file index and stream index to vstats file.

Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agolavf/matroskaenc.c: Free dyn bufs in mkv_free. Fixes memory leaks when muxing fails.
Sasi Inguva [Thu, 26 Jan 2017 19:26:46 +0000 (11:26 -0800)]
lavf/matroskaenc.c: Free dyn bufs in mkv_free. Fixes memory leaks when muxing fails.

Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agofate: add SCC test
Paul B Mahol [Wed, 25 Jan 2017 21:28:48 +0000 (22:28 +0100)]
fate: add SCC test

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavfilter/avf_showspectrum: fix 2 possible crashes
Paul B Mahol [Fri, 27 Jan 2017 12:37:00 +0000 (13:37 +0100)]
avfilter/avf_showspectrum: fix 2 possible crashes

Make sure no division by zero is done.
Make sure there are actually samples available.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agodoc/filters: mention recently added option
Paul B Mahol [Fri, 27 Jan 2017 11:13:42 +0000 (12:13 +0100)]
doc/filters: mention recently added option

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agolavf/img2dec: Reduce the probe score for incomplete jpgs.
Carl Eugen Hoyos [Fri, 27 Jan 2017 07:31:07 +0000 (08:31 +0100)]
lavf/img2dec: Reduce the probe score for incomplete jpgs.

Ensures that probing doesn't finish prematurely for small files.

2 years agoavcodec/h264dec: Clear ref_count on slice header processing failure
Michael Niedermayer [Thu, 26 Jan 2017 23:14:02 +0000 (00:14 +0100)]
avcodec/h264dec: Clear ref_count on slice header processing failure

Fixes using freed memory
Introduced in 744801989099df26e90b00062c645969c5347533
Fixes: 471/fuzz-1-ffmpeg_VIDEO_AV_CODEC_ID_H264_fuzzer

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/matroskadec: ProjectionPrivate is optional on Equirectangular projections
James Almer [Thu, 26 Jan 2017 22:28:09 +0000 (19:28 -0300)]
avformat/matroskadec: ProjectionPrivate is optional on Equirectangular projections

This reflects a recent change to the spec draft.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agotcp: set socket buffer sizes before listen/connect/accept
Joel Cunningham [Mon, 9 Jan 2017 20:54:47 +0000 (14:54 -0600)]
tcp: set socket buffer sizes before listen/connect/accept

From e24d95c0e06a878d401ee34fd6742fcaddeeb95f Mon Sep 17 00:00:00 2001
From: Joel Cunningham <joel.cunningham@me.com>
Date: Mon, 9 Jan 2017 13:37:51 -0600
Subject: [PATCH] tcp: set socket buffer sizes before listen/connect/accept

Attempting to set SO_RCVBUF and SO_SNDBUF on TCP sockets after connection
establishment is incorrect and some stacks ignore the set call on the socket at
this point.  This has been observed on MacOS/iOS.  Windows 7 has some peculiar
behavior where setting SO_RCVBUF after applies only if the buffer is increasing
from the default while decreases are ignored.  This is possibly how the incorrect
usage has gone unnoticed

Unix Network Programming Vol. 1: The Sockets Networking API (3rd edition, seciton 7.5):

"When setting the size of the TCP socket receive buffer, the ordering of the
function calls is important.  This is because of TCP's window scale option,
which is exchanged with the peer on SYN segments when the connection is
established. For a client, this means the SO_RCVBUF socket option must be
set before calling connect.  For a server, this means the socket option must
be set for the listening socket before calling listen.  Setting this option
for the connected socket will have no effect whatsoever on the possible window
scale option because accept does not return with the connected socket until
TCP's three-way handshake is complete.  This is why the option must be set on
the listening socket. (The sizes of the socket buffers are always inherited from
the listening socket by the newly created connected socket)"

Signed-off-by: Joel Cunningham <joel.cunningham@me.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter: add abitscope multimedia filter
Paul B Mahol [Thu, 5 May 2016 10:15:39 +0000 (12:15 +0200)]
avfilter: add abitscope multimedia filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/flacdec: Check avio_read result when reading flac block header.
Frank Liberato [Tue, 24 Jan 2017 18:58:17 +0000 (10:58 -0800)]
avformat/flacdec: Check avio_read result when reading flac block header.

Return AVERROR_INVALIDDATA if all four bytes aren't present.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoffmpeg_opt.c: Introduce a -vstats_version option and document the existing -vstats...
Sasi Inguva [Tue, 24 Jan 2017 16:23:54 +0000 (08:23 -0800)]
ffmpeg_opt.c: Introduce a -vstats_version option and document the existing -vstats format.

Signed-off-by: Sasi Inguva <isasi@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodecc/ccaption_dec: remove extra word from long codec description
Paul B Mahol [Wed, 25 Jan 2017 10:00:13 +0000 (11:00 +0100)]
avcodecc/ccaption_dec: remove extra word from long codec description

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat: add Scenarist Closed Captions demuxer
Paul B Mahol [Tue, 24 Jan 2017 15:34:29 +0000 (16:34 +0100)]
avformat: add Scenarist Closed Captions demuxer

Fixes #4767.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat: add Sample Dump eXchange demuxer
Paul B Mahol [Sat, 21 Jan 2017 11:29:44 +0000 (12:29 +0100)]
avformat: add Sample Dump eXchange demuxer

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agolavf/mov: Unscramble dref debug output.
Carl Eugen Hoyos [Wed, 25 Jan 2017 10:49:04 +0000 (11:49 +0100)]
lavf/mov: Unscramble dref debug output.

2 years agoisom: map xalg and avlg to h264, fixes ticket #6099
compn [Wed, 25 Jan 2017 04:46:38 +0000 (23:46 -0500)]
isom: map xalg and avlg to h264, fixes ticket #6099

2 years agoavcodec/utils: correct align value for interplay
Michael Niedermayer [Tue, 24 Jan 2017 23:20:19 +0000 (00:20 +0100)]
avcodec/utils: correct align value for interplay

Fixes out of array access
Fixes: 452/fuzz-1-ffmpeg_VIDEO_AV_CODEC_ID_INTERPLAY_VIDEO_fuzzer

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoCosmetics: Reindent after last commit.
Carl Eugen Hoyos [Tue, 24 Jan 2017 23:55:36 +0000 (00:55 +0100)]
Cosmetics: Reindent after last commit.

2 years agolavd/v4l2: Avoid setting frame_size to a negative value.
Carl Eugen Hoyos [Sat, 10 Dec 2016 15:43:00 +0000 (16:43 +0100)]
lavd/v4l2: Avoid setting frame_size to a negative value.

2 years agolavf/rtmpproto: Make bytes_read variables 64bit.
Carl Eugen Hoyos [Sat, 14 Jan 2017 18:17:09 +0000 (19:17 +0100)]
lavf/rtmpproto: Make bytes_read variables 64bit.

When bytes_read overflowed, last_bytes_read did not yet overflow
and no bytes-read report was created leading to a timeout.

Analyzed-by: Thomas Bernhard
Fixes ticket #5836.

2 years agoavfilter/formats: do not allow unknown layouts in ff_parse_channel_layout if nret...
Marton Balint [Mon, 26 Dec 2016 01:03:37 +0000 (02:03 +0100)]
avfilter/formats: do not allow unknown layouts in ff_parse_channel_layout if nret is not set

Current code returned the number of channels as channel layout in that case,
and if nret is not set then unknown layouts are typically not supported.

Also use the common parsing code. Use a temporary workaround to parse an
unknown channel layout such as '13c', after a 1 year grace period only '13C'
will work.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavutil/channel_layout: add av_get_extended_channel_layout
Marton Balint [Mon, 26 Dec 2016 00:19:34 +0000 (01:19 +0100)]
avutil/channel_layout: add av_get_extended_channel_layout

Return a channel layout and the number of channels based on the specified name.

This function is similar to av_get_channel_layout(), but can also parse unknown
channel layout specifications.

Unknown channel layout specifications are a decimal number and a capital 'C'
suffix, in order to not break compatibility with the lowercase 'c' suffix,
which is used for a guessed channel layout with the specified number of
channels.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavutil/channel_layout: fix remains of old syntax in docs and comments
Marton Balint [Mon, 26 Dec 2016 00:06:22 +0000 (01:06 +0100)]
avutil/channel_layout: fix remains of old syntax in docs and comments

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agolavc/svq3: Fail for media key encryption.
Carl Eugen Hoyos [Mon, 23 Jan 2017 12:39:56 +0000 (13:39 +0100)]
lavc/svq3: Fail for media key encryption.

Tested-by: ami_stuff
Fixes a part of ticket #6094.

2 years agoavcodec/vp56: Check for the bitstream end, pass error codes on
Michael Niedermayer [Tue, 24 Jan 2017 21:21:25 +0000 (22:21 +0100)]
avcodec/vp56: Check for the bitstream end, pass error codes on

Fixes timeout
Fixes: 446/fuzz-3-ffmpeg_VIDEO_AV_CODEC_ID_VP6_fuzzer

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoaarch64: Add NEON optimizations for 10 and 12 bit vp9 loop filter
Martin Storsjö [Thu, 5 Jan 2017 10:52:06 +0000 (12:52 +0200)]
aarch64: Add NEON optimizations for 10 and 12 bit vp9 loop filter

This work is sponsored by, and copyright, Google.

This is similar to the arm version, but due to the larger registers
on aarch64, we can do 8 pixels at a time for all filter sizes.

Examples of runtimes vs the 32 bit version, on a Cortex A53:
                                             ARM AArch64
vp9_loop_filter_h_4_8_10bpp_neon:          213.2   172.6
vp9_loop_filter_h_8_8_10bpp_neon:          281.2   244.2
vp9_loop_filter_h_16_8_10bpp_neon:         657.0   444.5
vp9_loop_filter_h_16_16_10bpp_neon:       1280.4   877.7
vp9_loop_filter_mix2_h_44_16_10bpp_neon:   397.7   358.0
vp9_loop_filter_mix2_h_48_16_10bpp_neon:   465.7   429.0
vp9_loop_filter_mix2_h_84_16_10bpp_neon:   465.7   428.0
vp9_loop_filter_mix2_h_88_16_10bpp_neon:   533.7   499.0
vp9_loop_filter_mix2_v_44_16_10bpp_neon:   271.5   244.0
vp9_loop_filter_mix2_v_48_16_10bpp_neon:   330.0   305.0
vp9_loop_filter_mix2_v_84_16_10bpp_neon:   329.0   306.0
vp9_loop_filter_mix2_v_88_16_10bpp_neon:   386.0   365.0
vp9_loop_filter_v_4_8_10bpp_neon:          150.0   115.2
vp9_loop_filter_v_8_8_10bpp_neon:          209.0   175.5
vp9_loop_filter_v_16_8_10bpp_neon:         492.7   345.2
vp9_loop_filter_v_16_16_10bpp_neon:        951.0   682.7

This is significantly faster than the ARM version in almost
all cases except for the mix2 functions.

Based on START_TIMER/STOP_TIMER wrapping around a few individual
functions, the speedup vs C code is around 2-3x.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoaarch64: Add NEON optimizations for 10 and 12 bit vp9 itxfm
Martin Storsjö [Tue, 3 Jan 2017 12:35:54 +0000 (14:35 +0200)]
aarch64: Add NEON optimizations for 10 and 12 bit vp9 itxfm

This work is sponsored by, and copyright, Google.

Compared to the arm version, on aarch64 we can keep the full 8x8
transform in registers, and for 16x16 and 32x32, we can process
it in slices of 4 pixels instead of 2.

Examples of runtimes vs the 32 bit version, on a Cortex A53:
                                                ARM  AArch64
vp9_inv_adst_adst_4x4_sub4_add_10_neon:       111.0    109.7
vp9_inv_adst_adst_8x8_sub8_add_10_neon:       914.0    733.5
vp9_inv_adst_adst_16x16_sub16_add_10_neon:   5184.0   3745.7
vp9_inv_dct_dct_4x4_sub1_add_10_neon:          65.0     65.7
vp9_inv_dct_dct_4x4_sub4_add_10_neon:         100.0     96.7
vp9_inv_dct_dct_8x8_sub1_add_10_neon:         111.0    119.7
vp9_inv_dct_dct_8x8_sub8_add_10_neon:         618.0    494.7
vp9_inv_dct_dct_16x16_sub1_add_10_neon:       295.1    284.6
vp9_inv_dct_dct_16x16_sub2_add_10_neon:      2303.2   1883.9
vp9_inv_dct_dct_16x16_sub8_add_10_neon:      2984.8   2189.3
vp9_inv_dct_dct_16x16_sub16_add_10_neon:     3890.0   2799.4
vp9_inv_dct_dct_32x32_sub1_add_10_neon:      1044.4   1012.7
vp9_inv_dct_dct_32x32_sub2_add_10_neon:     13333.7   9695.1
vp9_inv_dct_dct_32x32_sub16_add_10_neon:    18531.3  12459.8
vp9_inv_dct_dct_32x32_sub32_add_10_neon:    24470.7  16160.2
vp9_inv_wht_wht_4x4_sub4_add_10_neon:          83.0     79.7

The larger transforms are significantly faster than the corresponding
ARM versions.

The speedup vs C code is smaller than in 32 bit mode, probably
because the 64 bit intermediates in the C code can be expressed
more efficiently in aarch64.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoaarch64: Add NEON optimizations for 10 and 12 bit vp9 MC
Martin Storsjö [Wed, 14 Dec 2016 21:48:35 +0000 (23:48 +0200)]
aarch64: Add NEON optimizations for 10 and 12 bit vp9 MC

This work is sponsored by, and copyright, Google.

This has mostly got the same differences to the 8 bit version as
in the arm version. For the horizontal filters, we do 16 pixels
in parallel as well. For the 8 pixel wide vertical filters, we can
accumulate 4 rows before storing, just as in the 8 bit version.

Examples of runtimes vs the 32 bit version, on a Cortex A53:
                                           ARM   AArch64
vp9_avg4_10bpp_neon:                      35.7      30.7
vp9_avg8_10bpp_neon:                      93.5      84.7
vp9_avg16_10bpp_neon:                    324.4     296.6
vp9_avg32_10bpp_neon:                   1236.5    1148.2
vp9_avg64_10bpp_neon:                   4639.6    4571.1
vp9_avg_8tap_smooth_4h_10bpp_neon:       130.0     128.0
vp9_avg_8tap_smooth_4hv_10bpp_neon:      440.0     440.5
vp9_avg_8tap_smooth_4v_10bpp_neon:       114.0     105.5
vp9_avg_8tap_smooth_8h_10bpp_neon:       327.0     314.0
vp9_avg_8tap_smooth_8hv_10bpp_neon:      918.7     865.4
vp9_avg_8tap_smooth_8v_10bpp_neon:       330.0     300.2
vp9_avg_8tap_smooth_16h_10bpp_neon:     1187.5    1155.5
vp9_avg_8tap_smooth_16hv_10bpp_neon:    2663.1    2591.0
vp9_avg_8tap_smooth_16v_10bpp_neon:     1107.4    1078.3
vp9_avg_8tap_smooth_64h_10bpp_neon:    17754.6   17454.7
vp9_avg_8tap_smooth_64hv_10bpp_neon:   33285.2   33001.5
vp9_avg_8tap_smooth_64v_10bpp_neon:    16066.9   16048.6
vp9_put4_10bpp_neon:                      25.5      21.7
vp9_put8_10bpp_neon:                      56.0      52.0
vp9_put16_10bpp_neon/armv8:              183.0     163.1
vp9_put32_10bpp_neon/armv8:              678.6     563.1
vp9_put64_10bpp_neon/armv8:             2679.9    2195.8
vp9_put_8tap_smooth_4h_10bpp_neon:       120.0     118.0
vp9_put_8tap_smooth_4hv_10bpp_neon:      435.2     435.0
vp9_put_8tap_smooth_4v_10bpp_neon:       107.0      98.2
vp9_put_8tap_smooth_8h_10bpp_neon:       303.0     290.0
vp9_put_8tap_smooth_8hv_10bpp_neon:      893.7     828.7
vp9_put_8tap_smooth_8v_10bpp_neon:       305.5     263.5
vp9_put_8tap_smooth_16h_10bpp_neon:     1089.1    1059.2
vp9_put_8tap_smooth_16hv_10bpp_neon:    2578.8    2452.4
vp9_put_8tap_smooth_16v_10bpp_neon:     1009.5     933.5
vp9_put_8tap_smooth_64h_10bpp_neon:    16223.4   15918.6
vp9_put_8tap_smooth_64hv_10bpp_neon:   32153.0   31016.2
vp9_put_8tap_smooth_64v_10bpp_neon:    14516.5   13748.1

These are generally about as fast as the corresponding ARM
routines on the same CPU (at least on the A53), in most cases
marginally faster.

The speedup vs C code is around 4-9x.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoaarch64: vp9dsp: Restructure the bpp checks
Martin Storsjö [Wed, 14 Dec 2016 21:38:02 +0000 (23:38 +0200)]
aarch64: vp9dsp: Restructure the bpp checks

This work is sponsored by, and copyright, Google.

This is more in line with how it will be extended for more bitdepths.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoarm: Add NEON optimizations for 10 and 12 bit vp9 loop filter
Martin Storsjö [Thu, 5 Jan 2017 10:51:08 +0000 (12:51 +0200)]
arm: Add NEON optimizations for 10 and 12 bit vp9 loop filter

This work is sponsored by, and copyright, Google.

This is pretty much similar to the 8 bpp version, but in some senses
simpler. All input pixels are 16 bits, and all intermediates also fit
in 16 bits, so there's no lengthening/narrowing in the filter at all.

For the full 16 pixel wide filter, we can only process 4 pixels at a time
(using an implementation very much similar to the one for 8 bpp),
but we can do 8 pixels at a time for the 4 and 8 pixel wide filters with
a different implementation of the core filter.

Examples of relative speedup compared to the C version, from checkasm:
                                   Cortex    A7     A8     A9    A53
vp9_loop_filter_h_4_8_10bpp_neon:          1.83   2.16   1.40   2.09
vp9_loop_filter_h_8_8_10bpp_neon:          1.39   1.67   1.24   1.70
vp9_loop_filter_h_16_8_10bpp_neon:         1.56   1.47   1.10   1.81
vp9_loop_filter_h_16_16_10bpp_neon:        1.94   1.69   1.33   2.24
vp9_loop_filter_mix2_h_44_16_10bpp_neon:   2.01   2.27   1.67   2.39
vp9_loop_filter_mix2_h_48_16_10bpp_neon:   1.84   2.06   1.45   2.19
vp9_loop_filter_mix2_h_84_16_10bpp_neon:   1.89   2.20   1.47   2.29
vp9_loop_filter_mix2_h_88_16_10bpp_neon:   1.69   2.12   1.47   2.08
vp9_loop_filter_mix2_v_44_16_10bpp_neon:   3.16   3.98   2.50   4.05
vp9_loop_filter_mix2_v_48_16_10bpp_neon:   2.84   3.64   2.25   3.77
vp9_loop_filter_mix2_v_84_16_10bpp_neon:   2.65   3.45   2.16   3.54
vp9_loop_filter_mix2_v_88_16_10bpp_neon:   2.55   3.30   2.16   3.55
vp9_loop_filter_v_4_8_10bpp_neon:          2.85   3.97   2.24   3.68
vp9_loop_filter_v_8_8_10bpp_neon:          2.27   3.19   1.96   3.08
vp9_loop_filter_v_16_8_10bpp_neon:         3.42   2.74   2.26   4.40
vp9_loop_filter_v_16_16_10bpp_neon:        2.86   2.44   1.93   3.88

The speedup vs C code measured in checkasm is around 1.1-4x.
These numbers are quite inconclusive though, since the checkasm test
runs multiple filterings on top of each other, so later rounds might
end up with different codepaths (different decisions on which filter
to apply, based on input pixel differences).

Based on START_TIMER/STOP_TIMER wrapping around a few individual
functions, the speedup vs C code is around 2-4x.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoarm: Add NEON optimizations for 10 and 12 bit vp9 itxfm
Martin Storsjö [Sat, 17 Dec 2016 22:22:15 +0000 (00:22 +0200)]
arm: Add NEON optimizations for 10 and 12 bit vp9 itxfm

This work is sponsored by, and copyright, Google.

This is structured similarly to the 8 bit version. In the 8 bit
version, the coefficients are 16 bits, and intermediates are 32 bits.

Here, the coefficients are 32 bit. For the 4x4 transforms for 10 bit
content, the intermediates also fit in 32 bits, but for all other
transforms (4x4 for 12 bit content, and 8x8 and larger for both 10
and 12 bit) the intermediates are 64 bit.

For the existing 8 bit case, the 8x8 transform fit all coefficients in
registers; for 10/12 bit, when the coefficients are 32 bit, the 8x8
transform also has to be done in slices of 4 pixels (just as 16x16 and
32x32 for 8 bit).

The slice width also shrinks from 4 elements to 2 elements in parallel
for the 16x16 and 32x32 cases.

The 16 bit coefficients from idct_coeffs and similar tables also need
to be lenghtened to 32 bit in order to be used in multiplication with
vectors with 32 bit elements. This leads to the fixed coefficient
vectors needing more space, leading to more cases where they have to
be reloaded within the transform (in iadst16).

This technically would need testing in checkasm for subpartitions
in increments of 2, but that slows down normal checkasm runs
excessively.

Examples of relative speedup compared to the C version, from checkasm:
                                     Cortex    A7     A8     A9    A53
vp9_inv_adst_adst_4x4_sub4_add_10_neon:      4.83  11.36   5.22   6.77
vp9_inv_adst_adst_8x8_sub8_add_10_neon:      4.12   7.60   4.06   4.84
vp9_inv_adst_adst_16x16_sub16_add_10_neon:   3.93   8.16   4.52   5.35
vp9_inv_dct_dct_4x4_sub1_add_10_neon:        1.36   2.57   1.41   1.61
vp9_inv_dct_dct_4x4_sub4_add_10_neon:        4.24   8.66   5.06   5.81
vp9_inv_dct_dct_8x8_sub1_add_10_neon:        2.63   4.18   1.68   2.87
vp9_inv_dct_dct_8x8_sub4_add_10_neon:        4.52   9.47   4.24   5.39
vp9_inv_dct_dct_8x8_sub8_add_10_neon:        3.45   7.34   3.45   4.30
vp9_inv_dct_dct_16x16_sub1_add_10_neon:      3.56   6.21   2.47   4.32
vp9_inv_dct_dct_16x16_sub2_add_10_neon:      5.68  12.73   5.28   7.07
vp9_inv_dct_dct_16x16_sub8_add_10_neon:      4.42   9.28   4.24   5.45
vp9_inv_dct_dct_16x16_sub16_add_10_neon:     3.41   7.29   3.35   4.19
vp9_inv_dct_dct_32x32_sub1_add_10_neon:      4.52   8.35   3.83   6.40
vp9_inv_dct_dct_32x32_sub2_add_10_neon:      5.86  13.19   6.14   7.04
vp9_inv_dct_dct_32x32_sub16_add_10_neon:     4.29   8.11   4.59   5.06
vp9_inv_dct_dct_32x32_sub32_add_10_neon:     3.31   5.70   3.56   3.84
vp9_inv_wht_wht_4x4_sub4_add_10_neon:        1.89   2.80   1.82   1.97

The speedup compared to the C functions is around 1.3 to 7x for the
full transforms, even higher for the smaller subpartitions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoarm: Add NEON optimizations for 10 and 12 bit vp9 MC
Martin Storsjö [Thu, 8 Dec 2016 21:35:31 +0000 (23:35 +0200)]
arm: Add NEON optimizations for 10 and 12 bit vp9 MC

This work is sponsored by, and copyright, Google.

The plain pixel put/copy functions are used from the 8 bit version,
for the double size (e.g. put16 uses ff_vp9_copy32_neon), and a new
copy128 is added.

Compared with the 8 bit version, the filters can no longer use the
trick to accumulate in 16 bit with only saturation at the end, but now
the accumulators need to be 32 bit. This avoids the need to keep track
of which filter index is the largest though, reducing the size of the
executable code for these filters.

For the horizontal filters, we only do 4 or 8 pixels wide in parallel
(while doing two rows at a time), since we don't have enough register
space to filter 16 pixels wide.

For the vertical filters, we still do 4 and 8 pixels in parallel just
as in the 8 bit case, but we need to store the output after every 2
rows instead of after every 4 rows.

Examples of relative speedup compared to the C version, from checkasm:
                               Cortex    A7     A8     A9    A53
vp9_avg4_10bpp_neon:                   2.25   2.44   3.05   2.16
vp9_avg8_10bpp_neon:                   3.66   8.48   3.86   3.50
vp9_avg16_10bpp_neon:                  3.39   8.26   3.37   2.72
vp9_avg32_10bpp_neon:                  4.03  10.20   4.07   3.42
vp9_avg64_10bpp_neon:                  4.15  10.01   4.13   3.70
vp9_avg_8tap_smooth_4h_10bpp_neon:     3.38   6.22   3.41   4.75
vp9_avg_8tap_smooth_4hv_10bpp_neon:    3.89   6.39   4.30   5.32
vp9_avg_8tap_smooth_4v_10bpp_neon:     5.32   9.73   6.34   7.31
vp9_avg_8tap_smooth_8h_10bpp_neon:     4.45   9.40   4.68   6.87
vp9_avg_8tap_smooth_8hv_10bpp_neon:    4.64   8.91   5.44   6.47
vp9_avg_8tap_smooth_8v_10bpp_neon:     6.44  13.42   8.68   8.79
vp9_avg_8tap_smooth_64h_10bpp_neon:    4.66   9.02   4.84   7.71
vp9_avg_8tap_smooth_64hv_10bpp_neon:   4.61   9.14   4.92   7.10
vp9_avg_8tap_smooth_64v_10bpp_neon:    6.90  14.13   9.57  10.41
vp9_put4_10bpp_neon:                   1.33   1.46   2.09   1.33
vp9_put8_10bpp_neon:                   1.57   3.42   1.83   1.84
vp9_put16_10bpp_neon:                  1.55   4.78   2.17   1.89
vp9_put32_10bpp_neon:                  2.06   5.35   2.14   2.30
vp9_put64_10bpp_neon:                  3.00   2.41   1.95   1.66
vp9_put_8tap_smooth_4h_10bpp_neon:     3.19   5.81   3.31   4.63
vp9_put_8tap_smooth_4hv_10bpp_neon:    3.86   6.22   4.32   5.21
vp9_put_8tap_smooth_4v_10bpp_neon:     5.40   9.77   6.08   7.21
vp9_put_8tap_smooth_8h_10bpp_neon:     4.22   8.41   4.46   6.63
vp9_put_8tap_smooth_8hv_10bpp_neon:    4.56   8.51   5.39   6.25
vp9_put_8tap_smooth_8v_10bpp_neon:     6.60  12.43   8.17   8.89
vp9_put_8tap_smooth_64h_10bpp_neon:    4.41   8.59   4.54   7.49
vp9_put_8tap_smooth_64hv_10bpp_neon:   4.43   8.58   5.34   6.63
vp9_put_8tap_smooth_64v_10bpp_neon:    7.26  13.92   9.27  10.92

For the larger 8tap filters, the speedup vs C code is around 4-14x.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoarm: vp9dsp: Restructure the bpp checks
Martin Storsjö [Thu, 8 Dec 2016 21:23:44 +0000 (23:23 +0200)]
arm: vp9dsp: Restructure the bpp checks

This work is sponsored by, and copyright, Google.

This is more in line with how it will be extended for more bitdepths.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoMerge commit 'fd5e6a095f69495c558069315d6b36ea410c31fa'
Clément Bœsch [Tue, 24 Jan 2017 18:35:33 +0000 (19:35 +0100)]
Merge commit 'fd5e6a095f69495c558069315d6b36ea410c31fa'

* commit 'fd5e6a095f69495c558069315d6b36ea410c31fa':
  x86util: Extend SPLATW for avx2

This commit is a noop, see 1ace9573dce509e2b25165199c3b658667860ecf
(only libavutil/x86/x86util.asm chunk).

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoMerge commit '37961044c6'
Clément Bœsch [Tue, 24 Jan 2017 18:32:12 +0000 (19:32 +0100)]
Merge commit '37961044c6'

* commit '37961044c6':
  checkasm: arm: Ignore changes to bits 0-4 and 7 of FPSCR
  cheackasm/arm: remove NEON instructions from checkasm_checked_call_vfp
  checkasm: arm: Don't start new const blocks for each string

This merge is a noop: the changes were included in 9f1c81e5ec.

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoMerge commit '5ece6911010b3464d2fdacfa8031c15b5bd83418'
Clément Bœsch [Tue, 24 Jan 2017 18:29:35 +0000 (19:29 +0100)]
Merge commit '5ece6911010b3464d2fdacfa8031c15b5bd83418'

* commit '5ece6911010b3464d2fdacfa8031c15b5bd83418':
  apichanges: Fill in missing hashes and dates

This commit is a noop as we need to fill with our own hashes.

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoMerge commit 'facdfe40805559963b5875931af9406ed5ddcd5c'
Clément Bœsch [Tue, 24 Jan 2017 18:26:51 +0000 (19:26 +0100)]
Merge commit 'facdfe40805559963b5875931af9406ed5ddcd5c'

* commit 'facdfe40805559963b5875931af9406ed5ddcd5c':
  swscale: Add proper ff_ prefix to init functions

This commit is a noop, see e8c37160640952ab036e643156add9638c062536

I'm keeping our ff_sws_ vs ff_ since we use ff_sws_ in other places in
swscale.

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoMerge commit 'c0fd2fb27bebd1d5ab028e6df6bca9119d269122'
Clément Bœsch [Tue, 24 Jan 2017 18:23:48 +0000 (19:23 +0100)]
Merge commit 'c0fd2fb27bebd1d5ab028e6df6bca9119d269122'

* commit 'c0fd2fb27bebd1d5ab028e6df6bca9119d269122':
  swscale: Rename sws_context_class to ff_sws_context_class

This commit is a noop, see 8bfbc8c5e504ef3ae914499646d450987b419385

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoMerge commit '71a0472114574993df7035f4de9aa007e03817b8'
Clément Bœsch [Tue, 24 Jan 2017 18:17:38 +0000 (19:17 +0100)]
Merge commit '71a0472114574993df7035f4de9aa007e03817b8'

* commit '71a0472114574993df7035f4de9aa007e03817b8':
  checkasm: arm: report the first clobbered register in checkasm_checked_call

Also includes 446353ea1859aeed93e4, and 37961044c6 to avoid breaking
too much stuff.

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoavcodec/mjpegdec: Check remaining bitstream in ljpeg_decode_yuv_scan()
Michael Niedermayer [Tue, 24 Jan 2017 15:13:05 +0000 (16:13 +0100)]
avcodec/mjpegdec: Check remaining bitstream in ljpeg_decode_yuv_scan()

Fixes timeout
Fixes: 445/fuzz-3-ffmpeg_VIDEO_AV_CODEC_ID_MJPEG_fuzzer
Fixes: 456/fuzz-2-ffmpeg_VIDEO_AV_CODEC_ID_JPEGLS_fuzzer

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoMerge commit 'a8fce24b9c5a87187f5bd864b18f5b3e575f8c3d'
Clément Bœsch [Tue, 24 Jan 2017 15:34:00 +0000 (16:34 +0100)]
Merge commit 'a8fce24b9c5a87187f5bd864b18f5b3e575f8c3d'

* commit 'a8fce24b9c5a87187f5bd864b18f5b3e575f8c3d':
  avconv_dxva2: support HEVC Main10 decoding

This commit is a noop, see 1ec14612a5bd3506ffd755f8d42db776bfa40ae8

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoMerge commit '33f6690eb4e21acc4b581688eecfc4cc5ea9515e'
Clément Bœsch [Tue, 24 Jan 2017 15:31:10 +0000 (16:31 +0100)]
Merge commit '33f6690eb4e21acc4b581688eecfc4cc5ea9515e'

* commit '33f6690eb4e21acc4b581688eecfc4cc5ea9515e':
  hevc: offer DXVA2 for 10bit 420

This commit is a noop, see ccb94789e2968329947f1c2e00d019f387f9c409

Merged-by: Clément Bœsch <u@pkh.me>
2 years agoMerge commit '38efff92f1ef81f3de20ff0460ec7b70c253d714'
Clément Bœsch [Tue, 17 Jan 2017 14:26:38 +0000 (15:26 +0100)]
Merge commit '38efff92f1ef81f3de20ff0460ec7b70c253d714'

* commit '38efff92f1ef81f3de20ff0460ec7b70c253d714':
  FATE: add a test for H.264 with two fields per packet
  h264: fix decoding multiple fields per packet with slice threads

This merge includes two commits because the FATE test was useful in
order to make proper testing.

The merge gets rid of the now unused:
- SLICE_SINGLETHREAD and SLICE_SKIPED macros
- max_contexts
- "again" label in decode_nal_units()

This commit also includes the fix from d3e4d406b.

Thanks to wm4 and Michael Niedermayer for their testing.

Merged-by: Clément Bœsch <u@pkh.me>
Merged-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2 years agoavformat/hlsenc: improve to write m3u8 head block
Steven Liu [Tue, 24 Jan 2017 14:25:29 +0000 (22:25 +0800)]
avformat/hlsenc: improve to write m3u8 head block

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>