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 * @file M4WRITER_common.h 197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief VES writers shell interface. 207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @note This file defines the types internally used by the VES to abstract writers 217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifndef __M4WRITER_COMMON_H__ 247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define __M4WRITER_COMMON_H__ 257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargiextern "C" { 287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_Types.h" 317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileWriter.h" /* for M4OSA_FileWriterPointer */ 327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_FileReader.h" /* for M4OSA_FileWriterPointer */ 337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_OptionID.h" /* for M4OSA_OPTION_ID_CREATE() */ 347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4OSA_CoreID.h" /* for M4WRITER_COMMON */ 357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4SYS_Stream.h" /* for M4SYS_StreamID */ 377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#include "M4SYS_AccessUnit.h" /* for M4SYS_AccessUnit */ 387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * MP4W Errors & Warnings definition 427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#define M4WAR_WRITER_STOP_REQ M4OSA_ERR_CREATE(M4_WAR, M4WRITER_COMMON ,0x000001) 457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4WRITER_OutputFileType 497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This enum defines the avalaible output file format. 507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kUnknown=-1, 557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_k3GPP=0, /**< 3GPP compliant file */ 567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kAVI=1, /**< AVI file */ 577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kAMR=2, /**< AMR file */ 587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kNETWORK3GPP=3, /**< 3GPP via TCP */ 597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kPCM=4, /**< PCM file */ 607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kJPEG=5, /**< JPEG EXIF writer */ 617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kMP3=6, /**< MP3 writer */ 627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kType_NB /* number of writers, keep it as last enum entry */ 647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4WRITER_OutputFileType; 667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4WRITER_OptionID 707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This enums defines all avalaible options. All the reuturned values are in 717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4OSA_UInt32 type. 727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum { 757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kMaxAUSize = M4OSA_OPTION_ID_CREATE (M4_READ|M4_WRITE, M4WRITER_COMMON, 0x01), 767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kMaxChunckSize = M4OSA_OPTION_ID_CREATE (M4_READ|M4_WRITE, M4WRITER_COMMON, 0x02), 777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kFileSize = M4OSA_OPTION_ID_CREATE (M4_READ , \ 787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x03), /**< File size if the process was ended when we call the method */ 797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kFileSizeAudioEstimated= M4OSA_OPTION_ID_CREATE (M4_READ ,\ 807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x04), /**< File size if the process was ended when we call the 817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi method, estimated size for audio */ 827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kEmbeddedString = M4OSA_OPTION_ID_CREATE (M4_WRITE ,\ 837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x05), /**< String embedded at the end of the file(SW - VES) */ 847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kEmbeddedVersion = M4OSA_OPTION_ID_CREATE (M4_WRITE ,\ 857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x06), /**< Version embedded at the end of the file */ 867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kIntegrationTag = M4OSA_OPTION_ID_CREATE (M4_WRITE ,\ 877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x07), /**< String embedded at the end of the file (char[60] 887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi for integration purpose) */ 897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kMaxFileSize = M4OSA_OPTION_ID_CREATE (M4_WRITE , \ 907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x08), /**< Maximum file size limitation */ 917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kMaxFileDuration = M4OSA_OPTION_ID_CREATE (M4_WRITE ,\ 927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x09), /**< Maximum file duration limitation */ 937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kSetFtypBox = M4OSA_OPTION_ID_CREATE (M4_WRITE ,\ 947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x0A), /**< Set 'ftyp' atom */ 957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kMetaData = M4OSA_OPTION_ID_CREATE (M4_WRITE ,\ 967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x0B), /**< Additionnal information to set in the file */ 977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kDSI = M4OSA_OPTION_ID_CREATE (M4_WRITE , \ 987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x0C), /**< To set DSI of the file (Decoder specifc info) */ 997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kJpegReserveFPData = M4OSA_OPTION_ID_CREATE (M4_WRITE ,\ 1007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x0D), /**< Reserve some space in the file for JPEG fast 1017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi processing data */ 1027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kJpegSetFPData = M4OSA_OPTION_ID_CREATE (M4_WRITE , \ 1037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_COMMON, 0x0E), /**< Write Fast Processing Data in the file*/ 1047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* + CRLV6775 -H.264 trimming */ 1057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_kMUL_PPS_SPS = M4OSA_OPTION_ID_CREATE (M4_WRITE , M4WRITER_COMMON, 0x0F) 1067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi /* - CRLV6775 -H.264 trimming */ 1077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4WRITER_OptionID; 1087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4WRITER_Header 1137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the buffer where an header is put. 1147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 1177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_MemAddr8 pBuf; /**< Buffer for the header */ 1197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 Size; /**< Size of the data */ 1207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4WRITER_Header; 1217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4WRITER_StreamVideoInfos 1267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the specific video stream infos, extension to 1277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * M4SYS_StreamDescription. 1287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct { 1317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 height; /**< Frame height */ 1327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 width; /**< Frame Width */ 1337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Double fps; /**< Targetted framerate of the video */ 1347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_Header Header; /**< Sequence header of the video stream, 1357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi member set to NULL if no header present */ 1367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4WRITER_StreamVideoInfos; 1377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4WRITER_StreamAudioInfos 1427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines the specific audio stream infos, extension to 1437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamDescription. 1447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct { 1477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 nbSamplesPerSec; /**< Number of Samples per second */ 1487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt16 nbBitsPerSample; /**< Number of Bits in 1 sample */ 1497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt16 nbChannels; /**< Number of channels */ 1507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_Header Header; /**< Decoder Specific Info of the audiostream, 1517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi member set to NULL if no DSI present */ 1527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4WRITER_StreamAudioInfos; 1537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * enum M4WRITER_Orientation 1587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This enum defines the possible orientation of a frame as described 1597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * in the EXIF standard. 1607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1627c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef enum 1637c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1647c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationUnknown = 0, 1657c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationTopLeft, 1667c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationTopRight, 1677c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationBottomRight, 1687c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationBottomLeft, 1697c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationLeftTop, 1707c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationRightTop, 1717c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationRightBottom, 1727c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_OrientationLeftBottom 1737c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}M4WRITER_Orientation ; 1747c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1757c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 1767c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1777c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4WRITER_MetaData 1787c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief This structure defines all the meta data to store in the encoded file. 1797c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 1807c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 1817c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct 1827c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 1837c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char* Description ; 1847c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char* PhoneManufacturer ; 1857c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char* PhoneModel ; 1867c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char* Artist ; 1877c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char* Copyright ; 1887c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char* Software ; 1897c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Char* CreationDate; 1907c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_Orientation Orientation ; 1917c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1927c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 Width ; 1937c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 Height ; 1947c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 1957c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 ThumbnailWidth ; 1967c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 ThumbnailHeight ; 1977c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_Bool ThumbnailPresence ; 1987c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi}M4WRITER_MetaData; 1997c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2007c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2017c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef void* M4WRITER_Context; 2027c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2037c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4WRITER_openWrite) (M4WRITER_Context* hContext,\ 2047c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void* outputFileDescriptor,\ 2057c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileWriterPointer* pFileWriterPointer,\ 2067c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi void* tempFileDescriptor, \ 2077c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_FileReadPointer* pFileReaderPointer); 2087c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4WRITER_addStream) (M4WRITER_Context pContext,\ 2097c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_StreamDescription*streamDescription); 2107c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4WRITER_startWriting) (M4WRITER_Context pContext); 2117c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4WRITER_closeWrite) (M4WRITER_Context pContext); 2127c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4WRITER_setOption) (M4WRITER_Context pContext, \ 2137c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 optionID, \ 2147c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DataOption optionValue); 2157c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR (M4WRITER_getOption) (M4WRITER_Context pContext, \ 2167c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_UInt32 optionID, \ 2177c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4OSA_DataOption optionValue); 2187c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2197c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2207c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2217c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2227c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4WRITER_GlobalInterface 2237c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Defines all the functions required for a writer shell. 2247c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2257c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 2267c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct _M4WRITER_GlobalInterface 2277c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 2287c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_openWrite* pFctOpen; 2297c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_addStream* pFctAddStream; 2307c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_startWriting* pFctStartWriting; 2317c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_closeWrite* pFctCloseWrite; 2327c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_setOption* pFctSetOption; 2337c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_getOption* pFctGetOption; 2347c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4WRITER_GlobalInterface; 2357c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2367c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR M4WRITER_startAU(M4WRITER_Context pContext, M4SYS_StreamID streamID,\ 2377c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_AccessUnit* pAU); 2387c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef M4OSA_ERR M4WRITER_processAU(M4WRITER_Context pContext, M4SYS_StreamID streamID,\ 2397c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4SYS_AccessUnit* pAU); 2407c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2417c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi/** 2427c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2437c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * struct M4WRITER_DataInterface 2447c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi * @brief Defines all the functions required to write data with a writer shell. 2457c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi ****************************************************************************** 2467c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi*/ 2477c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargitypedef struct _M4WRITER_DataInterface 2487c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi{ 2497c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_startAU* pStartAU; 2507c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_processAU* pProcessAU; 2517c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2527c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi M4WRITER_Context pWriterContext; 2537c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2547c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} M4WRITER_DataInterface; 2557c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2567c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#ifdef __cplusplus 2577c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi} 2587c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /* __cplusplus */ 2597c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 2607c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi#endif /*__M4WRITER_COMMON_H__*/ 2617c9d8018755adf1857571125ba1b3598c96ea506Dharmaray Kundargi 262