summaryrefslogtreecommitdiff
path: root/vp9/decoder
AgeCommit message (Collapse)Author
2018-07-27Merge "vp9: release frame buffer on key frame."Jerome Jiang
2018-07-26vp9: release frame buffer on key frame.Jerome Jiang
Add tests with corrupted frames and periodic key frames. BUG=webm:1545 Change-Id: Ic0684bdafd01507036f56465387b9d2187b1458e
2018-07-20Add Flag to Enable Row Based MultiThreadingVenkatarama NG. Avadhani
This commit adds a command line argument "--row-mt". Passing "--row-mt=1" will set the row_mt flag in the decoder context. This flag will be used to determine whether row-wise multi-threading path is to be taken when the row-wise multi-threading functions are added. Change-Id: I35a5393a2720254437daa5e796630709049e0bc2
2018-07-12Backport libaom bug fixes.Wan-Teh Chang
libaom commit 80a5b09337a80093e1e7ae5eb540020a22949805: dec_free_mi: Reset cm->mi_alloc_size. libaom commit fb0dd0bb80fc95ef016f1421b105a52fffa32816: Clear cm->width and cm->height on alloc failure. libaom commit ccb27264089a8cfa1334391ebbcb6a11b8dff442: Misc. resize fixes along with the resize test Note: only the change to enc_free_mi in av1/encoder/encoder.c is merged. Change-Id: I602813230d40125e59608fa013085dca3e160c33
2018-06-06VP9: fix unsigned integer overflow in decoder.Jerome Jiang
The difference of two size_t variables. Change-Id: I73f35cdafc2ba64a9ddaf855cc6a410cfb63b8da
2017-11-20[CFI] Remove function pointer castsVlad Tsyrklevich
Control Flow Integrity [1] indirect call checking verifies that function pointers only call valid functions with a matching type signature. This change eliminates function pointer casts to make libvpx CFI-safe. [1] https://www.chromium.org/developers/testing/control-flow-integrity Change-Id: I7e08522d195a43c88cda06fa20414426c8c4372c
2017-11-09vp9: Fix mem rel for non-ref for external buffer.Jerome Jiang
Release frame buffers for non-ref when the decoder is destroyed. Enable the non ref test. BUG=b/68819248 Change-Id: Id87ef3b0a62318f9812e927cd957c05c859047fa
2017-07-05vp9: remove FrameWorkerData & vp9_dthread.hJames Zern
the file was empty after the struct removal. the only remaining use was within vp9_dx_iface, but the wrapper became unnecessary after the removal of frame_parallel_decode. BUG=webm:1395 Change-Id: I515ab585d701e77d388d12b2802d844c424f9bcd
2017-07-05vp9: remove (un)lock_buffer_poolJames Zern
there is no threaded access to this pool after the removal of frame_parallel_decode BUG=webm:1395 Change-Id: I710769b87102edc898c59eb9a2e7a91d8c49107f
2017-06-30vp9_onyxc_int,RefCntBuffer: rm unused membersJames Zern
the last frame_worker_owner, row and col references were removed in: 131bd06e6 remove vp9_dthread.c BUG=webm:1395 Change-Id: Ia7fb2e8782b12a58d2a2263849d20a8abf06aef6
2017-06-30remove vp9_dthread.cJames Zern
and the related prototypes in vp9_dthread.h. the last references were removed in: 09dabc58d VP9_COMMON: rm frame_parallel_decode vp9_dx_iface.c still uses FrameWorkerData BUG=webm:1395 Change-Id: Ica8e98ae776fc0105f1fbbed9e0a729808980810
2017-06-30VP9_COMMON: rm frame_parallel_decodeJames Zern
this has been 0 since the removal of frame_parallel_decode in vp9_dx_iface. BUG=webm:1395 Change-Id: I3a562b2c6b82050064d2b2ccb18a3e77c700b2da
2017-06-30VP9Decoder: rm frame_parallel_decodeJames Zern
this has been 0 since the removal of frame_parallel_decode in vp9_dx_iface. BUG=webm:1395 Change-Id: I3f579766ecfa4777395b99686738e1c5610f86ef
2017-05-26Fix vp8 race when build --enable-vp9-highbitdepth.Jerome Jiang
Split vp8/vp9 implementations on yv12_copy_frame_c. Remove high-bitdepth codes from vp8_yv12_extend_frame_borders_c. Clean up vp8 codes usage in vp9. BUG=webm:1435 Change-Id: Ic68e79e9d71e1b20ddfc451fb8dcf2447861236d
2017-05-03Update highbd idct functions arguments to use uint16_t dstLinfeng Zhang
BUG=webm:1388 Change-Id: I3581d80d0389b99166e70987d38aba2db6c469d5
2017-05-03Clean CONVERT_TO_BYTEPTR/SHORTPTR in idctLinfeng Zhang
BUG=webm:1388 Change-Id: Ida62c941f2b836d6c9e27b427a7d5008ab6dc112
2017-04-25Clean vp9_highbd_build_inter_predictor() and highbd_inter_predictor()Linfeng Zhang
BUG=webm:1388 Change-Id: I7ee32e0c08f0fb41712a8cc640b2c5bba872421d
2017-02-14apply clang-formatclang-format
Change-Id: I75e4a9e0b37bd4586f26c8d6c1fa27f3f6ff1bce
2016-11-22vp9,read_inter_block_mode_info: quiet msan warningJames Zern
best_sub8x8[1] won't be used meaningfully when is_compound is false, but may trigger an msan warning as the value is copied around and later clamped. BUG=667044 Change-Id: Icc24c3b72cdb550bebea44d4aaa4ff8bf3fbab56
2016-11-01vp9,tile_worker_hook: correctly set jmp targetJames Zern
vp9_init_macroblockd() resets the error_info to cm's global copy; this needs to be set to the thread-level target to avoid jumping to the incorrect stack, resulting in hang or crash. broken since: 1f4a6c8 vp9/tile_worker_hook: add multiple tile decoding includes v1.5.0, v1.6.0 BUG=629481 Change-Id: Icbf1696b25ba8c479e845fbf227b3c3ca73542f5
2016-09-28vp9_detokenize,decode_coefs: fix signed int overflowJames Zern
when decoding an invalid bitstream with --enable-vp9-highbitdepth BUG=webm:1297 Change-Id: I401d87033b4293f2ca595bc51678aad9951ecf15
2016-09-27Fix for compile error with range checkingPeter de Rivaz
Current version does not build with options: --enable-vp9-highbitdepth --enable-coefficient-range-checking Change-Id: Ic3285f1a3e0d6be88da7f2cd8fa5a631368dd03b
2016-09-23VP9: token decoder expansionScott LaVarnway
This version is based on Change 267683, but does not use the macros. Change-Id: I0619fa618decf8bdeef250584d75d70318b5d9a7
2016-09-23Merge "VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader."Scott LaVarnway
2016-09-22VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader.Scott LaVarnway
Change-Id: I869ef0f113c022143b531c44aefa0f1bb267052d
2016-09-19Code class0 using vpx_read() / vpx_write().Nathan E. Egge
The vp9_mv_class0_tree is a balanced tree with two leafs and can simply be coded as a boolean with probability class0[0]. Change-Id: If294dac825a5f945371092c74aa8e3f84cd962b6 (cherry picked from commit be8a8ab62ebdd111c6f2e9a33b15630570671eba)
2016-08-31Refactor uv tx size with lookup arraysDebargha Mukherjee
Change-Id: Ife6a3d301c5faaba89d16d188d638631083511f7
2016-08-03vp9/decoder,vp9/*.[hc]: apply clang-formatclang-format
Change-Id: Ic38ea06c7b2fb3e8e94a4c0910e82672a1acaea7
2016-07-21VP9: get_pred_context_switchable_interp() -- encoder sideScott LaVarnway
Change-Id: I7217c90d5cf38c51b76759a2dc4f10070f3a40ac
2016-07-06Merge "Remove decode asserts from better-hw-compatibility"Debargha Mukherjee
2016-07-06Remove decode asserts from better-hw-compatibilityDebargha Mukherjee
Safer to have the decoder operate normally and have better-hw-compatibility only implement encoding changes. Fixes some test failures. Change-Id: I0dd70d002e4e893992f0cd59774b9363e6f7fe76
2016-07-01Make set_reference control API work in VP9Yunqing Wang
Moved the API patch from NextGenv2. An example was included. To try it, for example, run the following command: $ examples/vpx_cx_set_ref vp9 352 288 in.yuv out.ivf 4 30 Change-Id: I4cf8f23b86d7ebd85ffd2630dcfbd799c0b88101
2016-06-21Add a hardware compatibility featurehui su
This commit adds an encoder workaround to support better compatibility with a non-compliant hardware vp9 profile 2 decoder. The known issue with this decoder is: The decoder assumes a wrong value, 127 instead of the correct value of 511 and 2047, for any assumed top-left corner pixel in UV planes for 10 and 12 bit, respectively. Such assumed top-left corner pixel is used for INTRA prediction when a real decoded/reconstructed pixel is not avalable, e.g. when it is located inside the row above the top row or inside the column left to the leftest column of a video image. Change-Id: Ic15a938a3107e1b85e96cb7903a5c4220986b99d
2016-05-25Prevent read to invalid RefBufferYaowu Xu
This commit adds check to validate RefBuffer before reading into the data structure, to prevent invalid read. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=614701 Change-Id: Ie111e95bd18e88fa19d8b25e097cdf52b7139cb6
2016-05-18Merge "Prevent invalid read"Yaowu Xu
2016-05-18Merge "Move, rename, and inline high_inter_predictor."Alex Converse
2016-05-18Move, rename, and inline high_inter_predictor.Alex Converse
The inlining mirrors what was done with the low bit depth inter_predictor. And the new highbd_inter_predictor name is more consistent with other high bit depth functions. Change-Id: I96437f745759aeec6260c6e39a974bf36f1c211c
2016-05-18Prevent invalid readYaowu Xu
This commit adds a check before reading into RefBuffer to prevent OOB read. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=612023 Change-Id: I5b02951932e7f457cfbe6b2e650790496b8577ae
2016-05-18Merge "VP9: _get_pred_context_switchable_interp()"Scott LaVarnway
2016-05-17VP9: _get_pred_context_switchable_interp()Scott LaVarnway
Remove unnecessary checks. Change-Id: Ic7bce8277ac5f4ae88d4ab7d0ae3ab110b2f225b
2016-05-17Promote to uint32_t before left shiftYaowu Xu
This commit change to promote uint8_t explicitly to uint32_t before left shift operation. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=612021 Change-Id: Id7059154efb5bdfa45889dabe72aaafd46d79f23
2016-04-15VP9: inline vp9_get_intra_inter_context()Scott LaVarnway
Change-Id: I71366140799b9b39474b9b459082cdb250bd1905
2016-04-10Merge "VP9: Combine TileData with TileWorkerData"Scott LaVarnway
2016-04-07VP9: Combine TileData with TileWorkerDataScott LaVarnway
Change-Id: I83536734a54ef7b85f90f56a51878d94fac7ff22
2016-04-06VP9: refactor read_switchable_interp_filter()Scott LaVarnway
Change-Id: I8f88b7ff21a0991297860c4a744a014629b0fa05
2016-04-01VP9: Refactor vp9_decode_block_tokens()Scott LaVarnway
Change-Id: I30ab27808ec903f9490f36621fb16c197bd35d16
2016-03-28Properly propagate out of memory errors.Jean-Yves Avenard
It would otherwise result in an infinite loop. Change-Id: Ic03fb220cc048538bd62dee599653187f2093079
2016-03-24Merge changes Id0a490bc,I1b4a0504James Zern
* changes: vp9/inverse_transform_block_inter: move eob check vp9/inverse_transform_block_intra: move eob check
2016-03-24VP9: Eliminate extra mv clamp in decoderScott LaVarnway
The mv is clamped in dec_find_mv_refs() to a smaller region than the clamp in dec_find_best_ref_mvs(). See clamp_mv_ref and clamp_mv2. Change-Id: I47dd5f7fa8b42f2cc593559b4d7c782fe7bcb1db
2016-03-23vp9/inverse_transform_block_inter: move eob checkJames Zern
1 level up. the function is a no-op for eob == 0 and shouldn't be called Change-Id: Id0a490bcce78c2b2ec6ea24d942191eb9b2bc16e