libav.git
3 years agoGenerate the lists of enabled protocols/bsfs from configure.
Anton Khirnov [Sun, 20 Mar 2016 09:00:58 +0000 (10:00 +0100)]
Generate the lists of enabled protocols/bsfs from configure.

3 years agohwcontext: initialize sw_format in av_hwframe_ctx_alloc()
Anton Khirnov [Fri, 15 Apr 2016 08:15:54 +0000 (10:15 +0200)]
hwcontext: initialize sw_format in av_hwframe_ctx_alloc()

3 years agolavc: move the vaapi encoders further down in the list of codecs
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.

3 years agovaapi_h265: Add -qp option, use it to replace use of -global_quality
Mark Thompson [Tue, 12 Apr 2016 22:18:53 +0000 (23:18 +0100)]
vaapi_h265: Add -qp option, use it to replace use of -global_quality

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agovaapi_h265: Add constant-bitrate encode support
Mark Thompson [Tue, 12 Apr 2016 22:18:13 +0000 (23:18 +0100)]
vaapi_h265: Add constant-bitrate encode support

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agovaapi_h264: Add encode quality option (for quality-speed tradeoff)
Mark Thompson [Tue, 12 Apr 2016 22:16:30 +0000 (23:16 +0100)]
vaapi_h264: Add encode quality option (for quality-speed tradeoff)

Only supported on VAAPI 0.36 and higher.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agovaapi_h264: Add -qp option, use it to replace use of -global_quality
Mark Thompson [Tue, 12 Apr 2016 22:15:40 +0000 (23:15 +0100)]
vaapi_h264: Add -qp option, use it to replace use of -global_quality

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agovaapi_encode: Add support for codec-local options
Mark Thompson [Tue, 12 Apr 2016 22:15:03 +0000 (23:15 +0100)]
vaapi_encode: Add support for codec-local options

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agovaapi_h264: Add constant-bitrate encode support
Mark Thompson [Tue, 12 Apr 2016 22:14:23 +0000 (23:14 +0100)]
vaapi_h264: Add constant-bitrate encode support

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agovaapi_encode: Refactor slightly to allow easier setting of global options
Mark Thompson [Tue, 12 Apr 2016 22:13:31 +0000 (23:13 +0100)]
vaapi_encode: Refactor slightly to allow easier setting of global options

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agoFATE: add an H.264 test with unescaped extradata
Anton Khirnov [Sun, 10 Apr 2016 09:24:03 +0000 (11:24 +0200)]
FATE: add an H.264 test with unescaped extradata

See commit a7829a2

3 years agoFATE: add an H.264 test with invalid reference lists
Anton Khirnov [Sun, 10 Apr 2016 09:24:03 +0000 (11:24 +0200)]
FATE: add an H.264 test with invalid reference lists

See commit 9d74012

3 years agolibavcodec: Document that encoders may use the framerate field in AVCodecContext
Martin Storsjö [Wed, 6 Apr 2016 18:59:59 +0000 (21:59 +0300)]
libavcodec: Document that encoders may use the framerate field in AVCodecContext

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agoomx: Add support for zerocopy input of frames
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.

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agoomx: Add support for broadcom OMX on raspberry pi
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.

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agolibavcodec: Add H264/MPEG4 encoders based on OpenMAX IL
Martin Storsjö [Sat, 7 Apr 2012 22:18:07 +0000 (01:18 +0300)]
libavcodec: Add H264/MPEG4 encoders based on OpenMAX IL

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agommaldec: Use imgutils.h for copying frames
Martin Storsjö [Tue, 12 Apr 2016 07:48:10 +0000 (10:48 +0300)]
mmaldec: Use imgutils.h for copying frames

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agotestprogs: Add missing libm.h includes
Martin Storsjö [Mon, 11 Apr 2016 07:04:23 +0000 (10:04 +0300)]
testprogs: Add missing libm.h includes

This fixes building on MSVC 2010 and 2012 after d12b5b2f135.

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agobuild: Split test programs off into separate files
Diego Biurrun [Thu, 17 Mar 2016 18:13:17 +0000 (19:13 +0100)]
build: Split test programs off into separate files

This avoids spurious library rebuilds when only the test program
code is changed and simplifies the build system.

3 years agobuild: Group declarations for hw-accelerated de-/encoding separately
Diego Biurrun [Mon, 21 Mar 2016 15:06:32 +0000 (16:06 +0100)]
build: Group declarations for hw-accelerated de-/encoding separately

3 years agobuild: miscellaneous cosmetics
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.

3 years agoconfigure: cosmetics: Drop pointless end-of-line semicolons
Diego Biurrun [Mon, 4 Apr 2016 18:16:54 +0000 (20:16 +0200)]
configure: cosmetics: Drop pointless end-of-line semicolons

3 years agofate: Update DDS tests
Vittorio Giovara [Fri, 1 Apr 2016 13:12:37 +0000 (15:12 +0200)]
fate: Update DDS tests

3 years agodds: Simplify postprocessing check
Vittorio Giovara [Tue, 29 Mar 2016 19:00:45 +0000 (21:00 +0200)]
dds: Simplify postprocessing check

3 years agodds: Add support for alpha-only files
Vittorio Giovara [Fri, 1 Apr 2016 13:11:50 +0000 (15:11 +0200)]
dds: Add support for alpha-only files

Due to how pixel format conversion is done, they behave the same way
as gray files.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 years agodds: Add support for rgb555 files
Vittorio Giovara [Tue, 29 Mar 2016 19:00:43 +0000 (21:00 +0200)]
dds: Add support for rgb555 files

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 years agofate: Update Screenpresso tests
Vittorio Giovara [Tue, 29 Mar 2016 18:30:49 +0000 (20:30 +0200)]
fate: Update Screenpresso tests

3 years agoscreenpresso: Correctly handle keyframes
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.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 years agoscreenpresso: Add extended pixel format support
Vittorio Giovara [Tue, 29 Mar 2016 18:30:47 +0000 (20:30 +0200)]
screenpresso: Add extended pixel format support

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 years agofate: Update RSCC tests
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.

3 years agorscc: Add extended pixel format support
Vittorio Giovara [Tue, 29 Mar 2016 18:04:07 +0000 (20:04 +0200)]
rscc: Add extended pixel format support

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 years agonvenc_h264: Fix name of private AVClass
Diego Biurrun [Thu, 31 Mar 2016 15:20:09 +0000 (17:20 +0200)]
nvenc_h264: Fix name of private AVClass

3 years agomatroska: Write the field order information
Luca Barbato [Sat, 2 Apr 2016 20:35:44 +0000 (22:35 +0200)]
matroska: Write the field order information

And bump the document version to 4.

3 years agovaapi_h264: Fix bit offset of slice data.
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.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
3 years agoac3dec: change logging of skipped E-AC-3 substreams.
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.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
3 years agoeac3dec: don't call avpriv_request_sample every frame.
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.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
3 years agoavconv: Drop an unused variable
Luca Barbato [Fri, 1 Apr 2016 03:30:22 +0000 (05:30 +0200)]
avconv: Drop an unused variable

3 years agojack: Support OSX
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.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
3 years agomatroska: Support interlaced content correctly
Luca Barbato [Mon, 28 Mar 2016 18:29:54 +0000 (20:29 +0200)]
matroska: Support interlaced content correctly

The matroska specification now has two elements for it.

3 years agobuild: Do not check the vaapi_encode.h header if VAAPI is not enabled
Diego Biurrun [Wed, 30 Mar 2016 15:51:23 +0000 (17:51 +0200)]
build: Do not check the vaapi_encode.h header if VAAPI is not enabled

3 years agoMark tables used only within their files as static
Diego Biurrun [Thu, 17 Mar 2016 10:51:07 +0000 (11:51 +0100)]
Mark tables used only within their files as static

3 years agoh264: Add missing ff_ prefix to internally visible h264_init_dequant_tables()
Diego Biurrun [Tue, 8 Mar 2016 16:37:04 +0000 (17:37 +0100)]
h264: Add missing ff_ prefix to internally visible h264_init_dequant_tables()

3 years agoavconv: fix -frames for video
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.

3 years agolavc: VAAPI MJPEG encoder
Mark Thompson [Wed, 23 Mar 2016 23:50:47 +0000 (23:50 +0000)]
lavc: VAAPI MJPEG encoder

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agolavc: VAAPI H.265 encoder
Mark Thompson [Wed, 23 Mar 2016 23:50:04 +0000 (23:50 +0000)]
lavc: VAAPI H.265 encoder

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agolavc: VAAPI H.264 encoder
Mark Thompson [Wed, 23 Mar 2016 23:49:35 +0000 (23:49 +0000)]
lavc: VAAPI H.264 encoder

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agolavc: VAAPI encode common infrastructure
Mark Thompson [Wed, 23 Mar 2016 23:49:02 +0000 (23:49 +0000)]
lavc: VAAPI encode common infrastructure

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agoavconv: VAAPI hwcontext initialisation and hwaccel helper
Mark Thompson [Wed, 23 Mar 2016 23:48:13 +0000 (23:48 +0000)]
avconv: VAAPI hwcontext initialisation and hwaccel helper

Signed-off-by: Anton Khirnov <anton@khirnov.net>
3 years agointrax8: Remove mpegvideo dependency
Vittorio Giovara [Sat, 20 Feb 2016 07:29:43 +0000 (02:29 -0500)]
intrax8: Remove mpegvideo dependency

3 years agointrax8: Drop lots of pointless parentheses
Diego Biurrun [Thu, 24 Mar 2016 18:14:21 +0000 (19:14 +0100)]
intrax8: Drop lots of pointless parentheses

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
3 years agointrax8: Drop MB emulation code
Vittorio Giovara [Sat, 20 Feb 2016 07:28:03 +0000 (02:28 -0500)]
intrax8: Drop MB emulation code

This is already performed in init_context_frame().

3 years agointrax8: Keep a reference to the decoder blocks
Vittorio Giovara [Sat, 20 Feb 2016 06:57:47 +0000 (01:57 -0500)]
intrax8: Keep a reference to the decoder blocks

3 years agointrax8: Use the generic horizband function
Vittorio Giovara [Sat, 20 Feb 2016 06:25:03 +0000 (01:25 -0500)]
intrax8: Use the generic horizband function

This is assuming that intrax8 has no support for interlacing
Carry over lowdelay value in ff_intrax8_decode_picture.

3 years agointrax8: Pass macroblock coordinates to ff_intrax8_decode_picture
Vittorio Giovara [Fri, 26 Feb 2016 05:04:36 +0000 (00:04 -0500)]
intrax8: Pass macroblock coordinates to ff_intrax8_decode_picture

These values need to be updated with the last macroblock position,
so keep them as pointers.

3 years agointrax8: Pass macroblock size to ff_intrax8_common_init
Vittorio Giovara [Sat, 20 Feb 2016 06:09:40 +0000 (01:09 -0500)]
intrax8: Pass macroblock size to ff_intrax8_common_init

Helps in decoupling this code from mpegvideo.

3 years agofate: Add test for WMV2 with jframes
Vittorio Giovara [Sat, 20 Feb 2016 21:44:35 +0000 (16:44 -0500)]
fate: Add test for WMV2 with jframes

3 years agoh264: switch to h2645_parse for NAL parsing
Anton Khirnov [Mon, 21 Mar 2016 13:35:48 +0000 (14:35 +0100)]
h264: switch to h2645_parse for NAL parsing

3 years agoh264: reimplement 3aa661ec5 in a more explicit way
Anton Khirnov [Mon, 21 Mar 2016 13:23:19 +0000 (14:23 +0100)]
h264: reimplement 3aa661ec5 in a more explicit way

Instead of handling the problem inside NAL decoding code, add a higher
level wrapper function. This should be more robust against future
changes (and easier to read).

3 years agosvq3: drop the build dependency on the h264 decoder
Anton Khirnov [Wed, 23 Mar 2016 12:34:23 +0000 (13:34 +0100)]
svq3: drop the build dependency on the h264 decoder

3 years agosvq3: eliminate remaining H264Context usage.
Anton Khirnov [Wed, 23 Mar 2016 12:23:55 +0000 (13:23 +0100)]
svq3: eliminate remaining H264Context usage.

3 years agosvq3: move block_offset to SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 12:17:44 +0000 (13:17 +0100)]
svq3: move block_offset to SVQ3Context

3 years agosvq3: stop using H264Context.gb
Anton Khirnov [Wed, 23 Mar 2016 12:16:32 +0000 (13:16 +0100)]
svq3: stop using H264Context.gb

3 years agosvq3: move the frame num variables to the SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 10:04:59 +0000 (11:04 +0100)]
svq3: move the frame num variables to the SVQ3Context

3 years agosvq3: eliminate H264Context.cur_pic usage
Anton Khirnov [Wed, 23 Mar 2016 10:02:19 +0000 (11:02 +0100)]
svq3: eliminate H264Context.cur_pic usage

Use the SVQ3Context variable instead

3 years agosvq3: eliminate remaining H264SliceContext usage
Anton Khirnov [Wed, 23 Mar 2016 09:43:41 +0000 (10:43 +0100)]
svq3: eliminate remaining H264SliceContext usage

3 years agosvq3: move pict_type to the SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 09:33:48 +0000 (10:33 +0100)]
svq3: move pict_type to the SVQ3Context

3 years agosvq3: move mb strides/sizes to the SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 09:33:48 +0000 (10:33 +0100)]
svq3: move mb strides/sizes to the SVQ3Context

3 years agosvq3: move the dequant buffer to SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 09:26:54 +0000 (10:26 +0100)]
svq3: move the dequant buffer to SVQ3Context

Remove now unnecesary call to ff_h264_alloc_tables()

3 years agosvq3: move mb2br_xy to the SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 09:03:50 +0000 (10:03 +0100)]
svq3: move mb2br_xy to the SVQ3Context

3 years agosvq3: move {ref,mv}_cache to the SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 09:03:50 +0000 (10:03 +0100)]
svq3: move {ref,mv}_cache to the SVQ3Context

3 years agosvq3: rip out the svq3-relevant parts of pred_motion() out of h264
Anton Khirnov [Wed, 23 Mar 2016 08:59:57 +0000 (09:59 +0100)]
svq3: rip out the svq3-relevant parts of pred_motion() out of h264

3 years agosvq3: move edge_emu_buffer to the SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 08:54:43 +0000 (09:54 +0100)]
svq3: move edge_emu_buffer to the SVQ3Context

3 years agosvq3: move the pred mode variables to SVQ3Context
Anton Khirnov [Wed, 23 Mar 2016 08:49:20 +0000 (09:49 +0100)]
svq3: move the pred mode variables to SVQ3Context

This will allow removing the H264Context dependency in the future.

3 years agoh264: move ff_h264_check_intra[4x4]_pred_mode() to h264_parse
Anton Khirnov [Wed, 23 Mar 2016 08:41:05 +0000 (09:41 +0100)]
h264: move ff_h264_check_intra[4x4]_pred_mode() to h264_parse

It is shared with svq3.

3 years agosvq3: move mb_{x,y,xy} to SVQ3Context
Anton Khirnov [Tue, 22 Mar 2016 14:54:20 +0000 (15:54 +0100)]
svq3: move mb_{x,y,xy} to SVQ3Context

This will allow removing the H264Context dependency in the future.

3 years agosvq3: eliminate write_back_intra_pred_mode() usage
Anton Khirnov [Tue, 22 Mar 2016 14:52:45 +0000 (15:52 +0100)]
svq3: eliminate write_back_intra_pred_mode() usage

This function depends on the h264 internals and is so tiny that just
copying the code out is the simplest replacement.

3 years agosvq3: add all the required dsp contexts into SVQ3Context
Anton Khirnov [Tue, 22 Mar 2016 14:32:57 +0000 (15:32 +0100)]
svq3: add all the required dsp contexts into SVQ3Context

Stop using the H264Context ones, to allow removing the H264Context
dependency.

3 years agosvq3: make the dsp functions static
Anton Khirnov [Tue, 22 Mar 2016 14:26:39 +0000 (15:26 +0100)]
svq3: make the dsp functions static

There is no need for them to be extern anymore.

3 years agoh264: remove the svq3-specific code
Anton Khirnov [Tue, 22 Mar 2016 14:22:43 +0000 (15:22 +0100)]
h264: remove the svq3-specific code

3 years agosvq3: rip out the mb decoding code shared with h264
Anton Khirnov [Tue, 22 Mar 2016 13:56:59 +0000 (14:56 +0100)]
svq3: rip out the mb decoding code shared with h264

The ~100 lines of shared code is not worth the pain of svq3 messing with
h264 internals.

3 years agoh264: factor out pred weight table parsing into a separate file
Anton Khirnov [Mon, 21 Mar 2016 15:14:31 +0000 (16:14 +0100)]
h264: factor out pred weight table parsing into a separate file

This will allow decoupling the parser from the decoder.

3 years agoh2645_parse: compute the actual data length, without trailing paddding
Anton Khirnov [Mon, 21 Mar 2016 11:42:12 +0000 (12:42 +0100)]
h2645_parse: compute the actual data length, without trailing paddding

This is required by h264.

3 years agoh2645_parse: add support for parsing h264
Anton Khirnov [Mon, 21 Mar 2016 08:00:40 +0000 (09:00 +0100)]
h2645_parse: add support for parsing h264

3 years agoh2645_parse: change the AVCodecContext* parameter to void*
Anton Khirnov [Mon, 21 Mar 2016 07:36:51 +0000 (08:36 +0100)]
h2645_parse: change the AVCodecContext* parameter to void*

This should make it more clear that it is not supposed to be used for
anything except logging.

3 years agoh2645_parse: add a function for uninitializing the packet
Anton Khirnov [Mon, 21 Mar 2016 06:33:25 +0000 (07:33 +0100)]
h2645_parse: add a function for uninitializing the packet

3 years agohevc_parse: rename into h2645_parse
Anton Khirnov [Mon, 21 Mar 2016 06:26:42 +0000 (07:26 +0100)]
hevc_parse: rename into h2645_parse

This code will be shared with h264.

3 years agoaarch64: Make transpose_4x4H do a regular transpose
Martin Storsjö [Fri, 25 Mar 2016 21:44:10 +0000 (23:44 +0200)]
aarch64: Make transpose_4x4H do a regular transpose

Previously, ff_h264_idct_add_neon (originally in the arm version) used
a non-regular transpose in order to be able to use more instructions
that deal with registers as 128 bit register pairs. The aarch64
translation doesn't do it to the same extent, but brought along the
same structure since it was a straight translation.

This reshuffles ff_h264_idct_add_neon, bringing it closer to
the C implementation, making the transpose_4x4H macro do a regular
transpose, usable for other algorithms as well.

Previously, the third and fourth output from transpose_4x4H were
swapped, and prior to cc29d96d5a, the same inputs as well. In
addition to just swapping the outputs, also renumber the intermediate
registers for better readability (making the register order match
transpose_4x8B).

This runs with the same number of cycles as before.

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agortpdec_jpeg: fix low contrast image on low quality setting
Ico Doornekamp [Thu, 24 Mar 2016 13:31:38 +0000 (14:31 +0100)]
rtpdec_jpeg: fix low contrast image on low quality setting

The problem is that the argument 'q' is of the type uint8_t.
According to the JPEG standard, if 1 <= q <= 50, the scale factor
'S' should be 5000 / Q. Because the create_default_qtables() reuses
the variable 'q' to store the result of this calculation, for small
values of q < 19, q wil subsequently overflow and give wrong results
in the calculated quantization tables.

Instead, use a new variable 'S' (same name as in RFC2435) with the
proper range to store the result of the division.

Signed-off-by: Martin Storsjö <martin@martin.st>
3 years agointrax8: Add a local BlockDSPContext and initialize it
Vittorio Giovara [Sat, 20 Feb 2016 05:46:49 +0000 (00:46 -0500)]
intrax8: Add a local BlockDSPContext and initialize it

Helps in decoupling this code from mpegvideo.

3 years agointrax8: Reference the current AVCodecContext
Vittorio Giovara [Sat, 20 Feb 2016 05:43:22 +0000 (00:43 -0500)]
intrax8: Reference the current AVCodecContext

It will be needed to initialize BlockDSP in the next commit.

3 years agointrax8: Keep a reference to the GetBitContext reader
Vittorio Giovara [Sat, 20 Feb 2016 05:23:48 +0000 (00:23 -0500)]
intrax8: Keep a reference to the GetBitContext reader

Helps in decoupling this code from mpegvideo.

3 years agointrax8: Use a constant buffer instead of a ScratchpadContext
Vittorio Giovara [Sat, 20 Feb 2016 01:50:00 +0000 (20:50 -0500)]
intrax8: Use a constant buffer instead of a ScratchpadContext

The size of the block is fixed (8x8 plus padding).

3 years agointrax8: Pass the output frame to the decoding function
Vittorio Giovara [Sat, 20 Feb 2016 01:33:12 +0000 (20:33 -0500)]
intrax8: Pass the output frame to the decoding function

Helps in decoupling this code from mpegvideo.

3 years agointrax8: Carry over the loopfilter value in ff_intrax8_decode_picture
Vittorio Giovara [Sat, 20 Feb 2016 00:59:51 +0000 (19:59 -0500)]
intrax8: Carry over the loopfilter value in ff_intrax8_decode_picture

Helps in decoupling this code from mpegvideo.

3 years agointrax8: Keep a reference to the context idctdsp
Vittorio Giovara [Fri, 19 Feb 2016 23:12:06 +0000 (18:12 -0500)]
intrax8: Keep a reference to the context idctdsp

Use it instead of the embedded mpegvideo one. Update init function
signature to load it directly from the callers.

3 years agointrax8: Make x8_init_block_index not use mpegvideo fields
Vittorio Giovara [Fri, 19 Feb 2016 22:57:09 +0000 (17:57 -0500)]
intrax8: Make x8_init_block_index not use mpegvideo fields

3 years agointrax8: Use local destination buffers
Vittorio Giovara [Sat, 20 Feb 2016 01:18:49 +0000 (20:18 -0500)]
intrax8: Use local destination buffers

These buffers are just a way to store frame pointers and be able to
modify them without touching the original ones.

The two dependent decoders (WMV2 and VC1) do not need special care for
these fields: the former does not seem to use the dest buffers, while
the latter reinits them every time to the current frame data buffers.

So only keep a local copy rather than the one from mpegvideo.

3 years agoh264data: Move all data tables from a header to a .c file
Diego Biurrun [Mon, 19 Aug 2013 12:24:45 +0000 (14:24 +0200)]
h264data: Move all data tables from a header to a .c file

3 years agolavc: Deduplicate zigzag_scan table
Diego Biurrun [Thu, 24 Mar 2016 10:16:53 +0000 (11:16 +0100)]
lavc: Deduplicate zigzag_scan table

3 years agoh264: Clean up #includes
Diego Biurrun [Wed, 23 Mar 2016 17:33:42 +0000 (18:33 +0100)]
h264: Clean up #includes