ffmpeg.git
2 years agovaapi_encode: Write sequence header as extradata
Mark Thompson [Sun, 2 Oct 2016 07:48:34 +0000 (08:48 +0100)]
vaapi_encode: Write sequence header as extradata

Only works if packed headers are supported, where we can know the
output before generating the first frame.

2 years agovaapi_h265: Include header for slice types
Mark Thompson [Sun, 16 Oct 2016 22:55:24 +0000 (23:55 +0100)]
vaapi_h265: Include header for slice types

The include was changed correctly in 4abe3b049d987420eb891f74a35af2cebbf52144
but then mistakenly changed back by c359d624d3efc3fd1d83210d78c4152bd329b765
(it's not just the NAL unit types which are used).

2 years agox86: Add missing colons after assembly labels
Diego Biurrun [Thu, 17 Mar 2016 09:16:13 +0000 (10:16 +0100)]
x86: Add missing colons after assembly labels

This fixes many warnings of the sort
warning: label alone on a line without a colon might be in error

2 years agobuild: Drop arch-specific checkasm Makefiles
Diego Biurrun [Thu, 13 Oct 2016 23:24:36 +0000 (01:24 +0200)]
build: Drop arch-specific checkasm Makefiles

They only contain one line and will never contain more.

2 years agobuild: Drop duplicate asm recipe
Diego Biurrun [Sat, 8 Oct 2016 14:48:29 +0000 (16:48 +0200)]
build: Drop duplicate asm recipe

And move the asm recipe to the top-level Makefile next to the other
local pattern rules for .o files.

2 years agocheckasm: aarch64: Add filler args to make sure all parameters are passed on the...
Martin Storsjö [Fri, 30 Sep 2016 09:06:49 +0000 (12:06 +0300)]
checkasm: aarch64: Add filler args to make sure all parameters are passed on the stack

This, combined with clobbering the stack space prior to the call,
increases the chances of finding cases where 32 bit parameters
are erroneously treated as 64 bit.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agocheckasm: aarch64: Clobber the stack before calling functions
Martin Storsjö [Fri, 30 Sep 2016 08:39:22 +0000 (11:39 +0300)]
checkasm: aarch64: Clobber the stack before calling functions

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agocheckasm: arm/aarch64: Fix the amount of space reserved for stack parameters
Martin Storsjö [Fri, 30 Sep 2016 08:49:47 +0000 (11:49 +0300)]
checkasm: arm/aarch64: Fix the amount of space reserved for stack parameters

Even if MAX_ARGS - 2 (for arm) or MAX_ARGS - 7 (for aarch64) parameters
are passed on the stack to checkasm_checked_call, we actually only
need to store MAX_ARGS - 4 (for arm) or MAX_ARGS - 8 (for aarch64)
parameters on the stack when calling the tested function.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agolavf: use the new bitstream filter for extracting extradata
Anton Khirnov [Thu, 22 Sep 2016 13:24:34 +0000 (15:24 +0200)]
lavf: use the new bitstream filter for extracting extradata

This also fixes a minor bug introduced in the codecpar conversion, where
the termination condition for extracting the extradata does not match
the actual extradata setting code. As a result, the packet durations
made up by lavf go back to their values before the codecpar conversion.
That is of little consequence since that code should eventually be
dropped completely.

2 years agolavc: add a bitstream filter for extracting extradata from packets
Anton Khirnov [Sun, 21 Aug 2016 15:08:34 +0000 (17:08 +0200)]
lavc: add a bitstream filter for extracting extradata from packets

This is intended as a replacement for the 'split' function exported by
some parsers.

2 years agohevcdec: move parameter set parsing into a separate header
Anton Khirnov [Sun, 21 Aug 2016 16:02:02 +0000 (18:02 +0200)]
hevcdec: move parameter set parsing into a separate header

This code is independent from the decoder, so it makes more sense for it
to to have its own header.

2 years agohevcdec: split ff_hevc_diag_scan* declarations into a separate header
Anton Khirnov [Wed, 12 Oct 2016 08:21:35 +0000 (10:21 +0200)]
hevcdec: split ff_hevc_diag_scan* declarations into a separate header

This will be useful in the following commits.

2 years agohevcdec: drop the prototype of a non-existing function
Anton Khirnov [Sun, 21 Aug 2016 15:48:01 +0000 (17:48 +0200)]
hevcdec: drop the prototype of a non-existing function

2 years agohevcdec: move decoder-independent declarations into a separate header
Anton Khirnov [Sun, 21 Aug 2016 15:35:28 +0000 (17:35 +0200)]
hevcdec: move decoder-independent declarations into a separate header

This way they can be reused by other code without including the whole
decoder-specific hevcdec.h
Also, add the HEVC_ prefix to them, since similarly named values exist
for H.264 as well and are sometimes used in the same code.

2 years agohevc: rename hevc.[ch] to hevcdec.[ch]
Anton Khirnov [Sun, 21 Aug 2016 15:14:24 +0000 (17:14 +0200)]
hevc: rename hevc.[ch] to hevcdec.[ch]

This is more consistent with the rest of libav and frees up the hevc.h
name for decoder-independent shared declarations.

2 years agoavformat/matroska: fix MatroskaVideoFieldOrder enum values
James Almer [Thu, 13 Oct 2016 13:53:41 +0000 (10:53 -0300)]
avformat/matroska: fix MatroskaVideoFieldOrder enum values

The spec says

9: Interlaced with bottom field displayed first and top field stored first
14: Interlaced with top field displayed first and bottom field stored first

And avcodec.h states

AV_FIELD_TB,          //< Top coded first, bottom displayed first
AV_FIELD_BT,          //< Bottom coded first, top displayed first

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agofile protocol: handle the file: protocol string in file_check
Anton Khirnov [Thu, 13 Oct 2016 08:03:18 +0000 (10:03 +0200)]
file protocol: handle the file: protocol string in file_check

This is consistent with what file_open() does.

CC: libav-stable@libav.org
2 years agortmpproto: Don't include a client version in the unencrypted C1 handshake
Martin Storsjö [Fri, 14 Oct 2016 12:55:52 +0000 (15:55 +0300)]
rtmpproto: Don't include a client version in the unencrypted C1 handshake

According to the public RTMP specification, these 4 bytes should
be zero.

librtmp in server mode assumes that the RTMPE (FP9) handshake is
used if these bytes are nonzero.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agortmpproto: Don't include the libavformat version as "clientid"
Martin Storsjö [Fri, 14 Oct 2016 08:30:12 +0000 (11:30 +0300)]
rtmpproto: Don't include the libavformat version as "clientid"

When acting as server, the server can include a "clientid" property
in some status messages. But this should be a unique number
identifying the client session, not identifying the server itself.
In practice, omitting it works just as well as including this
incorrect field.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agortmpproto: Send chunk size on the network channel
Martin Storsjö [Thu, 13 Oct 2016 13:17:11 +0000 (16:17 +0300)]
rtmpproto: Send chunk size on the network channel

This makes sure that e.g. Adobe FME actually reacts to it. As long
as the value we've been sending is the default one (128), the bug
hasn't been noticed.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agortmpproto: Lengthen the filename buffer when receiving streams
Martin Storsjö [Thu, 13 Oct 2016 12:25:33 +0000 (15:25 +0300)]
rtmpproto: Lengthen the filename buffer when receiving streams

Some applications such as Adobe FME append lots of parameters
here, making it easily overflow the current limit.

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agortmpproto: Check the return from ff_amf_read_string
Martin Storsjö [Thu, 13 Oct 2016 12:24:54 +0000 (15:24 +0300)]
rtmpproto: Check the return from ff_amf_read_string

If this failed, we used to continue with an uninitialized
filename buffer.

CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agoMake the RELEASE file match with the most recent tag
Sean McGovern [Fri, 14 Oct 2016 17:52:51 +0000 (13:52 -0400)]
Make the RELEASE file match with the most recent tag

2 years agoswscale: Add the GBRAP12 output
Luca Barbato [Wed, 12 Oct 2016 19:30:34 +0000 (21:30 +0200)]
swscale: Add the GBRAP12 output

2 years agoAdd GBRAP12 pixel format support
Kieran Kunhya [Mon, 8 Feb 2016 21:40:10 +0000 (21:40 +0000)]
Add GBRAP12 pixel format support

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2 years agoswscale: Enable GBRP12 output
Luca Barbato [Mon, 10 Oct 2016 20:31:24 +0000 (22:31 +0200)]
swscale: Enable GBRP12 output

2 years agoswscale: x86: Add some forgotten 12-bit planar YUV cases
Michael Niedermayer [Thu, 5 Jul 2012 02:37:12 +0000 (04:37 +0200)]
swscale: x86: Add some forgotten 12-bit planar YUV cases

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2 years agoswscale: Add input support for 12-bit formats
Michael Niedermayer [Tue, 3 Jul 2012 02:10:11 +0000 (04:10 +0200)]
swscale: Add input support for 12-bit formats

Implemented for AV_PIX_FMT_GBRP12.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2 years agoAdd GBRP12 pixel format support
Michael Niedermayer [Wed, 4 Jul 2012 19:11:39 +0000 (21:11 +0200)]
Add GBRP12 pixel format support

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2 years agoAPIchanges: Expand the name of recently added pixel formats
Vittorio Giovara [Thu, 6 Oct 2016 22:27:24 +0000 (18:27 -0400)]
APIchanges: Expand the name of recently added pixel formats

This makes them easier to search for.

2 years agolavc: bsf: Document input/output codecparam alloc/init process
Vittorio Giovara [Tue, 4 Oct 2016 15:59:53 +0000 (11:59 -0400)]
lavc: bsf: Document input/output codecparam alloc/init process

2 years agoswscale: Add missing yuv444p12 swapping
Vittorio Giovara [Thu, 6 Oct 2016 22:28:50 +0000 (18:28 -0400)]
swscale: Add missing yuv444p12 swapping

Missing from 9bd6ea5695660529b2887292874a7b9e61fc301e.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2 years agohevc: Add SSE2 and AVX IDCT
Alexandra Hájková [Mon, 10 Oct 2016 20:23:01 +0000 (22:23 +0200)]
hevc: Add SSE2 and AVX IDCT

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agocheckasm: add a test for HEVC IDCT
Alexandra Hájková [Sun, 18 Sep 2016 17:35:26 +0000 (19:35 +0200)]
checkasm: add a test for HEVC IDCT

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agoaarch64: Add missing sign extension in ff_h264_idct8_add_neon
Martin Storsjö [Fri, 30 Sep 2016 09:05:55 +0000 (12:05 +0300)]
aarch64: Add missing sign extension in ff_h264_idct8_add_neon

Signed-off-by: Martin Storsjö <martin@martin.st>
2 years agonvenc: Fix error log
Yogender Gupta [Thu, 6 Oct 2016 09:14:26 +0000 (14:44 +0530)]
nvenc: Fix error log

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2 years agonvenc: Force high_444 profile for 444 input
Yogender Gupta [Thu, 6 Oct 2016 09:10:25 +0000 (09:10 +0000)]
nvenc: Force high_444 profile for 444 input

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2 years agoRevert "hevc: x86: Refactor IDCT macro declarations"
Anton Khirnov [Thu, 6 Oct 2016 13:24:04 +0000 (15:24 +0200)]
Revert "hevc: x86: Refactor IDCT macro declarations"

This reverts commit d9dccc03890a976dba59d66ed3b5aceeaa33d14c. There were
outstanding objections to this commit.

2 years agoh264_intrapred: x86: Update comments left behind in 95c89da36ebeeb96b7146c0d70f46c582...
Diego Biurrun [Thu, 8 Sep 2016 23:27:41 +0000 (01:27 +0200)]
h264_intrapred: x86: Update comments left behind in 95c89da36ebeeb96b7146c0d70f46c582397da7f

2 years agoconfigure: #include stdint.h as part of libxavs test
Diego Biurrun [Wed, 5 Oct 2016 06:51:03 +0000 (08:51 +0200)]
configure: #include stdint.h as part of libxavs test

Unfortunately the xavs.h API header is not self-sufficient and relies
on manual stdint.h inclusion by its users.

2 years agohevc: x86: Refactor IDCT macro declarations
Diego Biurrun [Wed, 5 Oct 2016 09:39:16 +0000 (11:39 +0200)]
hevc: x86: Refactor IDCT macro declarations

2 years agod3d11va: Use the proper decoding slice index
Steve Lhomme [Wed, 5 Oct 2016 10:52:00 +0000 (12:52 +0200)]
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>
2 years agovp9lpf/x86: make filter_16_h work on 32-bit.
Ronald S. Bultje [Fri, 26 Dec 2014 22:50:38 +0000 (17:50 -0500)]
vp9lpf/x86: make filter_16_h work on 32-bit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: make filter_48/84/88_h work on 32-bit.
Ronald S. Bultje [Fri, 26 Dec 2014 20:15:50 +0000 (15:15 -0500)]
vp9lpf/x86: make filter_48/84/88_h work on 32-bit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: make filter_44_h work on 32-bit.
Ronald S. Bultje [Fri, 26 Dec 2014 19:48:01 +0000 (14:48 -0500)]
vp9lpf/x86: make filter_44_h work on 32-bit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: make filter_16_v work on 32-bit.
Ronald S. Bultje [Fri, 26 Dec 2014 19:05:23 +0000 (14:05 -0500)]
vp9lpf/x86: make filter_16_v work on 32-bit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: make filter_48/84_v work on 32-bit.
Ronald S. Bultje [Fri, 26 Dec 2014 17:10:26 +0000 (12:10 -0500)]
vp9lpf/x86: make filter_48/84_v work on 32-bit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: make filter_88_v work on 32-bit.
Ronald S. Bultje [Sat, 27 Dec 2014 20:12:01 +0000 (15:12 -0500)]
vp9lpf/x86: make filter_88_v work on 32-bit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: make filter_44_v work on 32-bit.
Ronald S. Bultje [Sat, 27 Dec 2014 20:08:48 +0000 (15:08 -0500)]
vp9lpf/x86: make filter_44_v work on 32-bit.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: save one register in SIGN_ADD/SUB.
Ronald S. Bultje [Sat, 27 Dec 2014 19:47:07 +0000 (14:47 -0500)]
vp9lpf/x86: save one register in SIGN_ADD/SUB.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: store unpacked intermediates for filter6/14 on stack.
Ronald S. Bultje [Wed, 24 Dec 2014 19:17:28 +0000 (14:17 -0500)]
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>
2 years agovp9lpf/x86: move variable assigned inside macro branch.
Ronald S. Bultje [Wed, 24 Dec 2014 19:22:19 +0000 (14:22 -0500)]
vp9lpf/x86: move variable assigned inside macro branch.

The value is not used outside the branch.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: simplify ABSSUM_CMP by inverting the comparison meaning.
Ronald S. Bultje [Mon, 22 Dec 2014 00:34:03 +0000 (19:34 -0500)]
vp9lpf/x86: simplify ABSSUM_CMP by inverting the comparison meaning.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: remove unused register from ABSSUB_CMP macro.
Ronald S. Bultje [Sat, 20 Dec 2014 16:13:06 +0000 (11:13 -0500)]
vp9lpf/x86: remove unused register from ABSSUB_CMP macro.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: slightly simplify 44/48/84/88 h stores.
Ronald S. Bultje [Sat, 20 Dec 2014 03:18:42 +0000 (22:18 -0500)]
vp9lpf/x86: slightly simplify 44/48/84/88 h stores.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: make cglobal statement more conservative in register allocation.
Ronald S. Bultje [Sat, 20 Dec 2014 03:09:30 +0000 (22:09 -0500)]
vp9lpf/x86: make cglobal statement more conservative in register allocation.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: save one register in loopfilter surface coverage.
Ronald S. Bultje [Sat, 20 Dec 2014 02:44:57 +0000 (21:44 -0500)]
vp9lpf/x86: save one register in loopfilter surface coverage.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: add ff_vp9_loop_filter_[vh]_44_16_{sse2,ssse3,avx}.
Clément Bœsch [Wed, 5 Feb 2014 06:21:06 +0000 (07:21 +0100)]
vp9lpf/x86: add ff_vp9_loop_filter_[vh]_44_16_{sse2,ssse3,avx}.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: add ff_vp9_loop_filter_h_{48,84}_16_{sse2,ssse3,avx}().
Clément Bœsch [Thu, 30 Jan 2014 18:01:30 +0000 (19:01 +0100)]
vp9lpf/x86: add ff_vp9_loop_filter_h_{48,84}_16_{sse2,ssse3,avx}().

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: add an SSE2 version of vp9_loop_filter_[vh]_88_16
James Almer [Tue, 28 Jan 2014 07:59:45 +0000 (04:59 -0300)]
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>
2 years agovp9lpf/x86: add ff_vp9_loop_filter_[vh]_88_16_{ssse3,avx}.
Clément Bœsch [Sat, 25 Jan 2014 16:38:42 +0000 (17:38 +0100)]
vp9lpf/x86: add ff_vp9_loop_filter_[vh]_88_16_{ssse3,avx}.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agovp9lpf/x86: add ff_vp9_loop_filter_[vh]_16_16_sse2().
James Almer [Fri, 17 Jan 2014 06:55:44 +0000 (03:55 -0300)]
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>
2 years agovp9lpf/x86: add x86 SSSE3/AVX SIMD for vp9_loop_filter_[vh]_16_16.
Clément Bœsch [Sun, 5 Jan 2014 20:00:40 +0000 (21:00 +0100)]
vp9lpf/x86: add x86 SSSE3/AVX SIMD for vp9_loop_filter_[vh]_16_16.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2 years agocheckasm: add VP9 loopfilter tests.
Ronald S. Bultje [Thu, 17 Sep 2015 15:58:10 +0000 (11:58 -0400)]
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>
2 years agovp9: ignore reference segmentation map if error_resilience flag is set.
Ronald S. Bultje [Tue, 12 Aug 2014 22:11:05 +0000 (18:11 -0400)]
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>
2 years agofate: Add test for rscc palette
Vittorio Giovara [Mon, 19 Sep 2016 20:33:44 +0000 (16:33 -0400)]
fate: Add test for rscc palette

2 years agorscc: Support palette format
Carl Eugen Hoyos [Mon, 19 Sep 2016 20:33:43 +0000 (16:33 -0400)]
rscc: Support palette format

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2 years agoavcodec: Document AV_PKT_DATA_PALETTE side data type
Vittorio Giovara [Tue, 20 Sep 2016 21:11:14 +0000 (17:11 -0400)]
avcodec: Document AV_PKT_DATA_PALETTE side data type

2 years agoavidec: Set palette alpha as fully opaque
Vittorio Giovara [Sun, 2 Oct 2016 16:24:07 +0000 (12:24 -0400)]
avidec: Set palette alpha as fully opaque

Palette format is always in RGBA.

2 years agoavidec: Do not special case palette on big-endian
Vittorio Giovara [Sun, 25 Sep 2016 00:25:44 +0000 (20:25 -0400)]
avidec: Do not special case palette on big-endian

This simplifies the code a bit, does not change output data in any way.

2 years agopixfmt: Document alternative names for smpte 431 and 432
Vittorio Giovara [Tue, 20 Sep 2016 19:00:31 +0000 (15:00 -0400)]
pixfmt: Document alternative names for smpte 431 and 432

2 years agovaapi_h265: Add main 10 encode support
Mark Thompson [Fri, 30 Sep 2016 10:48:43 +0000 (11:48 +0100)]
vaapi_h265: Add main 10 encode support

2 years agohwcontext_vaapi: Enable P010 support
Mark Thompson [Fri, 30 Sep 2016 15:27:09 +0000 (17:27 +0200)]
hwcontext_vaapi: Enable P010 support

This is required for 10-bit surfaces.

2 years agovaapi_h265: Fix buffering parameters
Mark Thompson [Fri, 30 Sep 2016 15:47:19 +0000 (17:47 +0200)]
vaapi_h265: Fix buffering parameters

A decoder may need this to be set correctly to output frames in the
right order.

2 years agovaapi_h265: Fix slice header writing
Mark Thompson [Fri, 30 Sep 2016 15:31:49 +0000 (17:31 +0200)]
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.

2 years agovaapi_h264: Write bitstream restriction fields
Mark Thompson [Sat, 1 Oct 2016 10:01:08 +0000 (11:01 +0100)]
vaapi_h264: Write bitstream restriction fields

2 years agovaapi_h264: Fix CFR mode with frame_rate set in AVCodecContext
Mark Thompson [Sat, 1 Oct 2016 08:48:44 +0000 (10:48 +0200)]
vaapi_h264: Fix CFR mode with frame_rate set in AVCodecContext

2 years agovaapi_encode: Decide on GOP setup before initialising sequence parameters
Mark Thompson [Fri, 30 Sep 2016 15:27:58 +0000 (17:27 +0200)]
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.

2 years agolavu: remove the custom atomic API
Anton Khirnov [Fri, 29 Jul 2016 11:47:57 +0000 (13:47 +0200)]
lavu: remove the custom atomic API

It has been replaced by C11 stdatomic.h and is now unused.

2 years agopthread_frame: use atomics for frame progress
Anton Khirnov [Sun, 17 Jul 2016 22:04:16 +0000 (00:04 +0200)]
pthread_frame: use atomics for frame progress

2 years agopthread_frame: use atomics for PerThreadContext.state
Anton Khirnov [Sun, 17 Jul 2016 22:04:16 +0000 (00:04 +0200)]
pthread_frame: use atomics for PerThreadContext.state

2 years agopthread_frame: use a thread-safe way for signalling threads to die
Anton Khirnov [Sun, 17 Jul 2016 21:30:52 +0000 (23:30 +0200)]
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.

2 years agommaldec: convert to stdatomic
Anton Khirnov [Sun, 17 Jul 2016 20:24:35 +0000 (22:24 +0200)]
mmaldec: convert to stdatomic

2 years agov4l2: convert to stdatomic
Anton Khirnov [Sun, 17 Jul 2016 20:24:35 +0000 (22:24 +0200)]
v4l2: convert to stdatomic

2 years agobuffer: convert to stdatomic
Anton Khirnov [Sun, 17 Jul 2016 20:24:35 +0000 (22:24 +0200)]
buffer: convert to stdatomic

2 years agoAdd a compat dummy stdatomic.h used when threading is disabled
Anton Khirnov [Sun, 17 Jul 2016 16:56:33 +0000 (18:56 +0200)]
Add a compat dummy stdatomic.h used when threading is disabled

Adapted from the code by Rémi Denis-Courmont from VLC

2 years agoAdd a compat stdatomic.h implementation based on pthreads
Anton Khirnov [Sun, 17 Jul 2016 16:56:33 +0000 (18:56 +0200)]
Add a compat stdatomic.h implementation based on pthreads

Adapted from the code by Rémi Denis-Courmont from VLC

2 years agoAdd a compat stdatomic.h implementation based on suncc atomics
Anton Khirnov [Sun, 17 Jul 2016 16:56:33 +0000 (18:56 +0200)]
Add a compat stdatomic.h implementation based on suncc atomics

Adapted from the code by Rémi Denis-Courmont from VLC

2 years agoAdd a compat stdatomic.h implementation based on windows atomics
Anton Khirnov [Sun, 17 Jul 2016 16:56:33 +0000 (18:56 +0200)]
Add a compat stdatomic.h implementation based on windows atomics

Adapted from the code by Rémi Denis-Courmont from VLC

2 years agoAdd a compat stdatomic.h implementation based on GCC atomics
Anton Khirnov [Sun, 17 Jul 2016 16:56:33 +0000 (18:56 +0200)]
Add a compat stdatomic.h implementation based on GCC atomics

Adapted from the code by Rémi Denis-Courmont from VLC

2 years agoconfigure: check for stdatomic.h
Anton Khirnov [Sun, 17 Jul 2016 16:32:15 +0000 (18:32 +0200)]
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.

2 years agohuffyuvdsp: Enable the altivec code for PPC little-endian as well
Luca Barbato [Sat, 1 Oct 2016 19:28:39 +0000 (21:28 +0200)]
huffyuvdsp: Enable the altivec code for PPC little-endian as well

Confirmed to work by checkasm.

2 years agohuffyuvdsp: Reenable PPC optimizations
Luca Barbato [Sat, 1 Oct 2016 19:23:27 +0000 (21:23 +0200)]
huffyuvdsp: Reenable PPC optimizations

2 years agocheckasm: Add test for huffyuvdsp add_bytes
Alexandra Hájková [Sun, 2 Oct 2016 13:20:13 +0000 (15:20 +0200)]
checkasm: Add test for huffyuvdsp add_bytes

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2 years agoavconv: only retry decoding on actual decoding errors
Anton Khirnov [Sat, 1 Oct 2016 19:07:42 +0000 (21:07 +0200)]
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).

2 years agoavconv: make sure the filtergraph is freed on init failure
Anton Khirnov [Sat, 1 Oct 2016 15:06:25 +0000 (17:06 +0200)]
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).

2 years agoavconv: set the encoding framerate when the output is CFR
Anton Khirnov [Sat, 1 Oct 2016 09:47:23 +0000 (11:47 +0200)]
avconv: set the encoding framerate when the output is CFR

2 years agoh264dec: support broken files with mp4 extradata/annex b data
Anton Khirnov [Sat, 1 Oct 2016 08:03:05 +0000 (10:03 +0200)]
h264dec: support broken files with mp4 extradata/annex b data

Bug-Id: 966

2 years agohwcontext_vaapi: add a quirk for the missing MemoryType attribute
Anton Khirnov [Fri, 30 Sep 2016 19:21:46 +0000 (21:21 +0200)]
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.

2 years agoac3dsp: x86: Replace inline asm for in-decoder downmixing with standalone asm
Justin Ruggles [Wed, 28 Oct 2015 14:38:22 +0000 (15:38 +0100)]
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>