ffmpeg.git
2 years agoavcodec/prosumer: Rename do_shift() to vertical_predict()
Michael Niedermayer [Sat, 22 Sep 2018 16:14:04 +0000 (18:14 +0200)]
avcodec/prosumer: Rename do_shift() to vertical_predict()

It seems what this function does is a vertical prediction filter, thus
the new name should improve understanding.

rename the related table_b too

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/prosumer: mark src as const
Michael Niedermayer [Sat, 22 Sep 2018 16:14:03 +0000 (18:14 +0200)]
avcodec/prosumer: mark src as const

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/prosumer: Only scan as many elements as matter in fill_elements()
Michael Niedermayer [Sat, 22 Sep 2018 16:14:02 +0000 (18:14 +0200)]
avcodec/prosumer: Only scan as many elements as matter in fill_elements()

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/prosumer: factorize e0 setting out
Michael Niedermayer [Sat, 22 Sep 2018 16:14:01 +0000 (18:14 +0200)]
avcodec/prosumer: factorize e0 setting out

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/prosumer: Use 16bit instead of 32 for table
Michael Niedermayer [Sat, 22 Sep 2018 16:14:00 +0000 (18:14 +0200)]
avcodec/prosumer: Use 16bit instead of 32 for table

Simplifies code and reduces needed memory

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/prosumer: Factorize the 2 loops in fill_elements()
Michael Niedermayer [Sat, 22 Sep 2018 16:13:59 +0000 (18:13 +0200)]
avcodec/prosumer: Factorize the 2 loops in fill_elements()

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/prosumer: clean up loop end code in fill_elements()
Michael Niedermayer [Sat, 22 Sep 2018 16:13:58 +0000 (18:13 +0200)]
avcodec/prosumer: clean up loop end code in fill_elements()

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/prosumer: Remove dead code
Michael Niedermayer [Sat, 22 Sep 2018 16:13:57 +0000 (18:13 +0200)]
avcodec/prosumer: Remove dead code

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter: document mono option of silencedetect filter
Paul B Mahol [Sun, 23 Sep 2018 21:10:51 +0000 (23:10 +0200)]
avfilter: document mono option of silencedetect filter

Also provide shorter option, and reorder options in documentation.

2 years agoavdevice/decklink: add support for selecting devices based on their unique ID
Marton Balint [Thu, 20 Sep 2018 21:56:00 +0000 (23:56 +0200)]
avdevice/decklink: add support for selecting devices based on their unique ID

Also bump the API version requirement to 10.9.5, because on olders versions
there were some reports of crashes using the undocumented, yet available
BMDDeckLinkDeviceHandle.

Signed-off-by: Marton Balint <cus@passwd.hu>
2 years agoavcodec/vaapi: free slice_buffers when decoding failed
Linjie Fu [Wed, 19 Sep 2018 02:01:23 +0000 (10:01 +0800)]
avcodec/vaapi: free slice_buffers when decoding failed

If vaEndPicture() failed in ff_vaapi_decode_issue(), free
the pic->slice_buffers.

Fixes the memory leak issue in ticket #7385

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
2 years agodoc/encoders: Document -sei option to hevc_vaapi
Mark Thompson [Tue, 18 Sep 2018 22:31:06 +0000 (23:31 +0100)]
doc/encoders: Document -sei option to hevc_vaapi

2 years agovaapi_encode_h265: Set level based on stream if not set by user
Mark Thompson [Tue, 18 Sep 2018 22:31:05 +0000 (23:31 +0100)]
vaapi_encode_h265: Set level based on stream if not set by user

Sets the level based on the stream properties if it is not explicitly
set by the user.  Also add a tier option to set general_tier_flag, since
that affects the level choice.

2 years agolavc/h265: Add some common code for profile/tier/level handling
Mark Thompson [Tue, 18 Sep 2018 22:31:04 +0000 (23:31 +0100)]
lavc/h265: Add some common code for profile/tier/level handling

Adds support for determining for level limits, including mapping PTL
blocks to profiles to check profile-dependent level limits.

2 years agovaapi_encode_h265: Improve profile support
Mark Thompson [Tue, 18 Sep 2018 22:31:03 +0000 (23:31 +0100)]
vaapi_encode_h265: Improve profile support

Set profile compatibility/constraint flags properly (including the
constraint flags used for RExt profiles, as all streams we can currently
generate are RExt-compatible), and use that to add support for the "Main
Intra" and "Main 10 Intra" RExt subprofiles (for which we can re-use the
existing Main and Main10 VAAPI profiles).

2 years agocbs_h264: Infer default VUI values if VUI parameters are not present
Mark Thompson [Tue, 18 Sep 2018 22:31:02 +0000 (23:31 +0100)]
cbs_h264: Infer default VUI values if VUI parameters are not present

2 years agocbs_h264: Fix profile typo
Mark Thompson [Tue, 18 Sep 2018 22:31:01 +0000 (23:31 +0100)]
cbs_h264: Fix profile typo

2 years agocbs_h264: Fix default value for max mv lengths
Mark Thompson [Tue, 18 Sep 2018 22:31:00 +0000 (23:31 +0100)]
cbs_h264: Fix default value for max mv lengths

A recent version of the standard changed the max and default to 15, from
16 in older versions.  This updates the default to 15 to match, but the
max stays as 16 so that we don't reject older streams.

2 years agoh264_metadata: Add option to set the level of the stream
Mark Thompson [Tue, 18 Sep 2018 22:30:59 +0000 (23:30 +0100)]
h264_metadata: Add option to set the level of the stream

2 years agovaapi_encode_h264: Set level based on stream if not set by user
Mark Thompson [Tue, 18 Sep 2018 22:30:58 +0000 (23:30 +0100)]
vaapi_encode_h264: Set level based on stream if not set by user

2 years agolavc/h264: Add common code for level handling
Mark Thompson [Tue, 18 Sep 2018 22:30:57 +0000 (23:30 +0100)]
lavc/h264: Add common code for level handling

Including a unit test.

2 years agohwcontext_vaapi: Improve format mapping
Mark Thompson [Tue, 18 Sep 2018 22:30:56 +0000 (23:30 +0100)]
hwcontext_vaapi: Improve format mapping

Give the entries in the VAAPI format map table an explicit type and add
functions to do the necessary lookups.  Add another field to this table
indicating whether the chroma planes are swapped (as in YV12), and use
that rather than explicit comparisons where swapping is needed.

2 years agovaapi_encode_mjpeg: Mark as intra-only
Mark Thompson [Tue, 18 Sep 2018 22:30:55 +0000 (23:30 +0100)]
vaapi_encode_mjpeg: Mark as intra-only

2 years agovaapi_encode_mjpeg: Use CBS to store parameters and write headers
Mark Thompson [Tue, 18 Sep 2018 22:30:54 +0000 (23:30 +0100)]
vaapi_encode_mjpeg: Use CBS to store parameters and write headers

Also adds greyscale, 4:2:2, 4:4:4 and RGB support.

2 years agolavc/cbs: Add JPEG support
Mark Thompson [Tue, 18 Sep 2018 22:30:53 +0000 (23:30 +0100)]
lavc/cbs: Add JPEG support

2 years agohwcontext_vaapi: Improve logging around quirk detection
Mark Thompson [Tue, 18 Sep 2018 22:30:52 +0000 (23:30 +0100)]
hwcontext_vaapi: Improve logging around quirk detection

Clarify that the list is the naughty list, and therefore being on it is
not desirable.  The i965 driver does not need to be on the list after
version 2.0 (when the standard parameter buffer rendering behaviour was
changed).

2 years agodoc/encoders: Add missing options to VAAPI encoders
Mark Thompson [Tue, 18 Sep 2018 22:30:51 +0000 (23:30 +0100)]
doc/encoders: Add missing options to VAAPI encoders

2 years agovaapi_encode_h26[45]: Make the AUD option a boolean
Mark Thompson [Tue, 18 Sep 2018 22:30:50 +0000 (23:30 +0100)]
vaapi_encode_h26[45]: Make the AUD option a boolean

2 years agovaapi_encode_h264: Properly set constraint flags
Mark Thompson [Tue, 18 Sep 2018 22:30:49 +0000 (23:30 +0100)]
vaapi_encode_h264: Properly set constraint flags

constraint_set1_flag should be set for constrained baseline and main
profiles, because the stream conforms to main profile.

constraint_set3_flag should be set for high profile when the stream
is intra-only.

constraint_set4_flag should always be set for main and high profiles
because interlaced encoding is not supported.

constraint_set5_flag should be set for main and high profiles when
B-frames are not used.

Also fix the setting of max_num_ref_frames - use the gop_size value
to check for intra-only rather than the constraint flag (which is not
necessarily set).

2 years agovaapi_encode: Clean up the packed header configuration
Mark Thompson [Tue, 18 Sep 2018 22:30:48 +0000 (23:30 +0100)]
vaapi_encode: Clean up the packed header configuration

Add a larger warning more clearly explaining the consequences of missing
packed header support in the driver.  Also only write the extradata if the
user actually requests it via the GLOBAL_HEADER flag.

2 years agovaapi_encode: Clean up the GOP structure configuration
Mark Thompson [Tue, 18 Sep 2018 22:30:47 +0000 (23:30 +0100)]
vaapi_encode: Clean up the GOP structure configuration

Choose what types of reference frames will be used based on what types
are available, and make the intra-only mode explicit (GOP size one,
which must be used for MJPEG).

2 years agovaapi_encode: Add support for max QP in rate control
Mark Thompson [Tue, 18 Sep 2018 22:30:46 +0000 (23:30 +0100)]
vaapi_encode: Add support for max QP in rate control

This was added in libva 2.1.0 (VAAPI 1.1.0).  Use AVCodecContext.qmax,
matching the existing behaviour for qmin, and clean up the defaults so
that we only pass min/max when explicitly set.

2 years agovaapi_encode: Clean up rate control configuration
Mark Thompson [Tue, 18 Sep 2018 22:30:45 +0000 (23:30 +0100)]
vaapi_encode: Clean up rate control configuration

Query which modes are supported and select between VBR and CBR based
on that - this removes all of the codec-specific rate control mode
selection code.

2 years agovaapi_encode: Always reapply global parameters after the sequence header
Mark Thompson [Tue, 18 Sep 2018 22:30:44 +0000 (23:30 +0100)]
vaapi_encode: Always reapply global parameters after the sequence header

The codec sequence headers may contain fields which can overwrite the
fine parameters given in the specific settings (e.g. a crude bitrate
value vs. the max-rate / target-percentage / etc. values in
VAEncMiscParameterRateControl).  Always reapply all global parameters
after a sequence header to avoid this causing problems.

2 years agovaapi_encode: Clean up the encode quality configuration
Mark Thompson [Tue, 18 Sep 2018 22:30:43 +0000 (23:30 +0100)]
vaapi_encode: Clean up the encode quality configuration

2 years agovaapi_encode_mpeg2: Add options
Mark Thompson [Tue, 18 Sep 2018 22:30:42 +0000 (23:30 +0100)]
vaapi_encode_mpeg2: Add options

Include the common options, and also named options for setting the profile
and level.

2 years agovaapi_encode: Add common options between all encoders
Mark Thompson [Tue, 18 Sep 2018 22:30:41 +0000 (23:30 +0100)]
vaapi_encode: Add common options between all encoders

The only common option here is low_power - it was previously supported
for H.264 only, that specific option is removed.

2 years agovaapi_encode: Choose profiles dynamically
Mark Thompson [Tue, 18 Sep 2018 22:30:40 +0000 (23:30 +0100)]
vaapi_encode: Choose profiles dynamically

Previously there was one fixed choice for each codec (e.g. H.265 -> Main
profile), and using anything else then required an explicit option from
the user.  This changes to selecting the profile based on the input format
and the set of profiles actually supported by the driver (e.g. P010 input
will choose Main 10 profile for H.265 if the driver supports it).

The entrypoint and render target format are also chosen dynamically in the
same way, removing those explicit selections from the per-codec code.

2 years agoconfigure: Use pkgconfig for VAAPI
Mark Thompson [Tue, 18 Sep 2018 22:30:39 +0000 (23:30 +0100)]
configure: Use pkgconfig for VAAPI

Set the minimum version to 0.35.0 (libva 1.3.0) and remove redundant
configure tests.  This also allows the proprietary libmfx fork of libva,
which always shows the version number 0.99.0 (independent of the actual
version).

2 years agoavcodec: add native iLBC decoder
Paul B Mahol [Sat, 4 Feb 2017 20:11:48 +0000 (21:11 +0100)]
avcodec: add native iLBC decoder

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agofate/mov : use do_md5sum for mov-faststart-4gb-overflow test
Martin Vignali [Thu, 20 Sep 2018 16:54:20 +0000 (18:54 +0200)]
fate/mov : use do_md5sum for mov-faststart-4gb-overflow test

fix test on osx

based on suggestion by Hendrik Leppkes

2 years agoavcodec/ac3dec: Fix shift signedness in mask creation
Michael Niedermayer [Fri, 21 Sep 2018 00:36:50 +0000 (02:36 +0200)]
avcodec/ac3dec: Fix shift signedness in mask creation

Fixes: 9924/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_EAC3_fuzzer-5473421772193792
Fixes: left shift of 1 by 63 places cannot be represented in type 'long long'

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/eac3dec: Check that channel_map does not contain more than EAC3_MAX_CHANNELS
Michael Niedermayer [Wed, 27 Jun 2018 12:43:39 +0000 (14:43 +0200)]
avcodec/eac3dec: Check that channel_map does not contain more than EAC3_MAX_CHANNELS

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoRevert "avformat/matroskaenc: write CodecPrivate in WebM"
James Almer [Fri, 21 Sep 2018 21:22:05 +0000 (18:22 -0300)]
Revert "avformat/matroskaenc: write CodecPrivate in WebM"

This reverts commit 4755b6e6d194b0a0fb72957cd3dc0eaf7b2375f7.

This change was not necessary. CodecPrivate was being written to WebM
for codecs like AV1 already.

2 years agoavformat/matroskaenc: write CodecPrivate in WebM
James Almer [Fri, 21 Sep 2018 19:55:35 +0000 (16:55 -0300)]
avformat/matroskaenc: write CodecPrivate in WebM

This is now needed for AV1.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agolavf/matroska: Allow AV1 in WebM
Kagami Hiiragi [Mon, 20 Aug 2018 16:44:40 +0000 (19:44 +0300)]
lavf/matroska: Allow AV1 in WebM

Nothing prevents it to work except this check. AV1 is already supported
by Matroska muxer and aomenc produces WebM/AV1 files as well.

Signed-off-by: Kagami Hiiragi <kagami@genshiken.org>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/vf_sr: Fix coverity CID 1439584
Pedro Arthur [Thu, 20 Sep 2018 14:48:20 +0000 (11:48 -0300)]
avfilter/vf_sr: Fix coverity CID 1439584

2 years agolavc/avpacket: Add missing conversions from side data enum to name.
Jun Zhao [Mon, 17 Sep 2018 14:27:31 +0000 (22:27 +0800)]
lavc/avpacket: Add missing conversions from side data enum to name.

Add missing conversions from side data enum to name.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
2 years agolavu/frame: Add missing conversions from side data enum to name
Jun Zhao [Mon, 17 Sep 2018 14:22:01 +0000 (22:22 +0800)]
lavu/frame: Add missing conversions from side data enum to name

Add missing conversions from side data enum to name.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
2 years agodoc/examples/vaapi_transcode: Fix the typo
Michael Niedermayer [Wed, 19 Sep 2018 16:05:31 +0000 (18:05 +0200)]
doc/examples/vaapi_transcode: Fix the typo

Reviewed-by: "mypopy@gmail.com" <mypopy@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavformat/dashenc: Reduce Muxing overhead for chunked CMAF format
Karthick Jeyapal [Fri, 14 Sep 2018 10:17:20 +0000 (15:47 +0530)]
avformat/dashenc: Reduce Muxing overhead for chunked CMAF format

SIDX atom being inserted for every MOOF atom increases the muxing overhead.
This behaviour can be disabled for chunked CMAF format by enabling Global SIDX option of mov muxer.

2 years agoavcodec/dvdsubdec: Sanity check len in decode_rle()
Michael Niedermayer [Thu, 13 Sep 2018 01:33:50 +0000 (03:33 +0200)]
avcodec/dvdsubdec: Sanity check len in decode_rle()

Fixes: Timeout
Fixes: 9778/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DVDSUB_fuzzer-5186007132536832

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/mpeg4videodec: Fix undefined shift in get_amv()
Michael Niedermayer [Fri, 14 Sep 2018 22:20:38 +0000 (00:20 +0200)]
avcodec/mpeg4videodec: Fix undefined shift in get_amv()

Fixes: runtime error: shift exponent -1 is negative
Fixes: 9938/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-5653783529914368

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/mpeg4videodec: Check rice_prefix_code
Michael Niedermayer [Fri, 14 Sep 2018 22:09:45 +0000 (00:09 +0200)]
avcodec/mpeg4videodec: Check rice_prefix_code

Fixes: out of array read
Fixes: 10064/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-5766801384800256
Fixes: 10225/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-5071833448054784
Fixes: 10261/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MPEG4_fuzzer-5115048024866816

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/pcx: Check for end of input in pcx_rle_decode() and propagate error
Michael Niedermayer [Sat, 15 Sep 2018 20:57:59 +0000 (22:57 +0200)]
avcodec/pcx: Check for end of input in pcx_rle_decode() and propagate error

Fixes: Timeout
Fixes: 10279/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PCX_fuzzer-5729311395414016

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/av1_parse: Fix bistream typo
Michael Niedermayer [Wed, 19 Sep 2018 16:05:24 +0000 (18:05 +0200)]
avcodec/av1_parse: Fix bistream typo

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec: [loongson] optimize get_cabac_inline.
Shiyou Yin [Tue, 18 Sep 2018 02:59:41 +0000 (10:59 +0800)]
avcodec: [loongson] optimize get_cabac_inline.

This optimization improved h264 decoding performance about 4%(from 74fps to 77fps, tested on loongson 3A3000).

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavfilter/dnn_backend_native: fix memleak
Zhao Zhili [Wed, 19 Sep 2018 02:55:13 +0000 (10:55 +0800)]
avfilter/dnn_backend_native: fix memleak

Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2 years agoavfilter/dnn_backend_native: fix invalid free
Zhao Zhili [Wed, 19 Sep 2018 02:55:12 +0000 (10:55 +0800)]
avfilter/dnn_backend_native: fix invalid free

Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2 years agoavfilter/vf_sr: fix read out of bounds
Zhao Zhili [Wed, 19 Sep 2018 02:55:11 +0000 (10:55 +0800)]
avfilter/vf_sr: fix read out of bounds

Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2 years agoCosmetics: Reindent after last commit.
Carl Eugen Hoyos [Wed, 19 Sep 2018 16:14:40 +0000 (18:14 +0200)]
Cosmetics: Reindent after last commit.

2 years agolavd/dshow: Interpret negative height as bottom-down frame.
Carl Eugen Hoyos [Mon, 17 Sep 2018 22:16:42 +0000 (00:16 +0200)]
lavd/dshow: Interpret negative height as bottom-down frame.

Fixes ticket #7436.

2 years agolavf/webvttenc: Always write hours in the timestamp with two characters.
Carl Eugen Hoyos [Mon, 17 Sep 2018 16:20:05 +0000 (18:20 +0200)]
lavf/webvttenc: Always write hours in the timestamp with two characters.

Fixes ticket #7442.

Reviewed-by: Reto Kromer
2 years agoavcodec/zmbv: Check that the decompressed data size is correct
Michael Niedermayer [Mon, 17 Sep 2018 22:28:37 +0000 (00:28 +0200)]
avcodec/zmbv: Check that the decompressed data size is correct

This checks the value exactly for intra frames and checks it against a
minimum for inter frames as they can be variable.

Fixes: Timeout
Fixes: 10182/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ZMBV_fuzzer-6245951174344704

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/zmbv: Update decomp_len in raw frames
Michael Niedermayer [Mon, 17 Sep 2018 19:33:59 +0000 (21:33 +0200)]
avcodec/zmbv: Update decomp_len in raw frames

decomp_len is used in raw frames, so it should not be left at the value from
whatever was decoded previously (which may be any other frame)

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mips: [loongson] refine ff_vc1_inv_trans_8x8_mmi.
Shiyou Yin [Mon, 17 Sep 2018 09:20:28 +0000 (17:20 +0800)]
avcodec/mips: [loongson] refine ff_vc1_inv_trans_8x8_mmi.

Combined 1st and 2nd loop into one inline asm in function ff_vc1_inv_trans_8x8_mmi to
reduce memory operation, and made some small optimization in ff_vc1_inv_trans_4x8_mmi.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoMerge commit 'a2041a6522642859ce64af1c618d6fb90a50d4af'
James Almer [Tue, 18 Sep 2018 16:28:05 +0000 (13:28 -0300)]
Merge commit 'a2041a6522642859ce64af1c618d6fb90a50d4af'

* commit 'a2041a6522642859ce64af1c618d6fb90a50d4af':
  qsvenc: AV_PIX_FMT_QSV path should release frame

Merged-by: James Almer <jamrial@gmail.com>
2 years agoqsvenc: AV_PIX_FMT_QSV path should release frame
Maxym Dmytrychenko [Tue, 18 Sep 2018 07:47:52 +0000 (09:47 +0200)]
qsvenc: AV_PIX_FMT_QSV path should release frame

Fixes high memory usage and prevents over allocation of the frames via
proper unref.

Can be checked as:
-hwaccel qsv -c:v h264_qsv -i ../h264-conformance/CANL2_Sony_E.jsv -c:v
h264_qsv -b:v 2000k -y qsv.mp4

2 years agolibavfilter: Removes stored DNN models. Adds support for native backend model file...
Sergey Lavrushkin [Thu, 6 Sep 2018 11:33:06 +0000 (14:33 +0300)]
libavfilter: Removes stored DNN models. Adds support for native backend model file format in tf backend.

Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2 years agolavc/libxavs2: remove nonexistent parameters
hwren [Wed, 12 Sep 2018 07:54:51 +0000 (15:54 +0800)]
lavc/libxavs2: remove nonexistent parameters

Signed-off-by: hwren <hwrenx@126.com>
2 years agolavc/libdavs2: fix error return codes
hwren [Wed, 12 Sep 2018 05:53:08 +0000 (13:53 +0800)]
lavc/libdavs2: fix error return codes

Signed-off-by: hwren <hwrenx@126.com>
2 years agolavc/libdavs2: remove unused header files
hwren [Wed, 12 Sep 2018 05:53:07 +0000 (13:53 +0800)]
lavc/libdavs2: remove unused header files

Signed-off-by: hwren <hwrenx@126.com>
2 years agoavformat/dashenc: Format VP9 profile as decimal instead of Hexadecimal
James Almer [Mon, 17 Sep 2018 17:29:46 +0000 (14:29 -0300)]
avformat/dashenc: Format VP9 profile as decimal instead of Hexadecimal

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavformat/dashenc: Format VP9 bitdepth as decimal instead of Hexadecimal
Karthick Jeyapal [Mon, 17 Sep 2018 08:03:49 +0000 (13:33 +0530)]
avformat/dashenc: Format VP9 bitdepth as decimal instead of Hexadecimal

For example bitdepth should be printed as 10 instead of 0A. Thanks to Hendrik Leppkes for pointing this out

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavformat/dashenc: Format VP9 level as decimal instead of hexadecimal
Karthick Jeyapal [Mon, 17 Sep 2018 08:03:48 +0000 (13:33 +0530)]
avformat/dashenc: Format VP9 level as decimal instead of hexadecimal

Commit ID 63c69d51c7532fb6c2460076329b50ec51a0f290 fixed the bug in vpcc, get_vp9_level() function, causing this change.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/vf_colorspace: fix typo in comment
Paul B Mahol [Mon, 17 Sep 2018 10:51:59 +0000 (12:51 +0200)]
avfilter/vf_colorspace: fix typo in comment

2 years agodoc/filters: update astats description
Paul B Mahol [Mon, 17 Sep 2018 10:34:57 +0000 (12:34 +0200)]
doc/filters: update astats description

2 years agoavfilter/af_astats: count zero crossings
Paul B Mahol [Wed, 12 Sep 2018 12:54:22 +0000 (14:54 +0200)]
avfilter/af_astats: count zero crossings

2 years agoffmpeg: block output == input for files
Gyan Doshi [Sun, 26 Aug 2018 05:52:50 +0000 (11:22 +0530)]
ffmpeg: block output == input for files

Fixes #4655

2 years agoavfilter: add acrossover filter
Paul B Mahol [Thu, 31 May 2018 15:24:23 +0000 (17:24 +0200)]
avfilter: add acrossover filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
2 years agoavformat/vpcc: fix values in VP9 level detection heuristics
James Almer [Tue, 28 Aug 2018 01:56:14 +0000 (22:56 -0300)]
avformat/vpcc: fix values in VP9 level detection heuristics

The levels are stored as decimal values, not hexadecimal.

Reviewed-by: James Zern <jzern@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/avf_aphasemeter: check return value of ff_insert_outpad()
Paul B Mahol [Sat, 15 Sep 2018 19:51:59 +0000 (21:51 +0200)]
avfilter/avf_aphasemeter: check return value of ff_insert_outpad()

2 years agoavfilter/f_ebur128: check return value of ff_insert_outpad()
Paul B Mahol [Sat, 15 Sep 2018 19:47:48 +0000 (21:47 +0200)]
avfilter/f_ebur128: check return value of ff_insert_outpad()

2 years agoavfilter/af_anequalizer: check return value of ff_insert_outpad()
Paul B Mahol [Sat, 15 Sep 2018 19:44:13 +0000 (21:44 +0200)]
avfilter/af_anequalizer: check return value of ff_insert_outpad()

2 years agoavfilter/af_afir: switch to activate
Paul B Mahol [Sat, 15 Sep 2018 18:35:08 +0000 (20:35 +0200)]
avfilter/af_afir: switch to activate

2 years agoavfilter/af_afir: check return value of ff_insert_outpad()
Paul B Mahol [Sat, 15 Sep 2018 18:03:40 +0000 (20:03 +0200)]
avfilter/af_afir: check return value of ff_insert_outpad()

2 years agoavcodec/shorten: Fix bitstream end check in read_header()
Michael Niedermayer [Sat, 15 Sep 2018 00:08:20 +0000 (02:08 +0200)]
avcodec/shorten: Fix bitstream end check in read_header()

Fixes: Timeout
Fixes: 9961/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SHORTEN_fuzzer-5687856176562176

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/dvdsubdec: Avoid branch in decode_run_8bit()
Michael Niedermayer [Thu, 13 Sep 2018 02:24:49 +0000 (04:24 +0200)]
avcodec/dvdsubdec: Avoid branch in decode_run_8bit()

Speed improvment 35.5 sec -> 34.7sec

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agolibavformat/mxfenc: fix dnxhr ul typo
Jason Stevens [Thu, 13 Sep 2018 00:21:52 +0000 (17:21 -0700)]
libavformat/mxfenc: fix dnxhr ul typo

byte 8 of dnxhr codec ul should be 0x0D

Signed-off-by: Jason Stevens <jay@wizardofthenet.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec: add missing mpegvideo dependencies to SpeedHQ decoder
James Almer [Sat, 15 Sep 2018 14:26:51 +0000 (11:26 -0300)]
avcodec: add missing mpegvideo dependencies to SpeedHQ decoder

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavfilter/avf_showspectrum: add magma color map
Paul B Mahol [Sat, 15 Sep 2018 12:01:03 +0000 (14:01 +0200)]
avfilter/avf_showspectrum: add magma color map

2 years agoconfigure: add missing avcodec dependency to avfilter when bm3d filter is enabled
James Almer [Sat, 15 Sep 2018 00:17:04 +0000 (21:17 -0300)]
configure: add missing avcodec dependency to avfilter when bm3d filter is enabled

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoavdevice/pulse_audio_dec: set channel map
Paul B Mahol [Wed, 12 Sep 2018 20:17:52 +0000 (22:17 +0200)]
avdevice/pulse_audio_dec: set channel map

This fixes opening devices with >6 channels.

2 years agoFix typos
Michael Bunk [Thu, 30 Aug 2018 06:56:18 +0000 (08:56 +0200)]
Fix typos

2 years agolavf/davs2: Do not mix declarations and code.
Carl Eugen Hoyos [Fri, 14 Sep 2018 18:55:51 +0000 (20:55 +0200)]
lavf/davs2: Do not mix declarations and code.

Fixes the following warning:
libavformat/davs2.c:39:5: warning: ISO C90 forbids mixed declarations and code

2 years agox86/float_dsp: add ff_vector_dmul_{sse2,avx}
James Almer [Thu, 13 Sep 2018 13:04:46 +0000 (10:04 -0300)]
x86/float_dsp: add ff_vector_dmul_{sse2,avx}

~3x to 5x faster.

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agocheckasm/float_dsp: add test for vector_dmul
James Almer [Thu, 13 Sep 2018 13:03:46 +0000 (10:03 -0300)]
checkasm/float_dsp: add test for vector_dmul

Signed-off-by: James Almer <jamrial@gmail.com>
2 years agoMerge commit '2a9e1c122eed66be1b26b747342b848300b226c7'
James Almer [Fri, 14 Sep 2018 02:16:18 +0000 (23:16 -0300)]
Merge commit '2a9e1c122eed66be1b26b747342b848300b226c7'

* commit '2a9e1c122eed66be1b26b747342b848300b226c7':
  libfdk-aac: Don't use defined() in a #define

Merged-by: James Almer <jamrial@gmail.com>
2 years agolavfi/silencedetect: fix spelling
Tristan Matthews [Mon, 10 Sep 2018 19:07:15 +0000 (15:07 -0400)]
lavfi/silencedetect: fix spelling

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2 years agoavcodec/mips: [loongson] fix bug of svq3-watermark failed in fate test.
Shiyou Yin [Thu, 13 Sep 2018 03:04:05 +0000 (11:04 +0800)]
avcodec/mips: [loongson] fix bug of svq3-watermark failed in fate test.

Failed case: svq3-watermark
When minimum loop count of following functions are greater than parameter h passed to them, svq3-watermark failed.
1. ff_put_pixels4_8_mmi
2. ff_avg_pixels4_8_mmi
3. ff_put_pixels4_l2_8_mmi
4. ff_avg_pixels4_l2_8_mmi

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>