summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-01-11Revert "Add vp9 ref frame to flag map function"Jerome Jiang
This reverts commit 44e611482e13fdffa0acde780a20dd68ee153498. Change-Id: Ic900cc01be4de7983fab42178a488277efab77b3
2022-01-01Add vp9 ref frame to flag map functionJianhui Dai
Change-Id: I371c2346b9e0153c0f8053cab399ce14cd286c56
2021-12-22Merge "vp9_prob_diff_update_savings_search_model: quiet conv warnings" into mainJames Zern
2021-12-21vp9_prob_diff_update_savings_search_model: quiet conv warningsJames Zern
under Visual Studio: Warning C4244 '=': conversion from 'int64_t' to 'vpx_prob', possible loss of data after: ea042a676 vp9 encoder: fix integer overflows 'newp' has already been range checked earlier in the loop so the cast won't have any unexpected results Change-Id: Ic10877db2c0633d53fffdf8852d5095403c23a02
2021-12-21vpx_int_pro_row: normalize declaration w/aomJames Zern
this is a followup to: 7fbcee49d quiet -Warray-parameter warnings and conforms to aom in: 06e13e817 quiet -Warray-parameter warnings the sad functions are more varied in libvpx and will require a separate pass Change-Id: I765fd6704df615e836ba0b184ff8266ce926c394
2021-12-16Merge "vp9 encoder: fix test failure on 32 bit arch" into mainFyodor Kyslov
2021-12-15vp9 encoder: fix test failure on 32 bit archFyodor Kyslov
test fails with memory error. Reducing testing resolution bug: webm:1750 Change-Id: I75664088022aa660bdf6e69de2d11121db44716f
2021-12-15Merge "Set unused reference frames to first ref" into mainMarco Paniconi
2021-12-15Merge "vp9 encoder: fix integer overflows" into mainFyodor Kyslov
2021-12-14vp9 encoder: fix integer overflowsFyodor Kyslov
fixing integer overflow with 16K content and enabling the test Bug: webm:1750 Fixed: webm:1750 Change-Id: I76eebd915bcae55bc755613251a98e1716dea4c0
2021-12-11Set unused reference frames to first refJianhui Dai
If a reference frame is not referenced, then set the index for that reference to the first one used/referenced instead of unused slot. Unused slot means key frame, as key frame resets all slots with itself. This CL extracts `get_first_ref_frame()` from `reset_fb_idx_unused()` with a typo fixing, and sets all unused reference frames to first ref in vp9 uncompressed header. Bug: webrtc:13442 Change-Id: I99523bc2ceedf27efe376d1113851ff342982181
2021-12-10Merge "vp9_diamond_search_sad_avx: quiet -Wmaybe-uninitialized warning" into ↵James Zern
main
2021-12-10Merge "vp[89]_initalize_enc(): protect against multiple invocations" into mainJames Zern
2021-12-09vp[89]_initalize_enc(): protect against multiple invocationsJames Zern
this removes the burden from callers; the rtcd functions are left with a mostly redundant (outside of tests) once() as top-level functions should ensure their constraints are met Change-Id: I5bdbcfa4671c6a1492cfe9c7d886c361c26caaa9
2021-12-09vp9_diamond_search_sad_avx: quiet -Wmaybe-uninitialized warningJames Zern
w/gcc-11 v_these_mv_w is always initialized in this block with _mm_add_epi16(); converting this to a _mm_storeu_si32(tmp) call also works, but introduces more stack usage || ../vp9/encoder/x86/vp9_diamond_search_sad_avx.c: In function ‘vp9_diamond_search_sad_avx’: vp9/encoder/x86/vp9_diamond_search_sad_avx.c|285 col 19| warning: ‘v_these_mv_w’ may be used uninitialized [-Wmaybe-uninitialized] || 285 | new_bmv = ((const int_mv *)&v_these_mv_w)[local_best_idx]; || | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vp9/encoder/x86/vp9_diamond_search_sad_avx.c|149 col 21| note: ‘v_these_mv_w’ declared here || 149 | const __m128i v_these_mv_w = _mm_add_epi16(v_bmv_w, v_ss_mv_w); || | ^~~~~~~~~~~~ Change-Id: I1cd2fcb41030db16f51c94f3a70eb8eb2a526401
2021-12-09vp9_bitstream.c: quiet -Wstringop-overflow warningJames Zern
w/gcc-11 as noted in the size of interp_filter_selected[][]'s first dimension varies between VP9_COMP and VP9BitstreamWorkerData as noted in the latter's definition: // The size of interp_filter_selected in VP9_COMP is actually // MAX_REFERENCE_FRAMES x SWITCHABLE. But when encoding tiles, all we ever do // is increment the very first index (index 0) for the first dimension. Hence // this is sufficient. int interp_filter_selected[1][SWITCHABLE]; normalize the function signatures of write_modes*(), etc. to take this into account. vp9/encoder/vp9_bitstream.c|948 col 3| warning: ‘write_modes’ accessing 64 bytes in a region of size 16 [-Wstringop-overflow=] || 948 | write_modes(cpi, xd, &cpi->tile_data[data->tile_idx].tile_info, || | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ || 949 | &data->bit_writer, tile_row, data->tile_idx, || | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ || 950 | &data->max_mv_magnitude, data->interp_filter_selected); || | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vp9/encoder/vp9_bitstream.c|948 col 3| note: referencing argument 8 of type ‘int (*)[4]’ vp9/encoder/vp9_bitstream.c|488 col 13| note: in a call to function ‘write_modes’ Change-Id: I0898cd7c3431633c382a0c3a1be2f0a0bea8d0f9
2021-12-09quiet -Warray-parameter warningsJames Zern
w/gcc-11 this matches the definition of the function with the declaration Change-Id: I757b731b9560cb0b0ceec4ec258ec5af5a183b3d
2021-12-09Merge "test_intra_pred_speed: match above ext w/reconintra" into mainJames Zern
2021-12-08test_intra_pred_speed: match above ext w/reconintraJames Zern
only 2 x block_size is needed + remove a related TODO; C & assembly rely on this extension Change-Id: Iea430267624251cccbbdaec8045eb81d01ae1db1
2021-12-08vp9_thread_test.cc: remove incorrect TODOJames Zern
the row-based loop filter is ok (and being used) in this case; since it's serialized the previous row will always be done Change-Id: I024a0c78e7488178956cc22a4c4680a00dc6eade
2021-12-07clear -Wextra-semi/-Wextra-semi-stmt warnings x2James Zern
some additional neon file updates after: 31b954deb clear -Wextra-semi/-Wextra-semi-stmt warnings Bug: chromium:1257449 Change-Id: I3e2664f2bd8f6f7328ec91bf6595ba5fc09862bd
2021-12-02clear -Wextra-semi/-Wextra-semi-stmt warningsJames Zern
Bug: chromium:1257449 Change-Id: Ia9aafccc09b611521d4a7aedfe3723393a840c62
2021-11-19Merge "vp9 encoder: fix row-mt crash w/thread config change" into mainJames Zern
2021-11-18vp9 encoder: fix row-mt crash w/thread config changeJames Zern
previously row-mt would allocate thread data once, so increasing the number of threads with a config change would cause a heap overflow. Bug: chromium:1261415 Bug: chromium:1270689 Change-Id: I3c5ec8444ae91964fa34a19dd780bd2cbb0368bf
2021-11-18Merge "vp9 encoder: fix some integer overflows" into mainJames Zern
2021-11-18Merge "replaced bsr() with get_msb() from bitops.h" into mainJohann Koenig
2021-11-17vp9 encoder: fix some integer overflowsFyodor Kyslov
cap bitrate to 1000Mbps, change bitsaving budget to int64_t this make test coverage for 2048x2048 - same as for vp8 Bug: webm:1749 Fixed: webm:1749 Change-Id: Ic58d73cb7529b0826d1f501ad09af8e80f706a6e
2021-11-18Merge "faster vp8_regular_quantize_b_sse4_1" into mainJohann Koenig
2021-11-18replaced bsr() with get_msb() from bitops.hIlya Kurdyukov
The modified line should now compile into two instructions instead of four. Change-Id: Ie2eb6b13ff1e29b3107cb9e76f37ff9065504316
2021-11-17faster vp8_regular_quantize_b_sse4_1Ilya Kurdyukov
Gives 10% faster VP8 encoding in simple tests. This patch requires testing on wider datasets and encoder settings to see if this speedup is achieved on most data. Change-Id: If8e04819623e78fff126c413db66c964c0b4c11a
2021-11-16encode_api_test.cc: unify kCodecs[] definitionsJames Zern
and rename the table to kCodecIfaces[] to be a little more specific and avoid shadowing kCodecs[] in SetRoi() Change-Id: I64905f48d8bf76e812bdba8374b82e3f7654686f
2021-11-17Merge "MacOS 12 is darwin21" into mainJohann Koenig
2021-11-16Merge "test/DummyVideoSource::ReallocImage: check img_ alloc" into mainYunqing Wang
2021-11-17MacOS 12 is darwin21Johann
Remove -mmacosx-version-min. The library does not use any calls which are affected by the platform version. There is also no version 10.16 as it went from 10.15 to 11 and now to 12. At some point it may be good to clarify that the bare -darwin- target is for iOS and the -darwinN- targets are for macOS. Change-Id: I2fd5f7cae2637905acf3ab77bfddfbe367abbb68
2021-11-16vp9: Fix multiplication overflowMikko Koivisto
Fix UBSan error reported from aosp Cuttlefish device: /vp9/encoder/vp9_ratectrl.c:238:33: unsigned integer overflow: 2500000 * 1800 cannot be represented in type 'unsigned int' ...by casting the operand and the result of multiplication to 64bit integer. Test: vp9 webrtc streaming with Cuttlefish Change-Id: Id5bb3d4071a96179caffae0829d3cc4e48c7614b
2021-11-11test/DummyVideoSource::ReallocImage: check img_ allocJames Zern
prevents a crash on the next line accessing img_ members Bug: aomedia:3191 Change-Id: I430fb4ee662b0001629096eb8b554f8a2b30cce0
2021-11-11Merge "update libwebm to libwebm-1.0.0.28-20-g206d268" into mainJames Zern
2021-11-10Merge changes I1425f12d,I1e9e9ffa,I6d8f676b,I92013086 into mainJames Zern
* changes: mem_sse2.h: loadu_uint32 -> loadu_int32 mem_sse2.h: storeu_uint32 -> storeu_int32 vp8: fix some implicit signed -> unsigned conv warnings video_source.h,ReallocImage: quiet implicit conv warning
2021-11-08vp8 encoder: fix some integer overflowsJames Zern
cap the bitrate to 1000Mbps to avoid many instances of bitrate * 3 / 2 overflowing. this adds coverage for 2048x2048 in the default test for VP8 with TODOs for issues at that resolution for VP9 and at max resolution for both. Bug: b/189602769 Bug: chromium:1264506 Bug: webm:1748 Bug: webm:1749 Bug: webm:1750 Bug: webm:1751 Change-Id: Iedee4dd8d3609c2504271f94d22433dfcd828429
2021-11-08mem_sse2.h: loadu_uint32 -> loadu_int32James Zern
this changes the return to int32_t which matches the type with usage of this call as input to _mm_cvtsi32_si128(), _mm_set_epi32(), etc. fixes implicit conversion warning with clang-11 -fsanitize=undefined Change-Id: I1425f12d4f79155dd5d7af0eb00fbdb9f1940544
2021-11-08mem_sse2.h: storeu_uint32 -> storeu_int32James Zern
this changes the parameter to int32_t which matches the type with usage of this call using _mm_cvtsi128_si32() as a parameter. quiets an implicit conversion warning with clang-11 -fsanitize=undefined Change-Id: I1e9e9ffac5d2996962d29611458311221eca8ea0
2021-11-08vp8: fix some implicit signed -> unsigned conv warningsJames Zern
and vice-versa mostly when dealing with bitmasks w/clang-11 -fsanitize=undefined Change-Id: I6d8f676bf87679ba1dad9cb7f55eea172103d9d3
2021-11-08video_source.h,ReallocImage: quiet implicit conv warningJames Zern
with -fsanitize=undefined test/video_source.h:194:33: runtime error: implicit conversion from type 'int' of value -32 (32-bit, signed) to type 'unsigned int' changed the value to 4294967264 (32-bit, unsigned) Change-Id: I92013086d517fecf01c9e4cdfe6737b8ce733a1f
2021-11-08vp8,calc_pframe_target_size: fix integer overflowJames Zern
this is similar to the fix for calc_iframe_target_size: 5f345a924 Avoid overflow in calc_iframe_target_size Bug: chromium:1264506 Change-Id: I2f0e161cf9da59ca0724692d581f1594c8098ebb
2021-11-08vp8_update_rate_correction_factors: fix integer overflowJames Zern
the intermediate value in the correction_factor calculation may exceed integer bounds Bug: b/189602769 Change-Id: I75726b12f3095663911d78333f3ea26eb6dee21e
2021-11-04update libwebm to libwebm-1.0.0.28-20-g206d268James Zern
picks up Android.mk license updates from AOSP and fixes as part of the 1.0.0.28 release changelog: https://chromium.googlesource.com/webm/libwebm/+log/37d9b86..206d268 Change-Id: I18d5238f7d1aff2678d903018929da952410fa0e
2021-11-04Merge "update tools/cpplint.py" into mainJames Zern
2021-11-03update tools/cpplint.pyJames Zern
https://github.com/google/styleguide.git 100755 blob 4a82bde4f95cef8103520bc2c019483397ec51f4 cpplint/cpplint.py Bug: aomedia:3178 Change-Id: I9e11d647096fc2082b18d74731026dabb52639bb
2021-11-02tools_common.h: add VPX_TOOLS_FORMAT_PRINTFJames Zern
and use it to set the format attribute for printf like functions. this allows the examples to be built with -Wformat-nonliteral without producing warnings. Bug: webm:1744 Change-Id: I26b4c41c9a42790053b1ae0e4a678af8f2cd1d82 Fixed: webm:1744
2021-11-02vpx_codec_internal.h: add LIBVPX_FORMAT_PRINTFJames Zern
and use it to set the format attribute for the printf like function vpx_internal_error(). this allows the main library to be built with -Wformat-nonliteral without producing warnings; the examples will be handled in a followup. Bug: webm:1744 Change-Id: Iebc322e24db35d902c5a2b1ed767d2e10e9c91b9