Ronald S. Bultje
b07d2a2509
libvpxenc: make flags i64 instead of dbl.
2015-08-18 12:04:57 -04:00
Ronald S. Bultje
6471040f56
FF_OPT_TYPE_* -> AV_OPT_TYPE_*.
2015-08-18 11:48:49 -04:00
Ronald S. Bultje
229843aa35
Replace av_dlog with ff_dlog.
...
ff_dlog checks compilability, and is non-public. av_dlog is deprecated
and no longer exists if FF_API_DLOG=0.
2015-08-18 10:24:01 -04:00
Ronald S. Bultje
ad7d972e08
lavfi: add error message to help users convert to new lavfi syntax.
2015-08-18 10:18:43 -04:00
Ronald S. Bultje
70a19c482a
Move ff_dlog from lavc to lavu.
2015-08-18 09:46:49 -04:00
Ronald S. Bultje
a27c9f61bf
fate: add -fflags +bitexact in a few places.
...
This improves results after FF_API_LAVF_BITEXACT=0. It still doesn't
pass, because of mov rtphint track which I don't understand (yet).
2015-08-17 19:14:37 -04:00
Ronald S. Bultje
61043777d7
fate: explicitly specify audio bitrate for adpcm/mp2fixed tests.
...
They picked up defaults, which changes from 128 to 200 when we remove
FF_API_OLD_AVOPTIONS.
2015-08-17 18:13:03 -04:00
Ronald S. Bultje
cdbd3b1e7d
fate: move -flags +mv0 -> -mpv_flags +mv0.
...
Fixes associated fate tests when FF_API_MV0=0.
2015-08-17 17:46:43 -04:00
Ronald S. Bultje
22b30f925d
vf_psnr: add psnr_avg to stats file.
2015-08-05 09:19:09 -04:00
Ronald S. Bultje and Michael Niedermayer
ae4c9ddebc
vf_psnr: sse2 optimizations for sum-squared-error.
...
The internal line accumulator for 16bit can overflow, so I changed that
from int to uint64_t in the C code. The matching assembly looks a little
weird but output looks correct.
(avx2 should be trivial to add later.)
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-14 17:57:14 +02:00
Ronald S. Bultje and Michael Niedermayer
dfc58584b4
vf_ssim: x86 simd for ssim_4x4xN and ssim_endN.
...
Both are 2-2.5x faster than their C counterpart.
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Reviewed-by: James Almer <jamrial@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-14 05:07:07 +02:00
Ronald S. Bultje and Michael Niedermayer
03931ecf71
vf_ssim: remove another obscure double loop.
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-13 02:39:51 +02:00
Ronald S. Bultje and Michael Niedermayer
a1f4848049
ssim: refactor a weird double loop.
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-13 02:23:30 +02:00
Ronald S. Bultje and Michael Niedermayer
f353b851b9
vf_ssim: fix s->coefs for yuv with non-4:2:0 subsampling.
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-12 17:15:42 +02:00
Ronald S. Bultje and Michael Niedermayer
3a18d3fa04
ivfenc: write duration at end-of-stream.
...
At the beginning, the value is not initialized.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-12 13:56:50 +02:00
Ronald S. Bultje and Michael Niedermayer
3bb58c377b
vf_psnr: fix rgb channel order mixup in final log message.
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-11 19:13:57 +02:00
Ronald S. Bultje and Michael Niedermayer
9879421f1a
vf_psnr: always calculate MSE over full pixel range.
...
This makes the output compatible with that of pretty much any other
tool that calculates PSNR.
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-11 18:47:05 +02:00
Ronald S. Bultje and Michael Niedermayer
733c5d889b
yuv4mpeg: add rough duration estimate and seeking.
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-11 14:46:19 +02:00
Ronald S. Bultje and Michael Niedermayer
c381af77c5
vF_psnr: move set_meta() calls out of loop.
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-11 12:48:58 +02:00
Ronald S. Bultje and Michael Niedermayer
0303d43964
vf_psnr: add channel weighting based on chroma subsampling.
...
Also add per-channel psnr stream averages to final log message.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-11 04:14:09 +02:00
Ronald S. Bultje and Michael Niedermayer
d5a36edda4
vp9: fix profile check for intraonly frames.
...
Reviewed-by: James Zern <jzern@google.com >
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-25 04:29:03 +02:00
Ronald S. Bultje and Michael Niedermayer
ade5684cda
hevc: fix typo (mpv -> mvp).
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-06 12:57:20 +02:00
Ronald S. Bultje and Michael Niedermayer
138581c41a
vp9: clamp final zero MV if find_ref_mvs() found no suitable candidates.
...
This may actually result in a non-zero MV. Fixes ticket 4583.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-06-01 17:23:34 +02:00
Ronald S. Bultje
900e3af857
vp9: match another find_ref_mvs() bug in libvpx.
...
If we find a second non-sub8x8 motion vector for a non-first sub8x8
block, and the clamped value is identical to the first non-sub8x8
motion vector, then the resulting nearmv motion vector is forced to
zero.
2015-05-16 11:59:01 -04:00
Ronald S. Bultje
ccfb03ecc4
vp9: fix scaled motion vector clipping for sub8x8 blocks.
...
To match the obscure clipping bug behaviour in libvpx.
2015-05-16 08:36:19 -04:00
Ronald S. Bultje
68c1e91316
vp9: improve signbias check.
...
Otherwise it will still scale motion vectors, which leads to corrupted
prediction.
2015-05-15 21:14:08 -04:00
Ronald S. Bultje
32b6d31ef3
vp9: don't allow compound references if error_resilience is enabled.
...
libvpx (probably accidentally) clears the bits if error_res is set,
along with keyframe/intraonly. This probably wasn't the intention
(since it's local data), but it's behaviour we have to copy...
2015-05-15 15:43:24 -04:00
Ronald S. Bultje
5de142d316
vp9: clamp segmented lflvl before applying ref/mode deltas.
2015-05-15 15:43:23 -04:00
Ronald S. Bultje
c81677e9b7
vp9: reset loopfilter mode/ref deltas on keyframe.
2015-05-15 15:43:23 -04:00
Ronald S. Bultje
88126916c8
vp9: fix crash when playing back 440/440 content with width%64<56.
2015-05-15 15:43:23 -04:00
Ronald S. Bultje
3e634e3e98
vp9: extend loopfilter workaround for vp9 h/v mix-up to work for 422.
2015-05-15 15:43:20 -04:00
Ronald S. Bultje
29045fbfd4
vp9: clip motion vectors in the same way as libvpx does.
...
The practical effect of this is that the scaling will wrongly not be
applied to the interpolation edge (the 3/4 constants in this patch).
In other words, we clip to the pre-scaling interpolation, even though
these should be clipped post-scaling. The resulting out-of-frame MVs
are thus automatically clipped within the visible portion of the frame,
which is probably not the intention, but is unfortunately what libvpx
does, so we need to copy that behaviour.
2015-05-14 22:13:46 -04:00
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
d32d0593f1
vp9: disable more pmulhrsw optimizations in idct16/32.
...
For idct16, only when called from a adst16x16 variant, so impact is
minor. For idct32, for all, so relatively major impact.
2015-05-14 14:15:27 -04:00
Ronald S. Bultje
96d30c3495
vp9: disable all pmulhrsw in 8/16 iadst x86 optimizations.
...
They all overflow in various samples that are considered valid input.
2015-05-14 13:39:37 -04:00
Ronald S. Bultje and Michael Niedermayer
c97d30f02f
vp9: de-duplicate some functions that are identical between 10/12 bpp.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-05-08 14:42:01 +02:00
Ronald S. Bultje
2293ec6ab3
libvpxdec: add 440 pixfmts.
2015-05-07 07:19:52 -04:00
Ronald S. Bultje
b8077d7a3b
vp9: add profile 2/3 fate tests.
2015-05-07 07:19: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
5c600d74aa
fate: add/update reference files for 440 addition.
2015-05-06 15:10:26 -04:00
Ronald S. Bultje
711d8812ad
swscale: add yuv440p10/12 pixfmts.
2015-05-06 12:04:31 -04:00
Ronald S. Bultje
57f970a704
lavc: add yuv440p10/12 formats to aligned pixfmt list.
2015-05-06 12:04:31 -04:00
Ronald S. Bultje
98f7f0f7e8
lavu: add yuv440p10/12 pixfmts.
2015-05-06 12:04:31 -04:00
Ronald S. Bultje and Michael Niedermayer
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
Ronald S. Bultje
b005d09764
vp9: add fate test for 422.
...
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp91-2-04-yuv422.webm
2015-05-01 08:45:55 +02:00
Ronald S. Bultje
6f63bdbae6
vp9: copy bug in libvpx for 4:2:2 chroma bs=8x4/4x4 prediction.
2015-05-01 08:45:55 +02:00
Ronald S. Bultje
7126c80f0d
vp9: add yuv440 fate test.
...
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp91-2-04-yuv440.webm
2015-05-01 08:45:55 +02: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
f052ea6ba5
vp9: add fate test for profile 1 444.
...
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp91-2-04-yuv444.webm
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 and Michael Niedermayer
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 and Michael Niedermayer
5d914a4a43
vp9: add fate test for intraonly frames.
...
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-16-intra-only.webm
2015-04-24 16:54:31 +02:00
Ronald S. Bultje and Michael Niedermayer
640d878bc1
vp9: fix intraonly frame decoding.
2015-04-24 16:54:31 +02:00
Ronald S. Bultje and Michael Niedermayer
0eccf7d43a
vp9: add fate test for segmentation image-edge issue.
...
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-15-segkey_adpq.webm
2015-04-24 16:54:31 +02:00
Ronald S. Bultje and Michael Niedermayer
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 and Michael Niedermayer
3de13d5212
vp9: remove another optimization branch in iadst16 which causes overflows.
...
See sample vp90-2-14-resize-fp-tiles-16-8.webm from the vp9 test vector
set to reproduce the issue.
2015-04-24 16:54:31 +02:00
Ronald S. Bultje and Michael Niedermayer
4b02032fb4
vp9: add fate tests for show-existing-frame feature.
...
Samples available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-10-show-existing-frame.webm
http://downloads.webmproject.org/test_data/libvpx/vp90-2-10-show-existing-frame2.webm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-24 16:37:05 +02:00
Ronald S. Bultje and Michael Niedermayer
345e3be7ba
vp9: add lf_deltas fate test.
...
Sample available at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-09-lf_deltas.webm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-24 16:36:36 +02:00
Ronald S. Bultje and Michael Niedermayer
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 and Michael Niedermayer
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 and Michael Niedermayer
d02619fde3
vp9: add fate test for bilinear MC filter.
...
Sample at:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-06-bilinear.webm
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-23 15:55:10 +02:00
Ronald S. Bultje and Michael Niedermayer
df287f3e43
vp9: add fate size for resolution changes.
...
See sample:
http://downloads.webmproject.org/test_data/libvpx/vp90-2-05-resize.ivf
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-23 05:10:02 +02:00
Ronald S. Bultje and Michael Niedermayer
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 and Michael Niedermayer
d02d04a18f
vp9: remove one optimization branch in iadst16 which causes overflows.
...
See sample vp90-2-14-resize-fp-tiles-16-8-4-2-1.webm from the vp9 test
vector set which reproduces the issue. This probably costs a few cycles,
but I don't think there's an easy way to workaround that.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-22 21:37:10 +02:00
Ronald S. Bultje and Michael Niedermayer
b926f02e81
avutil/x86/Makefile: Make building and linking of emms.c conditional
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-04-08 17:25:35 +02:00
Ronald S. Bultje and Michael Niedermayer
589a6042ea
avutil: make AVFrameSideData buffers ref-counted.
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-03-25 12:04:00 +01:00
Ronald S. Bultje and Michael Niedermayer
b8e36690e8
lavu/frame: move av_frame_copy_props() up in the file.
...
Preparation for following patch.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2015-03-25 12:03:53 +01:00
Ronald S. Bultje and James Almer
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
Ronald S. Bultje and Michael Niedermayer
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 and Michael Niedermayer
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 and Michael Niedermayer
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
Ronald S. Bultje
3aefca68ca
vp9/x86: add myself to copyright holders for loopfilter assembly.
2014-12-27 16:55:16 -05:00
Ronald S. Bultje
afd8c464b7
vp9/x86: make filter_16_h work on 32-bit.
2014-12-27 16:55:16 -05:00
Ronald S. Bultje
b26bc3520f
vp9/x86: make filter_48/84/88_h work on 32-bit.
2014-12-27 16:55:15 -05:00
Ronald S. Bultje
8a1cff1c35
vp9/x86: make filter_44_h work on 32-bit.
2014-12-27 16:55:15 -05:00
Ronald S. Bultje
047088b8c6
vp9/x86: make filter_16_v work on 32-bit.
2014-12-27 16:55:14 -05:00
Ronald S. Bultje
0cc9c23ea1
vp9/x86: make filter_48/84_v work on 32-bit.
2014-12-27 16:55:14 -05:00
Ronald S. Bultje
6433a9133f
vp9/x86: make filter_88_v work on 32-bit.
2014-12-27 16:55:14 -05:00
Ronald S. Bultje
75f8e52089
vp9/x86: make filter_44_v work on 32-bit.
2014-12-27 16:55:13 -05:00
Ronald S. Bultje
7f80c3344c
vp8/x86: save one register in SIGN_ADD/SUB.
2014-12-27 16:55:13 -05:00
Ronald S. Bultje
8ea2194ebb
vp9/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.
2014-12-27 16:55:13 -05:00
Ronald S. Bultje
e42409479f
vp8/x86: move variable assigned inside macro branch.
...
The value is not used outside the branch.
2014-12-27 16:55:12 -05:00
Ronald S. Bultje
418c202c63
vp9/x86: simplify ABSSUM_CMP by inverting the comparison meaning.
2014-12-27 16:55:12 -05:00
Ronald S. Bultje
d1c55654e1
vp8/x86: remove unused register from ABSSUB_CMP macro.
2014-12-27 16:55:12 -05:00