diff options
Diffstat (limited to 'libvideoeditor/vss/stagefrightshells/src/VideoEditorBuffer.c')
-rwxr-xr-x | libvideoeditor/vss/stagefrightshells/src/VideoEditorBuffer.c | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/libvideoeditor/vss/stagefrightshells/src/VideoEditorBuffer.c b/libvideoeditor/vss/stagefrightshells/src/VideoEditorBuffer.c deleted file mode 100755 index 5a7b28e..0000000 --- a/libvideoeditor/vss/stagefrightshells/src/VideoEditorBuffer.c +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -/** -************************************************************************* -* @file VideoEditorBuffer.c -* @brief StageFright shell Buffer -************************************************************************* -*/ -#undef M4OSA_TRACE_LEVEL -#define M4OSA_TRACE_LEVEL 1 - -#include <inttypes.h> - -#include "VideoEditorBuffer.h" -#include "utils/Log.h" - -#define VIDEOEDITOR_BUFFEPOOL_MAX_NAME_SIZE 40 - -#define VIDEOEDITOR_SAFE_FREE(p) \ -{ \ - if(M4OSA_NULL != p) \ - { \ - free(p); \ - p = M4OSA_NULL; \ - } \ -} - -/** - ************************************************************************ - M4OSA_ERR VIDEOEDITOR_BUFFER_allocatePool(VIDEOEDITOR_BUFFER_Pool** ppool, - * M4OSA_UInt32 nbBuffers) - * @brief Allocate a pool of nbBuffers buffers - * - * @param ppool : IN The buffer pool to create - * @param nbBuffers : IN The number of buffers in the pool - * @param poolName : IN a name given to the pool - * @return Error code - ************************************************************************ -*/ -M4OSA_ERR VIDEOEDITOR_BUFFER_allocatePool(VIDEOEDITOR_BUFFER_Pool** ppool, - M4OSA_UInt32 nbBuffers, M4OSA_Char* poolName) -{ - M4OSA_ERR lerr = M4NO_ERROR; - VIDEOEDITOR_BUFFER_Pool* pool; - M4OSA_UInt32 index; - - ALOGV("VIDEOEDITOR_BUFFER_allocatePool : ppool = %p nbBuffers = %" PRIu32, - ppool, nbBuffers); - - pool = M4OSA_NULL; - pool = (VIDEOEDITOR_BUFFER_Pool*)M4OSA_32bitAlignedMalloc( - sizeof(VIDEOEDITOR_BUFFER_Pool), VIDEOEDITOR_BUFFER_EXTERNAL, - (M4OSA_Char*)("VIDEOEDITOR_BUFFER_allocatePool: pool")); - if (M4OSA_NULL == pool) - { - lerr = M4ERR_ALLOC; - goto VIDEOEDITOR_BUFFER_allocatePool_Cleanup; - } - - ALOGV("VIDEOEDITOR_BUFFER_allocatePool : Allocating Pool buffers"); - pool->pNXPBuffer = M4OSA_NULL; - pool->pNXPBuffer = (VIDEOEDITOR_BUFFER_Buffer*)M4OSA_32bitAlignedMalloc( - sizeof(VIDEOEDITOR_BUFFER_Buffer)*nbBuffers, - VIDEOEDITOR_BUFFER_EXTERNAL, - (M4OSA_Char*)("BUFFER_allocatePool: pNXPBuffer")); - if(M4OSA_NULL == pool->pNXPBuffer) - { - lerr = M4ERR_ALLOC; - goto VIDEOEDITOR_BUFFER_allocatePool_Cleanup; - } - - for (index = 0; index < nbBuffers; index++) - { - pool->pNXPBuffer[index].pData = M4OSA_NULL; - } - - ALOGV("VIDEOEDITOR_BUFFER_allocatePool : Allocating Pool name buffer"); - pool->poolName = M4OSA_NULL; - pool->poolName = (M4OSA_Char*)M4OSA_32bitAlignedMalloc( - VIDEOEDITOR_BUFFEPOOL_MAX_NAME_SIZE,VIDEOEDITOR_BUFFER_EXTERNAL, - (M4OSA_Char*)("VIDEOEDITOR_BUFFER_allocatePool: poolname")); - if(pool->poolName == M4OSA_NULL) - { - lerr = M4ERR_ALLOC; - goto VIDEOEDITOR_BUFFER_allocatePool_Cleanup; - } - - ALOGV("VIDEOEDITOR_BUFFER_allocatePool : Assigning Pool name buffer"); - - memset((void *)pool->poolName, 0,VIDEOEDITOR_BUFFEPOOL_MAX_NAME_SIZE); - memcpy((void *)pool->poolName, (void *)poolName, - VIDEOEDITOR_BUFFEPOOL_MAX_NAME_SIZE-1); - - pool->NB = nbBuffers; - -VIDEOEDITOR_BUFFER_allocatePool_Cleanup: - if(M4NO_ERROR != lerr) - { - VIDEOEDITOR_SAFE_FREE(pool->pNXPBuffer); - VIDEOEDITOR_SAFE_FREE(pool->poolName); - VIDEOEDITOR_SAFE_FREE(pool); - } - *ppool = pool; - ALOGV("VIDEOEDITOR_BUFFER_allocatePool END"); - - return lerr; -} - -/** - ************************************************************************ - M4OSA_ERR VIDEOEDITOR_BUFFER_freePool(VIDEOEDITOR_BUFFER_Pool* ppool) - * @brief Deallocate a buffer pool - * - * @param ppool : IN The buffer pool to free - * @return Error code - ************************************************************************ -*/ -M4OSA_ERR VIDEOEDITOR_BUFFER_freePool(VIDEOEDITOR_BUFFER_Pool* ppool) -{ - M4OSA_ERR err; - M4OSA_UInt32 j = 0; - - ALOGV("VIDEOEDITOR_BUFFER_freePool : ppool = %p", ppool); - - err = M4NO_ERROR; - - for (j = 0; j < ppool->NB; j++) - { - if(M4OSA_NULL != ppool->pNXPBuffer[j].pData) - { - free(ppool->pNXPBuffer[j].pData); - ppool->pNXPBuffer[j].pData = M4OSA_NULL; - } - } - - if(ppool != M4OSA_NULL) - { - SAFE_FREE(ppool->pNXPBuffer); - SAFE_FREE(ppool->poolName); - SAFE_FREE(ppool); - } - - return(err); -} - -/** - ************************************************************************ - M4OSA_ERR VIDEOEDITOR_BUFFER_getBuffer(VIDEOEDITOR_BUFFER_Pool* ppool, - * VIDEOEDITOR_BUFFER_Buffer** pNXPBuffer) - * @brief Returns a buffer in a given state - * - * @param ppool : IN The buffer pool - * @param desiredState : IN The buffer state - * @param pNXPBuffer : IN The selected buffer - * @return Error code - ************************************************************************ -*/ -M4OSA_ERR VIDEOEDITOR_BUFFER_getBuffer(VIDEOEDITOR_BUFFER_Pool* ppool, - VIDEOEDITOR_BUFFER_State desiredState, - VIDEOEDITOR_BUFFER_Buffer** pNXPBuffer) -{ - M4OSA_ERR err = M4NO_ERROR; - M4OSA_Bool bFound = M4OSA_FALSE; - M4OSA_UInt32 i, ibuf; - - ALOGV("VIDEOEDITOR_BUFFER_getBuffer from %s in state=%d", - ppool->poolName, desiredState); - - ibuf = 0; - - for (i=0; i < ppool->NB; i++) - { - bFound = (ppool->pNXPBuffer[i].state == desiredState); - if (bFound) - { - ibuf = i; - break; - } - } - - if(!bFound) - { - ALOGV("VIDEOEDITOR_BUFFER_getBuffer No buffer available in state %d", - desiredState); - *pNXPBuffer = M4OSA_NULL; - return M4ERR_NO_BUFFER_AVAILABLE; - } - - /* case where a buffer has been found */ - *pNXPBuffer = &(ppool->pNXPBuffer[ibuf]); - - ALOGV("VIDEOEDITOR_BUFFER_getBuffer: idx = %" PRIu32, ibuf); - - return(err); -} - -M4OSA_ERR VIDEOEDITOR_BUFFER_initPoolBuffers(VIDEOEDITOR_BUFFER_Pool* pool, - M4OSA_UInt32 lSize) -{ - M4OSA_ERR err = M4NO_ERROR; - M4OSA_UInt32 index, j; - - /** - * Initialize all the buffers in the pool */ - for(index = 0; index < pool->NB; index++) - { - pool->pNXPBuffer[index].pData = M4OSA_NULL; - pool->pNXPBuffer[index].pData = (M4OSA_Void*)M4OSA_32bitAlignedMalloc( - lSize, VIDEOEDITOR_BUFFER_EXTERNAL, - (M4OSA_Char*)("BUFFER_initPoolBuffers: Buffer data")); - if(M4OSA_NULL == pool->pNXPBuffer[index].pData) - { - for (j = 0; j < index; j++) - { - if(M4OSA_NULL != pool->pNXPBuffer[j].pData) - { - free(pool->pNXPBuffer[j].pData); - pool->pNXPBuffer[j].pData = M4OSA_NULL; - } - } - err = M4ERR_ALLOC; - return err; - } - pool->pNXPBuffer[index].size = 0; - pool->pNXPBuffer[index].state = VIDEOEDITOR_BUFFER_kEmpty; - pool->pNXPBuffer[index].idx = index; - pool->pNXPBuffer[index].buffCTS = -1; - } - return err; -} - -M4OSA_ERR VIDEOEDITOR_BUFFER_getOldestBuffer(VIDEOEDITOR_BUFFER_Pool *pool, - VIDEOEDITOR_BUFFER_State desiredState, - VIDEOEDITOR_BUFFER_Buffer** pNXPBuffer) -{ - M4OSA_ERR err = M4NO_ERROR; - M4OSA_UInt32 index, j; - M4_MediaTime candidateTimeStamp = (M4_MediaTime)0x7ffffff; - M4OSA_Bool bFound = M4OSA_FALSE; - - *pNXPBuffer = M4OSA_NULL; - for(index = 0; index< pool->NB; index++) - { - if(pool->pNXPBuffer[index].state == desiredState) - { - if(pool->pNXPBuffer[index].buffCTS <= candidateTimeStamp) - { - bFound = M4OSA_TRUE; - candidateTimeStamp = pool->pNXPBuffer[index].buffCTS; - *pNXPBuffer = &(pool->pNXPBuffer[index]); - } - } - } - if(M4OSA_FALSE == bFound) - { - ALOGV("VIDEOEDITOR_BUFFER_getOldestBuffer WARNING no buffer available"); - err = M4ERR_NO_BUFFER_AVAILABLE; - } - return err; -} |