Paul B Mahol [Wed, 28 Jun 2017 15:18:13 +0000 (17:18 +0200)]
avcodec/interplayvideo: return void
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Wed, 28 Jun 2017 15:14:30 +0000 (17:14 +0200)]
avcodec/interplayvideo: fix dead-lock
Fixes #6499.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Wed, 28 Jun 2017 15:07:49 +0000 (17:07 +0200)]
avcodec/interplayvideo: use int16_t instead of short
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Wed, 28 Jun 2017 14:59:59 +0000 (16:59 +0200)]
avcodec/interplayvideo: check that video_size is >0
Fixes #6498.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Vittorio Giovara [Fri, 9 Jun 2017 21:35:22 +0000 (17:35 -0400)]
hevc: Add support for alternative transfer characterics SEI
The use of this SEI is for backward compatibility in HLG HDR systems:
older devices that cannot interpret the "arib-std-b67" transfer will
get the compatible transfer (usually bt709 or bt2020) from the VUI,
while newer devices that can interpret HDR will read the SEI and use
its value instead.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Michael Niedermayer [Tue, 27 Jun 2017 19:47:35 +0000 (21:47 +0200)]
avcodec/utvideodec: Factor multiply out of inner loop
0.5% faster loop
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Steven Liu <lingjiujianke@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Tue, 27 Jun 2017 19:47:34 +0000 (21:47 +0200)]
avcodec/utvideodec: bswap directly without memcpy
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Tue, 27 Jun 2017 19:47:33 +0000 (21:47 +0200)]
avcodec/utvideodec: enable unchecked bitreader
inner reader loop becomes 16% faster
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Tue, 27 Jun 2017 19:47:32 +0000 (21:47 +0200)]
avcodec/utvideodec: hardcode vlc bits
2.5% faster vlc decoding
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Tue, 27 Jun 2017 19:47:31 +0000 (21:47 +0200)]
avcodec/utvideodec: Move bitstream end check out of inner loop
This is not needed when the buffer is large enough for the worst case of a line
2% faster vlc reading
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Clément Bœsch [Thu, 22 Jun 2017 09:24:13 +0000 (11:24 +0200)]
lavc/aacpsdsp: use ptrdiff_t for stride in hybrid_analysis
Clément Bœsch [Thu, 25 May 2017 15:50:52 +0000 (17:50 +0200)]
lavc/aarch64: add a few SIMD functions for AAC PS
☭ tests/checkasm/checkasm --bench --test=aacpsdsp
checkasm: using random seed
3318985180
MMX implied by specified flags
MMX implied by specified flags
NEON:
- aacpsdsp.add_squares [OK]
- aacpsdsp.mul_pair_single [OK]
- aacpsdsp.hybrid_analysis [OK]
- aacpsdsp.stereo_interpolate [OK]
checkasm: all 5 tests passed
nop: 10.0
ps_add_squares_c: 63221.2
ps_add_squares_neon: 22311.7
ps_hybrid_analysis_c: 2466.6
ps_hybrid_analysis_neon: 1521.9
ps_mul_pair_single_c: 68592.0
ps_mul_pair_single_neon: 17426.6
ps_stereo_interpolate_c: 72344.3
ps_stereo_interpolate_neon: 72308.8
ps_stereo_interpolate_ipdopd_c: 117415.2
ps_stereo_interpolate_ipdopd_neon: 113386.3
Clément Bœsch [Fri, 2 Jun 2017 14:55:32 +0000 (16:55 +0200)]
lavc/aacpsdsp: fix a few spaces (cosmetics)
Clément Bœsch [Fri, 2 Jun 2017 08:06:08 +0000 (10:06 +0200)]
checkasm: add AAC PS tests
This includes various fixes and improvements from James Almer.
Signed-off-by: James Almer <jamrial@gmail.com>
Clément Bœsch [Thu, 22 Jun 2017 09:04:26 +0000 (11:04 +0200)]
lavc/arm: fix lack of precision in ff_ps_stereo_interpolate_neon
The code originally pre-multiply by 2 the steps, causing the running sum
of the h factors to drift away due to the lack of precision. It quickly
causes an inaccuracy > 0.01.
I tried diverse approaches such as multiply by 2.0 (instead of adding
the value itself) without success.
I'm unable to bench the impact of this change, feel free to compare.
This commit fixes the incoming aacpsdsp tests.
Following is an alternative simplified function (matching the incoming
AArch64 code) that may be used:
function ff_ps_stereo_interpolate_neon, export=1
vld1.32 {q0}, [r2]
vld1.32 {q1}, [r3]
ldr r12, [sp]
vmov.f32 q8, q0
vmov.f32 q9, q1
vzip.32 q8, q0
vzip.32 q9, q1
1:
vld1.32 {d4}, [r0,:64]
vld1.32 {d6}, [r1,:64]
vadd.f32 q8, q8, q9
vadd.f32 q0, q0, q1
vmov.f32 d5, d4
vmov.f32 d7, d6
vmul.f32 q2, q2, q8
vmla.f32 q2, q3, q0
vst1.32 {d4}, [r0,:64]!
vst1.32 {d5}, [r1,:64]!
subs r12, r12, #1
bgt 1b
bx lr
endfunc
James Almer [Tue, 27 Jun 2017 23:45:55 +0000 (20:45 -0300)]
x86/vf_blend: use ABS2 macro
Michael Niedermayer [Tue, 27 Jun 2017 22:16:18 +0000 (00:16 +0200)]
avcodec/x86/vp9dsp_init_16bpp: Fix linking to missing ff_vp9_ipred_dr_32x32_16_avx2() on 32bit
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Hendrik Leppkes [Tue, 27 Jun 2017 22:19:55 +0000 (00:19 +0200)]
hwcontext_d3d11va: use correct license header
Michael Niedermayer [Tue, 27 Jun 2017 20:22:50 +0000 (22:22 +0200)]
libswresample/swresample: remove obsolete code
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Tue, 27 Jun 2017 12:11:00 +0000 (14:11 +0200)]
avcodec/hevcdec: do basic validity check on delta_chroma_weight and offset
Fixes: runtime error: signed integer overflow:
2147483520 + 128 cannot be represented in type 'int'
Fixes: 2385/clusterfuzz-testcase-minimized-
6594333576790016
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ilia Valiakhmetov [Tue, 27 Jun 2017 19:06:19 +0000 (15:06 -0400)]
avcodec/vp9: add 64-bit ipred_dr_32x32_16 avx2 implementation
vp9_diag_downright_32x32_12bpp_c: 429.7
vp9_diag_downright_32x32_12bpp_sse2: 158.9
vp9_diag_downright_32x32_12bpp_ssse3: 144.6
vp9_diag_downright_32x32_12bpp_avx: 141.0
vp9_diag_downright_32x32_12bpp_avx2: 73.8
Almost 50% faster than avx implementation
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
James Almer [Tue, 27 Jun 2017 15:42:58 +0000 (12:42 -0300)]
x86/vf_blend: optimize difference and negation functions
Process more pixels per loop.
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
James Almer [Tue, 27 Jun 2017 15:27:10 +0000 (12:27 -0300)]
x86/vf_blend: add sse and ssse3 extremity functions
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
Anton Khirnov [Thu, 22 Jun 2017 18:05:12 +0000 (20:05 +0200)]
hwframe: Allow hwaccel frame allocators to align surface sizes
Hardware accelerated decoding generally uses AVHWFramesContext for pool
allocation of hardware surfaces. These are setup to allocate surfaces
aligned to hardware and hwaccel API requirements. Due to the
architecture, av_hwframe_get_buffer() will return AVFrames with
the dimensions set to the aligned sizes.
This causes some decoders (like hevc) return these aligned size as
final frame size, instead of cropping them to the video's actual
dimensions. To make sure this doesn't happen, crop the frame to the
size the decoder expects when ff_get_buffer() is called.
Merges Libav commit
3fdf50f9e864c88da2139cf066832944de81acaa.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Thu, 22 Jun 2017 12:52:59 +0000 (14:52 +0200)]
dxva: verbose-log decoder GUID list
Helpful for debugging.
Merges Libav commit
068eaa534e7ddb2155e2830818d5c3f1069c68d8.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Thu, 22 Jun 2017 12:52:57 +0000 (14:52 +0200)]
hwcontext_d3d11va: add option to enable debug mode
Basically copied from VLC (LGPL):
http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_output/win32/direct3d11.c;h=
e9fcb83dcabfe778f26e63d19f218caf06a7c3ae;hb=HEAD#l1482
http://git.videolan.org/?p=vlc.git;a=blob;f=modules/codec/avcodec/d3d11va.c;h=
85e7d25caebc059a9770da2ef4bb8fe90816d76d;hb=HEAD#l599
Merges Libav commit
cfc9e7c94eafa33e7f109099664ec4fb57ac5ca3.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Thu, 22 Jun 2017 12:52:56 +0000 (14:52 +0200)]
dxva: support DXGI_FORMAT_420_OPAQUE decoding
Some devices (some phones, apparently) will support only this opaque
format. Of course this won't work with CLI, because copying data
directly is not supported.
Automatic frame allocation (setting AVCodecContext.hw_device_ctx) does
not support this mode, even if it's the only supported mode. But since
opaque surfaces are generally less useful, that's probably ok.
Merges Libav commit
5030e3856c2126fb829edb828f5aae011d178eb4.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Thu, 22 Jun 2017 12:52:55 +0000 (14:52 +0200)]
hwcontext_d3d11va: allocate staging texture lazily
Makes dealing with formats that can not be used for staging textures
easier (DXGI_FORMAT_420_OPAQUE). It also saves memory if the staging
texture is never needed, so this is a good thing.
Merges Libav commit
98d73e4174333b37d961b79e1182be5a02156c02.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Thu, 22 Jun 2017 12:52:54 +0000 (14:52 +0200)]
hwcontext_d3d11va: fix crash on frames_init failure
It appears in this case, frames_ininit is called twice (once by
av_hwframe_ctx_init(), and again by unreffing the frames ctx ref).
Merges Libav commit
086321c612185469ebb85a1887527c8915b488b7.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Thu, 22 Jun 2017 12:52:53 +0000 (14:52 +0200)]
dxva: fix some warnings
Some existed since forever, some are new.
The cast in get_surface() is silly, but unless we change the av_log
function signature, or all callers of ff_dxva2_get_surface_index(), it's
needed to remove the const warning.
Merges Libav commit
752ddb45569ffe278393cd853b70f18ae017219e.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
wm4 [Thu, 22 Jun 2017 12:52:52 +0000 (14:52 +0200)]
dxva: add declarative profile checks
Make supported codec profiles part of each dxva_modes entry. Every DXVA2
mode is representative for a codec with a subset of supported profiles,
so reflecting that in dxva_modes seems appropriate.
In practice, this will more strictly check MPEG2 profiles, will stop
relying on the surface format checks for selecting the correct HEVC
profile, and remove the verbose messages for mismatching H264/HEVC
profiles. Instead of the latter, it will now print the more nebulous "No
decoder device for codec found" verbose message.
This also respects AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH. Move the
Main10 HEVC entry before the normal one to make this work better.
Originally inspired by VLC's code.
Merges Libav commit
70e5e7c02232d1e51c362d5572c567a9e2a8dcc2.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö [Fri, 9 Jun 2017 09:05:00 +0000 (12:05 +0300)]
d3d11va: Link directly to dxgi.dll and d3d11.dll functions if LoadLibrary is unavailable
When targeting the UWP API subset, the LoadLibrary function is not
available (and the fallback, LoadPackagedLibrary, can't be used to
load system DLLs). In these cases, link directly to the functions
in the DLLs instead of trying to load them dynamically at runtime.
Merges Libav commit
fd1ffa1f10e940165035ccb79d4a6523da196062.
Signed-off-by: Martin Storsjö <martin@martin.st>
wm4 [Wed, 7 Jun 2017 15:11:17 +0000 (17:11 +0200)]
dxva: add support for new dxva2 and d3d11 hwaccel APIs
This also adds support to avconv (which is trivial due to the new
hwaccel API being generic enough).
The new decoder setup code in dxva2.c is significantly based on work by
Steve Lhomme <robux4@gmail.com>, but with heavy changes/rewrites.
Merges Libav commit
f9e7a2f95a7194a8736cc1416a03a1a0155a3e9f.
Also adds untested VP9 support.
The check for DXVA2 COBJs is removed. Just update your MinGW to
something newer than a 5 year old release.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
wm4 [Tue, 6 Jun 2017 16:51:10 +0000 (18:51 +0200)]
dxva: move d3d11 locking/unlocking to functions
I want to make it non-mandatory to set a mutex in the D3D11 device
context, and replacing it with user callbacks seems like the best
solution. This is preparation for it. Also makes the code slightly more
readable.
Merges Libav commit
831cfe10b40414915fe7b6088158421fe02e2b2d.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
wm4 [Tue, 6 Jun 2017 16:51:09 +0000 (18:51 +0200)]
dxva: preparations for new hwaccel API
The actual hwaccel code will need to access an internal context instead
of avctx->hwaccel_context, so add a new DXVA_CONTEXT() macro, that will
dispatch between the "old" external and the new internal context.
Also, the new API requires a new D3D11 pixfmt, so all places which check
for the pixfmt need to be adjusted. Introduce a ff_dxva2_is_d3d11()
function, which does the check.
Merges Libav commit
4dec101acc393fbfe9a8ce0237b9efbae3f20139.
Adds changes to vp9 over the Libav patch.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
wm4 [Tue, 6 Jun 2017 16:51:08 +0000 (18:51 +0200)]
lavc: set avctx->hwaccel before init
So a hwaccel can access avctx->hwaccel in init for whatever reason. This
is for the new d3d hwaccel API. We could create separate entrypoints for
each of the 3 hwaccel types (dxva2, d3d11va, new d3d11va), but this
seems nicer.
Merges Libav commit
bd747b9226414007f0207fa201976af7217e3b77.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
wm4 [Tue, 6 Jun 2017 16:51:07 +0000 (18:51 +0200)]
lavu: add new D3D11 pixfmt and hwcontext
To be used with the new d3d11 hwaccel decode API.
With the new hwaccel API, we don't want surfaces to depend on the
decoder (other than the required dimension and format). The old D3D11VA
pixfmt uses ID3D11VideoDecoderOutputView pointers, which include the
decoder configuration, and thus is incompatible with the new hwaccel
API. This patch introduces AV_PIX_FMT_D3D11, which uses ID3D11Texture2D
and an index. It's simpler and compatible with the new hwaccel API.
The introduced hwcontext supports only the new pixfmt.
Frame upload code untested.
Significantly based on work by Steve Lhomme <robux4@gmail.com>, but with
heavy changes/rewrites.
Merges Libav commit
fff90422d181744cd75dbf011687ee7095f02875.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
James Almer [Mon, 26 Jun 2017 03:29:16 +0000 (00:29 -0300)]
x86inc: don't use read-only data sections on COFF targets
Yasm:
src/libavfilter/x86/af_volume.asm:24: warning: Standard COFF does not support read-only data sections
src/libavfilter/x86/af_volume.asm:24: warning: Unrecognized qualifier `align'
Nasm:
src/libavfilter/x86/af_volume.asm:24: error: standard COFF does not support section alignment specification
src/libavutil/x86/x86inc.asm:92: ... from macro `SECTION_RODATA' defined here
Tested-by: Clément Bœsch <u@pkh.me>
Signed-off-by: James Almer <jamrial@gmail.com>
Paul B Mahol [Tue, 27 Jun 2017 13:46:08 +0000 (15:46 +0200)]
avcodec/interplayvideo: properly check if there is enough bytes left
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Hein-Pieter van Braam [Sun, 25 Jun 2017 19:59:04 +0000 (21:59 +0200)]
Interplay MVE: Changelog entry for changes
Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
Hein-Pieter van Braam [Sun, 25 Jun 2017 19:59:03 +0000 (21:59 +0200)]
Interplay MVE: Implement frame format 0x10
This implements the 0x10 frame format for Interplay MVE movies. The
format is a variation on the 0x06 format with some changes. In addition
to the decoding map there's also a skip map. This skip map is used to
determine what 8x8 blocks can change in a particular frame.
This format expects to be able to copy an 8x8 block from before the last
time it was changed. This can be an arbitrary time in the past. In order
to implement this this decoder allocates two additional AVFrames where
actual decoding happens. At the end of a frame decoding changed blocks
are copied to a finished frame based on the skip map.
The skip map's encoding is a little convulted, I'll refer to the code
for details.
Values in the decoding map are the same as in format 0x06.
Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
Hein-Pieter van Braam [Sun, 25 Jun 2017 19:59:02 +0000 (21:59 +0200)]
Interplay MVE: Implement frame format 0x06
This implements the 0x06 frame format for Interplay MVE movies. The
format is relatively simple. The video data consists of two parts:
16 bits per 8x8 block movement data
a number of 8x8 blocks of pixel data
For each 8x8 block of pixel data the movement data is consulted. There
are 3 possible meanings of the movement data:
* zero : copy the 8x8 block from the pixel data
* negative : copy the 8x8 block from the previous frame from an offset
determined by the actual value of the entry -0xC000.
* positive : copy the 8x8 block from the current frame from an offset
determined by the actual value of the entry -0x4000
Decoding happens in two passes, in the fist pass only new pixeldata is
copied, during the second pass data is copied from the previous and
current frames.
The codec expects that the current frame being decoded to still has the
data from 2 frames ago on it when decoding starts.
Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
Hein-Pieter van Braam [Sun, 25 Jun 2017 19:59:01 +0000 (21:59 +0200)]
Interplay MVE: Refactor IP packet format
Interplay MVE can contain up to three different frame formats. They
require different streams of information to render a frame. This patch
changes the IP packet format to prepare for the extra frame formats.
Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
Hein-Pieter van Braam [Sun, 25 Jun 2017 19:59:00 +0000 (21:59 +0200)]
Interplay MVE: Implement MVE SEND_BUFFER operation
Interplay MVE movies have a SEND_BUFFER operation. Only after this
command does the current decoding buffer get displayed. This is required
for the other frame formats. They are fixed-size and can't always encode
a full frame worth of pixeldata.
This code prevents half-finished frames from being emitted.
Signed-off-by: Hein-Pieter van Braam <hp@tmm.cx>
Paul B Mahol [Mon, 26 Jun 2017 14:30:43 +0000 (16:30 +0200)]
avcodec/proresenc_kostya: add 4444XQ profile
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Michael Niedermayer [Tue, 27 Jun 2017 11:09:58 +0000 (13:09 +0200)]
avcodec/ffv1enc: compute the max number of slices and limit by that
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Andreas Håkon [Fri, 13 Jan 2017 12:07:57 +0000 (13:07 +0100)]
avformat: Fix Pro-MPEG non-square matrix
Reviewed-by:vtarca@mobibase.com
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Mon, 26 Jun 2017 14:14:35 +0000 (16:14 +0200)]
avcodec/ffv1enc: Allow less than 2 rows of slices for low vertical resolution
Fixes: Ticket5548
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Paul B Mahol [Mon, 26 Jun 2017 19:31:12 +0000 (21:31 +0200)]
avcodec/utvideodec: add SIMD for restore_rgb_planes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Mon, 26 Jun 2017 09:29:02 +0000 (11:29 +0200)]
avcodec/utvideodec: decode to GBR(A)P
This is actually internal utvideo format.
Allows to make use of SIMD for median prediction for rgb(a) formats,
thus speeding up decoding.
Simplifies code, eases further developement and maintenance.
Update FATE because of pixel format switch.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sun, 25 Jun 2017 13:29:18 +0000 (15:29 +0200)]
avfilter: remove usage of empty header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Kyle Swanson [Fri, 23 Jun 2017 21:33:07 +0000 (16:33 -0500)]
avcodec/g722enc: force mono channel layout
Signed-off-by: Kyle Swanson <k@ylo.ph>
Michael Niedermayer [Mon, 26 Jun 2017 13:00:52 +0000 (15:00 +0200)]
avcodec/jpeg2000dwt: Fix integer overflows in sr_1d97_int()
Fixes: runtime error: signed integer overflow:
1157259380 +
1157259380 cannot be represented in type 'int'
Fixes: 2365/clusterfuzz-testcase-minimized-
6020421927305216
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Mon, 26 Jun 2017 13:05:08 +0000 (15:05 +0200)]
avcodec/jpeg2000dwt: Fix integer overflow in dwt_decode97_int()
Fixes: runtime error: signed integer overflow: -
163654656 * 256 cannot be represented in type 'int'
Fixes: 2367/clusterfuzz-testcase-minimized-
4648678897745920
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Thu, 15 Jun 2017 18:46:32 +0000 (20:46 +0200)]
avcodec/ffv1enc: Try to choose slice count so that slice packet sizes are within the supported size
Fixes assertion failure
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Thu, 15 Jun 2017 18:26:14 +0000 (20:26 +0200)]
avcodec/ffv1: Increase the maximum number of slices to 1024
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Matthieu Bouron [Fri, 23 Jun 2017 14:32:31 +0000 (16:32 +0200)]
lavc/x86: clear r2 higher bits in ff_sbr_sum_square
Suggested-by: James Almer <jamrial@gmail.com>
Paul B Mahol [Mon, 26 Jun 2017 07:11:03 +0000 (09:11 +0200)]
avcodec/proresenc_kostya: enable frame threading
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Michael Niedermayer [Sun, 25 Jun 2017 19:50:15 +0000 (21:50 +0200)]
avcodec/frame_thread_encoder: Fix AV_OPT_TYPE_STRING handling in priv_data
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Paul B Mahol [Sun, 25 Jun 2017 22:01:07 +0000 (00:01 +0200)]
avcodec/proresenc_kostya: use frame metadata instead of avctx
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sat, 24 Jun 2017 14:34:52 +0000 (16:34 +0200)]
avcodec/prores_kostya: increase bits usage when alpha is used
Also fix undefined left shift of negative variable.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sun, 25 Jun 2017 14:39:10 +0000 (16:39 +0200)]
avfilter/vf_blend: add extremity blend mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sun, 25 Jun 2017 11:14:22 +0000 (13:14 +0200)]
avfilter/vf_waveform: allow alpha output for >8 depth planar rgb inputs
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sun, 25 Jun 2017 10:07:50 +0000 (12:07 +0200)]
avfilter/vf_overlay: separate functions with main alpha
~5-15% faster overall with main input without alpha.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Michael Niedermayer [Sun, 25 Jun 2017 02:25:56 +0000 (04:25 +0200)]
avcodec/hevcdec: Do not check the first ff_init_cabac_decoder() call in hls_decode_entry_wpp() for failure
The result of the call is not used in any testcase but breaks some cases if
its failure is considered.
Fixes regression found by jamrial
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sat, 24 Jun 2017 22:13:53 +0000 (00:13 +0200)]
avcodec/wavpack: Fix integer overflow in wv_unpack_stereo()
Fixes: runtime error: signed integer overflow:
2080374785 +
2080374784 cannot be represented in type 'int'
Fixes: 2351/clusterfuzz-testcase-minimized-
5359403240783872
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sat, 24 Jun 2017 22:00:13 +0000 (00:00 +0200)]
avcodec/hevc_ps: Fix max_dec_buffer check
Fixes: runtime error: signed integer overflow: -
2147483648 - 1 cannot be represented in type 'int'
Fixes: 2339/clusterfuzz-testcase-minimized-
6663164320022528
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Paul B Mahol [Sat, 24 Jun 2017 20:40:32 +0000 (22:40 +0200)]
avfilter/vf_lut2: add support for gray10 and gray12 pixel formats
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sat, 24 Jun 2017 20:27:10 +0000 (22:27 +0200)]
avcodec/adpcm_data: use uint16_t to handle all values
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Jun Zhao [Wed, 14 Jun 2017 02:42:36 +0000 (10:42 +0800)]
lavc/tests/golomb: Add unit test for set_ue_golomb_long.
Add unit test for set_ue_golomb_long.
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Jun Zhao [Wed, 14 Jun 2017 02:35:20 +0000 (10:35 +0800)]
lavc/golobm: Add set_ue_golomb_long to support up to 2^32 -2.
add set_ue_golomb_long to support up to 2^32-2.
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Jun Zhao [Wed, 14 Jun 2017 02:22:10 +0000 (10:22 +0800)]
lavc/put_bits: Add put_bits64() to support up to 64 bits.
put_bits64() can write up to 64 bits into a bitstream.
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sat, 24 Jun 2017 12:46:18 +0000 (14:46 +0200)]
avcodec/hevcdec: Use error path if init_get_bits8() fails
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Sat, 24 Jun 2017 12:46:17 +0000 (14:46 +0200)]
avcodec/hevcdec: check ff_init_cabac_decoder() for failure
Fixes: runtime error: left shift of
1965559808 by 4 places cannot be represented in type 'int'
Fixes: 2333/clusterfuzz-testcase-minimized-
5223935677300736
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>
Paul B Mahol [Sat, 24 Jun 2017 08:30:43 +0000 (10:30 +0200)]
avfilter/vf_overlay: remove rgb option
Its been deprecated for over 3 years.
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sat, 24 Jun 2017 16:47:04 +0000 (18:47 +0200)]
avfilter/af_headphone: do not free frame that's gonna be reused later
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Paul B Mahol [Sat, 24 Jun 2017 16:36:46 +0000 (18:36 +0200)]
avfilter: do not leak AVFrame on failed buffer allocation
Signed-off-by: Paul B Mahol <onemda@gmail.com>
Marton Balint [Sun, 4 Jun 2017 02:25:43 +0000 (04:25 +0200)]
avformat/file: increase min/max packet size to 256k for written files
Buffering more than one packet can be a huge performance improvement for
encoding files with small packets (e.g. wav) over SMB/CIFS.
Acked-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint [Sun, 4 Jun 2017 02:19:33 +0000 (04:19 +0200)]
avformat: make flush_packets a tri-state and set it to -1 (auto) by default
If flushing is not disabled, then mux.c will signal the end of the packets with
an AVIO_DATA_MARKER_FLUSH_POINT, and aviobuf will be able to decide to flush or
not based on the preferred minimum packet size set by the used protocol.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint [Sun, 18 Jun 2017 12:38:39 +0000 (14:38 +0200)]
avformat/aviobuf: add support for specifying minimum packet size and marking flush points
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Marton Balint <cus@passwd.hu>
Marton Balint [Sat, 3 Jun 2017 23:15:50 +0000 (01:15 +0200)]
avformat/aviobuf: fix flushing write buffers after seeking backward or forward
This patch makes aviobuf work more like traditinal file IO, which is how people
think about it.
For example, in the past, aviobuf only flushed buffers until the current buffer
position, even if more data was written to it previously, and a backward seek
was used to reposition the IO context.
From now, aviobuf will keep track of the written data, so no explicit seek will
be required till the end of the buffer, or till the end of file before flushing.
This fixes at least one regression, fate-vsynth3-flv was broken if
flush_packets option was set to false, an explicit seek was removed in
4e3cc4bdd8acedbcc703607ed0efbb64bb5c3cc4.
Also from now on, if a forward seek in the write buffer were to cause a gap
between the already written data and the new file position, a flush will
happen.
The must_flush varable is also removed, which might have caused needless
flushes with multiple seeks whithin the write buffer. Since we know the amount
of data written to it, we will know when to flush.
Signed-off-by: Marton Balint <cus@passwd.hu>
Mark Thompson [Sun, 19 Mar 2017 17:30:52 +0000 (17:30 +0000)]
doc: Add VAAPI encoders
(cherry picked from commit
41dda860870fb1566b17f6b0b61922f0ef89be47)
Mark Thompson [Mon, 28 Nov 2016 23:54:57 +0000 (23:54 +0000)]
vaapi_encode: Add VP9 support
(cherry picked from commit
0fd91e4bfc00a6609b59d1ce3a9f152184e62601)
Mark Thompson [Mon, 9 Jan 2017 23:08:49 +0000 (23:08 +0000)]
vp9: Add bsf to fix reordering in raw streams
Takes a raw input stream containing frames with correct timestamps but
possibly out of order and inserts additional show-existing-frame
packets to correct the ordering.
(cherry picked from commit
34e051d16850701694410a0e72e0e4ff3a5ec293)
(cherry picked from commit
b43b95f4789b6e60f9684918fd3c0a5f3f18aef6)
Also converted from bitstream to get_bits.
Mark Thompson [Tue, 14 Mar 2017 00:39:57 +0000 (00:39 +0000)]
ffmpeg: Flush output BSFs when encode reaches EOF
Before this, output bitstream filters would never see EOF and
therefore would not be able to flush any delayed packets.
(cherry picked from commit
f64d1100a54d12c78ce436181bb64229c56da6b3)
Michael Niedermayer [Sat, 24 Jun 2017 11:45:35 +0000 (13:45 +0200)]
avcodec/mpeg4videodec: Fix GMC with videos of dimension 1
Fixes: runtime error: shift exponent -1 is negative
Fixes: 2338/clusterfuzz-testcase-minimized-
5153426541379584
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Ronald S. Bultje [Fri, 23 Jun 2017 15:01:38 +0000 (11:01 -0400)]
vf_spp: only assign function pointers if permutation matches expectations.
Paul B Mahol [Sat, 24 Jun 2017 08:18:30 +0000 (10:18 +0200)]
avfilter/vf_overlay: add auto format mode
Signed-off-by: Paul B Mahol <onemda@gmail.com>
James Almer [Sat, 24 Jun 2017 04:52:09 +0000 (01:52 -0300)]
fate: update checksums for fate-lavf-ffm and fate-lavf-mxf
<@jamrial> durandal_1707:
04aa09c4bc broke fate-lavf-ffm and fate-lavf-mxf
<@durandal_1707> how so?
<@jamrial> one byte changes
<@durandal_1707> jamrial: just update checksums
<@jamrial> durandal_1707: but why did they change at all? the commit you reverted didn't affect them
<@jamrial> why does reverting it affect these tests?
<@jamrial> i don't think updating the checksum without knowing what changed is a good idea
<@durandal_1707> jamrial: the lavfi core is in weird state after removal of recursive code
<@durandal_1707> jamrial: the change is that older ones would get progressive flag set and new one doesnt
<@jamrial> alright
James Almer [Sat, 24 Jun 2017 04:44:49 +0000 (01:44 -0300)]
x86/mdct15: use three operand form for some instructions
Fixes compilation with old yasm
Reino17 [Fri, 23 Jun 2017 21:49:31 +0000 (23:49 +0200)]
Add support for LibOpenJPEG v2.2/git
Signed-off-by: Michael Bradshaw <mjbshaw@google.com>
James Almer [Sat, 24 Jun 2017 02:38:07 +0000 (23:38 -0300)]
checkasm: add missing checks to float_dsp's butterflies_float test
Rostislav Pehlivanov [Sun, 18 Jun 2017 11:06:30 +0000 (12:06 +0100)]
mdct15: add assembly optimizations for the 15-point FFT
c: 1802 decicycles in fft15,
16774635 runs, 2581 skips
avx: 865 decicycles in fft15,
16776378 runs, 838 skips
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
James Almer [Fri, 23 Jun 2017 14:32:52 +0000 (11:32 -0300)]
configure: fix assignment of assembler specific flags
If the first assembler to be probed is an old nasm build, X86ASM_DEPFLAGS
will be set and remain so after yasm is ultimately used as fallback.
This results in yasm being called with said nasm specific flags and failing
during actual object assembly but not with configure sanity checks.
Regression since
5cae5a1defa360da076365a786093a749d1ddf4e
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
Paul B Mahol [Fri, 23 Jun 2017 14:18:42 +0000 (16:18 +0200)]
Revert "lavfi/buffersrc: push the frame deeper if requested."
Fixes framesync filters with shortest option enabled.
This reverts commit
0ff5567a30be6d7c804e95997ae282d6bacd76c3.
jerett [Fri, 23 Jun 2017 12:58:35 +0000 (08:58 -0400)]
lavc/videotoolboxenc: fix open videotoolbox bug on iOS8.4
Checks for NULL before using object.
Signed-off-by: Rick Kern <kernrj@gmail.com>
jerett [Fri, 23 Jun 2017 12:57:18 +0000 (08:57 -0400)]
lavc/videotoolboxenc: fix loadVTEncSymbols crash when symbol not found
Signed-off-by: Rick Kern <kernrj@gmail.com>
Jun Zhao [Wed, 14 Jun 2017 02:08:58 +0000 (10:08 +0800)]
lavc/golomb: add value range comment for set_ue_golomb().
set_ue_golomb just support 2^16 - 2 at most, becase this function call
put_bits, and put_bits just support write up to 31 bits, when write 32
bit in put_bits, it's will overwrite the bit buffer, and the default
assert level is 0, the av_assert2(n <= 31 && value < (1U << n)) in
put_bits can not be trigger runtime.
Signed-off-by: Jun Zhao <jun.zhao@intel.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Thu, 22 Jun 2017 23:58:48 +0000 (01:58 +0200)]
avcodec/wavpack: Fix integer overflow
Fixes: runtime error: signed integer overflow:
227511904 +
1964113935 cannot be represented in type 'int'
Fixes: 2331/clusterfuzz-testcase-minimized-
6182185830711296
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Michael Niedermayer [Thu, 22 Jun 2017 19:21:56 +0000 (21:21 +0200)]
avcodec/takdec: Fix integer overflow
Fixes: runtime error: signed integer overflow: 512 +
2147483146 cannot be represented in type 'int'
Fixes: 2314/clusterfuzz-testcase-minimized-
4519333877252096
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>