os/mm/mmplugins/lib3gp/impl/inc/mp4compose.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/mm/mmplugins/lib3gp/impl/inc/mp4compose.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,154 @@
     1.4 +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
     1.5 +// All rights reserved.
     1.6 +// This component and the accompanying materials are made available
     1.7 +// under the terms of "Eclipse Public License v1.0"
     1.8 +// which accompanies this distribution, and is available
     1.9 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.10 +//
    1.11 +// Initial Contributors:
    1.12 +// Nokia Corporation - initial contribution.
    1.13 +//
    1.14 +// Contributors:
    1.15 +//
    1.16 +// Description:
    1.17 +//
    1.18 +
    1.19 +#ifndef _MP4COMPOSE_H
    1.20 +#define _MP4COMPOSE_H
    1.21 +
    1.22 +
    1.23 +#include <3gplibrary/mp4config.h>
    1.24 +#include "mp4atom.h"
    1.25 +
    1.26 +
    1.27 +#define MVHD_TIMESCALE  10000
    1.28 +
    1.29 +#define METADATA_COPY_BUFFERSIZE  8192   /* Must be divisible by 4 */
    1.30 +
    1.31 +
    1.32 +typedef struct trakSize
    1.33 +{
    1.34 +  mp4_u32    trak;
    1.35 +  mp4_u32    tkhd;
    1.36 +  mp4_u32    mdia;
    1.37 +  mp4_u32    mdhd;
    1.38 +  mp4_u32    hdlr;
    1.39 +  mp4_u32    minf;
    1.40 +  mp4_u32    vmhd;
    1.41 +  mp4_u32    smhd;
    1.42 +  mp4_u32    dinf;
    1.43 +  mp4_u32    dref;
    1.44 +  mp4_u32    stbl;
    1.45 +  mp4_u32    stsd;
    1.46 +  mp4_u32    stts;
    1.47 +  mp4_u32    stsc;
    1.48 +  mp4_u32    stsz;
    1.49 +  mp4_u32    stco;
    1.50 +  mp4_u32    stss;
    1.51 +  mp4_u32    mp4v;
    1.52 +  mp4_u32    mp4a;
    1.53 +  mp4_u32    esds;
    1.54 +  mp4_u32    s263;
    1.55 +  mp4_u32    samr;
    1.56 +  mp4_u32    sawb;
    1.57 +  mp4_u32    d263;
    1.58 +  mp4_u32    damr;
    1.59 +  mp4_u32	 avc1;
    1.60 +  mp4_u32	 avcc;
    1.61 +  mp4_u32	 btrt;
    1.62 +  mp4_u32	 m4ds;
    1.63 +  mp4_u32    sqcp;
    1.64 +  mp4_u32    dqcp;
    1.65 +  mp4_u32    udta;
    1.66 +  mp4_u32    sdtp;
    1.67 +  mp4_u32    avcp;
    1.68 +} trakSize;
    1.69 +
    1.70 +
    1.71 +
    1.72 +mp4_i32 updateVideoMetaData(MP4HandleImp handle, mp4_u32 size, mp4_u32 duration, mp4_bool keyframe);
    1.73 +mp4_i32 updateAudioMetaData(MP4HandleImp handle, mp4_u32 size, mp4_u32 duration);
    1.74 +mp4_i32 writeFTYPAndMDATToFile(MP4HandleImp handle);
    1.75 +mp4_i32 writeDataToFile(MP4HandleImp handle);
    1.76 +mp4_i32 updateDecodingTimeToSample(MP4HandleImp handle, sampleTable *st, mp4_u32 duration);
    1.77 +mp4_i32 updateSampleSize(MP4HandleImp handle, sampleTable *st, mp4_u32 size);
    1.78 +mp4_i32 updateSampleToChunk(sampleTable *st);
    1.79 +mp4_i32 updateChunkOffset(MP4HandleImp handle, sampleTable *st);
    1.80 +mp4_i32 updateSyncSample(MP4HandleImp handle, sampleTable *st);
    1.81 +mp4_i32 determineAudioTrakMetaDataSize(MP4HandleImp handle, sampleTable *st, trakSize *ts);
    1.82 +mp4_i32 determineVideoTrakMetaDataSize(MP4HandleImp handle, sampleTable *st, trakSize *ts);
    1.83 +mp4_i32 reUpdateAudioMetaData(sampleTable *st, mp4_u32 metaDataSize);
    1.84 +mp4_i32 reUpdateVideoMetaData(sampleTable *st, mp4_u32 metaDataSize);
    1.85 +mp4_i32 writeFTYP(MP4HandleImp handle);
    1.86 +mp4_i32 writeMOOV(MP4HandleImp handle, mp4_u32 moovSize, mp4_bool haveAudio, mp4_bool haveVideo, trakSize *audioTrackSize, trakSize *videoTrakSize);
    1.87 +mp4_i32 writeMVHD(MP4HandleImp handle);
    1.88 +mp4_i32 writeVideoTrak(MP4HandleImp handle, trakSize *ts);
    1.89 +mp4_i32 writeVideoTKHD(MP4HandleImp handle, trakSize *ts);
    1.90 +mp4_i32 writeVideoMDIA(MP4HandleImp handle, trakSize *ts);
    1.91 +mp4_i32 writeVideoMDHD(MP4HandleImp handle, trakSize *ts);
    1.92 +mp4_i32 writeVideoHDLR(MP4HandleImp handle, trakSize *ts);
    1.93 +mp4_i32 writeVideoMINF(MP4HandleImp handle, trakSize *ts);
    1.94 +mp4_i32 writeVMHD(MP4HandleImp handle, trakSize *ts);
    1.95 +mp4_i32 writeDINF(MP4HandleImp handle, trakSize *ts);
    1.96 +mp4_i32 writeDREF(MP4HandleImp handle, trakSize *ts);
    1.97 +mp4_i32 writeVideoSTBL(MP4HandleImp handle, trakSize *ts);
    1.98 +mp4_i32 writeVideoSTSD(MP4HandleImp handle, trakSize *ts);
    1.99 +mp4_i32 writeMP4V(MP4HandleImp handle, trakSize *ts);
   1.100 +mp4_i32 writeVideoESD(MP4HandleImp handle, trakSize *ts);
   1.101 +mp4_i32 writeS263(MP4HandleImp handle, trakSize *ts);
   1.102 +mp4_i32 writeD263(MP4HandleImp handle, trakSize *ts);
   1.103 +mp4_i32 writeVideoSTTS(MP4HandleImp handle, trakSize *ts);
   1.104 +mp4_i32 writeVideoSTTSLongClip(MP4HandleImp handle, trakSize *ts);
   1.105 +mp4_i32 writeVideoSTSC(MP4HandleImp handle, trakSize *ts);
   1.106 +mp4_i32 writeVideoSTSZ(MP4HandleImp handle, trakSize *ts);
   1.107 +mp4_i32 writeVideoSTSZLongClip(MP4HandleImp handle, trakSize *ts);
   1.108 +mp4_i32 writeVideoSTCO(MP4HandleImp handle, trakSize *ts);
   1.109 +mp4_i32 writeVideoCO64(MP4HandleImp handle, trakSize *ts);
   1.110 +mp4_i32 writeVideoSTCOLongClip(MP4HandleImp handle, trakSize *ts);
   1.111 +mp4_i32 writeVideoCO64LongClip(MP4HandleImp handle, trakSize *ts);
   1.112 +mp4_i32 writeVideoSTSS(MP4HandleImp handle, trakSize *ts);
   1.113 +mp4_i32 writeVideoSTSSLongClip(MP4HandleImp handle, trakSize *ts);
   1.114 +mp4_i32 writeAVC1(MP4HandleImp handle, trakSize *ts);
   1.115 +mp4_i32 writeAVCC(MP4HandleImp handle, trakSize *ts);
   1.116 +
   1.117 +mp4_i32 writeAudioTrak(MP4HandleImp handle, trakSize *ts);
   1.118 +mp4_i32 writeAudioTKHD(MP4HandleImp handle, trakSize *ts);
   1.119 +mp4_i32 writeAudioMDIA(MP4HandleImp handle, trakSize *ts);
   1.120 +mp4_i32 writeAudioMDHD(MP4HandleImp handle, trakSize *ts);
   1.121 +mp4_i32 writeAudioHDLR(MP4HandleImp handle, trakSize *ts);
   1.122 +mp4_i32 writeAudioMINF(MP4HandleImp handle, trakSize *ts);
   1.123 +mp4_i32 writeSMHD(MP4HandleImp handle, trakSize *ts);
   1.124 +mp4_i32 writeAudioSTBL(MP4HandleImp handle, trakSize *ts);
   1.125 +mp4_i32 writeAudioSTSD(MP4HandleImp handle, trakSize *ts);
   1.126 +mp4_i32 writeMP4A(MP4HandleImp handle, trakSize *ts);
   1.127 +mp4_i32 writeAudioESD(MP4HandleImp handle, trakSize *ts);
   1.128 +mp4_i32 writeSAMR(MP4HandleImp handle, trakSize *ts);
   1.129 +mp4_i32 writeSAWB(MP4HandleImp handle, trakSize *ts);
   1.130 +mp4_i32 writeDAMR(MP4HandleImp handle, trakSize *ts);
   1.131 +mp4_i32 writeAudioSTTS(MP4HandleImp handle, trakSize *ts);
   1.132 +mp4_i32 writeAudioSTTSLongClip(MP4HandleImp handle, trakSize *ts);
   1.133 +mp4_i32 writeAudioSTSC(MP4HandleImp handle, trakSize *ts);
   1.134 +mp4_i32 writeAudioSTSZ(MP4HandleImp handle, trakSize *ts);
   1.135 +mp4_i32 writeAudioSTSZLongClip(MP4HandleImp handle, trakSize *ts);
   1.136 +mp4_i32 writeAudioSTCO(MP4HandleImp handle, trakSize *ts);
   1.137 +mp4_i32 writeAudioCO64(MP4HandleImp handle, trakSize *ts);
   1.138 +mp4_i32 writeAudioSTCOLongClip(MP4HandleImp handle, trakSize *ts);
   1.139 +mp4_i32 writeAudioCO64LongClip(MP4HandleImp handle, trakSize *ts);
   1.140 +mp4_i32 writeSQCP(MP4HandleImp handle, trakSize *ts);
   1.141 +mp4_i32 writeDQCP(MP4HandleImp handle, trakSize *ts);
   1.142 +
   1.143 +mp4_i32 writeMediaData(MP4HandleImp handle);
   1.144 +
   1.145 +mp4_i32 insertu64(mp4_u8 *buf, mp4_u64 value);
   1.146 +mp4_i32 insertu32(mp4_u8 *buf, mp4_u32 value);
   1.147 +mp4_i32 insertu16(mp4_u8 *buf, mp4_u16 value);
   1.148 +
   1.149 +mp4_i32 writeMetaDataTmp(MP4HandleImp handle);
   1.150 +mp4_i32 calculateES_DescriptorSize(MP4HandleImp handle, mp4_u32 type);
   1.151 +mp4_i32 writeUDTA(MP4HandleImp handle, userDataAtom *udta);
   1.152 +mp4_i32 updateVideoDependencyMetaData(MP4HandleImp handle, mp4_u8 aDependsOn, mp4_u8 aIsDependentOn, mp4_u8 aHasRedundancy);
   1.153 +mp4_i32 writeVideoSDTP(MP4HandleImp handle, trakSize *ts);
   1.154 +mp4_i32 writeVideoSDTPLongClip(MP4HandleImp handle, trakSize *ts);
   1.155 +mp4_i32 writeAVCP(MP4HandleImp handle, trakSize *ts);
   1.156 +#endif
   1.157 +// End of File