summaryrefslogtreecommitdiff
path: root/vpx_scale
AgeCommit message (Collapse)Author
2021-10-08vp8_yv12_realloc_frame_buffer: move allocation checkJames Zern
to before the memset used under msan to avoid any spurious reports in OOM conditions Change-Id: I0c4ee92829bbcb356e94f503a4615caf891bb49d
2019-01-14Reset buffer_alloc_sz after freeing buffer_alloc.Wan-Teh Chang
ybf->buffer_alloc and ybf->buffer_alloc_sz should ideally be kept in sync. If ybf->buffer_alloc is reset to NULL after being freed, then ybf->buffer_alloc_sz should be reset to 0. Change-Id: I7e7566b563ddf145d0e46050c5b6bd141084f8b3
2018-12-21Bound the total allocated memory of frame bufferkyslov
This CL allows to limit memory consumption of the frame buffer pool. As the result if compiled with VPX_MAX_ALLOCABLE_MEMORY set codec will fail if frame resolution requires more memory This is backported CL aae2183cb58b60d01b8e4e15269ee9f48dd72908 from aomedia Tested: configure --extra-cflags="-DVPX_MAX_ALLOCABLE_MEMORY=536870912" make ./test_libvpx BUG=webm:1579 Change-Id: Ic62213b600a7562917d5a339a344ad8db4b6f481
2018-11-20Declare buffer_alloc_sz and frame_size as size_t.Wan-Teh Chang
Change-Id: Id632ddcbfb0bd3a4258aebdfb98f9dc2e4d04438
2018-11-20Validate the |border| parameter earlier.Wan-Teh Chang
vpx_realloc_frame_buffer() should validate the |border| parameter earlier, before it allocates the buffer and preferrably before it uses |border|. This backports libaom commit 2860b3ae8b764bdfa2b8c7a06df2673e907b993f: https://aomedia-review.googlesource.com/c/aom/+/74324 Change-Id: Ib9d59d74e27430ccb1e83c6ad5424aff9672c989
2018-11-09vp8: Init buffers and pred arrays for mt after allocation.Jerome Jiang
Buffers and arrays used for prediction are not initialized after allocation. BUG=902691 Change-Id: Ic727e5dab7456e91ec9d6c80694f60a1a3600640
2018-09-15cosmetics: normalize include guardsJames Zern
use the recommended format [1] of: <PROJECT>_<PATH>_<FILE>_H_ [1] https://google.github.io/styleguide/cppguide.html#The__define_Guard "All header files should have #define guards to prevent multiple inclusion. The format of the symbol name should be <PROJECT>_<PATH>_<FILE>_H_." Change-Id: I2e8ab0b32fb23c30fa43cff5fec12d043c0d2037
2018-07-26Move CONFIG_SIZE_LIMIT check in yv12config.c.Tom Finegan
Avoids a C90 compile error. BUG=webm:1551 Change-Id: Iee0f208de053c2a399aafa015d370c0496878816
2018-07-24Check size limit in vpx_realloc_frame_buffer.Wan-Teh Chang
If CONFIG_SIZE_LIMIT is defined, vpx_realloc_frame_buffer should fail if width or height is too big. This carries over commit ebc2714d71a834fc32a19eef0a81f51fbc47db01 of libaom: https://aomedia-review.googlesource.com/c/aom/+/65521 Change-Id: Id7645c5cefbe1847714695d41f506ff30ea985f6
2018-01-11adopt some clang 5.0.0 formattingJohann
At least the changes that don't conflict with 4.0.1 Change-Id: I9b6a7c14dadc0738cd0f628a10ece90fc7ee89fd
2017-12-14add copyright to rtcd filesJohann
Allows them to pass the license check in chromium. BUG=chromium:98319 Change-Id: Iefc1706152a549d8c4ae774c917596bf1c9492d8
2017-11-03fail early on oversize framesJohann
Even though frame_size is calculated in uint64_t, it winds up in an int size value. This was exposed with the msan test because the memset is called with (int)frame_size, leading to a segfault. Change-Id: I7fd930360dca274adb8f3e43e5e6785204808861
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
2016-07-26vpx_scale: apply clang-formatclang-format
Change-Id: Ia07ba57756f75911d3d06318e1f9b1982e1ca8c5
2016-06-17remove vp10James Zern
development has moved to the nextgenv2 branch and a snapshot from here was used to seed aomedia BUG=b/29457125 Change-Id: Iedaca11ec7870fb3a4e50b2c9ea0c2b056a0d3c0
2016-05-19Revert "Extend the external fb interface to allocate individual planes."James Zern
This reverts commit 6dd7f2b50a65373aa906d678cb5a29fb65531a55. conversion warnings, crashes in 32-bit builds Change-Id: I529ead34cd93c862dd07c9a29d8542dda2fc20ea
2016-05-19Merge "Extend the external fb interface to allocate individual planes."Daniele Castagna
2016-05-18Extend the external fb interface to allocate individual planes.Daniele Castagna
Change-Id: I73e1b9ea6f4c76ae539e2b3292ee4c751d9c7de4
2016-05-03yv12extend: make memcpy_short_addr staticJames Zern
Change-Id: I58612bd04fad6144722569d3db2899ba0fb947a6
2016-02-02yv12config.c: remove dead CONFIG_ALPHA codeJames Zern
the rest was removed with: 5926e7c Remove unfinished VP9 alpha channel. Change-Id: I0c1d92765e5334e1380ad027b069b401e4ae9b8f
2015-11-02vpx_scale: fix the issue in msan test.jackychen
Do memset to fix msan issue due to the access of uninitialized memory. BUG=https://code.google.com/p/chromium/issues/detail?id=549155 Change-Id: I02f995ede79e3574e72587cc078df1a0d11af002
2015-10-16Add a new enum type vpx_color_range_tYaowu Xu
to make meaning of color_range obvious. Change-Id: I303582e448b82b3203b497e27b22601cc718dfff
2015-09-25vp9/10: improve support for render_width/height.Ronald S. Bultje
In the decoder, map this to the output variable vpx_image_t.r_w/h. This is intended as an improved version of VP9D_GET_DISPLAY_SIZE, which doesn't work with parallel frame decoding. In the encoder, map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE). Also add render_size to the encoder_param_get_to_decoder unit test. See issue 1030. Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
2015-09-16Add support for color-range.Ronald S. Bultje
In decoder, export (eventually) into vpx_image_t.range field. In encoder, use oxcf->color_range to set it (same way as for color_space). See issue 1059. Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce
2015-08-15Merge "Change vp9_ prefix function names in vpx_scale to vpx_"Jingning Han
2015-08-14Change vp9_ prefix function names in vpx_scale to vpx_Jingning Han
Change-Id: Iac85902cbbb3e752801dc85de9a3c778e47304aa
2015-08-14Remove vp10's build dependency on vp9Yaowu Xu
CONFIG_VP9_HIGHBITDEPTH is currently used by both vp9 and vp10, but in many place outside vp9/vp10, the macro was used in conjunction of CONFIG_VP9. This created a dependency on vp9 for vp10 to build. This commit removes the dependency by use CONFIG_VP9_HIGHBITDEPTH only in these places. Change-Id: I8cc007fc9cf132394c6498ce6759e606b64a6ad0
2015-08-11Fork VP9 and VP10 codebaseJingning Han
This commit folks the VP9 and VP10 codebase and makes libvpx support VP8, VP9, and VP10. Change-Id: I81782e0b809acb3c9844bee8c8ec8f4d5e8fa356
2015-05-14vpx_scale: add missing rtcd + vpx_scale includesJames Zern
silences missing prototype warnings Change-Id: I33320f66c789b8c5c51d69f9dc0e017f9e06b0d0
2015-05-13Relocate memory operations for common codeJohann
With the sad functions, and hopefully the variance functions soon, moving to the vpx_dsp location, place the defines used in the reference C code in a common location. Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
2015-04-28vpx_mem: remove vpx_memsetJames Zern
vestigial. replace instances with memset() which they already were being defined to. Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
2015-04-28vpx_mem: remove vpx_memcpyJames Zern
vestigial. replace instances with memcpy() which they already were being defined to. Change-Id: Icfd1b0bc5d95b70efab91b9ae777ace1e81d2d7c
2015-04-15Reorganize *_rtcd() calling conventionsJohann
Change-Id: Ib1e17d8aae9b713b87f560ab5e49952ee2bfdcc2
2015-04-14Remove unused scaleopt.cppJohann
Change-Id: Ibaeede61c128c73809332b9a853cd62b8d6d5325
2015-03-18Remove last remnants of obj_int_extractJohann
Change-Id: Icc7da6027763b5ed7cbfe70ffe271103ead59fe1
2015-02-06Prevent VP8 encoding crashYaowu Xu
This commit changes the value of highbitdepth flag to avoid conflict with vp8 refresh_last_frame flag. Change-Id: Idcff2cf44f0a200bd935b326f785c0cf32d7228a
2015-02-06Correct the miscalculation in uv dimensionsYaowu Xu
The calculation of required extension used in HBD case was wrong due to rounding for UV when y dimension is odd. This commit replace the computation with correct version. This fixes a crash caused by writting beyond buffer boundary. Change-Id: Ic7c9afeb7388cd1341ec4974a611dacfb74ac6b6
2015-01-13Enable decoder to pass through color space infoYaowu Xu
This commit added a field to vpx_image_t for indicating color space, the field is also added to YUV_BUFFER_CONFIG. This allows the color space information pass through the decoder from input stream to the output buffer. The commit also updated compare_img() function with added verification of matching color space to ensure the color space information to be correctly passed from encode to decoder in compressed vp9 streams. Change-Id: I412776ec83defd8a09d76759aeb057b8fa690371
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-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-05fix building with --disable-spatial-resamplingJames Zern
vpx_scale.c is only used by the vp8 encoder when spatial resampling is enabled. Change-Id: If3d3ad81e9ee6e0b59f8c040b9624ef52598fe03
2014-11-06Remove asm offset dependenciesJohann
The obj_int_extract code is no longer worth maintaining. It creates significant issues when adapting for different build systems and no longer offers as significant of a performance benefit due to improvements in intrinsics. Source files will remain until the various third-party builds are updated. The neon fast quantizer has been moved to intrinsics. The armv6 version has been removed because so few remaining targets require it. Compilers and processors have improved significantly since the pack_tokens code was written. The assembly is no longer faster than the C code. pack_tokens were the only optimizations for the armv5te targets so the targets will be removed after the test infrastructure has been updated. BUG=710 Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
2014-10-11yv12config: fix highbitdepth buildJames Zern
Change-Id: Ie8a4caae19fb514d5bd22e0ae35ca0edcd3484ae
2014-10-02Fix subsampling check for images 1 pixel wide/tallAlex Converse
Change-Id: I0e262ede7eb4a4ae0c86181922d744e542e93350
2014-09-15Remove memset of every external frame buffer.Frank Galligan
Libvpx was memseting every external frame buffer before decode. This was to work around a valgrind issue in our C loop filter. Most of the time this was not needed and we have noticed some significant performance loss on some platforms. Now we require the application to zero out the buffers if it is using external frame buffers. Change-Id: I7330d00a315e65137ed30edd5f813e8929b76242
2014-09-08BITSTREAM CLARIFICATION: Forbid referencing across color spaces.Alex Converse
Check image format of reference frames. Change-Id: I7d8d7f097ba547839ff9cec3880bd15a4948ee06
2014-09-02Adds config opt for highbitdepth + misc. vpxDeb Mukherjee
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles. Also includes most vpx level high bit-depth functions. However encode/decode in the highbitdepth profiles will not work until the rest of the code is in place. Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
2014-07-25Remove copy frame neonJohann
No performance benefit Change-Id: I7f0cfa98ac2bb5b823d0972827b45f32cd3f6b4c
2014-07-25Remove unused copy src frame functionJohann
Change-Id: I03798e387a656473b6ec004246e2b882c8c6bb84