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 M4MP4W_Writer.h 207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Core MP4 writer interface 217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This file declares the MP4 writer interface functions. 227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * The MP4 writer specific types are defined in file M4MP4W_Types.h 237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef M4MP4W_WRITER_H 267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4MP4W_WRITER_H 277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" { 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "NXPSW_CompilerSwitches.h" 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef _M4MP4W_USE_CST_MEMORY_WRITER 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/* includes */ 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Types.h" 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Error.h" 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileWriter.h" 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileReader.h" 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4SYS_AccessUnit.h" 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4MP4W_Types.h" 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * MP4W Errors & Warnings definition 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4WAR_MP4W_OVERSIZE M4OSA_ERR_CREATE(M4_WAR, M4MP4_WRITER ,0x000001) 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4WAR_MP4W_NOT_EVALUABLE M4OSA_ERR_CREATE(M4_WAR, M4MP4_WRITER ,0x000002) 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Get MP4W version 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param major (OUT) Pointer to the 'major' version number. 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param minor (OUT) Pointer to the 'minor' version number. 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param revision (OUT) Pointer to the 'revision' number. 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_getVersion(M4OSA_UInt8* major, 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8* minor, 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt8* revision); 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Initiation of the MP4 file creation 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param contextPtr (OUT) Pointer to the MP4 writer context to create. 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param outputFileDescriptor (IN) Descriptor of the output file to open. 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param fileWriterFunction (IN) Pointer to structure containing the set of 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * OSAL file write functions. 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param tempFileDescriptor (IN) Descriptor of the temporary file to open. 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param fileReaderFunction (IN) Pointer to structure containing the set of 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * OSAL file read functions. 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_ALLOC: Memory allocation failed 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_openWrite( M4OSA_Context* contextPtr, 827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void* outputFileDescriptor, 837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileWriterPointer* fileWriterFunction, 847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void* tempFileDescriptor, 857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileReadPointer* fileReaderFunction ); 867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Add a new track 907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param streamDescPtr (IN) Pointer to the structure containing the 927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi parameters for the new track. 937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_ALLOC: Memory allocation failed 967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_STATE: Invalid state 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_CONTEXT: An audio (resp.video) stream has already been added 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * to this context while attempting to add another one, 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * which is forbidden. 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_addStream( M4OSA_Context context, 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamDescription* streamDescPtr); 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Signal to the core MP4 writer that there is no more tracks to add 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_ALLOC: Memory allocation failed 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_STATE: Invalid state 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_CONTEXT: Audio size estimation is required but not two streams 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * have been added. 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_startWriting( M4OSA_Context context); 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Asks the core MP4 writer to initiate the access unit creation in 1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * the streamID track 1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param streamID (IN) Stream ID of the track. 1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param auPtr (IN/OUT) Access unit. 1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_STREAM_ID:Unknown stream ID 1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_ALLOC: Memory allocation failed 1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_STATE: Invalid state 1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_startAU( M4OSA_Context context, 1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamID streamID, 1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_AccessUnit* auPtr); 1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Ask the core MP4 writer to write the access unit in the streamID track 1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note If M4MP4W_WAR_OVERSIZE is returned, M4MP4W_startAU must not be called anymore, 1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * but directly M4MP4W_closeWrite(). 1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param streamID (IN) Stream ID of the track. 1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param auPtr (IN/OUT) Access unit. 1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_STREAM_ID: Unknown stream ID 1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_ALLOC: Memory allocation failed 1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_STATE: Invalid state 1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4WAR_MP4W_NOT_EVALUABLE: It is not possible to evaluate audio size if audio 1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * samples don't have a constant size. 1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4WAR_MP4W_OVERSIZE: Max file size was reached 1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_processAU( M4OSA_Context context, 1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamID streamID, 1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_AccessUnit* auPtr); 1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Close the MP4 file 1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note In previous versions of the MP4 writer, the M4MP4W_freeContext method 1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * was in the interface, which is not the case anymore. 1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * The context is now always deallocated in the M4MP4W_closeWrite function. 1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_closeWrite( M4OSA_Context context); 1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Ask the core MP4 writer to return the value associated with the optionID 1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN) MP4 writer context. 1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param option (IN) Option ID. 1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param valuePtr (OUT) Pointer to the option value. 1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_NOT_IMPLEMENTED: Not implemented in the current version 1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_OPTION_ID: Unknown optionID 1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_STREAM_ID: Bad stream ID in the option value 1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_getOption( M4OSA_Context context, 1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_OptionID option, 1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DataOption *valuePtr); 1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Ask the core MP4 writer to set the value associated with the optionID. 1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param option (IN) Option ID. 1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param value (IN) Option value. 1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_NOT_IMPLEMENTED: Not implemented in the current version 1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_OPTION_ID: Unknown optionID 1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_STREAM_ID: Bad stream ID in the option value 2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_ALLOC: A memory allocation failed 2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_setOption( M4OSA_Context context, 2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_OptionID option, 2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DataOption value); 2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Ask the core MP4 writer to return its state. 2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note By selecting a specific streamID (not null), the caller can obtain 2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * the state of a specific stream. By using 0 as streamID the returned 2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * state is not stream specific. 2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN) Pointer to the state enumeration. 2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) streamID of the stream to retrieve the 2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * micro-state (0 for global state). 2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_BAD_STREAM_ID: Unknown stream ID 2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null or incorrect 2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_getState( M4OSA_Context context, 2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4MP4W_State* statePtr, 2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamID streamID); 2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Get the currently expected file size 2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @param context (IN/OUT) MP4 writer context. 2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4NO_ERROR: No error 2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @return M4ERR_PARAMETER: At least one parameter is null 2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi */ 2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray KundargiM4OSA_ERR M4MP4W_getCurrentFileSize( M4OSA_Context context, 2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32* currentFileSize); 2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* _M4MP4W_USE_CST_MEMORY_WRITER */ 2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /*M4MP4W_WRITER_H*/ 2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 246