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