diff options
Diffstat (limited to 'vpx_scale/blackfin/yv12extend.c')
-rw-r--r-- | vpx_scale/blackfin/yv12extend.c | 350 |
1 files changed, 0 insertions, 350 deletions
diff --git a/vpx_scale/blackfin/yv12extend.c b/vpx_scale/blackfin/yv12extend.c deleted file mode 100644 index cfd3de050..000000000 --- a/vpx_scale/blackfin/yv12extend.c +++ /dev/null @@ -1,350 +0,0 @@ -/* - * Copyright (c) 2010 The WebM project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - - -/**************************************************************************** - * - * Module Title : yv12extend.c - * - * Description : - * - ***************************************************************************/ - -/**************************************************************************** -* Header Files -****************************************************************************/ -#include <cdef_bf533.h> - -#include "vpx_scale/yv12config.h" -#include "vpx_mem/vpx_mem.h" - -/**************************************************************************** -* -****************************************************************************/ - - -/**************************************************************************** -* -****************************************************************************/ -void -extend_memset(void *dst, unsigned char value, unsigned int size) -{ -#if 0 - unsigned int quad_value; - - quad_value = (unsigned int) value; - quad_value |= (unsigned int) value << 8; - quad_value |= (unsigned int) value << 16; - quad_value |= (unsigned int) value << 24; -#else - unsigned short quad_value; - - quad_value = (unsigned int) value; - quad_value |= (unsigned int) value << 8; -#endif - - - if (size / 2 >= 64 * 1024) - printf("_Extend_memset__________ dma memset is broken\n"); - - *p_mdma_s1_start_addr = &quad_value; - *p_mdma_s1_x_count = size / 2; - *p_mdma_s1_x_modify = 0x0; - *p_mdma_d1_start_addr = dst; - *p_mdma_d1_x_count = size / 2; - *p_mdma_d1_x_modify = 2; - - *p_mdma_s1_config = DMAEN | WDSIZE_16; - asm("ssync;"); - - *p_mdma_d1_config = DI_EN | DMAEN | WNR | WDSIZE_16; - asm("ssync;"); - - while ((*p_mdma_d1_irq_status & DMA_DONE) == 0); - - *p_mdma_d1_irq_status |= DMA_DONE; -} - -/**************************************************************************** -* -****************************************************************************/ -void -extend_memcpy(void *dst, void *src, unsigned int size) -{ - if (size / 2 >= 64 * 1024) - printf("_Extend_memcpy__________ dma memcpy is broken\n"); - - - if ((size & 0x3)) - printf("_)__________ size not a multiple of 4\n"); - -//32 bit dma here caused some data to be corrupted --- WHY ?????? - - *p_mdma_s1_start_addr = src; - *p_mdma_s1_x_count = size / 2; - *p_mdma_s1_x_modify = 2; - *p_mdma_d1_start_addr = dst; - *p_mdma_d1_x_count = size / 2; - *p_mdma_d1_x_modify = 2; - - *p_mdma_s1_config = DMAEN | WDSIZE_16; - asm("ssync;"); - - *p_mdma_d1_config = DI_EN | DMAEN | WNR | WDSIZE_16; - asm("ssync;"); - - while ((*p_mdma_d1_irq_status & DMA_DONE) == 0); - - *p_mdma_d1_irq_status |= DMA_DONE; -} - -/**************************************************************************** - * - ****************************************************************************/ -void -vp8_yv12_extend_frame_borders(YV12_BUFFER_CONFIG *ybf) -{ -#if 1 - int i; - unsigned char *src_ptr1, *src_ptr2; - unsigned char *dest_ptr1, *dest_ptr2; - - unsigned int Border; - int plane_stride; - int plane_height; - int plane_width; - - unsigned int quad_sample; - unsigned int sample; - - /***********/ - /* Y Plane */ - /***********/ - Border = ybf->border; - plane_stride = ybf->y_stride; - plane_height = ybf->y_height; - plane_width = ybf->y_width; - - // copy the left and right most columns out - src_ptr1 = ybf->y_buffer; - src_ptr2 = src_ptr1 + plane_width - 1; - dest_ptr1 = src_ptr1 - Border; - dest_ptr2 = src_ptr2 + 1; - - for (i = 0; i < plane_height; i++) - { - extend_memset(dest_ptr1, src_ptr1[0], Border); - extend_memset(dest_ptr2, src_ptr2[0], Border); - src_ptr1 += plane_stride; - src_ptr2 += plane_stride; - dest_ptr1 += plane_stride; - dest_ptr2 += plane_stride; - } - - // Now copy the top and bottom source lines into each line of the respective borders - src_ptr1 = ybf->y_buffer - Border; - src_ptr2 = src_ptr1 + (plane_height * plane_stride) - plane_stride; - dest_ptr1 = src_ptr1 - (Border * plane_stride); - dest_ptr2 = src_ptr2 + plane_stride; - - for (i = 0; i < (int)Border; i++) - { - extend_memcpy(dest_ptr1, src_ptr1, plane_stride); - dest_ptr1 += plane_stride; - } - - for (i = 0; i < (int)Border; i++) - { - extend_memcpy(dest_ptr2, src_ptr2, plane_stride); - dest_ptr2 += plane_stride; - } - - plane_stride /= 2; - plane_height /= 2; - plane_width /= 2; - Border /= 2; - - /***********/ - /* U Plane */ - /***********/ - - // copy the left and right most columns out - src_ptr1 = ybf->u_buffer; - src_ptr2 = src_ptr1 + plane_width - 1; - dest_ptr1 = src_ptr1 - Border; - dest_ptr2 = src_ptr2 + 1; - - for (i = 0; i < plane_height; i++) - { - extend_memset(dest_ptr1, src_ptr1[0], Border); - extend_memset(dest_ptr2, src_ptr2[0], Border); - src_ptr1 += plane_stride; - src_ptr2 += plane_stride; - dest_ptr1 += plane_stride; - dest_ptr2 += plane_stride; - } - - // Now copy the top and bottom source lines into each line of the respective borders - src_ptr1 = ybf->u_buffer - Border; - src_ptr2 = src_ptr1 + (plane_height * plane_stride) - plane_stride; - dest_ptr1 = src_ptr1 - (Border * plane_stride); - dest_ptr2 = src_ptr2 + plane_stride; - - for (i = 0; i < (int)(Border); i++) - { - extend_memcpy(dest_ptr1, src_ptr1, plane_stride); - dest_ptr1 += plane_stride; - } - - for (i = 0; i < (int)(Border); i++) - { - extend_memcpy(dest_ptr2, src_ptr2, plane_stride); - dest_ptr2 += plane_stride; - } - - /***********/ - /* V Plane */ - /***********/ - - // copy the left and right most columns out - src_ptr1 = ybf->v_buffer; - src_ptr2 = src_ptr1 + plane_width - 1; - dest_ptr1 = src_ptr1 - Border; - dest_ptr2 = src_ptr2 + 1; - - for (i = 0; i < plane_height; i++) - { - extend_memset(dest_ptr1, src_ptr1[0], Border); - extend_memset(dest_ptr2, src_ptr2[0], Border); - src_ptr1 += plane_stride; - src_ptr2 += plane_stride; - dest_ptr1 += plane_stride; - dest_ptr2 += plane_stride; - } - - // Now copy the top and bottom source lines into each line of the respective borders - src_ptr1 = ybf->v_buffer - Border; - src_ptr2 = src_ptr1 + (plane_height * plane_stride) - plane_stride; - dest_ptr1 = src_ptr1 - (Border * plane_stride); - dest_ptr2 = src_ptr2 + plane_stride; - - for (i = 0; i < (int)(Border); i++) - { - extend_memcpy(dest_ptr1, src_ptr1, plane_stride); - dest_ptr1 += plane_stride; - } - - for (i = 0; i < (int)(Border); i++) - { - extend_memcpy(dest_ptr2, src_ptr2, plane_stride); - dest_ptr2 += plane_stride; - } - -#endif -} -/**************************************************************************** - * - * ROUTINE : vp8_yv12_copy_frame - * - * INPUTS : - * - * OUTPUTS : None. - * - * RETURNS : void - * - * FUNCTION : Copies the source image into the destination image and - * updates the destination's UMV borders. - * - * SPECIAL NOTES : The frames are assumed to be identical in size. - * - ****************************************************************************/ -void -vp8_yv12_copy_frame(YV12_BUFFER_CONFIG *src_ybc, YV12_BUFFER_CONFIG *dst_ybc) -{ -#if 1 - int row; - unsigned char *source, *dest; - - source = src_ybc->y_buffer; - dest = dst_ybc->y_buffer; - - for (row = 0; row < src_ybc->y_height; row++) - { - extend_memcpy(dest, source, src_ybc->y_width); - source += src_ybc->y_stride; - dest += dst_ybc->y_stride; - } - - source = src_ybc->u_buffer; - dest = dst_ybc->u_buffer; - - for (row = 0; row < src_ybc->uv_height; row++) - { - extend_memcpy(dest, source, src_ybc->uv_width); - source += src_ybc->uv_stride; - dest += dst_ybc->uv_stride; - } - - source = src_ybc->v_buffer; - dest = dst_ybc->v_buffer; - - for (row = 0; row < src_ybc->uv_height; row++) - { - extend_memcpy(dest, source, src_ybc->uv_width); - source += src_ybc->uv_stride; - dest += dst_ybc->uv_stride; - } - - vp8_yv12_extend_frame_borders(dst_ybc); - -#else - int row; - char *source, *dest; - int height; - int width; - - height = src_ybc->y_height + (src_ybc->border * 2); - width = src_ybc->y_width + (src_ybc->border * 2); - source = src_ybc->y_buffer; - dest = dst_ybc->y_buffer; - - for (row = 0; row < height; row++) - { - extend_memcpy(dest, source, width); - source += src_ybc->y_stride; - dest += dst_ybc->y_stride; - } - - height = src_ybc->uv_height + (src_ybc->border); - width = src_ybc->uv_width + (src_ybc->border); - - source = src_ybc->u_buffer; - dest = dst_ybc->u_buffer; - - for (row = 0; row < height; row++) - { - extend_memcpy(dest, source, width); - source += src_ybc->uv_stride; - dest += dst_ybc->uv_stride; - } - - source = src_ybc->v_buffer; - dest = dst_ybc->v_buffer; - - for (row = 0; row < height; row++) - { - extend_memcpy(dest, source, width); - source += src_ybc->uv_stride; - dest += dst_ybc->uv_stride; - } - -#endif - -} |