diff options
Diffstat (limited to 'libvideoeditor/vss/3gpwriter/inc/M4MP4W_Types.h')
-rwxr-xr-x | libvideoeditor/vss/3gpwriter/inc/M4MP4W_Types.h | 329 |
1 files changed, 0 insertions, 329 deletions
diff --git a/libvideoeditor/vss/3gpwriter/inc/M4MP4W_Types.h b/libvideoeditor/vss/3gpwriter/inc/M4MP4W_Types.h deleted file mode 100755 index 5f9d16b..0000000 --- a/libvideoeditor/vss/3gpwriter/inc/M4MP4W_Types.h +++ /dev/null @@ -1,329 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - ****************************************************************************** - * @file M4MP4W_Types.h - * @brief Definition of types for the core MP4 writer - ****************************************************************************** - */ - -#ifndef M4MP4W_TYPES_H -#define M4MP4W_TYPES_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#include "NXPSW_CompilerSwitches.h" - -#ifndef _M4MP4W_USE_CST_MEMORY_WRITER - -/* includes */ -#include "M4OSA_Types.h" -#include "M4OSA_FileWriter.h" -#include "M4OSA_FileReader.h" -#include "M4SYS_Stream.h" - -/** - ****************************************************************************** - * structure M4MP4C_FtypBox - * @brief Information to build the 'ftyp' atom - ****************************************************************************** - */ -#define M4MPAC_FTYP_TAG 0x66747970 /* 'ftyp' */ -#define M4MPAC_MAX_COMPATIBLE_BRANDS 10 -typedef struct -{ - /* All brand fields are actually char[4] stored in big-endian integer format */ - - M4OSA_UInt32 major_brand; /* generally '3gp4' */ - M4OSA_UInt32 minor_version; /* generally '0000' or 'x.x ' */ - M4OSA_UInt32 nbCompatibleBrands; /* number of compatible brands */ - M4OSA_UInt32 compatible_brands[M4MPAC_MAX_COMPATIBLE_BRANDS]; /* array of max compatible - brands */ -} M4MP4C_FtypBox; - - -/** - ****************************************************************************** - * structure M4MP4W_memAddr - * @brief Buffer structure for the MP4 writer - ****************************************************************************** - */ -typedef struct -{ - M4OSA_UInt32 size; - M4OSA_MemAddr32 addr; -} M4MP4W_memAddr; - -/** - ****************************************************************************** - * Time type for the core MP4 writer - ****************************************************************************** - */ -typedef M4OSA_UInt32 M4MP4W_Time32; - -/** - ****************************************************************************** - * enumeration M4MP4W_State - * @brief This enum defines the core MP4 writer states - * @note These states are used internaly, but can be retrieved from outside - * the writer. - ****************************************************************************** - */ -typedef enum -{ - M4MP4W_opened = 0x100, - M4MP4W_ready = 0x200, - M4MP4W_writing = 0x300, - M4MP4W_writing_startAU = 0x301, - M4MP4W_closed = 0x400 -} M4MP4W_State; - -/** - ****************************************************************************** - * enumeration M4MP4W_OptionID - * @brief This enum defines the core MP4 writer options - * @note These options give parameters for the core MP4 writer - ****************************************************************************** - */ -typedef enum -{ - M4MP4W_maxAUperChunk = 0xC101, - M4MP4W_maxChunkSize = 0xC102, - M4MP4W_maxChunkInter = 0xC103, - M4MP4W_preWriteCallBack = 0xC104, - M4MP4W_postWriteCallBack = 0xC105, - M4MP4W_maxAUsize = 0xC106, - M4MP4W_IOD = 0xC111, - M4MP4W_ESD = 0xC112, - M4MP4W_SDP = 0xC113, - M4MP4W_trackSize = 0xC114, - M4MP4W_MOOVfirst = 0xC121, - M4MP4W_V2_MOOF = 0xC131, - M4MP4W_V2_tblCompres = 0xC132, - /*warning: unspecified options:*/ - M4MP4W_maxFileSize = 0xC152, - M4MP4W_CamcoderVersion = 0xC153, /*000 to 999 !*/ - M4MP4W_estimateAudioSize = 0xC154, /*audio AUs are processed after the video, */ - /*this option MUST NOT be set if non constant audio - frame size (e.g. if SID)*/ - M4MP4W_embeddedString = 0xC155, - M4MP4W_integrationTag = 0xC156, - M4MP4W_maxFileDuration = 0xC157, - M4MP4W_setFtypBox = 0xC158, - M4MP4W_DSI = 0xC159, - /* H.264 trimming */ - M4MP4W_MUL_PPS_SPS = 0xC160, - /* H.264 trimming */ -} M4MP4W_OptionID; - -/** - ****************************************************************************** - * Audio & video stream IDs - ****************************************************************************** - */ -#define AudioStreamID 1 -#define VideoStreamID 2 - -/** - ****************************************************************************** - * Default parameters values, that can be modified by M4MP4W_setOption - ****************************************************************************** - */ -#define M4MP4W_DefaultWidth 320 -#define M4MP4W_DefaultHeight 240 -#define M4MP4W_DefaultMaxAuSize 4096 /*bytes*/ -#define M4MP4W_DefaultMaxChunkSize 100000 /*bytes*/ -#define M4MP4W_DefaultInterleaveDur 0 /*bytes*/ - - -/** - ****************************************************************************** - * structure M4MP4W_StreamIDsize - * @brief Video plane size - ****************************************************************************** - */ -typedef struct -{ - M4SYS_StreamID streamID; - M4OSA_UInt16 height; - M4OSA_UInt16 width; -} M4MP4W_StreamIDsize; - -/** - ****************************************************************************** - * structure M4MP4W_TrackData - * @brief Internal core MP4 writer track structure - ****************************************************************************** - */ -typedef struct -{ - M4SYS_StreamType trackType; - M4OSA_UInt32 timescale; /* T (video=1000), (AMR8=8000), (AMR16=16000)*/ - M4OSA_UInt32 sampleSize; /* S (video=0)*/ - M4OSA_UInt32 sttsTableEntryNb; /* J (audio=1)*/ - M4MP4W_Time32 lastCTS; /* CTS of the previous AU, - init to 0.Gives duration at the end.*/ - M4OSA_UInt32 sampleNb; /* K (audio=F)*/ -} M4MP4W_TrackData; - -/** - ****************************************************************************** - * structure M4MP4W_AudioTrackData - * @brief Internal core MP4 writer audio specific structure - ****************************************************************************** - */ -typedef struct -{ - M4MP4W_State microState; - M4MP4W_TrackData CommonData; - M4OSA_UChar** Chunk; - M4OSA_UInt32* chunkSizeTable; -#ifndef _M4MP4W_MOOV_FIRST - M4OSA_UInt32* chunkOffsetTable; -#endif /*_M4MP4W_MOOV_FIRST*/ - M4OSA_UInt32* chunkSampleNbTable; - M4OSA_UInt32* chunkTimeMsTable; - M4OSA_UInt32 currentChunk; /* Init to 0*/ - M4OSA_UInt32 currentPos; /* Init to 0 */ -#ifdef _M4MP4W_OPTIMIZE_FOR_PHONE - M4OSA_UInt32 currentStsc; /* Init to 0 */ -#endif - M4MP4W_Time32 sampleDuration; /* Check (AMR8=160), (AMR16=320)*/ - M4OSA_UInt32 MaxChunkSize; /* Init to M4MP4W_Mp4FileData.MaxChunkSize*/ - M4OSA_UInt32 MaxAUSize; /* Init to M4MP4W_Mp4FileData.MaxAUSize*/ - M4OSA_UInt32 LastAllocatedChunk; - /* previously, audio au size was supposed constant, - * which is actually not the case if silences (sid).*/ - /* at first audio au, sampleSize is set. It is later reset to 0 if non constant size.*/ - /* So sampleSize should be tested to know weither or not there is a TABLE_STSZ. */ - M4OSA_UInt32* TABLE_STSZ; /* table size is 4K*/ - M4OSA_UInt32 nbOfAllocatedStszBlocks; - M4OSA_UInt32* TABLE_STTS; - M4OSA_UInt32 nbOfAllocatedSttsBlocks; - M4OSA_UInt32 maxBitrate; /*not used in amr case*/ - M4OSA_UInt32 avgBitrate; /*not used in amr case*/ - M4OSA_UChar* DSI; /* Decoder Specific Info: May be M4OSA_NULL - (defaulted) for AMR */ - M4OSA_UInt8 dsiSize; /* DSI size, always 9 bytes for AMR */ -} M4MP4W_AudioTrackData; - - -/** - ****************************************************************************** - * structure M4MP4W_VideoTrackData - * @brief Internal core MP4 writer video specific structure - ****************************************************************************** - */ -typedef struct -{ - M4MP4W_State microState; - M4MP4W_TrackData CommonData; - M4OSA_UChar** Chunk; - M4OSA_UInt32* chunkSizeTable; -#ifndef _M4MP4W_MOOV_FIRST - M4OSA_UInt32* chunkOffsetTable; -#endif /*_M4MP4W_MOOV_FIRST*/ - M4OSA_UInt32* chunkSampleNbTable; - M4MP4W_Time32* chunkTimeMsTable; - M4OSA_UInt32 currentChunk; /* Init to 0*/ - M4OSA_UInt32 currentPos ; /* Init to 0*/ -#ifdef _M4MP4W_OPTIMIZE_FOR_PHONE - M4OSA_UInt32 currentStsc; /* Init to 0*/ -#endif - M4OSA_UInt32 stssTableEntryNb ; /* N*/ - M4OSA_UInt16 width; /* X*/ - M4OSA_UInt16 height; /* Y*/ - M4OSA_UInt32* TABLE_STTS; /* table size is J*/ - M4OSA_UInt32 nbOfAllocatedSttsBlocks; -#ifdef _M4MP4W_OPTIMIZE_FOR_PHONE - M4OSA_UInt16* TABLE_STSZ; /* table size is 2K*/ -#else - M4OSA_UInt32* TABLE_STSZ; /* table size is 4K*/ -#endif - M4OSA_UInt32 nbOfAllocatedStszBlocks; - M4OSA_UInt32* TABLE_STSS; /* table size is N*/ - M4OSA_UInt32 nbOfAllocatedStssBlocks; -#ifdef _M4MP4W_OPTIMIZE_FOR_PHONE - M4OSA_UInt32 MaxAUperChunk; /*Init to 0, i.e. not used*/ -#endif - M4OSA_UInt32 MaxChunkSize; /*Init to M4MP4W_Mp4FileData.MaxChunkSize*/ - M4OSA_UInt32 MaxAUSize; /*Init to M4MP4W_Mp4FileData.MaxAUSize*/ - M4OSA_UInt32 LastAllocatedChunk; - M4OSA_UInt32 maxBitrate; - M4OSA_UInt32 avgBitrate; - M4OSA_UChar* DSI; /* Decoder Specific Info: May be M4OSA_NULL - (defaulted) for H263*/ - M4OSA_UInt8 dsiSize; /* DSI size, always 7 bytes for H263 */ -} M4MP4W_VideoTrackData; - -/** - ****************************************************************************** - * structure M4MP4W_Mp4FileData - * @brief Internal core MP4 writer private context structure - ****************************************************************************** - */ -typedef struct -{ - M4MP4W_State state; - M4OSA_Char* url; - M4OSA_UInt32 duration; /* D in ms, max duration of audio&video*/ - M4OSA_UInt32 filesize; /* actual filesize in bytes*/ - M4MP4W_AudioTrackData* audioTrackPtr; - M4OSA_Bool hasAudio; - M4MP4W_VideoTrackData* videoTrackPtr; - M4OSA_Bool hasVideo; - M4OSA_UInt32 MaxChunkSize; /* Init to 100000*/ - M4OSA_UInt32 MaxAUSize; /* Init to 4096*/ - M4OSA_UInt32 MaxFileSize; /* Init to 0, i.e. not used*/ - M4MP4W_Time32 InterleaveDur; /* Init to 0, i.e. not used, ms*/ - /* M4MP4W_WriteCallBack PreWriteCallBack;*/ /*Init to M4OSA_NULL*/ - /* M4MP4W_WriteCallBack PostWriteCallBack;*/ /*Init to M4OSA_NULL*/ - M4OSA_FileWriterPointer* fileWriterFunctions; - M4OSA_FileReadPointer* fileReaderFunctions; - M4OSA_UInt32 camcoderVersion; - M4OSA_Bool estimateAudioSize; /* default is false*/ - M4OSA_UInt32 audioMsChunkDur; /* in ms, set only if estimateAudioSize - is true*/ - M4OSA_UInt32 audioMsStopTime; /* time to stop audio, set only if - estimateAudioSize is true*/ - M4OSA_Context fileWriterContext; -#ifndef _M4MP4W_MOOV_FIRST - M4OSA_UInt32 absoluteCurrentPos; /* new field for offset update*/ -#endif /*_M4MP4W_MOOV_FIRST*/ - M4OSA_UChar* embeddedString; /* 16 bytes string, default value - writen if NULL*/ - M4OSA_UChar* integrationTag; /* 60 bytes string, memset to 0 if NULL */ - M4OSA_UInt32 MaxFileDuration; /* Init to 0, i.e. not used*/ - M4MP4C_FtypBox ftyp; /* ftyp atom, if not defined set major_brand - = 0, will use default box */ -#ifdef _M4MP4W_RESERVED_MOOV_DISK_SPACE - M4OSA_Char* safetyFileUrl; - M4OSA_Bool cleanSafetyFile; -#endif /* _M4MP4W_RESERVED_MOOV_DISK_SPACE */ - M4OSA_Bool bMULPPSSPS; -} M4MP4W_Mp4FileData; - -#endif /* _M4MP4W_USE_CST_MEMORY_WRITER */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /*M4MP4W_TYPES_H*/ - |