ffmpeg.git
3 months agoRevert "lavf/dashenc: Write media trailers when DASH trailer is written."
Karthick J [Mon, 3 Dec 2018 05:58:18 +0000 (11:28 +0530)]
Revert "lavf/dashenc: Write media trailers when DASH trailer is written."

This reverts commit e444b3b184f36e3c97bb3489822f6b05ccb848a8.
Causing build error due to rebasing. Sorry for about it.

3 months agolavf/dashenc: Use avpriv_io_delete to delete files.
Andrey Semashev [Fri, 30 Nov 2018 09:03:45 +0000 (12:03 +0300)]
lavf/dashenc: Use avpriv_io_delete to delete files.

This fixes incorrect handling of file pseudo-URIs (i.e. when the filename
starts with "file:").

3 months agolavf/dashenc: Write media trailers when DASH trailer is written.
Andrey Semashev [Thu, 29 Nov 2018 18:28:32 +0000 (21:28 +0300)]
lavf/dashenc: Write media trailers when DASH trailer is written.

This commit ensures that all (potentially, long) filesystem activity is
performed when the user calls av_write_trailer on the DASH libavformat
context, not when freeing the context. Also, this defers media segment
deletion until after the media trailers are written.

3 months agoavformat/dashenc: Added proper logging when io_open fails for write
Karthick J [Fri, 30 Nov 2018 05:20:09 +0000 (10:50 +0530)]
avformat/dashenc: Added proper logging when io_open fails for write

3 months agolavf: add transpose_opencl filter
Ruiling Song [Wed, 28 Nov 2018 02:27:38 +0000 (10:27 +0800)]
lavf: add transpose_opencl filter

Signed-off-by: Ruiling Song <ruiling.song@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
3 months agohwcontext_opencl: Use correct function to enumerate devices
Mark Thompson [Wed, 28 Nov 2018 00:16:30 +0000 (00:16 +0000)]
hwcontext_opencl: Use correct function to enumerate devices

Also assert that all required functions are present.

3 months agoconfigure: Avoid use of nonstandard features of sed
Mark Thompson [Sun, 2 Dec 2018 23:31:50 +0000 (23:31 +0000)]
configure: Avoid use of nonstandard features of sed

Standard sed does not support EREs.

Fixes #7310.

3 months agotrace_headers: Update documentation
Andreas Rheinhardt [Sat, 1 Dec 2018 07:52:55 +0000 (08:52 +0100)]
trace_headers: Update documentation

It also supports AV1 and (M)JPEG.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
3 months agocbs_h265: Fix Time Code SEI syntax
Andreas Rheinhardt [Sat, 1 Dec 2018 07:52:54 +0000 (08:52 +0100)]
cbs_h265: Fix Time Code SEI syntax

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
3 months agoForce aix nm to work on 32 and 64 bit binaries by default.
Carl Eugen Hoyos [Sun, 2 Dec 2018 14:18:46 +0000 (15:18 +0100)]
Force aix nm to work on 32 and 64 bit binaries by default.

3 months agoavformat/dashenc: Added an option to ignore io errors
kjeyapal@akamai.com [Wed, 28 Nov 2018 17:06:17 +0000 (22:36 +0530)]
avformat/dashenc: Added an option to ignore io errors

When dashenc has to run for long duration(say 24x7 live stream), one can enable this option to ignore the io failure of few segment's upload due to an intermittent network issues.
When the network connection recovers dashenc will continue with the upload of the current segments, leading to the recovery of the stream.

3 months agoavformat/dashenc: Handled the error from dashenc_io_open()
kjeyapal@akamai.com [Wed, 28 Nov 2018 17:06:16 +0000 (22:36 +0530)]
avformat/dashenc: Handled the error from dashenc_io_open()

3 months agolavf/dashenc: Delete HLS manifests on trailer writing if remove_at_exit is set.
Andrey Semashev [Wed, 28 Nov 2018 11:36:09 +0000 (14:36 +0300)]
lavf/dashenc: Delete HLS manifests on trailer writing if remove_at_exit is set.

This fixes HLS manifests being left behind if remove_at_exit is set.

3 months agolavf/dashenc: Don't put non-mp4 streams in HLS manifests.
Andrey Semashev [Wed, 28 Nov 2018 11:36:08 +0000 (14:36 +0300)]
lavf/dashenc: Don't put non-mp4 streams in HLS manifests.

The only native HLS implementation in the wild (Safari browser) doesn't
support WebM. And at least some MSE-based players (e.g. shaka-player)
cannot handle WebM media segments when playing HLS. So just skip non-mp4
streams from HLS manifests. Note that such streams will still be described
by the DASH manifest and therefore consumed by players supporting DASH.

3 months agotests/ref/fate/vc1test_smm0005: Add a newline.
Carl Eugen Hoyos [Sun, 2 Dec 2018 13:17:53 +0000 (14:17 +0100)]
tests/ref/fate/vc1test_smm0005: Add a newline.

Fixes fate-pixelutils on aix.

3 months agoavcodec/proresdec : add 12b decoding
Martin Vignali [Tue, 27 Nov 2018 21:41:38 +0000 (22:41 +0100)]
avcodec/proresdec : add 12b decoding

based on patch by Kieran Kunhya

ticket 7163

3 months agoavcodec/proresdec : add 12b prores idct
Martin Vignali [Sat, 17 Nov 2018 22:37:50 +0000 (23:37 +0100)]
avcodec/proresdec : add 12b prores idct

based on patch by Kieran Kunhya

3 months agoavcodec/proresdec : add unpack alpha 12 func
Martin Vignali [Sat, 17 Nov 2018 22:37:23 +0000 (23:37 +0100)]
avcodec/proresdec : add unpack alpha 12 func

3 months agoavcodec/proresdec : make inline func for unpack alpha
Martin Vignali [Sat, 17 Nov 2018 22:37:00 +0000 (23:37 +0100)]
avcodec/proresdec : make inline func for unpack alpha

3 months agoavcodec/proresdec : put unpack alpha func in prores ctx
Martin Vignali [Sat, 17 Nov 2018 22:36:23 +0000 (23:36 +0100)]
avcodec/proresdec : put unpack alpha func in prores ctx

3 months agoavcodec/proresdsp indent after prev commit
Martin Vignali [Sat, 17 Nov 2018 22:35:52 +0000 (23:35 +0100)]
avcodec/proresdsp indent after prev commit

3 months agoavcodec/proresdec : rename dsp part for 10b and check dspinit for supported bits...
Martin Vignali [Sat, 17 Nov 2018 22:35:35 +0000 (23:35 +0100)]
avcodec/proresdec : rename dsp part for 10b and check dspinit for supported bits per raw sample

based on patch by Kieran Kunhya

3 months agoavcodec/proresdec : move dsp init after codec tag check
Martin Vignali [Sat, 17 Nov 2018 22:33:12 +0000 (23:33 +0100)]
avcodec/proresdec : move dsp init after codec tag check

3 months agoavcodec/proresdsp : remove unused value
Martin Vignali [Sat, 17 Nov 2018 22:32:43 +0000 (23:32 +0100)]
avcodec/proresdsp : remove unused value

3 months agoavcodec/utils : add YUVA444P12 and YUVA422P12 to pixfmt who need height padding in...
Martin Vignali [Tue, 27 Nov 2018 21:21:47 +0000 (22:21 +0100)]
avcodec/utils : add YUVA444P12 and YUVA422P12 to pixfmt who need height padding in avcodec_align_dimensions2

3 months agolavc/kvazaar: fix auto thread flag in kvazaar wrapper.
Jun Zhao [Sun, 18 Nov 2018 16:12:21 +0000 (00:12 +0800)]
lavc/kvazaar: fix auto thread flag in kvazaar wrapper.

Now the kvazaar warpper didn't setting the threads for kvazaar API,
and kavzaar will auto selecte the thread number.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
3 months agoavdevice/decklink_enc: add support for setting genlock timing offset
Marton Balint [Sun, 25 Nov 2018 00:38:05 +0000 (01:38 +0100)]
avdevice/decklink_enc: add support for setting genlock timing offset

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoffplay: fix -x and -y options when only one of them is used
Marton Balint [Sat, 24 Nov 2018 22:09:24 +0000 (23:09 +0100)]
ffplay: fix -x and -y options when only one of them is used

Previously if only -y was used then nothing happened, if only -x then zero
window height was set which is undefined in SDL and caused a black window.

From now on if only one dimension is set we calculate the other based on
size/aspect of the shown content.

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoffplay: convert float math to int math in calculate_display_rect
Marton Balint [Sat, 24 Nov 2018 22:58:04 +0000 (23:58 +0100)]
ffplay: convert float math to int math in calculate_display_rect

Signed-off-by: Marton Balint <cus@passwd.hu>
3 months agoavformat/mpegenc: extend muxing PCM-DVD to other depths
Paul B Mahol [Tue, 27 Nov 2018 11:09:03 +0000 (12:09 +0100)]
avformat/mpegenc: extend muxing PCM-DVD to other depths

Fixes #6783.

3 months agoavcodec: add PCM-DVD encoder
Paul B Mahol [Mon, 26 Nov 2018 18:03:58 +0000 (19:03 +0100)]
avcodec: add PCM-DVD encoder

Fixes #6784.

3 months agoavcodec/hevcdec: Check for overlapping slices
Michael Niedermayer [Fri, 16 Nov 2018 19:03:01 +0000 (20:03 +0100)]
avcodec/hevcdec: Check for overlapping slices

Fixes: Timeout
Fixes: 10108/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-6222384351674368

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/truemotion2rt: Fix rounding in input size check
Michael Niedermayer [Sat, 17 Nov 2018 08:24:30 +0000 (09:24 +0100)]
avcodec/truemotion2rt: Fix rounding in input size check

Fixes: Timeout
Fixes: 11332/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TRUEMOTION2RT_fuzzer-5678456612847616

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/mips: [loongson] refine optimization in h264_chroma.
Shiyou Yin [Tue, 6 Nov 2018 00:59:13 +0000 (08:59 +0800)]
avcodec/mips: [loongson] refine optimization in h264_chroma.

Remove invalid operation in the case x and y all equal 0,
this refine made about 2% speedup for H264 decode on loongson platform.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoconfigure: enable mipsfpu for loongson platform.
Shiyou Yin [Thu, 29 Nov 2018 09:39:41 +0000 (17:39 +0800)]
configure: enable mipsfpu for loongson platform.

mipsfpu supported by loongson 3a2000,3a3000,3a4000,2k1000, Fate tests passed.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavformat/ac3dec: always skip junk bytes before sync bytes
Paul B Mahol [Sun, 25 Nov 2018 11:15:51 +0000 (12:15 +0100)]
avformat/ac3dec: always skip junk bytes before sync bytes

Fixes #7278.

3 months agolavc/qsvenc: assert uninitialized pict_type
Linjie Fu [Wed, 28 Nov 2018 02:41:55 +0000 (10:41 +0800)]
lavc/qsvenc: assert uninitialized pict_type

Assert in function ff_qsv_encode to avoid using uninitialized value:

FF_DISABLE_DEPRECATION_WARNINGS
        avctx->coded_frame->pict_type = pict_type;
FF_ENABLE_DEPRECATION_WARNINGS

Signed-off-by: Linjie Fu <linjie.fu@intel.com>
Signed-off-by: Zhong Li <zhong.li@intel.com>
3 months agolavc/qsvenc: add forced_idr option
Zhong Li [Thu, 29 Nov 2018 08:29:00 +0000 (16:29 +0800)]
lavc/qsvenc: add forced_idr option

This option can be used to repect original input I/IDR frame type.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Zhong Li <zhong.li@intel.com>
3 months agolavc/qsvenc: enable ICQ and ICQ_LA on Linux
Zhong Li [Thu, 29 Nov 2018 08:28:59 +0000 (16:28 +0800)]
lavc/qsvenc: enable ICQ and ICQ_LA on Linux

ICQ/ICQ_LA are enabled with MSDK V1.28

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: Zhong Li <zhong.li@intel.com>
3 months agoavformat/dashdec: add subtitle stream support
Steven Liu [Fri, 30 Nov 2018 08:39:19 +0000 (16:39 +0800)]
avformat/dashdec: add subtitle stream support

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
3 months agolavc/libaomenc: Add a maximum constraint of 64 encoder threads.
Jun Zhao [Tue, 27 Nov 2018 09:18:26 +0000 (17:18 +0800)]
lavc/libaomenc: Add a maximum constraint of 64 encoder threads.

fixed the error in Intel(R) Xeon(R) Gold 6152 CPU like:
[libaom-av1 @ 0x469f340] Failed to initialize encoder: Invalid parameter
[libaom-av1 @ 0x469f340]   Additional information: g_threads out of range [..MAX_NUM_THREADS]

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/libdav1d: add an option to toggle Film Grain
James Almer [Thu, 29 Nov 2018 01:54:19 +0000 (22:54 -0300)]
avcodec/libdav1d: add an option to toggle Film Grain

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/libdav1d: read profile from the sequence header referenced by the ouput picture
James Almer [Thu, 29 Nov 2018 01:49:06 +0000 (22:49 -0300)]
avcodec/libdav1d: read profile from the sequence header referenced by the ouput picture

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/libdav1d: use constants defined in the public API to limit thread count
James Almer [Thu, 29 Nov 2018 01:48:13 +0000 (22:48 -0300)]
avcodec/libdav1d: use constants defined in the public API to limit thread count

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/libdav1d: remove init cleanup internal codec cap
James Almer [Thu, 29 Nov 2018 01:40:23 +0000 (22:40 -0300)]
avcodec/libdav1d: remove init cleanup internal codec cap

It's no longer needed now that the AVFifoBuffer was removed.

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoRevert "libopus: Add channel mapping 2 support in libopusdec"
Rostislav Pehlivanov [Wed, 28 Nov 2018 23:54:08 +0000 (23:54 +0000)]
Revert "libopus: Add channel mapping 2 support in libopusdec"

This reverts commit c8c995bc1ddc34df93049f002432286018c8cc94.

3 months agoRevert "avcodec/libopusenc: Fix warning when encoding ambisonics with channel mapping 2"
Rostislav Pehlivanov [Wed, 28 Nov 2018 23:53:51 +0000 (23:53 +0000)]
Revert "avcodec/libopusenc: Fix warning when encoding ambisonics with channel mapping 2"

This reverts commit 4cd6f08d2005c20a03ccd53a0a6f8a115c5ebe2e.

3 months agoavcodec/libopusenc: Fix warning when encoding ambisonics with channel mapping 2
Felicia Lim [Mon, 30 Jul 2018 19:59:44 +0000 (12:59 -0700)]
avcodec/libopusenc: Fix warning when encoding ambisonics with channel mapping 2

Also adds checks on the number of channels.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agolavf/rawdec: Do not mark streams from raw subtitle demuxers as data streams.
Carl Eugen Hoyos [Tue, 27 Nov 2018 17:22:02 +0000 (18:22 +0100)]
lavf/rawdec: Do not mark streams from raw subtitle demuxers as data streams.

Improves "ffmpeg -i" output for raw dvbsub files.

3 months agoavcodec/opus: check if internal is available
Paul B Mahol [Wed, 28 Nov 2018 19:27:43 +0000 (20:27 +0100)]
avcodec/opus: check if internal is available

3 months agoavpriv_tempfile: add djgpp fallback
Peter Ross [Tue, 20 Nov 2018 07:42:41 +0000 (18:42 +1100)]
avpriv_tempfile: add djgpp fallback

3 months agoconfigure: memalign is broken on djgpp 2.05
Peter Ross [Tue, 13 Nov 2018 10:32:23 +0000 (21:32 +1100)]
configure: memalign is broken on djgpp 2.05

djgpp 2.05 finally provides posix-compatible memalign, but it is broken,
so use malloc instead.

discussion: http://www.delorie.com/archives/browse.cgi?p=djgpp/2017/12/29/16:26:58

3 months agoadditional math.h functions for djgpp
Peter Ross [Sun, 11 Nov 2018 10:49:29 +0000 (21:49 +1100)]
additional math.h functions for djgpp

3 months agoconfigure: detect djgpp libc
Peter Ross [Sun, 11 Nov 2018 11:02:56 +0000 (22:02 +1100)]
configure: detect djgpp libc

3 months agoavcodec/opus: set skip_samples
Paul B Mahol [Tue, 27 Nov 2018 14:16:36 +0000 (15:16 +0100)]
avcodec/opus: set skip_samples

Also update fate test. Fixes #5258.

3 months agohwcontext_opencl: Only release command queue if it exists
Mark Thompson [Sun, 25 Nov 2018 19:14:27 +0000 (19:14 +0000)]
hwcontext_opencl: Only release command queue if it exists

If the frames context creation fails then the command queue reference
need not exist when uninit is called.

3 months agolavf/Makefile: Fix demuxer dependencies: dvbsub, dvbtxt
Carl Eugen Hoyos [Tue, 27 Nov 2018 17:48:29 +0000 (18:48 +0100)]
lavf/Makefile: Fix demuxer dependencies: dvbsub, dvbtxt

Allow standalone compilation of the dvbsub and the dvbtxt demuxer.

3 months agoffmpeg: Avoid duplicating Closed Captions when increasing frame rate.
Carl Eugen Hoyos [Fri, 23 Nov 2018 17:49:27 +0000 (18:49 +0100)]
ffmpeg: Avoid duplicating Closed Captions when increasing frame rate.

Fixes ticket #7506.

3 months agolavfi/fps: Avoid duplicating Closed Captions when increasing frame rate.
Carl Eugen Hoyos [Fri, 23 Nov 2018 17:48:50 +0000 (18:48 +0100)]
lavfi/fps: Avoid duplicating Closed Captions when increasing frame rate.

3 months agoavcodec/diracdec: Check component quant
Michael Niedermayer [Wed, 14 Nov 2018 08:42:44 +0000 (09:42 +0100)]
avcodec/diracdec: Check component quant

Fixes: Timeout
Fixes: 10708/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_DIRAC_fuzzer-5730140957442048

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agolavf/dashdec: Add webm to the list of allowed extensions.
Andrey Semashev [Sat, 17 Nov 2018 17:40:52 +0000 (20:40 +0300)]
lavf/dashdec: Add webm to the list of allowed extensions.

This is in coherence with dashenc, which can now generate segments with
webm file name extension by default. Dashdec should be able to handle
such streams by default as well.

3 months agofftools/ffmpeg: delete the unused code.
Jun Zhao [Sun, 18 Nov 2018 14:56:46 +0000 (22:56 +0800)]
fftools/ffmpeg: delete the unused code.

There are come from 2012 ago and have never been used from this
time.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
3 months agofftools/ffprobe: Indent the code.
Jun Zhao [Sun, 18 Nov 2018 12:55:40 +0000 (20:55 +0800)]
fftools/ffprobe: Indent the code.

commit 196765a7cc4 missed the reindet.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
3 months agolavfi/buffersrc: Indent the code.
Jun Zhao [Sun, 18 Nov 2018 09:09:29 +0000 (17:09 +0800)]
lavfi/buffersrc: Indent the code.

commit b0012de420f missed reindent.

Signed-off-by: Jun Zhao <mypopydev@gmail.com>
3 months agoavcodec/tiff: Fix integer overflows in left shift in init_image()
Michael Niedermayer [Mon, 26 Nov 2018 01:57:32 +0000 (02:57 +0100)]
avcodec/tiff: Fix integer overflows in left shift in init_image()

Fixes: left shift of 255 by 24 places cannot be represented in type 'int'
Fixes: 11377/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5694319101476864

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agolavc/jrevdct: Avoid an aliasing violation.
Carl Eugen Hoyos [Sun, 25 Nov 2018 23:43:46 +0000 (00:43 +0100)]
lavc/jrevdct: Avoid an aliasing violation.

Fixes fate on different PowerPC systems with some compilers.

Analyzed-by: Lauri Kasanen
3 months agolibavf/libvmaf: update docs
Kyle Swanson [Mon, 26 Nov 2018 23:03:38 +0000 (15:03 -0800)]
libavf/libvmaf: update docs

Signed-off-by: Kyle Swanson <kswanson@netflix.com>
3 months agoavutil/mem: Fix invalid use of av_alloc_size
Mark Harris [Sat, 24 Nov 2018 21:02:02 +0000 (13:02 -0800)]
avutil/mem: Fix invalid use of av_alloc_size

The alloc_size attribute is valid only on functions that return a
pointer.  GCC 9 (not yet released) warns about invalid usage:

./libavutil/mem.h:342:1: warning: 'alloc_size' attribute ignored on a function returning int' [-Wattributes]
  342 | av_alloc_size(2, 3) int av_reallocp_array(void *ptr, size_t nmemb, size_t size);
      | ^~~~~~~~~~~~~

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavfilter/vf_chromashift: Fix mixed declaration and code
Mark Harris [Sun, 25 Nov 2018 03:17:40 +0000 (19:17 -0800)]
avfilter/vf_chromashift: Fix mixed declaration and code

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavformat/vivo: Don't log null value
Mark Harris [Sun, 25 Nov 2018 03:18:43 +0000 (19:18 -0800)]
avformat/vivo: Don't log null value

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/libaomenc: increase the default bitrate
James Almer [Mon, 26 Nov 2018 22:05:50 +0000 (19:05 -0300)]
avcodec/libaomenc: increase the default bitrate

aom_codec_enc_config_default() sets it to 256kbps, so don't replace
it with 200kbps.

See https://bugs.chromium.org/p/aomedia/issues/detail?id=2219

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agoavcodec/tiff: Limit filtering to decoded data
Michael Niedermayer [Fri, 23 Nov 2018 01:33:04 +0000 (02:33 +0100)]
avcodec/tiff: Limit filtering to decoded data

Fixes: Timeout
Fixes: 11068/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5698456681709568

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoswscale/output: Altivec-optimize yuv2plane1_8
Lauri Kasanen [Sat, 17 Nov 2018 08:12:14 +0000 (10:12 +0200)]
swscale/output: Altivec-optimize yuv2plane1_8

./ffmpeg_g -f rawvideo -pix_fmt rgb24 -s hd1080 -i /dev/zero -pix_fmt yuv420p \
-f null -vframes 100 -v error -nostats -

1158 UNITS in planar1,   65528 runs,      8 skips

-cpuflags 0

19082 UNITS in planar1,   65533 runs,      3 skips

16.48 speedup ratio. On x86, SSE2 is ~7. Curiously, the Power C version
takes as many cycles as the x86 SSE2 version, yikes it's fast.

Note that this function uses VSX instructions, but is not marked so.
This is because several existing functions also make that mistake.
I'll submit a patch moving them once this is reviewed.

Signed-off-by: Lauri Kasanen <cand@gmx.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoavcodec/libdav1d: update the API usage after upstream changes
James Almer [Sun, 25 Nov 2018 20:28:53 +0000 (17:28 -0300)]
avcodec/libdav1d: update the API usage after upstream changes

The color fields were moved to another struct, and a way to propagate
timestamps and other input metadata was introduced, so the packet fifo
can be removed.

Signed-off-by: James Almer <jamrial@gmail.com>
3 months agofate/prores-metadata : make output bit exact
Martin Vignali [Sat, 24 Nov 2018 17:43:12 +0000 (18:43 +0100)]
fate/prores-metadata : make output bit exact

3 months agoavcodec/eac3dec: remove obsolete comment
Paul B Mahol [Sun, 25 Nov 2018 20:41:40 +0000 (21:41 +0100)]
avcodec/eac3dec: remove obsolete comment

3 months agoavformat/hlsenc: remove the cannot reach result
Steven Liu [Sun, 25 Nov 2018 08:28:56 +0000 (16:28 +0800)]
avformat/hlsenc: remove the cannot reach result

fix CID: 1441166
because the logic have checked the vtt_dirname before

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
3 months agolibavcodec/libdavs2.c: Fix for the wrong line size is used
Limin Wang [Sun, 25 Nov 2018 06:01:22 +0000 (14:01 +0800)]
libavcodec/libdavs2.c: Fix for the wrong line size is used

Reviewed-by: Steven Liu <lq@chinaffmpeg.org>
3 months agoconfigure: Add -Wno-char-subscripts.
Carl Eugen Hoyos [Sun, 18 Nov 2018 03:32:07 +0000 (04:32 +0100)]
configure: Add -Wno-char-subscripts.

Silences many warnings on systems with signed char where
the compiler cannot distinguish between char and int8_t.

3 months agoconfigure: Disable direct stripping on sunos.
Carl Eugen Hoyos [Sun, 18 Nov 2018 03:25:29 +0000 (04:25 +0100)]
configure: Disable direct stripping on sunos.

Sunos strip doesn't know -o.
Reported-by: Michael Kostylev
3 months agoavformat/pcmdec: endianness for audio/L16 mime type
Igor Derzhavin [Thu, 22 Nov 2018 07:54:42 +0000 (10:54 +0300)]
avformat/pcmdec: endianness for audio/L16 mime type

3 months agoavformat/pcmdec: audio/L16 should be in network byte order by default (rfc 2586)
Igor Derzhavin [Thu, 22 Nov 2018 07:39:57 +0000 (10:39 +0300)]
avformat/pcmdec: audio/L16 should be in network byte order by default (rfc 2586)

3 months agoavformat/pcmdec: mime-type should be case insensitive (audio/L16)
Igor Derzhavin [Thu, 22 Nov 2018 07:38:20 +0000 (10:38 +0300)]
avformat/pcmdec: mime-type should be case insensitive (audio/L16)

3 months agoavformat/dhav: improve A/V sync
Paul B Mahol [Sat, 24 Nov 2018 20:40:52 +0000 (21:40 +0100)]
avformat/dhav: improve A/V sync

Actual stored timestamps take only 16bits.

3 months agoavcodec/truemotion2: fix integer overflows in tm2_low_chroma()
Michael Niedermayer [Fri, 16 Nov 2018 23:38:53 +0000 (00:38 +0100)]
avcodec/truemotion2: fix integer overflows in tm2_low_chroma()

Fixes: 11295/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TRUEMOTION2_fuzzer-4888953459572736

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 months agoswscale : add support for YUVA444P12 and YUVA422P12
Martin Vignali [Sat, 24 Nov 2018 15:22:52 +0000 (16:22 +0100)]
swscale : add support for YUVA444P12 and YUVA422P12

3 months agoavutil : add YUVA444P12 and YUVA422P12
Martin Vignali [Sat, 24 Nov 2018 15:12:00 +0000 (16:12 +0100)]
avutil : add YUVA444P12 and YUVA422P12

3 months agoavformat: add DHAV demuxer
Paul B Mahol [Mon, 13 Feb 2017 14:13:09 +0000 (15:13 +0100)]
avformat: add DHAV demuxer

Signed-off-by: Paul B Mahol <onemda@gmail.com>
3 months agoavcodec: add truehd_core bitstream filter
Paul B Mahol [Mon, 19 Nov 2018 21:52:45 +0000 (22:52 +0100)]
avcodec: add truehd_core bitstream filter

3 months agolavf/dashenc: Fix segment duration overflow on fine time bases.
Andrey Semashev [Tue, 20 Nov 2018 17:33:52 +0000 (20:33 +0300)]
lavf/dashenc: Fix segment duration overflow on fine time bases.

When stream time bases are very fine grained (e.g. nanoseconds), 32-bit
segment duration may overflow for even for rather small segment duration
(about 4 seconds long). Therefore we use 64-bit values for segment duration.

3 months agocbs_h2645: Avoid memcpy when splitting fragment
Andreas Rheinhardt [Wed, 21 Nov 2018 18:34:29 +0000 (19:34 +0100)]
cbs_h2645: Avoid memcpy when splitting fragment

Now memcpy is avoided for NAL units that don't contain 0x03 escape
characters.

Improves performance of cbs_h2645_fragment_add_nals from 36940
decicycles to 6364 decicycles based on 8 runs with a 5.1 Mb/s H.264
sample (262144 runs each).

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@googlemail.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
3 months agoavformat/movenc: get number of written bytes from bitstream writer
Paul B Mahol [Thu, 22 Nov 2018 20:28:59 +0000 (21:28 +0100)]
avformat/movenc: get number of written bytes from bitstream writer

Update fate test.

3 months agoavformat/movenc: fix size calculation in mov_write_eac3_tag()
Paul B Mahol [Wed, 21 Nov 2018 10:45:02 +0000 (11:45 +0100)]
avformat/movenc: fix size calculation in mov_write_eac3_tag()

Otherwise it would assert when flushing bits.

3 months agoavutil/avsscanf: do not use unsupported p suffix for hex variable
Paul B Mahol [Wed, 21 Nov 2018 18:07:33 +0000 (19:07 +0100)]
avutil/avsscanf: do not use unsupported p suffix for hex variable

3 months agoavformat/http : Added check for valid URL context before calling shutdown
kjeyapal@akamai.com [Fri, 16 Nov 2018 08:57:12 +0000 (14:27 +0530)]
avformat/http : Added check for valid URL context before calling shutdown

3 months agoavformat/dashenc : Handled error from ff_http_do_new_request() cleanly
kjeyapal@akamai.com [Fri, 16 Nov 2018 08:57:11 +0000 (14:27 +0530)]
avformat/dashenc : Handled error from ff_http_do_new_request() cleanly

3 months agox86/scene_sad: fix link errors when HAVE_X86ASM is not defined
James Almer [Wed, 21 Nov 2018 15:21:38 +0000 (12:21 -0300)]
x86/scene_sad: fix link errors when HAVE_X86ASM is not defined

Reviewed-by: Haihao Xiang <haihao.xiang@intel.com>
Signed-off-by: James Almer <jamrial@gmail.com>
4 months agolavf/dashenc: Fix AVDictionary leaks in case of various init errors.
Andrey Semashev [Sat, 17 Nov 2018 17:40:53 +0000 (20:40 +0300)]
lavf/dashenc: Fix AVDictionary leaks in case of various init errors.

4 months agolavf/dashenc: Add support for format-specific file extensions.
Andrey Semashev [Sat, 17 Nov 2018 17:40:51 +0000 (20:40 +0300)]
lavf/dashenc: Add support for format-specific file extensions.

The file name template options now support a new "$ext$" placeholder,
which is replaced with a filename extension specific for the selected
file format. This is useful for the new "auto" format mode, when
different streams may use different file formats, and it is not
possible to specify the correct file name extension exactly.

Resolves warnings in the log about webm segments not having webm extensions.

4 months agolavf/dashenc: Add DASH segment type auto and make it the default
Andrey Semashev [Sat, 17 Nov 2018 17:40:50 +0000 (20:40 +0300)]
lavf/dashenc: Add DASH segment type auto and make it the default

This commit restores the ability to create DASH streams with codecs
that require different containers that was lost after commit
2efdbf7367989cf9d296c25fa3d2aff8d6e25fdd. It adds a new "auto" value for
the dash_segment_type option and makes it the default. When in this mode,
the segment format will be chosen based on the codec used in the stream:
webm for Vorbis, Opus, VP8 or VP9, mp4 otherwise.