Ronald S. Bultje
96a58a8daa
vp9: set skip flag if the block had no coded coefficients.
...
This reproduces libvpx behaviour. It seems like it originally only
targeted loopfilter behaviour, but this unfortunately effects following
block contexting and thus directs bitstream sync.
2015-05-14 20:13:43 -04:00
Ronald S. Bultje
1e4a77d001
vp9: apply mv scaling workaround only when subsampling is enabled.
2015-05-14 17:05:18 -04:00
Ronald S. Bultje
dc96c0f9fc
vp9: read all 4x4 blocks in sub8x8 blocks individually with scalability.
2015-05-14 16:38:53 -04:00
Ronald S. Bultje
e12188e143
vp9: fix segmentation map referencing upon framesize change.
2015-05-14 16:37:49 -04:00
Ronald S. Bultje
23ba4538f9
vp9: add inter-frame profile 2/3 suport.
2015-05-06 15:10:41 -04:00
Ronald S. Bultje
b224b165cb
vp9: add keyframe profile 2/3 support.
2015-05-06 15:10:41 -04:00
Ronald S. Bultje
346ce5da19
vp9: parse profile 2/3 bitdepth in frame header.
2015-05-06 15:10:40 -04:00
Ronald S. Bultje
01e59d48ed
vp9: add profile 2/3 to exported profiles.
2015-05-06 15:10:40 -04:00
Ronald S. Bultje
ed68fccf76
vp9: error out if chroma subsampling changes between frames.
...
This can happen after an intra-only frame. For reference, see:
https://groups.google.com/a/webmproject.org/forum/#!msg/webm-discuss/zaoTxREZjq8/v5Enht87AhcJ
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-05 20:09:44 +02:00
James Almer
079b7f6eac
vp9: add profile names
...
Reviewed-by: Ronald S. Bultje <rsbultje@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-05-04 18:39:51 -03:00
Ronald S. Bultje
2a7d7bef62
vp9: fix mask_edges and filter_plane_rows/cols() for 440.
2015-05-01 08:45:54 +02:00
Ronald S. Bultje
cf62f2d2d6
vp9: more specifically specify mask destination to mask_edges().
2015-05-01 08:45:54 +02:00
Ronald S. Bultje
e4f77e6239
vp9: don't create special u/v filter masks for 444.
...
This fixes vp91-2-04-yuv444.webm.
2015-05-01 08:45:54 +02:00
Ronald S. Bultje
afa9d00b43
vp9: merge uv loopfilter code into generic filter_plane_rows/cols().
2015-05-01 08:45:53 +02:00
Ronald S. Bultje
ba59a5ec42
vp9: split out loopfilter luma rows/cols functions from loopfilter_sb().
2015-05-01 08:45:53 +02:00
Ronald S. Bultje
844799b033
vp9: invert order of two conditions.
...
This makes it equal to row-based loopfilter code, and also makes the
chroma/luma code identical.
2015-05-01 08:45:53 +02:00
Ronald S. Bultje
d382cc0fad
vp9: use correct chroma subsampling for profile 1 inter block recon.
2015-05-01 08:45:52 +02:00
Ronald S. Bultje
d2aa6f65db
vp9: use correct chroma subsampling for profile 1 intra block recon.
2015-05-01 08:45:52 +02:00
Ronald S. Bultje
ed3e0cc715
vp9: take chroma subsampling into account when walking the block tree.
2015-05-01 08:45:52 +02:00
Ronald S. Bultje
6019002f0f
vp9: support non-420 chroma subsampling for profile 1 token decoding.
2015-05-01 08:45:52 +02:00
Ronald S. Bultje
2d0bea4719
vp9: increase buffer sizes for non-420 chroma subsamplings.
2015-05-01 08:45:51 +02:00
Ronald S. Bultje
a03b057ede
vp9: profile 1 header decoding.
2015-05-01 08:45:51 +02:00
Ronald S. Bultje
5935513c0e
vp9: fix show-existing-frames for multi-threading.
...
This also fixes intra-only MT failures (it was the same bug), see trac
4526 and 4527.
Tested-by: James Almer <jamrial@gmail.com>
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-30 23:32:09 +02:00
Ronald S. Bultje
640d878bc1
vp9: fix intraonly frame decoding.
2015-04-24 16:54:31 +02:00
Ronald S. Bultje
ed45edb2f6
vp9: use aligned size to write segmentation map into cache.
...
The unaligned size is not handled in setctx_2d(), causing edges of images
to have improper segmentation prediction, which causes visual artifacts
at image edges a few frames later.
2015-04-24 16:54:31 +02:00
Ronald S. Bultje
d9555adf06
vp9: set timestamps for show_existing_frame return images.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 20:34:51 +02:00
Ronald S. Bultje
c82e870c12
vp9: maintain lf_delta values if feature is turned off.
...
This is required if it's subsequently re-enabled with no value updates
(which means, use values that were previously set).
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 15:55:15 +02:00
Ronald S. Bultje
e8b4f6d6be
vp9: add support for resolution changes in inter frames.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-04-23 05:09:51 +02:00
Ronald S. Bultje
1fd1f58bd6
vp9: make above buffer pointer 32-byte aligned.
...
Fixes ticket #4383
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-21 17:13:46 -03:00
Michael Niedermayer
27191b82de
avcodec/vp9: Fix undefined shifts in decode_frame_header()
...
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-12 15:31:41 +01:00
Ronald S. Bultje
0b69c53a61
vp9: included uses_2pass member in vp9_ref_frame().
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 14:50:11 +01:00
Ronald S. Bultje
4ba8f3273e
vp9: split segmentation map / mvpair references.
...
This prevents a memcpy if segmentation.update_map == false.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-08 13:58:14 +01:00
Ronald S. Bultje
efff3854f0
vp9: fix segmentation map retention with threading enabled.
...
Fixes ticket 4359.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-07 03:30:37 +01:00
Steve Lhomme
4851db80a4
fix VP9 packet decoder returning 0 instead of the used data size
...
See https://trac.videolan.org/vlc/ticket/14022#comment:6
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-03 13:48:51 +01:00
Ronald S. Bultje
b6e1711223
vp9/x86: invert hu_ipred left array ordering.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-12-19 14:07:18 +01:00
Michael Niedermayer
a82f3de053
Merge commit '312daa15891dc7abb77a404fe927d5ee35c52a71'
...
* commit '312daa15891dc7abb77a404fe927d5ee35c52a71':
vp9: Use the correct upper bound for seg_id
Conflicts:
libavcodec/vp9.h
libavcodec/vp9block.c
Not merged, the value was correct before as far as i can see
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-21 23:37:04 +01:00
Di Wu
162b521108
vp9: enable multi-thread decoding when refreshctx is equal to 0
...
In vp9_decode_frame function, ff_thread_finish_setup is not called
when refreshctx is equal to 0, and the next decoding thread can not
start work until the cunrrent frame has been decoded completely. So
ff_thread_finish_setup needs to be called to enable Multi-thread
decoding in this condition.
Signed-off-by: Di Wu <di1028.wu@samsung.com>
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
2014-10-10 09:13:44 -03:00
Michael Niedermayer
5b134a0544
Merge commit 'eddf95283fbba1b469b76e7518bc3941f671b193'
...
* commit 'eddf95283fbba1b469b76e7518bc3941f671b193':
vp9: initialize color space and range properties
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-10-09 02:49:16 +02:00
Vittorio Giovara
eddf95283f
vp9: initialize color space and range properties
2014-10-08 18:17:50 +01:00
Michael Niedermayer
2a85826e57
avcodec/vp9: Use av_malloc_array()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-25 22:55:11 +02:00
Ronald S. Bultje
14e3025518
vp9: ignore reference segmentation map if error_resilience flag is set.
...
Fixes ffvp9_fails_where_libvpx.succeeds.webm from ticket 3849.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-13 20:46:00 +02:00
Timothy Gu
9bc0410e4f
vp9: remove unused assignment
...
Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Reviewed-by: BBB
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-07-16 14:38:42 +02:00
Michael Niedermayer
aab23f5ddd
avcodec/vp9: fix () in macros
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-18 03:13:37 +02:00
Luca Barbato
925c37874b
vp9: Read the frame size as unsigned
...
Sample-Id: 00001723-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2014-05-03 18:25:17 +02:00
Michael Niedermayer
2f2629c870
Merge commit '6d69f9f37689c999815a65a2d99999fad3a41705'
...
* commit '6d69f9f37689c999815a65a2d99999fad3a41705':
vp9: write uveob as 16-bit value for 16x16/32x32 transforms.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 13:55:44 +02:00
Ronald S. Bultje
6d69f9f376
vp9: write uveob as 16-bit value for 16x16/32x32 transforms.
...
This fixes make fate-vp9-00-quantizer-01 THREADS=2.
2014-04-25 07:51:39 -04:00
James Almer
c7b089048d
vp9: use LOCAL_ALIGNED_32 for left/top intra_pred pointers
...
This is needed for future AVX2 implementations
Signed-off-by: James Almer <jamrial@gmail.com>
Reviewed-by: "Ronald S. Bultje" <rsbultje@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-25 06:13:15 +02:00
Ronald S. Bultje
21a0451167
vp9: split decode_coeff_b loop inside txsz branch.
...
The advantage of this is that the is32x32 division branch in
decode_coeffs_b is removed from the inner loop to outside the block
coef decoding loop in decode_coeffs. Also, it allows us to merge the
txsz branches from the block coef decoding loop, the context merge
and the context split.
2014-02-17 13:39:00 +01:00
Clément Bœsch
c333987876
vp9: fix compilation with !HAVE_FAST_64BIT.
...
Spotted-by: Carl Eugen Hoyos <cehoyos@ag.or.at>
2014-02-09 18:44:20 +01:00
Ronald S. Bultje
0d4d223353
vp9: invert order in l[] intra prediction array.
...
The directional intra predictors either don't care about order (dc, h,
dc_left, tm), or they prefer inverted order (vr, dr, hd). This allows
more efficient SIMD implementations.
2014-02-09 18:07:15 +01:00