diff options
author | Frank Galligan <fgalligan@google.com> | 2014-01-24 11:31:23 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2014-01-24 11:31:23 -0800 |
commit | c6d537155c0eef7de973a09fdc5755e734f02042 (patch) | |
tree | 0e958076c33a11321123d4ab453d06507eaaf5b9 /vpx_scale | |
parent | 9c0fbd573fcb051bfa2bdcc81b00b7d475cfe131 (diff) | |
parent | b1c72b633ef633a1ee6e83c3556393b6fe9068c4 (diff) | |
download | libvpx-c6d537155c0eef7de973a09fdc5755e734f02042.tar.gz libvpx-c6d537155c0eef7de973a09fdc5755e734f02042.tar.bz2 libvpx-c6d537155c0eef7de973a09fdc5755e734f02042.zip |
Merge "Revert external frame buffer code."
Diffstat (limited to 'vpx_scale')
-rw-r--r-- | vpx_scale/generic/yv12config.c | 75 | ||||
-rw-r--r-- | vpx_scale/yv12config.h | 14 |
2 files changed, 20 insertions, 69 deletions
diff --git a/vpx_scale/generic/yv12config.c b/vpx_scale/generic/yv12config.c index 994e8430c..693125a0f 100644 --- a/vpx_scale/generic/yv12config.c +++ b/vpx_scale/generic/yv12config.c @@ -19,18 +19,10 @@ /**************************************************************************** * ****************************************************************************/ - -#define yv12_align_addr(addr, align) \ - (void*)(((size_t)(addr) + ((align) - 1)) & (size_t)-(align)) - int vp8_yv12_de_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf) { if (ybf) { - // If libvpx is using external frame buffers then buffer_alloc_sz must - // not be set. - if (ybf->buffer_alloc_sz > 0) { - vpx_free(ybf->buffer_alloc); - } + vpx_free(ybf->buffer_alloc); /* buffer_alloc isn't accessed by most functions. Rather y_buffer, u_buffer and v_buffer point to buffer_alloc and are used. Clear out @@ -116,9 +108,7 @@ int vp8_yv12_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int vp9_free_frame_buffer(YV12_BUFFER_CONFIG *ybf) { if (ybf) { - if (ybf->buffer_alloc_sz > 0) { - vpx_free(ybf->buffer_alloc); - } + vpx_free(ybf->buffer_alloc); /* buffer_alloc isn't accessed by most functions. Rather y_buffer, u_buffer and v_buffer point to buffer_alloc and are used. Clear out @@ -133,10 +123,7 @@ int vp9_free_frame_buffer(YV12_BUFFER_CONFIG *ybf) { int vp9_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, - int ss_x, int ss_y, int border, - vpx_codec_frame_buffer_t *ext_fb, - vpx_realloc_frame_buffer_cb_fn_t cb, - void *user_priv) { + int ss_x, int ss_y, int border) { if (ybf) { const int aligned_width = (width + 7) & ~7; const int aligned_height = (height + 7) & ~7; @@ -161,48 +148,25 @@ int vp9_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, #else const int frame_size = yplane_size + 2 * uvplane_size; #endif + if (frame_size > ybf->buffer_alloc_sz) { + // Allocation to hold larger frame, or first allocation. + if (ybf->buffer_alloc) + vpx_free(ybf->buffer_alloc); + ybf->buffer_alloc = vpx_memalign(32, frame_size); + if (!ybf->buffer_alloc) + return -1; - if (ext_fb != NULL) { - const int align_addr_extra_size = 31; - const size_t external_frame_size = frame_size + align_addr_extra_size; - if (external_frame_size > ext_fb->size) { - // Allocation to hold larger frame, or first allocation. - if (cb(user_priv, external_frame_size, ext_fb) < 0) { - return -1; - } - - if (ext_fb->data == NULL || ext_fb->size < external_frame_size) { - return -1; - } - - // This memset is needed for fixing valgrind error from C loop filter - // due to access uninitialized memory in frame border. It could be - // removed if border is totally removed. - vpx_memset(ext_fb->data, 0, ext_fb->size); - - ybf->buffer_alloc = yv12_align_addr(ext_fb->data, 32); - } - } else { - if (frame_size > ybf->buffer_alloc_sz) { - // Allocation to hold larger frame, or first allocation. - if (ybf->buffer_alloc) - vpx_free(ybf->buffer_alloc); - ybf->buffer_alloc = vpx_memalign(32, frame_size); - if (!ybf->buffer_alloc) - return -1; - - ybf->buffer_alloc_sz = frame_size; - - // This memset is needed for fixing valgrind error from C loop filter - // due to access uninitialized memory in frame boarder. It could be - // removed if border is totally removed. - vpx_memset(ybf->buffer_alloc, 0, ybf->buffer_alloc_sz); - } + ybf->buffer_alloc_sz = frame_size; - if (ybf->buffer_alloc_sz < frame_size) - return -1; + // This memset is needed for fixing valgrind error from C loop filter + // due to access uninitialized memory in frame boarder. It could be + // removed if border is totally removed. + vpx_memset(ybf->buffer_alloc, 0, ybf->buffer_alloc_sz); } + if (ybf->buffer_alloc_sz < frame_size) + return -1; + /* Only support allocating buffers that have a border that's a multiple * of 32. The border restriction is required to get 16-byte alignment of * the start of the chroma rows without introducing an arbitrary gap @@ -250,8 +214,7 @@ int vp9_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int ss_x, int ss_y, int border) { if (ybf) { vp9_free_frame_buffer(ybf); - return vp9_realloc_frame_buffer(ybf, width, height, ss_x, ss_y, border, - NULL, NULL, NULL); + return vp9_realloc_frame_buffer(ybf, width, height, ss_x, ss_y, border); } return -2; } diff --git a/vpx_scale/yv12config.h b/vpx_scale/yv12config.h index 610e7d280..8f39eb769 100644 --- a/vpx_scale/yv12config.h +++ b/vpx_scale/yv12config.h @@ -15,7 +15,6 @@ extern "C" { #endif -#include "vpx/vpx_external_frame_buffer.h" #include "vpx/vpx_integer.h" #define VP8BORDERINPIXELS 32 @@ -66,20 +65,9 @@ extern "C" { int vp9_alloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, int ss_x, int ss_y, int border); - - // Updates the yv12 buffer config with the frame buffer. If ext_fb is not - // NULL then libvpx is using external frame buffers. The function will - // check if the frame buffer is big enough to fit the decoded frame and - // try to reallocate the frame buffer. If ext_fb is not NULL and the frame - // buffer is not big enough libvpx will call cb with minimum size in bytes. - // - // Returns 0 on success. Returns < 0 on failure. int vp9_realloc_frame_buffer(YV12_BUFFER_CONFIG *ybf, int width, int height, int ss_x, int ss_y, - int border, - vpx_codec_frame_buffer_t *ext_fb, - vpx_realloc_frame_buffer_cb_fn_t cb, - void *user_priv); + int border); int vp9_free_frame_buffer(YV12_BUFFER_CONFIG *ybf); #ifdef __cplusplus |