Commit Graph
100 Commits
Author SHA1 Message Date
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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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. BultjeandMichael 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