17c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/*
27c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project
37c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
47c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License");
57c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * you may not use this file except in compliance with the License.
67c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * You may obtain a copy of the License at
77c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
87c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *      http://www.apache.org/licenses/LICENSE-2.0
97c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * Unless required by applicable law or agreed to in writing, software
117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS,
127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * See the License for the specific language governing permissions and
147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * limitations under the License.
157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */
167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @file        M4AMRR_CoreReader.h
207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief        Implementation of AMR parser
217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note        This file contains the API def. for AMR Parser.
227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef __M4AMR_COREREADER_H__
257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4AMR_COREREADER_H__
267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" {
297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif
307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Types.h"
327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileReader.h"
337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4SYS_Stream.h"
347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4SYS_AccessUnit.h"
357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Time.h"
367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4TOOL_VersionInfo.h"
377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * AMR reader Errors & Warnings definition
417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4ERR_AMR_INVALID_FRAME_TYPE    M4OSA_ERR_CREATE(M4_ERR,M4AMR_READER, 0x000001)
447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4ERR_AMR_NOT_COMPLIANT    M4OSA_ERR_CREATE(M4_ERR,M4AMR_READER, 0x000002)
457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enumeration    M4AMRR_State
497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief        This enum defines the AMR reader states
507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note        These states are used internaly, but can be retrieved from outside the reader.
517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum{
547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4AMRR_kOpening    = 0x0100,
557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4AMRR_kOpened    = 0x0101,
567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4AMRR_kReading = 0x0200,
577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4AMRR_kReading_nextAU = 0x0201,
587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi    M4AMRR_kClosed = 0x300
597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}M4AMRR_State;
607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*******************************************************************************
637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_openRead (M4OSA_Context* pContext, M4OSA_Void* pFileDescriptor,
647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*                               M4OSA_FileReaderPointer* pFileFunction);
657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    M4AMRR_OpenRead parses the meta data of the AMR and allocates data structure
667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @note        This function opens the file and creates a context for AMR  Parser.
677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*            - sets context to null if error occured.
687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pContext(OUT)        : AMR Reader context allocated in the function
697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pFileDesscriptor(IN): File descriptor of the input file
707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pFileFunction(IN)    : pointer to file function for file access
717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*
727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns    M4NO_ERROR        : There is no error
737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns    M4ERR_PARAMETER    : pContext and/or pFileDescriptor is NULL
747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns    M4ERR_ALLOC        : Memory allocation failed
757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns    M4ERR_FILE_NOT_FOUND : file cannot be found
767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns    M4AMRR_ERR_AMR_NOT_COMPLIANT : Tthe input is not a AMR file
777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns    M4OSA_FILE        : See OSAL file Spec. for details.
787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*******************************************************************************
797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_openRead (M4OSA_Context* pContext, M4OSA_Void* pFileDescriptor,
817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                            M4OSA_FileReadPointer* pFileFunction);
827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_getNextStream(M4OSA_Context Context, M4SYS_StreamDescription* pStreamDesc );
867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    Reads the next available stream in the file
877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @note        Get the stream description of the stream.
887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*            - This function assumes that there is only one stream in AMR file.
897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    Context(IN/OUT)    : AMR Reader context
907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pStreamDesc(OUT): Description of the next read stream
917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*
927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4NO_ERROR        : There is no error
937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_PARAMETER    : atleast one parament is NULL
947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_CONTEXT    :    The provided context is not valid
957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_ALLOC        : Memory allocation failed
967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_STATE        : this function cannot be called in this state.
977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4AMRR_WAR_NO_MORE_STREAM : There are no more streams in the file.
987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_getNextStream(M4OSA_Context Context, M4SYS_StreamDescription* pStreamDesc );
1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_startReading(M4OSA_Context Context, M4SYS_StreamID* pStreamIDs );
1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    Prepares the AMR reading of the specified stream Ids
1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @note        This function changes the state of the reader reading.
1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    Context(IN/OUT)    : AMR Reader context
1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pStreamIDs(IN)    : Array of stream Ids to be prepared.
1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*
1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4NO_ERROR        : There is no error
1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_PARAMETER    : atleast one parament is NULL
1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_CONTEXT    :    The provided context is not valid
1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_ALLOC        : Memory allocation failed
1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_STATE        : this function cannot be called in this state.
1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_STREAM_ID    : Atleast one of the stream Id. does not exist.
1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_startReading(M4OSA_Context Context, M4SYS_StreamID* pStreamIDs );
1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_nextAU(M4OSA_Context Context, M4SYS_StreamID StreamID, M4SYS_AccessUnit* pAu);
1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    Reads the access unit into the providing stream
1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @note        This function allocates the memory to dataAddress filed and copied the data.
1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*            -The Application should not free the dataAddress pointer.
1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    Context(IN/OUT)    : AMR Reader context
1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    StreamID(IN)    : Selects the stream
1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pAu(IN/OUT)        : Access Unit
1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*
1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns    M4NO_ERROR        : There is no error
1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_PARAMETER    : atleast one parament is NULL
1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_CONTEXT    :    The provided context is not valid
1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_ALLOC        : Memory allocation failed
1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_STATE        : this function cannot be called in this state.
1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_STREAM_ID    : Atleast one of the stream Id. does not exist.
1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4WAR_NO_DATA_YET    : there    is no enough data on the stream for new access unit
1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4WAR_END_OF_STREAM    : There are no more access unit in the stream
1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4AMRR_ERR_INVALID_FRAME_TYPE : current frame has no valid frame type.
1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_nextAU(M4OSA_Context Context, M4SYS_StreamID StreamID, M4SYS_AccessUnit* pAu);
1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_freeAU(M4OSA_Context Context, M4SYS_StreamID StreamID, M4SYS_AccessUnit* pAu);
1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    Notify the ARM Reader that application will no longer use "AU"
1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @note        This function frees the memory pointed by pAu->dataAddress pointer
1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*            -Changes the state of the reader back to reading.
1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    Context(IN/OUT)    : AMR Reader context
1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    StreamID(IN)    : Selects the stream
1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pAu(IN)            : Access Unit
1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*
1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4NO_ERROR        : There is no error
1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_PARAMETER    : atleast one parament is NULL
1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_CONTEXT    :    The provided context is not valid
1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_ALLOC        : Memory allocation failed
1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_STATE        : this function cannot be called in this state.
1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_STREAM_ID    : Atleast one of the stream Id. does not exist.
1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_freeAU(M4OSA_Context Context, M4SYS_StreamID StreamID, M4SYS_AccessUnit* pAu);
1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_seek(M4OSA_Context Context, M4SYS_StreamID* pStreamID, M4OSA_Time time,
1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*                        M4SYS_seekAccessMode    seekMode, M4OSA_Time* pObtainCTS);
1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    The function seeks the targeted time in the give stream by streamId.
1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @note        Each frame is of 20 ms duration,, builds the seek table and points
1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*            the file pointer to starting for the required AU.
1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    Context(IN/OUT)    : AMR Reader context
1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    StreamID(IN)    : Array of stream IDs.
1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    time(IN)        : targeted time
1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    seekMode(IN)    : Selects the seek mode
1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pObtainCTS(OUT)    : Returned time nearest to target.
1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*
1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4NO_ERROR        : There is no error
1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_PARAMETER    : atleast one parament is NULL
1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_CONTEXT    :    The provided context is not valid
1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_ALLOC        : Memory allocation failed
1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_STATE        : this function cannot be called in this state.
1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_STREAM_ID    : Atleast one of the stream Id. does not exist.
1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4WAR_INVALID_TIME    : time cannot be reached.
1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_seek(M4OSA_Context Context, M4SYS_StreamID* pStreamID, M4OSA_Time time,
1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi                         M4SYS_SeekAccessMode    seekMode, M4OSA_Time* pObtainCTS);
1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_closeRead(M4OSA_Context Context);
1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    AMR reader closes the file
1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    Context(IN?OUT)    : AMR Reader context
1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4NO_ERROR        : There is no error
1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_PARAMETER    : atleast one parament is NULL
1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_CONTEXT    :    The provided context is not valid
1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_ALLOC        : Memory allocation failed
1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_STATE        : this function cannot be called in this state.
1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_closeRead(M4OSA_Context Context);
2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* M4OSA_ERR M4AMRR_getState(M4OSA_Context Context, M4AMRR_State* pState, M4SYS_StreamID streamId);
2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @brief    Gets the current state of the AMR reader
2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    Context(IN/OUT)    : AMR Reader context
2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    pState(OUT)        : Core AMR reader state
2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @param    streamId(IN)    : Selects the stream 0 for all
2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*
2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4NO_ERROR            :    There is no error
2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_PARAMETER        :    atleast one parament is NULL
2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_CONTEXT    :    The provided context is not valid
2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi* @returns     M4ERR_BAD_STREAM_ID    :    Atleast one of the stream Id. does not exist.
2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi******************************************************************************
2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_getState(M4OSA_Context Context, M4AMRR_State* pState, M4SYS_StreamID streamId);
2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4AMRR_getVersion    (M4_VersionInfo *pVersion)
2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Gets the current version of the AMR reader
2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    version(OUT)    : the structure that stores the version numbers
2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @returns     M4NO_ERROR            :    There is no error
2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @returns     M4ERR_PARAMETER        :    version is NULL
2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_getVersion    (M4_VersionInfo *pVersion);
2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/**
2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_ERR M4AMRR_getmaxAUsize    (M4OSA_Context Context, M4OSA_UInt32 *pMaxAuSize)
2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief    Computes the maximum access unit size of a stream
2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    Context        (IN)  Context of the reader
2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param    pMaxAuSize    (OUT) Maximum Access Unit size in the stream
2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi *
2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4NO_ERROR: No error
2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return    M4ERR_PARAMETER: One of the input pointer is M4OSA_NULL (Debug only)
2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ******************************************************************************
2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/
2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4AMRR_getmaxAUsize(M4OSA_Context Context, M4OSA_UInt32 *pMaxAuSize);
2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus
2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}
2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus*/
2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /*__M4AMR_COREREADER_H__*/
2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi
252