1e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
2e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/*
3e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Copyright 2003-2010, VisualOn, Inc.
4e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
5e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Licensed under the Apache License, Version 2.0 (the "License");
6e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** you may not use this file except in compliance with the License.
7e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** You may obtain a copy of the License at
8e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
9e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **     http://www.apache.org/licenses/LICENSE-2.0
10e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard **
11e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** Unless required by applicable law or agreed to in writing, software
12e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** distributed under the License is distributed on an "AS IS" BASIS,
13e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** See the License for the specific language governing permissions and
15e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard ** limitations under the License.
16e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard */
17e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
18e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
19e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard/***********************************************************************
205d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco NelissenFile:       stream.h
21e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
22e2e838afcf03e603a41a0455846eaf9614537c16Mans RullgardContains:       VOME API Buffer Operator Implement Header
23e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
24e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard************************************************************************/
25e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#ifndef __STREAM_H__
26e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define __STREAM_H__
27e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
28e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#include "voMem.h"
29b676a05348e4c516fa8b57e33b10548e6142c3f8Mans Rullgard#define Frame_Maxsize  1024 * 2  //Work Buffer 10K
30e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#define Frame_MaxByte  640        //AMR_WB Encoder one frame 320 samples = 640 Bytes
315d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen#define MIN(a,b)     ((a) < (b)? (a) : (b))
32e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
33e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardtypedef struct{
345d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen    unsigned char *set_ptr;
355d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen    unsigned char *frame_ptr;
365d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen    unsigned char *frame_ptr_bk;
375d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen    int  set_len;
385d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen    int  framebuffer_len;
395d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen    int  frame_storelen;
405d5c3a132bb446ac78a37dfaac24a46cacf0dd73Marco Nelissen    int  used_len;
41e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard}FrameStream;
42e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
43e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardvoid voAWB_UpdateFrameBuffer(FrameStream *stream, VO_MEM_OPERATOR *pMemOP);
44e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardvoid voAWB_InitFrameBuffer(FrameStream *stream);
45e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgardvoid voAWB_FlushFrameBuffer(FrameStream *stream);
46e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard#endif //__STREAM_H__
47e2e838afcf03e603a41a0455846eaf9614537c16Mans Rullgard
48