117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/* 217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** Copyright 2003-2010, VisualOn, Inc. 317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** 417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** Licensed under the Apache License, Version 2.0 (the "License"); 517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** you may not use this file except in compliance with the License. 617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** You may obtain a copy of the License at 717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** 817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** http://www.apache.org/licenses/LICENSE-2.0 917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** 1017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** Unless required by applicable law or agreed to in writing, software 1117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** distributed under the License is distributed on an "AS IS" BASIS, 1217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** See the License for the specific language governing permissions and 1417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ** limitations under the License. 1517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong */ 1617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 1717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong/*********************************************************************** 1817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong* File: stream.c * 1917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong* * 2017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong* Description: VOME API Buffer Operator Implement Code * 2117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong* * 2217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong************************************************************************/ 2317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 2417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong#include "stream.h" 2517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 2617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dongvoid voAWB_InitFrameBuffer(FrameStream *stream) 2717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong{ 2817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->set_ptr = NULL; 2917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->frame_ptr_bk = stream->frame_ptr; 3017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->set_len = 0; 3117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->framebuffer_len = 0; 3217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->frame_storelen = 0; 3317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong} 3417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 3517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dongvoid voAWB_UpdateFrameBuffer( 3617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong FrameStream *stream, 3717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong VO_MEM_OPERATOR *pMemOP 3817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong ) 3917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong{ 4017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong int len; 4117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong len = MIN(Frame_Maxsize - stream->frame_storelen, stream->set_len); 4217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong pMemOP->Copy(VO_INDEX_ENC_AMRWB, stream->frame_ptr_bk + stream->frame_storelen , stream->set_ptr, len); 4317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->set_len -= len; 4417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->set_ptr += len; 4517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->framebuffer_len = stream->frame_storelen + len; 4617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->frame_ptr = stream->frame_ptr_bk; 4717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->used_len += len; 4817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong} 4917299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 5017299ab50ceb70d904e610e3b2d7fb2361a11e03James Dongvoid voAWB_FlushFrameBuffer(FrameStream *stream) 5117299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong{ 5217299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->set_ptr = NULL; 5317299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->frame_ptr_bk = stream->frame_ptr; 5417299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->set_len = 0; 5517299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->framebuffer_len = 0; 5617299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong stream->frame_storelen = 0; 5717299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong} 5817299ab50ceb70d904e610e3b2d7fb2361a11e03James Dong 59