Ronald S. Bultje
74e4948235
hevc: fix wpp threading deadlock.
...
Fixes ticket 4258.
2015-09-21 20:44:14 -04:00
Ronald S. Bultje
350e9c6765
vp9: fix loopfilter test code to address Hendrik's comments.
...
(I forgot to actually merge them into the patch I just pushed.)
2015-09-21 20:44:14 -04:00
Ronald S. Bultje
b074367405
checkasm: add VP9 loopfilter tests.
...
The randomize_buffer() implementation assures that "most of the time",
we'll do a good mix of wide16/wide8/hev/regular/no filters for complete
code coverage. However, this is not mathematically assured because that
would make the code either much more complex, or much less random.
2015-09-20 10:33:04 +02:00
Ronald S. Bultje
344d519040
vp9: add subpel MC SIMD for 10/12bpp.
2015-09-16 21:11:34 -04:00
Ronald S. Bultje
77f359670f
vp9: add fullpel (avg) MC SIMD for 10/12bpp.
2015-09-16 21:11:34 -04:00
Ronald S. Bultje
6354ff0383
vp9: add fullpel (put) MC SIMD for 10/12bpp.
2015-09-16 21:11:34 -04:00
Ronald S. Bultje
bbd44e124a
checkasm: add vp9 intra pred tests.
2015-09-15 16:43:29 -04:00
Ronald S. Bultje
084451e1e4
checkasm: add vp9 MC tests.
2015-09-15 16:43:28 -04:00
Ronald S. Bultje
a0d8a81075
vp9: switch min_tile_cols location so it shifts up instead of down.
...
This fixes cases where the shifted number is 64, but we shifted non-
zero numbers away in the shift. The change makes behaviour consistent
with libvpx.
2015-09-15 09:20:34 -04:00
Ronald S. Bultje
a30a8beeb3
vp9: Fix emu[] edge overflow conditions for >8bpp/non-420.
2015-09-12 07:01:48 -04:00
Ronald S. Bultje
2563a33856
vp9: re-initialize internal buffers on bpp change also.
2015-09-12 07:01:47 -04:00
Ronald S. Bultje
4b66274a86
vp9: save one (PSIGNW) instruction in iadst16_1d sse2/ssse3.
2015-09-11 20:36:51 -04:00
Ronald S. Bultje
02064d6b7b
libvpxdec: apply RGB to 444P16 instead of 422P16.
2015-09-11 19:35:22 -04:00
Ronald S. Bultje
fd8b90f5f6
vp9: fix overflow in 8x8 topleft 32x32 idct ssse3 version.
...
Also disable the mmx/iwht optimization when the bitexact flag is set.
With synthetically coded coefficients (i.e. these that lead to a
residual well outside the [-255,255] range), our optimizations will
overflow. It doesn't make sense to fix the overflows, since they can
only occur on synthetic input, not on real fwht-generated input. Thus,
add a bitexact flag that disables this optimization.
2015-09-10 07:51:16 -04:00
Ronald S. Bultje
4bb9dbe4d7
vp9: permanently delete segmentation refmap on any size change.
2015-09-10 07:51:16 -04:00
Ronald S. Bultje
e855ed17a7
Update md5 muxer docs to indicate that it ignores timestamps.
2015-09-06 15:07:19 -04:00
Ronald S. Bultje
f12093fffd
vp9: fix integer overflows in sse2 version of iadst4.
2015-09-06 15:07:19 -04:00
Ronald S. Bultje
a02e27c03d
md5: change flags to match framemd5.
...
This prevents the following warning: "Application provided invalid, non
monotonically increasing dts to muxer in stream 0: 9 >= 9".
2015-09-06 15:07:19 -04:00
Ronald S. Bultje
086c9b78d4
vp9: fix rounding error in idct_8x8_ssse3.
2015-09-05 15:50:02 -04:00
Ronald S. Bultje
ae9344cb9f
vp9: check return value of ff_thread_ref_frame().
...
Fixes CID 1322309.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
ef8740d8e5
vp9: fix type of iadst4_1d intermediates.
...
Fixes integer overflows for extreme coefficient values in 10/12bpp content.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
342bca7f02
vp9: fix integer overflow in 10/12bpp DC-only calculation.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
1f7871ec42
vp9: fix edge copy for 10/12bpp frames.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
9cdeb105a6
vp9: do unscaled MC in scaled path if size of this reference matches.
...
This can happen if we do bidirectional MC, where one reference has the
same size as the current frame, but the other one doesn't.
2015-09-05 15:50:01 -04:00
Ronald S. Bultje
873dbc6758
vp9: sync segmentation.absolute_vals between threads.
2015-09-05 15:50:00 -04:00
Ronald S. Bultje
3d7173b509
vp9: always sync segmentation.feat between threads.
2015-09-05 15:50:00 -04:00
Ronald S. Bultje
9ee2ddd773
vp9_parse: fix parsing of pskip and profile 2/3.
...
The fate results change because we now correctly timestamp the pskip
frames, which means the results are now identical to -vsync 0.
2015-09-04 09:59:17 -04:00
Ronald S. Bultje
10142f994a
libvpxdec: explicitly signal RGB.
2015-09-04 09:33:46 -04:00
Ronald S. Bultje
4ecb8b4191
vp9: don't erase values for {lf,ref,skip,q}_enabled if segmentation=0.
...
Instead, use segmentation.enabled before accessing each of these values.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
8b45e87f64
vp9: fix segmentation map retention across keyframe boundaries.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
7cc7d13fe3
vp9: fix RGB chroma subsampling.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
ecd9f57edc
vp9: read reserved bit in RGB header.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
48f641a18b
vp9: clip intermediates in dequant calculations.
...
This makes values consistent with libvpx.
2015-09-04 09:33:45 -04:00
Ronald S. Bultje
eaff36c973
vp9: fix segmentation map retention if segmentation is turned off.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
8d25a11dc7
vp9: use resetctx in the same way as libvpx.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
cc9d3a3e36
vp9: fix indentation.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
caf6512ac4
vp9: deal with the case where update_map=0 but we're key/intraonly.
2015-09-04 09:33:44 -04:00
Ronald S. Bultje
339550e7c8
vp9: reset segmentation information on context reset.
2015-09-04 09:33:43 -04:00
Ronald S. Bultje
7e12a54251
ffserver: use -b instead of -ab for setting audio bitrate.
2015-08-28 14:59:58 -04:00
Ronald S. Bultje
2fb593dcb9
Put remaining pieces of CODEC_FLAG_EMU_EDGE under FF_API_EMU_EDGE.
...
The amv one probably looks suspicious, but since it's an intra-only
codec, I couldn't possibly imagine what it would use the edge for,
and the vsynth fate result doesn't change, so it's probably OK.
2015-08-28 14:40:59 -04:00
Ronald S. Bultje
99b9f0136c
fate: rename -error option to -error_rate.
...
This fixes fate when FF_API_ERROR_RATE=0.
2015-08-19 10:01:42 -04:00
Ronald S. Bultje
6495c4c687
lavfi: fix compilation with FF_API_OLD_FILTER_OPTS=0.
2015-08-18 22:22:49 -04:00
Ronald S. Bultje
87068ea5c5
lavu: disable wrong value check in get_version() upon api bump.
2015-08-18 15:57:20 -04:00
Ronald S. Bultje
030b5a4f77
lavc: put remaining bits of vdpau-in-decoder under FF_API_CAP_VDPAU.
2015-08-18 15:57:19 -04:00
Ronald S. Bultje
7a629186ba
Prepare for removal of obsolete FF_IDCT_* members.
2015-08-18 15:41:06 -04:00
Ronald S. Bultje
9468207e1c
mpeg4video: use ff_dlog instead of av_log under debug&FF_DEBUG_PTS.
...
This fixes compilation with FF_API_UNUSED_MEMBERS=0.
2015-08-18 15:39:41 -04:00
Ronald S. Bultje
3285005347
Undeprecate av_opt_set_defaults2().
2015-08-18 13:09:06 -04:00
Ronald S. Bultje
e3b7298aed
lavc: fix compilation with FF_API_XVMC.
2015-08-18 12:05:57 -04:00
Ronald S. Bultje
ad45121d56
options: mark av_get_{int,double,q} as deprecated.
...
Convert last users to av_opt_get_*() counterparts.
2015-08-18 12:05:17 -04:00
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