Anton Khirnov [Wed, 13 Apr 2016 11:52:36 +0000 (13:52 +0200)]
h264: make slice threading work with deblocking_filter=1
In such a case, decode the MBs in parallel without the loop filter, then
execute the filter serially.
The ref2frm array was previously moved to H264SliceContext. That was
incorrect, since it applies to all the slices and should properly be in
H264Context (it did not actually break decoding, since this distinction
only becomes relevant with slice threading and deblocking_filter=1,
which was not implemented before this commit). The ref2frm array is thus
moved back to H264Context.
Anton Khirnov [Mon, 11 Apr 2016 13:38:42 +0000 (15:38 +0200)]
h264: eliminate low_delay
It is always unconditionally initialized in decode_postinit() and then
immediately used in one place further below. All the other places where
it is accessed are just useless fluff.
Anton Khirnov [Tue, 22 Mar 2016 12:31:21 +0000 (13:31 +0100)]
h264: decouple h264_ps from the h264 decoder
Make the SPS/PPS parsing independent of the H264Context, to allow
decoupling the parser from the decoder. The change is modelled after the
one done earlier for HEVC.
Move the dequant buffers to the PPS to avoid complex checks whether they
changed and an expensive copy for frame threads.
libxvid: Create extradata in init using a dummy frame
Modifying global header extradata in encode_frame is an API violation
and only happens to work currently because mov writes its header
at the end of the file.
Heavily based off of a patch from 2012 by Nicolas George.
Thomas Guillem [Sun, 17 Apr 2016 07:43:01 +0000 (10:43 +0300)]
pixfmt: fix wrong comment
The h264/hevc Annex E colour primaries table says that AVCOL_SPC_SMPTE170M is
similar than AVCOL_SPC_SMPTE240M. These two values are not similar than
AVCOL_SPC_BT470BG.
Anton Khirnov [Fri, 15 Apr 2016 08:10:57 +0000 (10:10 +0200)]
lavc: move the vaapi encoders further down in the list of codecs
Right now they are the first encoders for those codecs in the list, so
they are selected when the caller requests a codec by id.
Since they require special treatment, they should not be selected by
default if there are other encoders (e.g. libx264/5) available.
Martin Storsjö [Tue, 17 Mar 2015 09:44:27 +0000 (11:44 +0200)]
omx: Add support for zerocopy input of frames
This can only be used if the input data happens to be laid out
exactly correctly.
This might not be supported on all encoders, so only enable it
with an option, but enable it automatically on raspberry pi,
where it is known to be supported.
Martin Storsjö [Tue, 24 Jul 2012 21:33:42 +0000 (21:33 +0000)]
omx: Add support for broadcom OMX on raspberry pi
The raspberry pi uses the alternative API/ABI for OMX; this makes
such builds incompatible with all the normal OpenMAX implementations.
Since this can't easily be detected at configure time (one can
build for raspberry pi's OMX just fine using the generic, pristine
Khronos OpenMAX IL headers, no need for their own extensions),
require a separate configure switch for it instead.
The broadcom host library can't be unloaded once loaded and started;
the deinit function that it provides is a no-op, and after started,
it has got background threads running, so dlclosing it makes it
crash.
Diego Biurrun [Tue, 16 Feb 2016 16:58:50 +0000 (17:58 +0100)]
build: miscellaneous cosmetics
Restore alphabetical order in lists, break overly long lines, do some
prettyprinting, add some explanatory section comments, group parts
together that belong together logically.
Vittorio Giovara [Tue, 29 Mar 2016 18:30:48 +0000 (20:30 +0200)]
screenpresso: Correctly handle keyframes
The first byte contains compression level together with keyframe status.
When a frame is not interpreted correctly, its data is summed to the
reference, and would degrade over time, producing an incorrect result.
Vittorio Giovara [Tue, 29 Mar 2016 18:04:08 +0000 (20:04 +0200)]
fate: Update RSCC tests
The current sample comes from an older version of the codec, which
supports a single output mode, so rename it accordingly.
Add tests for the new pixel formats.
Mark Thompson [Sat, 2 Apr 2016 15:48:53 +0000 (16:48 +0100)]
vaapi_h264: Fix bit offset of slice data.
Commit ca2f19b9cc37be509d85f05c8f902860475905f8 modified the meaning of
H264SliceContext.gb: it is now initialised at the start of the NAL unit
header, rather than at the start of the slice header. The VAAPI slice
decoder uses the offset after parsing to determine the offset of the
slice data in the bitstream, so with the changed meaning we no longer
need to add the extra byte to account for the NAL unit header because
it is now included directly.
Tim Walker [Fri, 1 Apr 2016 01:22:48 +0000 (03:22 +0200)]
ac3dec: change logging of skipped E-AC-3 substreams.
Change log level from warning to debug: the E-AC-3 "core"
substream can be successfully decoded without the additional
and dependent substreams, and their presence is already
indicated via avpriv_request_sample in ff_eac3_parse_header.
Tim Walker [Fri, 1 Apr 2016 01:22:47 +0000 (03:22 +0200)]
eac3dec: don't call avpriv_request_sample every frame.
These errors neither prevent nor stop successful decoding
of the E-AC-3 stream's "core", causing avpriv_request_sample
to be called for every single frame in the bitstream.
Josh de Kock [Sat, 26 Mar 2016 15:27:23 +0000 (15:27 +0000)]
jack: Support OSX
Previously, with JACK installed, the configure script would enable the
JACK indev; this broke on OS X due to an incomplete pthreads
implementation. Add some simple macros to map libdispatch to pthreads
on OS X.
Anton Khirnov [Sun, 27 Mar 2016 12:25:31 +0000 (14:25 +0200)]
avconv: fix -frames for video
For video, frame_number tracks the number of frames sent to the encoder.
So it should be incremented when we submit a frame, not when we get a
packet back.