ffmpeg.git
7 hours agovp9: move VP9SharedContext back to the top of VP9Context master
Hendrik Leppkes [Tue, 19 Sep 2017 08:45:41 +0000 (10:45 +0200)]
vp9: move VP9SharedContext back to the top of VP9Context

VP9SharedContext needs to be the first member so its properties can be
safely accessed from hardware accelerators, without the need to share
the full VP9Context.

Fixes ticket #6674.

18 hours agox86/exrdsp: optimize ff_reorder_pixels_avx2()
Henrik Gramner [Mon, 18 Sep 2017 01:52:13 +0000 (22:52 -0300)]
x86/exrdsp: optimize ff_reorder_pixels_avx2()

Tested with "checkasm --test=exrdsp -bench"

Before:
reorder_pixels_c: 5187.8
reorder_pixels_sse2: 377.0
reorder_pixels_avx2: 331.3

After:
reorder_pixels_c: 5181.5
reorder_pixels_sse2: 377.0
reorder_pixels_avx2: 313.8

Signed-off-by: James Almer <jamrial@gmail.com>
37 hours agoavformat/mxfenc: cosmetic changes
Tobias Rapp [Thu, 14 Sep 2017 14:05:31 +0000 (16:05 +0200)]
avformat/mxfenc: cosmetic changes

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
37 hours agofate: add mxf_dv25/dvcpro50 regression tests
Tobias Rapp [Thu, 14 Sep 2017 13:23:04 +0000 (15:23 +0200)]
fate: add mxf_dv25/dvcpro50 regression tests

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
37 hours agoavformat/mxfenc: fix aspect ratio when writing 16:9 DV frames
Tobias Rapp [Thu, 14 Sep 2017 12:03:28 +0000 (14:03 +0200)]
avformat/mxfenc: fix aspect ratio when writing 16:9 DV frames

Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com>
41 hours agoavfilter/tinterlace: Simplify checks for lowpass filtering flags
James Almer [Mon, 18 Sep 2017 02:41:31 +0000 (23:41 -0300)]
avfilter/tinterlace: Simplify checks for lowpass filtering flags

41 hours agofate: add tinterlace lowpass filtering tests
Thomas Mundt [Mon, 18 Sep 2017 02:41:00 +0000 (23:41 -0300)]
fate: add tinterlace lowpass filtering tests

Signed-off-by: James Almer <jamrial@gmail.com>
43 hours agolavc/frame_thread_encoder: Do not mix variable declaration and code.
Carl Eugen Hoyos [Mon, 18 Sep 2017 01:24:52 +0000 (03:24 +0200)]
lavc/frame_thread_encoder: Do not mix variable declaration and code.

Fixes a warning:
ISO C90 forbids mixed declarations and code

46 hours agocheckasm: add an exrdsp test
James Almer [Sun, 17 Sep 2017 21:48:02 +0000 (18:48 -0300)]
checkasm: add an exrdsp test

Signed-off-by: James Almer <jamrial@gmail.com>
46 hours agoavcodec/exrdsp: improve the ExrDSPContext->reorder_pixels prototype
James Almer [Sun, 17 Sep 2017 21:56:39 +0000 (18:56 -0300)]
avcodec/exrdsp: improve the ExrDSPContext->reorder_pixels prototype

Make dst be the first parameter and src const. It's more in line with the rest of the codebase.

Signed-off-by: James Almer <jamrial@gmail.com>
47 hours agolibavcodec/exr : add X86 SIMD for reorder_pixels
Martin Vignali [Sun, 17 Sep 2017 19:59:41 +0000 (21:59 +0200)]
libavcodec/exr : add X86 SIMD for reorder_pixels

Signed-off-by: James Almer <jamrial@gmail.com>
3 days agoavcodec/vorbisenc: Fix mixed declaration and statements
Michael Niedermayer [Sat, 16 Sep 2017 17:21:35 +0000 (19:21 +0200)]
avcodec/vorbisenc: Fix mixed declaration and statements

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 days agoavcodec/fits: Fix include type
Michael Niedermayer [Sat, 16 Sep 2017 17:20:28 +0000 (19:20 +0200)]
avcodec/fits: Fix include type

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 days agoavutil/imgutils: Fix warning: missing braces around initializer
Michael Niedermayer [Sat, 16 Sep 2017 17:19:54 +0000 (19:19 +0200)]
avutil/imgutils: Fix warning: missing braces around initializer

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 days agoavcodec/frame_thread_encoder: Fix AV_OPT_TYPE_STRING handling in avctx
Reimar Döffinger [Wed, 13 Sep 2017 16:59:21 +0000 (18:59 +0200)]
avcodec/frame_thread_encoder: Fix AV_OPT_TYPE_STRING handling in avctx

This is the equivalent to what 7d317d4706b49d572a1eb5269438753be18362c7
did for the codec-specific options.
av_opt_copy has specific handling so it's fine that we already copied
the whole context before.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
3 days agoavformat/hlsenc: fix segfault when using -hls_segment_type fmp4 with -hls_segment_fil...
Aman Gupta [Sat, 16 Sep 2017 02:32:28 +0000 (10:32 +0800)]
avformat/hlsenc: fix segfault when using -hls_segment_type fmp4 with -hls_segment_filename

previously, specifying -hls_segment_filename meant
s->base_output_dirname was never set, causing a segfault:

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
* frame #0: 0x00007fffbf7d82d0 libsystem_platform.dylib`_platform_strcmp + 80
frame #1: 0x00000001005f4dcf libavformat.57.dylib`io_open_default(s=0x000000010481cc00, pb=0x0000000104806020, url=0x0000000000000000, flags=2, options=0x0000000000000000) at options.c:107
frame #2: 0x0000000100528968 libavformat.57.dylib`hls_mux_init(s=0x000000010481cc00) at hlsenc.c:595
frame #3: 0x00000001005273cb libavformat.57.dylib`hls_write_header(s=0x000000010481cc00) at hlsenc.c:1518
frame #4: 0x00000001005c08d0 libavformat.57.dylib`write_header_internal(s=0x000000010481cc00) at mux.c:486
frame #5: 0x00000001005c0774 libavformat.57.dylib`avformat_write_header(s=0x000000010481cc00, options=0x00000001029026e8) at mux.c:539

3 days agovf_fps: Fix memory leak introduced by eea64ef4
Thierry Foucu [Fri, 15 Sep 2017 15:49:54 +0000 (08:49 -0700)]
vf_fps: Fix memory leak introduced by eea64ef4

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 days agoavfilter/interlace: simplify code
Thomas Mundt [Thu, 14 Sep 2017 19:20:24 +0000 (21:20 +0200)]
avfilter/interlace: simplify code

Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 days agoavfilter/interlace: prevent over-sharpening with the complex low-pass filter
Thomas Mundt [Wed, 30 Aug 2017 01:37:18 +0000 (03:37 +0200)]
avfilter/interlace: prevent over-sharpening with the complex low-pass filter

The complex vertical low-pass filter slightly over-sharpens the picture. This becomes visible when several transcodings are cascaded and the error potentises, e.g. some generations of HD->SD SD->HD.
To prevent this behaviour the destination pixel must not exceed the source pixel when the average of the pixels above and below is less than the source pixel. And the other way around.

Tested and approved in a visual transcoding cascade test by video professionals.
SSIM/PSNR test with the first generation of an HD->SD file as a reference against the 6th generation(3 x SD->HD HD->SD):
Results without the patch:
SSIM Y:0.956508 (13.615881) U:0.991601 (20.757750) V:0.993004 (21.551382) All:0.974405 (15.918463)
PSNR y:31.838009 u:48.424280 v:48.962711 average:34.759466 min:31.699297 max:40.857847
Results with the patch:
SSIM Y:0.970051 (15.236232) U:0.991883 (20.905857) V:0.993174 (21.658049) All:0.981290 (17.279202)
PSNR y:34.412108 u:48.504454 v:48.969496 average:37.264644 min:34.310637 max:42.373392

Signed-off-by: Thomas Mundt <tmundt75@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
3 days agoavcodec/mips: Improve hevc sao band filter msa functions
Kaustubh Raste [Fri, 15 Sep 2017 11:36:34 +0000 (17:06 +0530)]
avcodec/mips: Improve hevc sao band filter msa functions

Preload data in band filter 0-8 for better pipeline parallelization.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 days agoavcodec/mips: Improve avc mc copy msa functions
Kaustubh Raste [Fri, 15 Sep 2017 06:13:01 +0000 (11:43 +0530)]
avcodec/mips: Improve avc mc copy msa functions

Remove loops and unroll as block sizes are known.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 days agoavcodec/mips: Improve avc lpf msa functions
Kaustubh Raste [Fri, 15 Sep 2017 05:58:23 +0000 (11:28 +0530)]
avcodec/mips: Improve avc lpf msa functions

Optimize luma intra case by reducing conditional cases.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 days agolavf/http: fix compilation without zlib
Clément Bœsch [Fri, 15 Sep 2017 13:09:54 +0000 (15:09 +0200)]
lavf/http: fix compilation without zlib

Regression since e2f8f14052d99d7710cda0a821e236765b315d0b.

4 days agobuild: fix coreimage filters dependency to AppKit framework
Clément Bœsch [Fri, 15 Sep 2017 12:27:36 +0000 (14:27 +0200)]
build: fix coreimage filters dependency to AppKit framework

AppKit is not present on iOS.

4 days agolavc/mediacodec_wrapper: fix jni vaargs types
Matthieu Bouron [Fri, 15 Sep 2017 11:45:47 +0000 (13:45 +0200)]
lavc/mediacodec_wrapper: fix jni vaargs types

Fixes decoding on 32-bit devices with Android NDK >= 15.

4 days agolavf/http: Reset compressed header flag, fix http 302 request
Jacek Jendrzej [Thu, 20 Jul 2017 11:46:46 +0000 (13:46 +0200)]
lavf/http: Reset compressed header flag, fix http 302 request

Fixes ticket #6404.
Fixes ticket #6666.

Signed-off-by: Jacek Jendrzej <satbaby@kawaii.com>
4 days agovf_fps: when reading EOF, using current_pts to duplicate the last frame if needed.
Thierry Foucu [Wed, 13 Sep 2017 01:45:57 +0000 (18:45 -0700)]
vf_fps: when reading EOF, using current_pts to duplicate the last frame if needed.

Fix ticket #2674
Tested with examples from ticket 2674.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 days agoavcodec/mips: Improve hevc idct msa functions
Kaustubh Raste [Tue, 12 Sep 2017 11:31:58 +0000 (17:01 +0530)]
avcodec/mips: Improve hevc idct msa functions

Align the buffers. Remove reduandant constant array.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 days agoavcodec/mips: Improve hevc lpf msa functions
Kaustubh Raste [Tue, 12 Sep 2017 11:15:12 +0000 (16:45 +0530)]
avcodec/mips: Improve hevc lpf msa functions

Seperate the filter processing in all strong, all weak and strong + weak cases.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
4 days agohwcontext_vaapi: Fix build failure with old libdrm
Jun Zhao [Thu, 14 Sep 2017 00:21:38 +0000 (20:21 -0400)]
hwcontext_vaapi: Fix build failure with old libdrm

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
4 days agokmsgrab: Fix build failure with old libdrm
Jun Zhao [Thu, 14 Sep 2017 00:21:38 +0000 (20:21 -0400)]
kmsgrab: Fix build failure with old libdrm

DRM_FORMAT_R8 was added in libdrm 2.4.68.
DRM_FORMAT_R16 was added in libdrm 2.4.82.

Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
5 days agoavfilter/vf_despill: fix assigment
Paul B Mahol [Thu, 14 Sep 2017 16:05:57 +0000 (18:05 +0200)]
avfilter/vf_despill: fix assigment

Reported-by: Moritz Barsnick
Signed-off-by: Paul B Mahol <onemda@gmail.com>
5 days agolavd/kmsgrab: Fix packet flag setting
Mark Thompson [Thu, 14 Sep 2017 08:14:36 +0000 (09:14 +0100)]
lavd/kmsgrab: Fix packet flag setting

Found-by: James Almer <jamrial@gmail.com>
5 days agoavcodec.h: fix doxygen comment
James Almer [Thu, 14 Sep 2017 04:43:52 +0000 (01:43 -0300)]
avcodec.h: fix doxygen comment

5 days agodoc/indevs: Document kmsgrab input device
Mark Thompson [Mon, 11 Sep 2017 23:19:03 +0000 (00:19 +0100)]
doc/indevs: Document kmsgrab input device

5 days agolavd: Add KMS screen grabber
Mark Thompson [Sat, 2 Sep 2017 17:14:27 +0000 (18:14 +0100)]
lavd: Add KMS screen grabber

5 days agolavc: Add wrapped_avframe decoder
Mark Thompson [Sat, 2 Sep 2017 19:32:27 +0000 (20:32 +0100)]
lavc: Add wrapped_avframe decoder

Intended for use with hardware frames for which rawvideo is not
sufficient.  Requires the trusted packet flag to be set - decoding
fails if not to avoid security issues (the wrapped AVFrame can
contain pointers to arbitrary data).

5 days agolavc: Add flag to mark packets containing trusted input
Mark Thompson [Thu, 7 Sep 2017 21:27:09 +0000 (22:27 +0100)]
lavc: Add flag to mark packets containing trusted input

5 days agohwcontext_vaapi: Add DRM to VAAPI mapping
Mark Thompson [Sat, 2 Sep 2017 17:08:34 +0000 (18:08 +0100)]
hwcontext_vaapi: Add DRM to VAAPI mapping

5 days agolavu: Add DRM hwcontext
Mark Thompson [Sun, 18 Jun 2017 17:16:27 +0000 (18:16 +0100)]
lavu: Add DRM hwcontext

6 days agoavcodec/extract_extradata: return an error when buffer allocation fails
James Almer [Wed, 13 Sep 2017 20:03:56 +0000 (17:03 -0300)]
avcodec/extract_extradata: return an error when buffer allocation fails

ret is 0 by default.

Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
6 days agoconfigure: check if NAN can be used as a constant initializer
James Almer [Wed, 13 Sep 2017 17:07:21 +0000 (14:07 -0300)]
configure: check if NAN can be used as a constant initializer

Some targets, like NetBSD and DJGPP, don't seem to support it.

Signed-off-by: James Almer <jamrial@gmail.com>
6 days agoavformat/fitsenc: fill header line with spaces
Paras Chadha [Sat, 2 Sep 2017 19:07:22 +0000 (00:37 +0530)]
avformat/fitsenc: fill header line with spaces

Signed-off-by: Paras Chadha <paraschadha18@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
6 days agoavcodec/h264_sei: add namespace prefix to frame packingarrangement enum values
James Almer [Tue, 12 Sep 2017 22:59:23 +0000 (19:59 -0300)]
avcodec/h264_sei: add namespace prefix to frame packingarrangement enum values

Missed in 6eb102a616364d06a4cc994339b72910b3547e5f.

Signed-off-by: James Almer <jamrial@gmail.com>
6 days agoh264_sei: Add namespace prefix to all SEI values
Mark Thompson [Mon, 15 May 2017 21:42:14 +0000 (22:42 +0100)]
h264_sei: Add namespace prefix to all SEI values

This avoids confusion with equivalent H.265 SEI values when both are
being used at the same time.

(cherry picked from commit 6ea220cbeec8863e2006a03b73bed52db2b13ee7)

7 days agovp9: fix explicit memory order for report_progress.
Ronald S. Bultje [Tue, 12 Sep 2017 19:02:20 +0000 (15:02 -0400)]
vp9: fix explicit memory order for report_progress.

7 days agoavfilter/af_dcshift: do not leak out frame
Paul B Mahol [Tue, 12 Sep 2017 18:26:44 +0000 (20:26 +0200)]
avfilter/af_dcshift: do not leak out frame

Signed-off-by: Paul B Mahol <onemda@gmail.com>
7 days agoavformat/mxfenc: Correct the Sample rate for PCM outside D10
Michael Niedermayer [Sun, 10 Sep 2017 20:10:45 +0000 (22:10 +0200)]
avformat/mxfenc: Correct the Sample rate for PCM outside D10

Based on mail from IRT

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 days agoavformat/mxfenc: Comment edit rate write code like the surrounding code
Michael Niedermayer [Sun, 10 Sep 2017 20:10:44 +0000 (22:10 +0200)]
avformat/mxfenc: Comment edit rate write code like the surrounding code

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 days agoavformat/mxfenc: Replace more literal magic numbers by enum values.
Michael Niedermayer [Sun, 10 Sep 2017 20:10:43 +0000 (22:10 +0200)]
avformat/mxfenc: Replace more literal magic numbers by enum values.

This also moves the enum table up as it is needed earlier

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 days agoframe_thread_encoder: make 'exit' member atomic.
Ronald S. Bultje [Mon, 11 Sep 2017 13:58:47 +0000 (09:58 -0400)]
frame_thread_encoder: make 'exit' member atomic.

Should fix the following tsan warning:

WARNING: ThreadSanitizer: data race (pid=19806)
  Read of size 4 at 0x7b84000012f0 by thread T9:
    #0 worker src/libavcodec/frame_thread_encoder.c:66 (ffmpeg+0x0000007f349e)
[..]
  Previous write of size 4 at 0x7b84000012f0 by main thread (mutexes: write M1395):
    #0 ff_frame_thread_encoder_free src/libavcodec/frame_thread_encoder.c:239 (ffmpeg+0x0000007f379e)
[..]

7 days agolavfi/framesync: remove dead code.
Nicolas George [Tue, 12 Sep 2017 09:23:39 +0000 (11:23 +0200)]
lavfi/framesync: remove dead code.

Fix CID 1416960.

7 days agolavfi/framesync: reword repeatlast option help.
Nicolas George [Tue, 12 Sep 2017 09:14:25 +0000 (11:14 +0200)]
lavfi/framesync: reword repeatlast option help.

7 days agodoc: update filter_design.txt.
Nicolas George [Thu, 31 Aug 2017 15:05:31 +0000 (17:05 +0200)]
doc: update filter_design.txt.

7 days agolavfi: rename framesync2 to framesync.
Nicolas George [Thu, 31 Aug 2017 17:47:37 +0000 (19:47 +0200)]
lavfi: rename framesync2 to framesync.

7 days agolavfi: remove framesync.
Nicolas George [Thu, 31 Aug 2017 15:42:57 +0000 (17:42 +0200)]
lavfi: remove framesync.

7 days agolavfi/af_sidechaincompress: use helper macros.
Nicolas George [Thu, 31 Aug 2017 15:40:26 +0000 (17:40 +0200)]
lavfi/af_sidechaincompress: use helper macros.

7 days agolavfi/af_agate: use helper macros.
Nicolas George [Thu, 31 Aug 2017 14:53:35 +0000 (16:53 +0200)]
lavfi/af_agate: use helper macros.

7 days agolavfi: add helper functions and macros for activate.
Nicolas George [Thu, 31 Aug 2017 15:05:04 +0000 (17:05 +0200)]
lavfi: add helper functions and macros for activate.

7 days agoavcodec/hevc_ps: Fix limit of chroma_qp_offset_list_len_minus1
Michael Niedermayer [Sun, 10 Sep 2017 19:10:18 +0000 (21:10 +0200)]
avcodec/hevc_ps: Fix limit of chroma_qp_offset_list_len_minus1

A value of 5 is allowed

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 days agoavcodec/hevc_ps: Fix c?_qp_offset_list size
Michael Niedermayer [Sun, 10 Sep 2017 19:10:17 +0000 (21:10 +0200)]
avcodec/hevc_ps: Fix c?_qp_offset_list size

Fixes: runtime error: index 5 out of bounds for type 'int8_t const[5]'
Fixes:3175/clusterfuzz-testcase-minimized-4736774054084608

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
7 days agoavcodec/shorten: Move buffer allocation and offset init to end of read_header()
Michael Niedermayer [Sun, 10 Sep 2017 19:10:16 +0000 (21:10 +0200)]
avcodec/shorten: Move buffer allocation and offset init to end of read_header()

They are time consuming operations, performing them after the other checks
improves the speed with damaged input dramatically.

Fixes: Timeout
Fixes: 2928/clusterfuzz-testcase-4992812120539136

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>
7 days agoavcodec/hevc_ps: improve check for missing default display window bitstream
James Almer [Fri, 8 Sep 2017 00:23:04 +0000 (21:23 -0300)]
avcodec/hevc_ps: improve check for missing default display window bitstream

Fixes ticket #6644

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
8 days agovp9: assert -> av_assert and fix associated compile error.
Ronald S. Bultje [Mon, 11 Sep 2017 19:41:24 +0000 (15:41 -0400)]
vp9: assert -> av_assert and fix associated compile error.

8 days agoMAINTAINERS: Add myself to maintainer of dashdec
Steven Liu [Mon, 11 Sep 2017 14:40:46 +0000 (22:40 +0800)]
MAINTAINERS: Add myself to maintainer of dashdec

Add dash maintainer.

8 days agoChangelog: add vp9 tile threading support
Ilia Valiakhmetov [Sun, 10 Sep 2017 18:18:36 +0000 (01:18 +0700)]
Changelog: add vp9 tile threading support

Signed-off-by: Ilia Valiakhmetov <zakne0ne@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
8 days agovp9: fix compilation with threading disabled.
Ronald S. Bultje [Sun, 10 Sep 2017 03:24:31 +0000 (23:24 -0400)]
vp9: fix compilation with threading disabled.

8 days agoavcodec/jpeg2000dsp: Fix multiple integer overflows in ict_int()
Michael Niedermayer [Fri, 8 Sep 2017 21:29:12 +0000 (23:29 +0200)]
avcodec/jpeg2000dsp: Fix multiple integer overflows in ict_int()

Fixes: runtime error: signed integer overflow: 22553 * -188962 cannot be represented in type 'int'
Fixes: 3042/clusterfuzz-testcase-minimized-5174210131394560

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
8 days agoavcodec/clearvideo: Only output a frame if one is coded in the packet
Michael Niedermayer [Sat, 9 Sep 2017 23:32:52 +0000 (01:32 +0200)]
avcodec/clearvideo: Only output a frame if one is coded in the packet

Fixes: Timeout (183 ms instead of about 20 sec)
Fixes: 3147/clusterfuzz-testcase-4870592182353920

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
8 days agoavcodec/hevcdsp_template: Fix undefined shift in put_hevc_pel_bi_w_pixels
Michael Niedermayer [Sat, 9 Sep 2017 23:32:51 +0000 (01:32 +0200)]
avcodec/hevcdsp_template: Fix undefined shift in put_hevc_pel_bi_w_pixels

Fixes: runtime error: left shift of negative value -95
Fixes: 3077/clusterfuzz-testcase-minimized-4684917524922368

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
8 days agoavcodec/diracdec: Fix overflow in DC computation
Michael Niedermayer [Sat, 9 Sep 2017 23:32:50 +0000 (01:32 +0200)]
avcodec/diracdec: Fix overflow in DC computation

Fixes: runtime error: signed integer overflow: 11896 + 2147483646 cannot be represented in type 'int'
Fixes: 3053/clusterfuzz-testcase-minimized-6355082062856192

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
9 days agoadd missing ignore files
Jesse Liu [Sun, 10 Sep 2017 05:31:16 +0000 (13:31 +0800)]
add missing ignore files

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
9 days agoavcodec/scpr: optimize shift loop.
Michael Niedermayer [Fri, 8 Sep 2017 21:29:13 +0000 (23:29 +0200)]
avcodec/scpr: optimize shift loop.

Speeds code up from 50sec to 15sec

Fixes Timeout
Fixes: 3242/clusterfuzz-testcase-5811951672229888

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
9 days agobuild: Skip generating .version files when cleaning
Diego Biurrun [Tue, 28 Feb 2017 21:12:00 +0000 (22:12 +0100)]
build: Skip generating .version files when cleaning

Signed-off-by: James Almer <jamrial@gmail.com>
9 days agoavfilter/vf_convolve: use av_clip_uint8
James Almer [Sun, 10 Sep 2017 01:02:25 +0000 (22:02 -0300)]
avfilter/vf_convolve: use av_clip_uint8

Fixes fate-source.

10 days agoavcodec/dirac_vlc: limit res_bits in APPEND_RESIDUE()
Michael Niedermayer [Sat, 9 Sep 2017 13:51:45 +0000 (15:51 +0200)]
avcodec/dirac_vlc: limit res_bits in APPEND_RESIDUE()

Fixes: runtime error: left shift of 1073741838 by 1 places cannot be represented in type 'int32_t' (aka 'int')
Fixes: 3279/clusterfuzz-testcase-minimized-4564805744590848

Suggested-by: <atomnuker>
Reviewed-by: <atomnuker>
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
10 days agoavfilter: add generic FFT video convolve filter
Paul B Mahol [Thu, 31 Aug 2017 10:07:58 +0000 (12:07 +0200)]
avfilter: add generic FFT video convolve filter

Signed-off-by: Paul B Mahol <onemda@gmail.com>
10 days agolavc/vaapi_encode_mpeg2: fix frame rate calc error when use time_base.
Jun Zhao [Wed, 6 Sep 2017 03:07:15 +0000 (23:07 -0400)]
lavc/vaapi_encode_mpeg2: fix frame rate calc error when use time_base.

fix frame rate calc error when use time_base.

Signed-off-by: Yun Zhou <yunx.z.zhou@intel.com>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Mark Thompson <sw@jkqxz.net>
10 days agoAdd SUP/PGS subtitle muxer
Petri Hintukainen [Tue, 30 Sep 2014 08:01:17 +0000 (11:01 +0300)]
Add SUP/PGS subtitle muxer

Fixes ticket #2208

10 days agoavformat/dashdec: free resource allocated by xml
Steven Liu [Sat, 9 Sep 2017 00:34:07 +0000 (08:34 +0800)]
avformat/dashdec: free resource allocated by xml

modify from av_free to xmlFree

Suggested-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
10 days agoavformat/dashdec: add dash demuxer base version
Steven Liu [Sat, 9 Sep 2017 00:32:03 +0000 (08:32 +0800)]
avformat/dashdec: add dash demuxer base version

ffmpeg need a dash demuxer for demux the dash formats base on
https://github.com/samsamsam-iptvplayer/exteplayer3/blob/master/tmp/ffmpeg/patches/3.2.2/000001_add_dash_demux.patch

TODO:
1. support multi bitrate dash.

v2 fixed:
1. from autodetect to disabled
2. from camelCase code style to ffmpeg code style
3. from RepType to AVMediaType
4. fix variable typo
5. change time value from uint32_t to uint64_t
6. removed be used once API
7. change 'time(NULL)`, except it is not 2038-safe.' to av_gettime and av_timegm
8. merge complex free operation to free_fragment
9. use API from snprintf to av_asprintf

v3 fixed:
1. fix typo from --enabled-xml2 to --enable-xml2

v4 fixed:
1. from --enable-xml2 to --enable-libxml2
2. move system includes to top
3. remove nouse includes
4. rename enum name
5. add a trailing comma for the last entry enum
6. fix comment typo
7. add const to DASHContext class front
8. check sscanf if return arguments and give warning message when error
9. check validity before free seg->url and seg
10. check if the val is null, before use atoll

v5 fixed:
1. fix typo from mainifest to manifest

v6 fixed:
1. from realloc to av_realloc
2. from free to av_free

v7 fixed:
1. remove the -lxml2 from configure when require_pkg_config

v8 fixed:
1. fix replace filename template by av_asprintf secure problem

v9 modified:
1. make manifest parser clearly

v10 fixed:
1. fix function API name code style
2. remove redundant strreplace call
3. remove redundant memory operation and check return value from get_content_url()
4. add space between ) and {
5. remove no need to log the value for print

v11 fixed:
1. from atoll to strtoll
Suggested-by: Michael Niedermayer <michael@niedermayer.cc>
v12 fixed:
1. remove strreplace and instead by av_strreplace
Suggested-by: Nicolas George <george@nsup.org>
v13 fixed:
1. fix bug: cannot play:
http://dash.edgesuite.net/akamai/bbb_30fps/bbb_30fps.mpd
Reported-by: Andy Furniss <adf.lists@gmail.com>
v14 fixed:
1. fix bug: TLS connection was non-properly terminated
2. fix bug: No trailing CRLF found in HTTP header
Reported-by: Andy Furniss <adf.lists@gmail.com>
v15 fixed:
1. play youtube link: ffmpeg -i $(youtube-dl -J "https://www.youtube.com/watch?v=XmL19DOP_Ls" | jq -r ".requested_formats[0].manifest_url")
2. code refine for timeline living stream
Reported-by: Ricardo Constantino <wiiaboo@gmail.com>
v16 fixed:
1. remove the snprintf and instead by get_segment_filename make safety
2. remove unnecessary loops
3. updated xmlStrcmp and xmlFree to av_* functions
4. merge code repeat into one function
5. add memory alloc faild check
6. update update_init_section and open_url
7. output safety error message when filename template not safe
Suggested-by : wm4 <nfxjfg@googlemail.com>

v17 fixed:
1. add memory alloc faild check
2. fix resource space error at free_representation

v18 fixed:
1. add condition of template format

v19 fixed:
1. fix typo of the option describe

v20 fixed:
1. add the c->base_url alloc check
2. make the DASHTmplId same to dashenc

v21 fixed:
1. remove get_repl_pattern_and_format and get_segment_filename
2. process use dashcomm APIs

v22 fixed:
1. modify the include "dashcomm.h" to include "dash.h"
2. use internal API from dash_fill_tmpl_params to ff_dash_fill_tmpl_params

Signed-off-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: samsamsam <samsamsam@o2.pl>
10 days agoavformat/matroskaenc: also write tags when output is WebM
James Almer [Fri, 2 Jun 2017 02:47:32 +0000 (23:47 -0300)]
avformat/matroskaenc: also write tags when output is WebM

WebM supports a subset of elements from the Tags master.
See https://www.webmproject.org/docs/container/#tagging

Reviewed-by: Ivan Janatra <janatra@google.com>
Signed-off-by: James Almer <jamrial@gmail.com>
11 days agobuild: cleanup videotoolbox
Clément Bœsch [Wed, 6 Sep 2017 09:53:48 +0000 (11:53 +0200)]
build: cleanup videotoolbox

- there is no need for kCVImageBufferColorPrimaries_ITU_R_2020 checks,
  it's done at runtime
- VideoToolbox presence is now checked with check_apple_framework()
- link to CoreServices is only done when videotoolbox is enabled

11 days agobuild: cleanup audiotoolbox handling
Clément Bœsch [Wed, 6 Sep 2017 09:42:54 +0000 (11:42 +0200)]
build: cleanup audiotoolbox handling

*_at codecs only need the AudioToolbox framework, which is now checked
like the other Apple frameworks.

11 days agobuild: add --disable-coreimage autodetect switch
Clément Bœsch [Wed, 6 Sep 2017 09:33:20 +0000 (11:33 +0200)]
build: add --disable-coreimage autodetect switch

11 days agobuild: add --disable-avfoundation autodetect switch
Clément Bœsch [Wed, 6 Sep 2017 09:31:40 +0000 (11:31 +0200)]
build: add --disable-avfoundation autodetect switch

11 days agobuild: add check_apple_framework()
Clément Bœsch [Wed, 6 Sep 2017 09:29:23 +0000 (11:29 +0200)]
build: add check_apple_framework()

This will be used in the following commits.

11 days agolavfi/coreimage: reduce dependency scope from QuartzCore to CoreImage
Clément Bœsch [Tue, 5 Sep 2017 16:09:37 +0000 (18:09 +0200)]
lavfi/coreimage: reduce dependency scope from QuartzCore to CoreImage

What is required by the filter is CoreImage, there is no QuartzCore
usage. QuartzCore/CoreImage.h is simply an include to
CoreImage/CoreImage.h.

11 days agobuild: fix objcc header check
Clément Bœsch [Tue, 5 Sep 2017 16:06:29 +0000 (18:06 +0200)]
build: fix objcc header check

$headers is a variable set in the context of other functions (we don't
use the "local" keyword in our scripts, so those variables are global).

Currently, when checking for AVFoundation/AVFoundation.h, the actual
enabled header is math.h.

Similarly, when testing for QuartzCore/CoreImage.h, the actual enabled
header is CoreGraphics/CoreGraphics.h.

This is completely broken and may be the reason why these checks are
made in random places.

11 days agolavu/timer.h: add Linux Perf API support
Clément Bœsch [Sat, 2 Sep 2017 17:25:10 +0000 (19:25 +0200)]
lavu/timer.h: add Linux Perf API support

Refer to "checkasm: use perf API on Linux ARM*" commit for the
rationale.

The implementation is somehow duplicated with checkasm, but so is the
current usage of AV_READ_TIME(). Until these implementations and
heuristics are made consistent, I don't see a way of sharing that code.

Note: when using libavutil/timer.h, it is now important to include
before any other include due to the _GNU_SOURCE requirement.

11 days agolavu/tests: move timer.h include earlier
Clément Bœsch [Thu, 7 Sep 2017 13:52:47 +0000 (15:52 +0200)]
lavu/tests: move timer.h include earlier

In the next commit, timer.h will require a _GNU_SOURCE to be set before
including system headers. This commit prevents compilation failures.

11 days agolavu/tests/des: rename crypt to crypt_ref
Clément Bœsch [Thu, 7 Sep 2017 13:56:56 +0000 (15:56 +0200)]
lavu/tests/des: rename crypt to crypt_ref

This will prevent a symbol clash with crypt(3) after unistd.h is
included.

11 days agolavu/timer.h: factor out timer report
Clément Bœsch [Sat, 2 Sep 2017 17:17:45 +0000 (19:17 +0200)]
lavu/timer.h: factor out timer report

This commit is meant to reduce the diff in the following one.

11 days agocheckasm: use perf API on Linux ARM*
Clément Bœsch [Fri, 1 Sep 2017 13:11:18 +0000 (15:11 +0200)]
checkasm: use perf API on Linux ARM*

On ARM platforms, accessing the PMU registers requires special user
access permissions. Since there is no other way to get accurate timers,
the current implementation of timers in FFmpeg rely on these registers.
Unfortunately, enabling user access to these registers on Linux is not
trivial, and generally involve compiling a random and unreliable github
kernel module, or patching somehow your kernel.

Such module is very unlikely to reach the upstream anytime soon. Quoting
Robin Murphin from ARM:

> Say you do give userspace direct access to the PMU; now run two or more
> programs at once that believe they can use the counters for their own
> "minimal-overhead" profiling. Have fun interpreting those results...
>
> And that's not even getting into the implications of scheduling across
> different CPUs, CPUidle, etc. where the PMU state is completely beyond
> userspace's control. In general, the plan to provide userspace with
> something which might happen to just about work in a few corner cases,
> but is meaningless, misleading or downright broken in all others, is to
> never do so.

As a result, the alternative is to use the Performance Monitoring Linux
API which makes use of these registers internally (assuming the PMU of
your ARM board is supported in the kernel, which is definitely not a
given...).

While the Linux API is obviously cross platform, it does have a
significant overhead which needs to be taken into account. As a result,
that mode is only weakly enabled on ARM platforms exclusively.

Note on the non flexibility of the implementation: the timers (native
FFmpeg vs Linux API) are selected at compilation time to prevent the
need of function calls, which would result in a negative impact on the
cycle counters.

11 days agoavfilter: add Haas stereo enhancer
Paul B Mahol [Wed, 6 Sep 2017 12:06:38 +0000 (14:06 +0200)]
avfilter: add Haas stereo enhancer

Signed-off-by: Paul B Mahol <onemda@gmail.com>
11 days agoavcodec/vp9: Add tile threading support
Ilia Valiakhmetov [Thu, 7 Sep 2017 21:02:49 +0000 (04:02 +0700)]
avcodec/vp9: Add tile threading support

Signed-off-by: Ilia Valiakhmetov <zakne0ne@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
11 days agoavcodec/pthread_slice: add ff_slice_thread_execute_with_mainfunc()
Ilia Valiakhmetov [Thu, 7 Sep 2017 20:48:17 +0000 (03:48 +0700)]
avcodec/pthread_slice: add ff_slice_thread_execute_with_mainfunc()

Signed-off-by: Ilia Valiakhmetov <zakne0ne@gmail.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
11 days agolibavcodec/h264_parse: don't use uninitialized value when chroma_format_idc==0
Mark Wachsler [Thu, 7 Sep 2017 13:42:07 +0000 (09:42 -0400)]
libavcodec/h264_parse: don't use uninitialized value when chroma_format_idc==0

When parsing a monochrome file, chroma_log2_weight_denom was used without
being initialized, which could lead to a bogus error message being printed, e.g.
  [h264 @ 0x61a000026480] chroma_log2_weight_denom 24576 is out of range
It also could led to warnings using AddressSanitizer.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
11 days agoavcodec/mips: Improve vp9 mc msa functions
Kaustubh Raste [Mon, 4 Sep 2017 12:32:36 +0000 (18:02 +0530)]
avcodec/mips: Improve vp9 mc msa functions

Load the specific destination bytes instead of MSA load and pack.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
11 days agoavcodec/mips: Improve vp9 idct msa functions
Kaustubh Raste [Mon, 4 Sep 2017 12:32:09 +0000 (18:02 +0530)]
avcodec/mips: Improve vp9 idct msa functions

Removed memset calls.

Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com>
Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>