d9dccc0389
hevc: x86: Refactor IDCT macro declarations
2016-10-06 12:32:34 +02:00
be630b1e08
d3d11va: Use the proper decoding slice index
...
The decoding buffer index expected by D3D11VA is the one from the
ID3D11Texture2D not the one from the ID3D11VideoDecoderOutputView array
in AVD3D11VAContext.
Otherwise, when providing decoder slices that do not start from 0,
pictures appear in bogus order. For an invalid index crashes and
image corruption can occur.
Signed-off-by: Diego Biurrun <diego@biurrun.de >
2016-10-05 18:37:27 +02:00
715f139c9b
vp9lpf/x86: make filter_16_h work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:09 +02:00
8915320db9
vp9lpf/x86: make filter_48/84/88_h work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:09 +02:00
725a216481
vp9lpf/x86: make filter_44_h work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:09 +02:00
5bfa96c4b3
vp9lpf/x86: make filter_16_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:09 +02:00
b905e8d2fe
vp9lpf/x86: make filter_48/84_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
37637e6590
vp9lpf/x86: make filter_88_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
be10834bd9
vp9lpf/x86: make filter_44_v work on 32-bit.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
7c62891efe
vp9lpf/x86: save one register in SIGN_ADD/SUB.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
c6375a83d1
vp9lpf/x86: store unpacked intermediates for filter6/14 on stack.
...
filter16 goes from 508 to 482 (h) or 346 to 314 (v) cycles; filter88
goes from 240 to 238 (h) or 174 to 165 (v) cycles, measured on TOS.
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
4ce8ba72f9
vp9lpf/x86: move variable assigned inside macro branch.
...
The value is not used outside the branch.
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
e4961035b2
vp9lpf/x86: simplify ABSSUM_CMP by inverting the comparison meaning.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
683da2788e
vp9lpf/x86: remove unused register from ABSSUB_CMP macro.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
6e74e9636b
vp9lpf/x86: slightly simplify 44/48/84/88 h stores.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
6411c328a2
vp9lpf/x86: make cglobal statement more conservative in register allocation.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
a6e288d624
vp9lpf/x86: save one register in loopfilter surface coverage.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
0ed21bdc9e
vp9lpf/x86: add ff_vp9_loop_filter_[vh]_44_16_{sse2,ssse3,avx}.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
f2e3d706a1
vp9lpf/x86: add ff_vp9_loop_filter_h_{48,84}_16_{sse2,ssse3,avx}().
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
92d47550ea
vp9lpf/x86: add an SSE2 version of vp9_loop_filter_[vh]_88_16
...
Similar gains as the ssse3 version once again
Additional improvements by Clément Bœsch <u@pkh.me >.
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
6bea478158
vp9lpf/x86: add ff_vp9_loop_filter_[vh]_88_16_{ssse3,avx}.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
1f451eed60
vp9lpf/x86: add ff_vp9_loop_filter_[vh]_16_16_sse2().
...
Similar gains in performance as the SSSE3 version
Signed-off-by: James Almer <jamrial@gmail.com >
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
a692724c58
vp9lpf/x86: add x86 SSSE3/AVX SIMD for vp9_loop_filter_[vh]_16_16.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:08 +02:00
c935b54bd6
checkasm: add VP9 loopfilter tests.
...
The randomize_buffer() implementation assures that "most of the time",
we'll do a good mix of wide16/wide8/hev/regular/no filters for complete
code coverage. However, this is not mathematically assured because that
would make the code either much more complex, or much less random.
Some fixes and improvements by Rodger Combs <rodger.combs@gmail.com >
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:07 +02:00
a451324ddd
vp9: ignore reference segmentation map if error_resilience flag is set.
...
Fixes ffvp9_fails_where_libvpx.succeeds.webm.
Bug-Id: ffmpeg/3849.
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2016-10-04 10:54:07 +02:00
dc3fe45fca
fate: Add test for rscc palette
2016-10-02 15:42:03 -04:00
c19830aa2c
rscc: Support palette format
...
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2016-10-02 15:42:03 -04:00
b8d5070db6
avcodec: Document AV_PKT_DATA_PALETTE side data type
2016-10-02 15:42:03 -04:00
497c087939
avidec: Set palette alpha as fully opaque
...
Palette format is always in RGBA.
2016-10-02 15:42:03 -04:00
bad4aad403
avidec: Do not special case palette on big-endian
...
This simplifies the code a bit, does not change output data in any way.
2016-10-02 15:42:03 -04:00
310c55f179
pixfmt: Document alternative names for smpte 431 and 432
2016-10-02 15:42:03 -04:00
5a5df90d9c
vaapi_h265: Add main 10 encode support
2016-10-02 20:23:18 +01:00
eaaaabf6c9
hwcontext_vaapi: Enable P010 support
...
This is required for 10-bit surfaces.
2016-10-02 20:23:18 +01:00
b8cac1e830
vaapi_h265: Fix buffering parameters
...
A decoder may need this to be set correctly to output frames in the
right order.
2016-10-02 20:23:18 +01:00
fc30a90898
vaapi_h265: Fix slice header writing
...
This was not observed earlier because the only syntax element which
it normally misses with the current setup is slice_qp_delta, but that
is always going to be zero (in IDR frames QP isn't varied on the
slice) which will always exp-golomb code as a single 1 bit. The
immediately following part is the byte alignment, which is always a 1
bit followed by 0s which are ignored, so as long as the bitstream is
never aligned at that point we will never notice because the only
difference is that an ignored bit is a 1 instead of a 0.
2016-10-02 20:23:18 +01:00
ec17ab381e
vaapi_h264: Write bitstream restriction fields
2016-10-02 20:23:18 +01:00
17a0f9481c
vaapi_h264: Fix CFR mode with frame_rate set in AVCodecContext
2016-10-02 20:23:18 +01:00
314b421dd8
vaapi_encode: Decide on GOP setup before initialising sequence parameters
...
This was always too late; several fields related to it have been incorrectly
zero since the encoder was added.
2016-10-02 20:23:18 +01:00
5cc0057f49
lavu: remove the custom atomic API
...
It has been replaced by C11 stdatomic.h and is now unused.
2016-10-02 19:35:55 +02:00
59c7022740
pthread_frame: use atomics for frame progress
2016-10-02 19:35:46 +02:00
64a31b2854
pthread_frame: use atomics for PerThreadContext.state
2016-10-02 19:35:34 +02:00
db2733256d
pthread_frame: use a thread-safe way for signalling threads to die
...
Current code uses a plain int in a racy way, which is UB.
2016-10-02 19:35:23 +02:00
8385ba53f1
mmaldec: convert to stdatomic
2016-10-02 19:35:12 +02:00
3a165c187d
v4l2: convert to stdatomic
2016-10-02 19:34:57 +02:00
27079a426c
buffer: convert to stdatomic
2016-10-02 18:58:04 +02:00
eb34d40354
Add a compat dummy stdatomic.h used when threading is disabled
...
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:57:56 +02:00
f9a6a80e06
Add a compat stdatomic.h implementation based on pthreads
...
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:56:52 +02:00
bb81ed4765
Add a compat stdatomic.h implementation based on suncc atomics
...
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:55:41 +02:00
c2755864af
Add a compat stdatomic.h implementation based on windows atomics
...
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:54:28 +02:00
4e928ef340
Add a compat stdatomic.h implementation based on GCC atomics
...
Adapted from the code by Rémi Denis-Courmont from VLC
2016-10-02 18:52:08 +02:00