Commit Graph
100 Commits
Author SHA1 Message Date
Ronald S. Bultje f068aed7b8 vp9: make decode_coeffs() return value void.
It was previously int and would return error if decode_coeffs_b()
returns an error; however, that can never happen, so refactor all
that code to make all dependent functions return void also (all the
way up to decode_coeffs_sb()).
2013-11-30 16:26:14 -05:00
Ronald S. Bultje 65f41b5c5c vp9: add a new segmentation sample.
The old one didn't use segmentation. One uses segmentation in all frame
types (--aq-mode=1), and the other uses all segmentation features, but
only in inter frames (mbgraph).
2013-11-30 16:26:14 -05:00
Ronald S. Bultje 1d6bb21348 vp9: add fate sample for parallelmode.
This disables backward probability updates, which makes the codec more
friendly for frame-level multi-threading.
2013-11-30 16:26:14 -05:00
Ronald S. Bultje 47c6d9403d vp9: cosmetics. 2013-11-30 16:26:14 -05:00
Ronald S. Bultje 76bd878d95 vp9: add a 2-pass decoding mode, and add frame-mt support.
For a random 1080p sample, decoding time went from 9.7sec (1 threads)
to 6.0sec (2 threads) and 5.2sec (4 threads) in 2-pass decoding mode.
I don't have any samples that use the parallelmode feature, but the
gains should be higher.
2013-11-30 16:26:13 -05:00
Ronald S. Bultje 46955ae430 vp9: allocate 'b', 'block/uvblock' and 'eob/uveob' dynamically. 2013-11-30 16:26:13 -05:00
Ronald S. Bultje fc7d910b2e vp9: split last/cur_frame from the reference buffers.
We need more information from last/cur_frame than from reference
buffers, so we can use a simplified structure for reference buffers,
and then store mvs and segmentation map information in last/cur.
2013-11-30 16:26:13 -05:00
Ronald S. Bultje 39b244002a vp9: move some entries out of VP9Block into VP9Context.
They aren't really block-related variables in the sense that they are
not block-coded, rather they are state trackers.
2013-11-30 16:26:12 -05:00
Ronald S. Bultje 84d362f020 vp9: split packet parsing into an AVParser. 2013-11-30 16:26:12 -05:00
Ronald S. Bultje 816737ea5d vp9: use proper refcounting.
Based on something similar in libav. Author is likely Anton Khirnov
<anton@khirnov.net> but I'm not sure.
2013-11-30 16:26:12 -05:00
Ronald S. BultjeandLuca Barbato 72ca830f51 lavc: VP9 decoder
Originally written by Ronald S. Bultje <rsbultje@gmail.com> and
Clément Bœsch <u@pkh.me>

Further contributions by:
Anton Khirnov <anton@khirnov.net>
Diego Biurrun <diego@biurrun.de>
Luca Barbato <lu_zero@gentoo.org>
Martin Storsjö <martin@martin.st>

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-15 10:16:28 +01:00
Ronald S. BultjeandClément Bœsch dd3d0f46bd vp9: fix mvref finding to adhere to bug in libvpx.
Fixes a particular youtube video that I unfortunately can't share.
2013-11-09 21:31:06 +01:00
Ronald S. BultjeandMichael Niedermayer 6cf0c4107f Put vp9_scans and vp9_scans_nb in ro_data.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-04 02:32:18 +01:00
Ronald S. BultjeandMichael Niedermayer efc5a54cab vp9: skip itxfm_add if the whole block has no coefficients.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 15:02:48 +01:00
Ronald S. BultjeandMichael Niedermayer 960490c0b2 avcodec/x86/videodsp: Small speedups in ff_emulated_edge_mc x86 SIMD.
Don't use word-size multiplications if size == 2, and if we're using
SIMD instructions (size >= 8), complete leftover 4byte sets using movd,
not mov. Both of these changes lead to minor speedups.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 15:02:48 +01:00
Ronald S. BultjeandMichael Niedermayer cd86eb265f avcodec/x86/videodsp: fix a bug in a %if statement where we used '%%' instead of '&&'.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-27 15:02:48 +01:00
Ronald S. BultjeandMichael Niedermayer 1b3a7e1f42 avcodec/x86/videodsp: Properly mark sse2 instructions in emulated_edge_mc x86 simd as such.
Should fix crashes or corrupt output on pre-SSE2 CPUs when they were
using SSE2-code (e.g. AMD Athlon XP 2400+ or Intel Pentium III) in
hfix or hvar single-edge (left/right) extension functions.

Tested-by: Ingo Brückl <ib@wupperonline.de>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-24 13:36:55 +02:00
Ronald S. BultjeandMichael Niedermayer 20d78a8606 libavcodec/x86: Fix emulated_edge_mc SSE code to not contain SSE2 instructions on x86-32.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-10 13:36:06 +02:00
Ronald S. BultjeandMichael Niedermayer ad75d2b590 x86: Fix compilation with nasm on PPC & OS/2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-08 12:36:19 +02:00
Ronald S. BultjeandMichael Niedermayer ba9c557b92 avcodec/x86/vp9dsp: Fix compilation with nasm.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-08 02:27:12 +02:00
Ronald S. Bultje f1548c008f Full-pixel MC functions.
Decoding time of ped1080p.webm goes from 11.3sec to 11.1sec.
2013-10-02 21:03:15 -04:00
Ronald S. Bultje c07ac8d467 VP9 MC (ssse3) optimizations.
Decoding time of ped1080p.webm goes from 20.7sec to 11.3sec.
2013-10-02 21:03:15 -04:00
Ronald S. Bultje 848826f527 Native VP9 decoder.
Authors: Ronald S. Bultje <rsbultje gmail com>,
         Clement Boesch <u pkh me>
2013-10-02 21:03:11 -04:00
Ronald S. Bultje face578d56 Rewrite emu_edge functions to have separate src/dst_stride arguments.
This allows supporting files for which the image stride is smaller than
the max. block size + number of subpel mc taps, e.g. a 64x64 VP9 file
or a 16x16 VP8 file with -fflags +emu_edge.
2013-09-28 20:28:08 -04:00
Ronald S. Bultje f574b4da56 vp8: use 2 registers for dst_stride and src_stride in neon bilin filter. 2013-09-28 20:25:29 -04:00
Ronald S. BultjeandMichael Niedermayer c341f734e5 Convert multiplier for MV from int to ptrdiff_t.
This prevents emulated_edge_mc from not undoing mvy*stride-related
integer overflows.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-28 11:28:09 +02:00
Ronald S. BultjeandMichael Niedermayer 34b429d5ba vp8: fix PPC assembly and bilinear C code to work if src_stride != dst_stride.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-23 15:23:53 +02:00
Ronald S. BultjeandMartin Storsjö 46d208e1e0 vp8: Wait for prev_frame to parse segment_map before reading it
This fixes occasional failures of vp8-test-vector-010 with frame-level
multithreading enabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-07 13:30:29 +03:00
Ronald S. BultjeandMartin Storsjö 6c86a63bad yuv4mpeg: Correctly round chroma up for odd luma sizes
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-07 13:30:22 +03:00
Ronald S. BultjeandDerek Buitenhuis cea8a0077f yuv4mpeg: correctly handle chroma for odd luma sizes.
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2013-06-24 19:13:58 -04:00
Ronald S. BultjeandMichael Niedermayer c329713de7 vp8: wait for prev_frame to parse segment_map before reading it.
This fixes occasional failures of vp8-test-vector-010 with frame-level
multithreading enabled.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-06-23 17:13:58 +02:00
Ronald S. BultjeandMartin Storsjö d4d186d185 dsputil: Remove non-8bpp draw_edge
It is never used.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. BultjeandMartin Storsjö c9f5fcd08c dsputil: Merge 9-10 bpp functions for get_pixels and draw_edge
These only care about pixel storage unit size, not actual bits
used (i.e. they don't clip).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. BultjeandMartin Storsjö 619e0da191 dsputil: Remove unused 32-bit functions
Previously, if dct_bits was set to 32, we used separate 32-bit
versions of these functions. Since dct_bits now is removed,
remove the unused 32-bit versions of the functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. BultjeandMartin Storsjö c443117f25 dsputil: Remove dct_bits
dct_bits is never set except in h264, where it is never used,
thus remove it.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. BultjeandMartin Storsjö 54cd5e4f92 dsputil: Remove hpel functions (moved to hpeldsp)
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. BultjeandMartin Storsjö 2957d29f05 alpha: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. BultjeandMartin Storsjö 78ce568e43 sparc: hpeldsp: Move vis half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:29:22 +03:00
Ronald S. BultjeandMartin Storsjö bfb41b5039 bfin: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:19:13 +03:00
Ronald S. BultjeandMartin Storsjö 7384b7a713 arm: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:19:08 +03:00
Ronald S. BultjeandMartin Storsjö 47e5a98174 ppc: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:59 +03:00
Ronald S. BultjeandMartin Storsjö 8db00081a3 x86: hpeldsp: Move half-pel assembly from dsputil to hpeldsp
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:53 +03:00
Ronald S. BultjeandMartin Storsjö 28bc406c84 mjpeg: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:38 +03:00
Ronald S. BultjeandMartin Storsjö 1277dc07fb svq1enc: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:32 +03:00
Ronald S. BultjeandMartin Storsjö 2f6bc5f7c1 svq3: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:27 +03:00
Ronald S. BultjeandMartin Storsjö f4fed5a2f9 mpegvideo: Use hpeldsp instead of dsputil for half-pel functions
This also converts vc1, since that is mpegvideo-based.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:21 +03:00
Ronald S. BultjeandMartin Storsjö 6caa44aa7d svq1: Use hpeldsp instead of dsputil for half-pel functions
This makes svq1 independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:14 +03:00
Ronald S. BultjeandMartin Storsjö c10470035e mimic: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:08 +03:00
Ronald S. BultjeandMartin Storsjö 8071264f21 interplayvideo: Use hpeldsp instead of dsputil for half-pel functions
This makes interplayvideo independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:18:02 +03:00
Ronald S. BultjeandMartin Storsjö 0f0a11d576 bink: Use hpeldsp instead of dsputil for half-pel functions
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:56 +03:00
Ronald S. BultjeandMartin Storsjö 8f992dc8c7 indeo3: Use hpeldsp instead of dsputil for half-pel functions
This makes the Indeo 3 decoder independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:50 +03:00
Ronald S. BultjeandMartin Storsjö cb7ecb7563 vp56: Use hpeldsp instead of dsputil for half-pel functions
This makes vp5 and vp6 independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:33 +03:00
Ronald S. BultjeandMartin Storsjö 3bd062bf7f vp3: Use hpeldsp instead of dsputil for half-pel functions
This makes vp3 independent of dsputil.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:26 +03:00
Ronald S. BultjeandMartin Storsjö 68d8238cca hpeldsp: Add half-pel functions (currently copies of dsputil)
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-19 23:17:17 +03:00
Ronald S. BultjeandMartin Storsjö 015821229f vp3: Use full transpose for all IDCTs
This way, the special IDCT permutations are no longer needed. This
is similar to how H264 does it, and removes the dsputil dependency
imposed by the scantable code.

Also remove the unused type == 0 cases from the plain C version
of the idct.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:32:05 +03:00
Ronald S. BultjeandMartin Storsjö c46819f229 x86: Move constants to the only place where they are used
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-15 12:17:39 +03:00
Ronald S. BultjeandMartin Storsjö b93b27edb0 dsputil: Make dsputil selectable
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:04:05 +03:00
Ronald S. BultjeandMartin Storsjö 85deb51a01 h264: Only initialize dsputil if error resilience is enabled
It is only used for error resilience. This allows building the
h264 decoder without dsputil, if error resilience is disabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:03:53 +03:00
Ronald S. BultjeandMartin Storsjö 62844c3fd6 h264: Integrate clear_blocks calls with IDCT
The non-intra-pcm branch in hl_decode_mb (simple, 8bpp) goes from 700
to 672 cycles, and the complete loop of decode_mb_cabac and hl_decode_mb
(in the decode_slice loop) goes from 1759 to 1733 cycles on the clip
tested (cathedral), i.e. almost 30 cycles per mb faster.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 11:03:06 +03:00
Ronald S. BultjeandMartin Storsjö 6d25c9db11 dsputil: Make square put/avg_pixels functions local to h264qpel
Put a copy of the 8bit functions only in dsputil, where they are
used for some other things (e.g. mpeg4qpel, mspel, cavsqpel).

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-10 10:59:14 +03:00
Ronald S. BultjeandMartin Storsjö d2ec6ea6c6 lavc: Move ff_cropTbl and ff_zigzag_direct from dsputil to mathtables
These are widely used throughout libavcodec, nothing dsputil-specific.

Change ff_cropTbl to a statically initialized table, to avoid
initializing it with a function call.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Ronald S. BultjeandMartin Storsjö 610b18e2e3 x86: qpel: Move fullpel and l2 functions to a separate file
This way, they can be shared between mpeg4qpel and h264qpel without
requiring either one to be compiled unconditionally.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Ronald S. BultjeandMartin Storsjö 18df366a18 vp3: Embed idct_permutation array directly in VP3DecoderContext
This makes the vp3 decoder less dependent on dsputil, and will aid
in making it (eventually) dsputil-independent.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-04-08 12:38:33 +03:00
Ronald S. BultjeandMartin Storsjö 0b499c9b06 h264: Make it possible to compile without error_resilience
Error resilience is enabled by the h264 decoder, unless explicitly
disabled. --disable-everything --enable-decoder=h264 will produce
a h264 decoder with error resilience enabled, while
--disable-everything --enable-decoder=h264 --disable-error-resilience
will produce a h264 decoder with error resilience disabled.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-26 09:55:05 +02:00
Ronald S. BultjeandMichael Niedermayer 8a523cfa8b dsputil: remove non-8bpp draw_edge.
It is never used.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-15 04:39:41 +01:00
Ronald S. BultjeandMichael Niedermayer b76d853697 lavc: make compilation of frame_thread_encoder.o optional.
Only compile if CONFIG_ENCODERS is enabled, i.e. if at least one
encoder is to be compiled. This prevents it from being includes in
a decoder-only build.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 15:04:17 +01:00
Ronald S. BultjeandMichael Niedermayer 4a88d81c9e dsputil: remove duplicate or unused functions.
dct_bits is never set except in h264, where it is never used, thus
remove it. Then, remove all functions that were set based on non-zero
(32) values for dct_bits. Lastly, merge 9-14 bpp functions for get_pixels
and draw_edge, which only care about pixel storage unit size, not actual
bits used (i.e. they don't clip).

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-14 14:56:48 +01:00
Ronald S. BultjeandMichael Niedermayer f536df99fe dsputil: remove hpel functions (moved to hpeldsp). 2013-03-13 04:11:41 +01:00
Ronald S. BultjeandMichael Niedermayer 94b77678dc Move alpha half-pel assembly from dsputil to hpeldsp. 2013-03-13 04:11:27 +01:00
Ronald S. BultjeandMichael Niedermayer 6802c70106 Move sparc/vis half-pel assembly from dsputil to hpeldsp. 2013-03-13 04:09:43 +01:00
Ronald S. BultjeandMichael Niedermayer e9e608ad58 Move bfin half-pel assembly from dsputil to hpeldsp. 2013-03-13 04:06:10 +01:00
Ronald S. BultjeandMichael Niedermayer de99545f46 Move arm half-pel assembly from dsputil to hpeldsp. 2013-03-13 04:04:13 +01:00
Ronald S. BultjeandMichael Niedermayer 89f16ded9b Move ppc half-pel assembly from dsputil to hpeldsp. 2013-03-13 04:02:30 +01:00
Ronald S. BultjeandMichael Niedermayer 3ced55d51c Move x86 half-pel assembly from dsputil to hpeldsp. 2013-03-13 03:59:23 +01:00
Ronald S. BultjeandMichael Niedermayer e0a8f31591 mjpeg: use hpeldsp instead of dsputil for half-pel functions. 2013-03-13 03:59:10 +01:00
Ronald S. BultjeandMichael Niedermayer b42d594c85 svq1enc: use hpeldsp instead of dsputil for half-pel functions. 2013-03-13 03:59:00 +01:00
Ronald S. BultjeandMichael Niedermayer 771ba8f206 snow: use hpeldsp instead of dsputil for half-pel functions. 2013-03-13 03:58:49 +01:00
Ronald S. BultjeandMichael Niedermayer 05dd583426 svq3: use hpeldsp instead of dsputil for half-pel functions. 2013-03-13 03:58:31 +01:00
Ronald S. BultjeandMichael Niedermayer 4ba5dbc0e4 mpegvideo: use hpeldsp instead of dsputil for half-pel functions.
This also converts vc1, since that is mpegvideo-based.
2013-03-13 03:58:00 +01:00
Ronald S. BultjeandMichael Niedermayer 4652389777 svq1: use hpeldsp instead of dsputil for half-pel functions.
This makes svq1 independent of dsputil.
2013-03-13 03:57:45 +01:00
Ronald S. BultjeandMichael Niedermayer cc5d17e026 mimic: use hpeldsp instead of dsputil for half-pel functions. 2013-03-13 03:57:33 +01:00
Ronald S. BultjeandMichael Niedermayer 04a75bb74f interplayvideo: use hpeldsp instead of dsputil for half-pel functions.
This makes interplayvideo independent of dsputil.
2013-03-13 03:57:21 +01:00
Ronald S. BultjeandMichael Niedermayer af1e3dfb9e bink: use hpeldsp instead of dsputil for half-pel functions. 2013-03-13 03:56:09 +01:00
Ronald S. BultjeandMichael Niedermayer 4b642ab19b indeo3: use hpeldsp instead of dsputil for half-pel functions.
This makes indeo3 independent of dsputil.
2013-03-13 03:56:09 +01:00
Ronald S. BultjeandMichael Niedermayer 704c9874a3 vp56: use hpeldsp instead of dsputil for half-pel functions.
This makes vp5 and vp6 independent of dsputil.
2013-03-13 03:56:07 +01:00
Ronald S. BultjeandMichael Niedermayer d1293512cf vp3: use hpeldsp instead of dsputil for half-pel functions.
This makes vp3 independent of dsputil.
2013-03-13 03:55:33 +01:00
Ronald S. BultjeandMichael Niedermayer 9628e5a4ac hpeldsp: add half-pel functions (currently copies of dsputil). 2013-03-13 03:54:47 +01:00
Ronald S. BultjeandMichael Niedermayer d85c9b036e vp3/x86: use full transpose for all IDCTs.
This way, the special IDCT permutations are no longer needed. Bfin code
is disabled until someone updates it. This is similar to how H264 does
it, and removes the dsputil dependency imposed by the scantable code.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 22:54:10 +01:00
Ronald S. BultjeandMichael Niedermayer 6a701306db dsputil: make selectable.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-12 19:56:58 +01:00
Ronald S. BultjeandMichael Niedermayer d5efa84f13 vp3: embed idct_permutation array directly in VP3DecoderContext.
This makes the vp3 decoder less dependent on dsputil, and will aid
in making it (eventually) dsputil-independent.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-10 02:51:05 +01:00
Ronald S. BultjeandMichael Niedermayer 22cc8a103c x86/qpel: move fullpel and l2 functions to separate file.
This way, they can be shared between mpeg4qpel and h264qpel without
requiring either one to be compiled unconditionally.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-09 17:25:30 +01:00
Ronald S. BultjeandMichael Niedermayer 9d40f7106d dsputil: make square put/avg_pixels functions local to h264qpel.
Put a copy of the 8bit functions only in dsputil, where they are used
for some other things (e.g. mpeg4qpel, mspel, cavsqpel). We could perhaps
also try to share specifically the 8bit functions from h264qpel between
it and the others, but that will be slightly more complicated. H264qpel
already had these functions, so we can simply remove the duplicates.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-09 17:16:55 +01:00
Ronald S. BultjeandAnton Khirnov 65f1d45dcc lavu: add support for atomic operations.
These could be used for reference counting, or for keeping track of
decoding progress in references in multithreaded decoders.

Support is provided by gcc/msvc/suncc intrinsics, with a fallback using
pthread mutexes.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-03-08 07:32:36 +01:00
Ronald S. BultjeandMartin Storsjö 54b298fe56 lavc: Deprecate the deinterlace functions in libavcodec
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 09:35:24 +02:00
Ronald S. BultjeandMartin Storsjö 64e4386974 h264: Integrate draw_horiz_band into ff_h264_draw_horiz_band
This makes the decoder independent of mpegvideo.

This copy of the draw_horiz_band code is simplified compared to
the "generic" mpegvideo one which still has a number of special
cases for different codecs.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-07 09:31:44 +02:00
Ronald S. BultjeandMartin Storsjö 8d061989dd lavc: Split out ff_hwaccel_pixfmt_list_420[] over individual codecs
Not all hwaccels implement all codecs, so using one single list for
multiple such codecs means some codecs will be represented in the list,
even though they don't actually handle that codec. Copying specific
lists in each codec fixes that.

Signed-off-by: Martin Storsjö <martin@martin.st>
2013-03-06 21:18:50 +02:00
Ronald S. BultjeandMichael Niedermayer c257fe1fde Move ff_cropTbl and ff_zigzag_direct from dsputil to mathtables.
These are widely used throughout libavcodec, nothing dsputil-specific.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-06 19:28:11 +01:00
Ronald S. BultjeandMichael Niedermayer 2cffe38df3 Deprecate deinterlaced in libavcodec.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 21:11:48 +01:00
Ronald S. BultjeandMichael Niedermayer d98aa7cdc1 h264: put call to ff_print_debug_info2 under CONFIG_MPEGVIDEO.
The code is located in mpegvideo, and it's likely that in a minimal
config, we don't want to include debug info anyway.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 12:19:29 +01:00
Ronald S. BultjeandMichael Niedermayer d4e649cca6 h264: make it possible to compile without error_resilience.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-03 12:19:15 +01:00