summaryrefslogtreecommitdiff
path: root/test/test.mk
AgeCommit message (Collapse)Author
2015-01-30Try again to merge branch 'frame-parallel' into master branch.hkuang
In frame parallel decode, libvpx decoder decodes several frames on all cpus in parallel fashion. If not being flushed, it will only return frame when all the cpus are busy. If getting flushed, it will return all the frames in the decoder. Compare with current serial decode mode in which libvpx decoder is idle between decode calls, libvpx decoder is busy between decode calls. Current frame parallel decode will only speed up the decoding for frame parallel encoded videos. For non frame parallel encoded videos, frame parallel decode is slower than serial decode due to lack of loopfilter worker thread. There are still some known issues that need to be addressed. For example: decode frame parallel videos with segmentation enabled is not right sometimes. * frame-parallel: Add error handling for frame parallel decode and unit test for that. Fix a bug in frame parallel decode and add a unit test for that. Add two test vectors to test frame parallel decode. Add key frame seeking to webmdec and webm_video_source. Implement frame parallel decode for VP9. Increase the thread test range to cover 5, 6, 7, 8 threads. Fix a bug in adding frame parallel unit test. Add VP9 frame-parallel unit test. Manually pick "Make the api behavior conform to api spec." from master branch. Move vp9_dec_build_inter_predictors_* to decoder folder. Add segmentation map array for current and last frame segmentation. Include the right header for VP9 worker thread. Move vp9_thread.* to common. ctrl_get_reference does not need user_priv. Seperate the frame buffers from VP9 encoder/decoder structure. Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""" Conflicts: test/codec_factory.h test/decode_test_driver.cc test/decode_test_driver.h test/invalid_file_test.cc test/test-data.sha1 test/test.mk test/test_vectors.cc vp8/vp8_dx_iface.c vp9/common/vp9_alloccommon.c vp9/common/vp9_entropymode.c vp9/common/vp9_loopfilter_thread.c vp9/common/vp9_loopfilter_thread.h vp9/common/vp9_mvref_common.c vp9/common/vp9_onyxc_int.h vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/decoder/vp9_decodeframe.h vp9/decoder/vp9_decodemv.c vp9/decoder/vp9_decoder.c vp9/decoder/vp9_decoder.h vp9/encoder/vp9_encoder.c vp9/encoder/vp9_pickmode.c vp9/encoder/vp9_rdopt.c vp9/vp9_cx_iface.c vp9/vp9_dx_iface.c This reverts commit a18da9760a74d9ce6fb9f875706dc639c95402f5. Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
2015-01-23Revert "Merge branch 'frame-parallel' to enable frame parallel decode in ↵Johann
master branch." This reverts commit bde04ce5039cbcf86c8b34bdb4127e18d7e1d0c7 Change-Id: I053dae04c761b04a36dc239558503905a14d2470
2015-01-22Merge branch 'frame-parallel' to enable frame parallel decode in master branch.hkuang
In frame parallel decode, libvpx decoder decodes several frames on all cpus in parallel fashion. If not being flushed, it will only return frame when all the cpus are busy. If getting flushed, it will return all the frames in the decoder. Compare with current serial decode mode in which libvpx decoder is idle between decode calls, libvpx decoder is busy between decode calls. VP9 frame parallel decode is >30% faster than serial decode with tile parallel threading which will makes devices play 1080P VP9 videos more easily. * frame-parallel: Add error handling for frame parallel decode and unit test for that. Fix a bug in frame parallel decode and add a unit test for that. Add two test vectors to test frame parallel decode. Add key frame seeking to webmdec and webm_video_source. Implement frame parallel decode for VP9. Increase the thread test range to cover 5, 6, 7, 8 threads. Fix a bug in adding frame parallel unit test. Add VP9 frame-parallel unit test. Manually pick "Make the api behavior conform to api spec." from master branch. Move vp9_dec_build_inter_predictors_* to decoder folder. Add segmentation map array for current and last frame segmentation. Include the right header for VP9 worker thread. Move vp9_thread.* to common. ctrl_get_reference does not need user_priv. Seperate the frame buffers from VP9 encoder/decoder structure. Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""" Conflicts: test/codec_factory.h test/decode_test_driver.cc test/decode_test_driver.h test/invalid_file_test.cc test/test-data.sha1 test/test.mk test/test_vectors.cc vp8/vp8_dx_iface.c vp9/common/vp9_alloccommon.c vp9/common/vp9_entropymode.c vp9/common/vp9_loopfilter_thread.c vp9/common/vp9_loopfilter_thread.h vp9/common/vp9_mvref_common.c vp9/common/vp9_onyxc_int.h vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/decoder/vp9_decodeframe.h vp9/decoder/vp9_decodemv.c vp9/decoder/vp9_decoder.c vp9/decoder/vp9_decoder.h vp9/encoder/vp9_encoder.c vp9/encoder/vp9_pickmode.c vp9/encoder/vp9_rdopt.c vp9/vp9_cx_iface.c vp9/vp9_dx_iface.c Change-Id: Ib92eb35851c172d0624970e312ed515054e5ca64
2014-12-18vp9_ethread: add the multi-threaded encoder unit testsYunqing Wang
The unit tests for VP9 multi-threaded encoder are added, which carry out tests for all three modes(i.e. kTwoPassGood, kOnePassGood and kRealTime), and speeds ranging from 1 to 8. A 1280x720 test clip is used, which is encoded into multiple tiles. The number of threads is num_of_tiles. Change-Id: I04419eeca145ad841c9c527603668239a82e7fbd
2014-12-15Revert "Revert "Add support for setting byte alignment.""Frank Galligan
This reverts commit 91471d6aad285ff10e7582e485d8adadd1986fe2. Fixes the compile issues if post_proc is enabled. Change-Id: Ib40a15ce2c194f9b5adfa65a17ab01ddf60f5a59
2014-12-15Revert "Add support for setting byte alignment."Paul Wilkins
Fails to compile. Bad calls to vp9_alloc_frame_buffer and vp9_realloc_frame_buffer in postproc.c This reverts commit 399823b6f50fb7465f62822d1395e2192e7b07fc. Change-Id: I29f0e173f8e185d3a303cfdb17813e1eccb51e3a
2014-12-12Fix a bug that break the vp8 fragment decoder.hkuang
(issue #882). Change-Id: I2ca7f96d390c4eaec0473c50cb01b903d0bd3ee6
2014-12-12Add support for setting byte alignment.Frank Galligan
Add support for setting byte alignment on the Y, U, and V plane of the reference buffers. The byte alignment must be a power of 2, from 32 to 1024. A value of 0 sets legacy alignment. Change-Id: I7c1399622f7aa68e123646369216b32047dda73d
2014-12-12Merge "Adds a test to make sure encoder parms get to decoder."Jim Bankoski
2014-12-11Adds a test to make sure encoder parms get to decoder.Jim Bankoski
This is meant as a framework for testing that encode parms make it through to the decoder. Change-Id: Idb86ee3668b45b4e73c23c6e4daef94b0650b786
2014-12-09Adds a decode perf test that builds a new file.Jim Bankoski
This allows us to track decode speed for new encodes so that we catch problems like an encode change that makes decode really slow. Change-Id: I92251a8b1f710b241f66e1042413df1b71b76038
2014-12-08Add error handling for frame parallel decode and unit test for that.hkuang
Change-Id: I6e309e11f1641618d2424b7a2c0fe744b8974dec
2014-11-25Merge "tests: enable resize_test for vp8"James Zern
2014-11-20tests: enable resize_test for vp8James Zern
this was incorrectly set in test.mk by 93ffd37 Enable and fix resize_test for VP9 the test is now available when using --disable-vp9 Change-Id: I6acf44b0de647b34812ef5e18fd96447cdf9b25d
2014-11-19Added highbitdepth sse2 acceleration for quantizePeter de Rivaz
Also includes block error. (This patch is mostly cherry picked from commit db7192e0b014a331a1dcb102c8a1148e9f0e1081) Change-Id: Idef18f90b111a0d0c9546543d3347e551908fd78
2014-11-14Fix a bug in frame parallel decode and add a unit test for that.hkuang
A flush bug is discovered during putting frame parallel decoder into Android. This test will expose that bug. Change-Id: Ia047f27972f4da0471649f79f1f91e7695297473
2014-11-06Add two test vectors to test frame parallel decode.hkuang
The added vectors are mainly used to test the output cache mechanism in frame parallel decode. Change-Id: I3d413d060daa5abf72358f6350bd1d16d71adc5a
2014-11-03vp8 quantize testJohann
Test for Regular, Fast and Pair quantization Change-Id: I0a26c164afe632db869099402189826c0d43f9a2
2014-10-16Adds a set of end-to-end encode testsDeb Mukherjee
Covers all profiles and input formats. The tests check if the encode succeeds and if the psnr is sane. Change-Id: I195a5330debf92562846121819b6eaf961e27c01
2014-10-09add test-data.mkJames Zern
splits the test sources (test.mk) and the test data. Change-Id: Id614cfe68bfbc09b0e429a37a21ec7a9dcdfadc6
2014-10-08Merge "Add unit test for VP8 denoiser."JackyChen
2014-10-08Add unit test for VP8 denoiser.JackyChen
The unit test is to check the bitexactness of SSE2 code with C code. Change-Id: I13cc08a557b02357e5d6c2db7a49e93ce0d8e16f
2014-10-07experimental : partition using 1/8 x 1/8 imageJim Bankoski
The concept: There's too much noise in source pixels for variance and at low bitrate the reconstructed looks nothing like the source so we have problems getting good partitionings with either. This skirts the issue by using a box blur scaled down version for variance calculations. To compare against source_var_ moved keyframe to be rd based like source_var. Change-Id: Ie3babdbfadae324b7b5a76bea192893af27f0624
2014-10-06Add SSE2 code and unit test for VP9 denoiser.JackyChen
This SSE2 is based on VP8 denoiser's SSE2 code. In VP8, there are only 16x16 blocks in denoiser, while in VP9, there are 13 different block sizes. By adding this SSE2 code, the improvement of encoder speed is around 20%(using C code vs using SSE2 code), vary for different clips. The unit test for VP9 denoiser is to confirm that the SSE2 code is bit-exact with the C code. The unit test covers all block size. Change-Id: Ic8d8ac26db4ea40a5f146b5678a065af07eaaa3d
2014-09-23Merge "High bit-depth loop/arf/postproc filter functions"Deb Mukherjee
2014-09-23High bit-depth loop/arf/postproc filter functionsDeb Mukherjee
Adds high-bitdepth loopfilter, temporal filter and postproc functions Change-Id: I81c8a9176890784686bc4f2af0d550d243b3b2d3
2014-09-22invalid_file_test.cc is only for VP9 decoderJohann
Fix --disable-vp9 build https://code.google.com/p/webm/issues/detail?id=857 Change-Id: I98eacab5aa4aa9a657647acadd8ce2bd1a4590c0
2014-09-16Adding high-bitdepth intra prediction functionsDeb Mukherjee
Change-Id: I6f5cb101e2dc57c3d3f4d7e0ffb4ddbed027d111
2014-09-09vp9: wait for key/intra-only frame after corruptionJames Zern
don't bother decoding any further after receiving an earlier decode error until a key/intra-only frame is encountered. Change-Id: I381917b70d7a9e6f8d6de42e3d181bb113a4cec4
2014-09-08Add an invalid file test for referencing a different color space.Alex Converse
Change-Id: I46472a524f5188b293332946be943bd15cfc8777
2014-09-04vp9: correct context buffer resize checkJames Zern
allocations within vp9_alloc_context_buffers() rely on mi_rows/mi_cols individually, use those to determine whether to realloc rather than stride and stride * rows. this fixes a crash with some fuzzed files for invalid accesses into last_frame_seg_map and above_context. Change-Id: I7b9f40dcf170d443890f3bd2acd285507943c7d4
2014-09-04vp9: fail decode if block/frame refs are corruptJames Zern
proceeding using a corrupt (incompletely decoded) frame reference may lead to incorrect assumptions about allocation sizes leading to a crash. Change-Id: I76e74f2e1be127c2e2c7e1174bb3307497dfd23d
2014-09-03Add a more complex SEG_LVL_SKIP test vector.Alex Converse
This file changes the segmentation map, deactivates the map, and reactivates the map. Change-Id: I1c8b8949887257b9f4c49a1a9ba9a7c74666ef2e
2014-09-02Add a test vector for SEG_LVL_SKIP.Alex Converse
Change-Id: Ib41acade12fe6cdd4c4a4efdb1260d5f100a3e7f
2014-08-29vp9: fix m/t loop filter invalid freeJames Zern
store the number of allocated rows in VP9LfSync, the calculated values can not be relied on when dealing with corrupt material. Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
2014-08-27vp9: fix crash in inline loopfilter w/corrupt fileJames Zern
attempting to decode a frame after the previous frame failed has the potential of interrupting an earlier loop filter task Change-Id: I6f2b1ddcdf5b89c3e2ee8caf5289dada2a087d66
2014-08-27vp9: fix crash in mt loopfilter w/corrupt fileJames Zern
if the first frame was corrupt and loop filter not called, the next call would assume the necessary allocations had been done and segfault when accessing a NULL pointer Change-Id: Ib6ef505e5c594e6f0fe65ab0700172bcf06b92a6
2014-08-11vpx_codec_decode: check data sizeJames Zern
When a valid data pointer is given make sure the size is greater than zero. A previous check for vp9 was incorrectly removed in: 7050074 Make the api behavior conform to api spec. No semantics for valid pointers + 0-sized frames are defined for VPx codecs, so move the check to vpx_codec_decode(). This avoids an assert in vp9. + add some basic invalid param testing for decoder init/decode/destroy Change-Id: I99f9cef6076d15874fd72ac973f2685d8a2353c3
2014-07-30Merge "Add test for vp8 copy frame"Johann
2014-07-28Fix reference frame size restrictions.Jim Bankoski
The issue was introduced by commit g9f37d14 with adding explicit restrictions on reference-frame scale factors. The restriction is checked against aligned-by-8 frame dimensions, not against original ones. So, for example, frame of 35×35 actually can refer to frame of 70×70, but the new check won't allow this. It will compare 35 vs 72 (not 70), so 2x downscale limit will be exceeded. Change-Id: Ic663693034440f64ac8312cbff9e1e773a921060
2014-07-25Add test for vp8 copy frameJohann
Change-Id: Iddac0f263b283480315147c51deec2a2bbd7a1a7
2014-07-25Merge "Encode perf test"Joshua Litt
2014-07-25Encode perf testJoshua Litt
Change-Id: I61993946fe5cbcd7ebeb6302efd9538bff022e5a
2014-07-24Add test for vp8 extend_bordersJohann
Change-Id: I5bfc965019815e631a2300eb29aa065fb2bc94aa
2014-07-18Merge "Separates profile 2 into 2 profiles 2 and 3"Deb Mukherjee
2014-07-17Separates profile 2 into 2 profiles 2 and 3Deb Mukherjee
Separates HBD profile int two profiles (2 and 3) consistent with the highbitdepth branch. This patch is ported from the original highbitdepth branch patch: https://gerrit.chromium.org/gerrit/#/c/70460/ Two of the invalid file tests needed to be updated. Change-Id: I6a4acd2f7a60b1fb4cbcc8e0dad4eab4248431e3
2014-07-17allow config options to limit max size of decodeJim Bankoski
This is a practical concern to allow us to fail in a decoder instance if the size of a file is bigger than we can reasonably handle. Change-Id: I0446b5502b1f8a48408107648ff2a8d187dca393
2014-07-16New decode perf test filesJoshua Litt
Change-Id: I89ff8d4243e0438c8fe4ad74b9745c060b4460d8
2014-07-15Fix show_existing_frame not decreasing frame buffer ref counter.Alexander Voronov
The issue was introduced by commit g7c43fb6. If current frame is repeated from existing-ref pool, frame buffer ref counter is not decreased, so buffer isn't released. Decoder fails being unable to allocate new frame buffer at some point. Added a test vector to verify that the condition will not recur later. Test vector was generated by the code in this patch: https://gerrit.chromium.org/gerrit/#/c/70862/ Change-Id: I8af96eb5b9670176e01a281d2e18bd458712cf78
2014-07-11Add unit test to test tile decoding error handling.hkuang
Also fix bugs related with corrupted frame handling. Return VPX_CODEC_CORRUPT_FRAME when getting corrupted block. Change-Id: I7207ccc7c68c4df2b40b561315d16e49ccf7ff41