Mark Thompson
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
Mark Thompson
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
Mark Thompson
ec17ab381e
vaapi_h264: Write bitstream restriction fields
2016-10-02 20:23:18 +01:00
Mark Thompson
17a0f9481c
vaapi_h264: Fix CFR mode with frame_rate set in AVCodecContext
2016-10-02 20:23:18 +01:00
Mark Thompson
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
Anton Khirnov
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
Anton Khirnov
59c7022740
pthread_frame: use atomics for frame progress
2016-10-02 19:35:46 +02:00
Anton Khirnov
64a31b2854
pthread_frame: use atomics for PerThreadContext.state
2016-10-02 19:35:34 +02:00
Anton Khirnov
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
Anton Khirnov
8385ba53f1
mmaldec: convert to stdatomic
2016-10-02 19:35:12 +02:00
Anton Khirnov
3a165c187d
v4l2: convert to stdatomic
2016-10-02 19:34:57 +02:00
Anton Khirnov
27079a426c
buffer: convert to stdatomic
2016-10-02 18:58:04 +02:00
Anton Khirnov
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
Anton Khirnov
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
Anton Khirnov
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
Anton Khirnov
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
Anton Khirnov
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
Anton Khirnov
13f5d2bf75
configure: check for stdatomic.h
...
Since this is a C11 feature, it requires -std=c11.
Not actually used for anything yet, that will be added in the following
commits.
2016-10-02 18:49:14 +02:00
Luca Barbato
b015872c0d
huffyuvdsp: Enable the altivec code for PPC little-endian as well
...
Confirmed to work by checkasm.
2016-10-02 17:13:36 +02:00
Luca Barbato
1d25a86902
huffyuvdsp: Reenable PPC optimizations
2016-10-02 17:13:36 +02:00
Alexandra Hájková
22c3ab1864
checkasm: Add test for huffyuvdsp add_bytes
...
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-10-02 17:13:26 +02:00
Anton Khirnov
27085d1b47
avconv: only retry decoding on actual decoding errors
...
Errors during decoding are currently considered non-fatal and do not
terminate transcoding, so even if parts of the data are corrupted, the
rest may be decodable.
However, that should apply only to the actual decoding calls, not to the
failures elsewhere (e.g. configuring filters).
2016-10-02 11:41:45 +02:00
Anton Khirnov
f6772e9bf8
avconv: make sure the filtergraph is freed on init failure
...
The filtergraph's existence is used in several places to mean that the
filtergraph is fully configured. This causes problems if it's allocated,
but the initialization fails (e.g. if a non-existent filter is
specified).
2016-10-02 11:41:45 +02:00
Anton Khirnov
d10102d23c
avconv: set the encoding framerate when the output is CFR
2016-10-02 11:41:45 +02:00
Anton Khirnov
5bf2454e7c
h264dec: support broken files with mp4 extradata/annex b data
...
Bug-Id: 966
2016-10-02 11:41:45 +02:00
Anton Khirnov
2124711b95
hwcontext_vaapi: add a quirk for the missing MemoryType attribute
...
The Intel binary iHD driver does not support the
VASurfaceAttribMemoryType, so surface allocation will fail when using
it.
2016-10-02 11:41:45 +02:00
Justin Ruggles
b57e38f52c
ac3dsp: x86: Replace inline asm for in-decoder downmixing with standalone asm
...
Adds a wrapper function for downmixing which detects channel count changes
and updates the selected downmix function accordingly.
Simplification and porting to current x86inc infrastructure by Diego Biurrun.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-10-01 00:46:25 +02:00
Justin Ruggles
a9ba59591e
ac3dsp: Add some special-case handling for the C downmix function
...
This is about 200% faster for in-decoder downmixing of 5.0 and 5.1 content.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-10-01 00:46:18 +02:00
Justin Ruggles
43717469f9
ac3dsp: Reverse matrix in/out order in downmix()
...
Also use (float **) instead of (float (*)[2]). This matches the matrix
layout in libavresample so we can reuse assembly code between the two.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-10-01 00:45:55 +02:00
Anton Khirnov
8ea35af762
avio: add a new flag for marking streams seekable by timestamp
2016-09-30 16:55:45 +02:00
Anton Khirnov
75c1db6152
avio: cosmetics, prettify AVIO_SEEKABLE_NORMAL
...
Move the doxy above the definition, change the value itself to the
(1 << n) pattern, which is more readable for flags.
2016-09-30 16:54:55 +02:00
Anton Khirnov
83548fe894
lavf: fix usage of AVIOContext.seekable
...
It is supposed to be a flag. The only currently defined value is
AVIO_SEEKABLE_NORMAL, but other ones may be added in the future.
However all the current lavf code treats this field as a bool (mainly
for historical reasons).
Change all those cases to properly check for AVIO_SEEKABLE_NORMAL.
2016-09-30 16:54:33 +02:00
Hendrik Leppkes
8d1267932c
x86/h264_weight: use appropriate register size for weight parameters
...
This fixes decoding corruption on 64 bit windows.
Signed-off-by: Martin Storsjö <martin@martin.st>
2016-09-30 12:18:22 +03:00
Diego Biurrun
2caa93b813
mpegaudiodsp: Change type of array stride parameters to ptrdiff_t
...
This avoids SIMD-optimized functions having to sign-extend their
stride argument manually to be able to do pointer arithmetic.
2016-09-29 17:54:24 +02:00
Diego Biurrun
15b4f494fc
mss*: Change type of array stride parameters to ptrdiff_t
...
ptrdiff_t is the correct type for array strides and similar.
2016-09-29 17:54:24 +02:00
Diego Biurrun
a339e919ca
ea: Change type of array stride parameters to ptrdiff_t
...
ptrdiff_t is the correct type for array strides and similar.
2016-09-29 17:54:23 +02:00
Diego Biurrun
ba479f3daa
hevc: Change type of array stride parameters to ptrdiff_t
...
ptrdiff_t is the correct type for array strides and similar.
2016-09-29 17:54:23 +02:00
Diego Biurrun
e4a94d8b36
h264chroma: Change type of stride parameters to ptrdiff_t
...
This avoids SIMD-optimized functions having to sign-extend their
stride argument manually to be able to do pointer arithmetic.
2016-09-29 14:48:04 +02:00
Diego Biurrun
2ec9fa5ec6
idct: Change type of array stride parameters to ptrdiff_t
...
ptrdiff_t is the correct type for array strides and similar.
2016-09-29 14:48:03 +02:00
Diego Biurrun
b2939a7527
blockdsp: Change type of array stride parameters to ptrdiff_t
...
ptrdiff_t is the correct type for array strides and similar.
2016-09-29 14:48:03 +02:00
Diego Biurrun
3281d823cd
intrax8: Change type of array stride parameters to ptrdiff_t
...
ptrdiff_t is the correct type for array strides and similar.
Also rename all such parameters to "stride" for consistency.
2016-09-29 14:48:03 +02:00
Diego Biurrun
92c5755a18
hpeldsp: arm: Update comments left behind in 25841dfe80
2016-09-29 14:48:03 +02:00
Diego Biurrun
009adfd4fb
x86: fpel: Remove unnecessary sign extend
2016-09-29 14:47:41 +02:00
Mark Thompson
956a54129d
vaapi_h264: Set max_num_ref_frames to 1 when not using B frames
2016-09-28 22:54:11 +01:00
Mark Thompson
086e4b58b5
vaapi_encode: Sync to input surface rather than output
...
While outwardly bizarre, this change makes the behaviour consistent
with other VAAPI encoders which sync to the encode /input/ picture in
order to wait for /output/ from the encoder. It is not harmful on
i965 (because synchronisation already happens in vaRenderPicture(),
so it has no effect there), and it allows the encoder to work on
mesa/gallium which assumes this behaviour.
2016-09-28 22:54:11 +01:00
Mark Thompson
892bbbcdc1
vaapi_encode: Check packed header capabilities
...
This improves behaviour with drivers which do not support packed
headers, such as AMD VCE on mesa/gallium.
2016-09-28 22:54:11 +01:00
Mark Thompson
80a5d05108
vaapi_encode: Refactor initialisation
...
This allows better checking of capabilities and will make it easier
to add more functionality later.
It also commonises some duplicated code around rate control setup
and adds more comments explaining the internals.
2016-09-28 22:54:10 +01:00
Anton Khirnov
67d28f4a0f
examples/output: switch to the new encoding API
2016-09-28 10:01:52 +02:00
Anton Khirnov
7bf8db4db6
tdsc: use the new decoding API
2016-09-28 10:01:52 +02:00
Anton Khirnov
de2ae3c1fa
lavc: add clobber tests for the new encoding/decoding API
2016-09-28 10:01:52 +02:00