mmplugins/lib3gp/impl/inc/mp4compose.h
changeset 0 40261b775718
equal deleted inserted replaced
-1:000000000000 0:40261b775718
       
     1 // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 //
       
    15 
       
    16 #ifndef _MP4COMPOSE_H
       
    17 #define _MP4COMPOSE_H
       
    18 
       
    19 
       
    20 #include <3gplibrary/mp4config.h>
       
    21 #include "mp4atom.h"
       
    22 
       
    23 
       
    24 #define MVHD_TIMESCALE  10000
       
    25 
       
    26 #define METADATA_COPY_BUFFERSIZE  8192   /* Must be divisible by 4 */
       
    27 
       
    28 
       
    29 typedef struct trakSize
       
    30 {
       
    31   mp4_u32    trak;
       
    32   mp4_u32    tkhd;
       
    33   mp4_u32    mdia;
       
    34   mp4_u32    mdhd;
       
    35   mp4_u32    hdlr;
       
    36   mp4_u32    minf;
       
    37   mp4_u32    vmhd;
       
    38   mp4_u32    smhd;
       
    39   mp4_u32    dinf;
       
    40   mp4_u32    dref;
       
    41   mp4_u32    stbl;
       
    42   mp4_u32    stsd;
       
    43   mp4_u32    stts;
       
    44   mp4_u32    stsc;
       
    45   mp4_u32    stsz;
       
    46   mp4_u32    stco;
       
    47   mp4_u32    stss;
       
    48   mp4_u32    mp4v;
       
    49   mp4_u32    mp4a;
       
    50   mp4_u32    esds;
       
    51   mp4_u32    s263;
       
    52   mp4_u32    samr;
       
    53   mp4_u32    sawb;
       
    54   mp4_u32    d263;
       
    55   mp4_u32    damr;
       
    56   mp4_u32	 avc1;
       
    57   mp4_u32	 avcc;
       
    58   mp4_u32	 btrt;
       
    59   mp4_u32	 m4ds;
       
    60   mp4_u32    sqcp;
       
    61   mp4_u32    dqcp;
       
    62   mp4_u32    udta;
       
    63   mp4_u32    sdtp;
       
    64   mp4_u32    avcp;
       
    65 } trakSize;
       
    66 
       
    67 
       
    68 
       
    69 mp4_i32 updateVideoMetaData(MP4HandleImp handle, mp4_u32 size, mp4_u32 duration, mp4_bool keyframe);
       
    70 mp4_i32 updateAudioMetaData(MP4HandleImp handle, mp4_u32 size, mp4_u32 duration);
       
    71 mp4_i32 writeFTYPAndMDATToFile(MP4HandleImp handle);
       
    72 mp4_i32 writeDataToFile(MP4HandleImp handle);
       
    73 mp4_i32 updateDecodingTimeToSample(MP4HandleImp handle, sampleTable *st, mp4_u32 duration);
       
    74 mp4_i32 updateSampleSize(MP4HandleImp handle, sampleTable *st, mp4_u32 size);
       
    75 mp4_i32 updateSampleToChunk(sampleTable *st);
       
    76 mp4_i32 updateChunkOffset(MP4HandleImp handle, sampleTable *st);
       
    77 mp4_i32 updateSyncSample(MP4HandleImp handle, sampleTable *st);
       
    78 mp4_i32 determineAudioTrakMetaDataSize(MP4HandleImp handle, sampleTable *st, trakSize *ts);
       
    79 mp4_i32 determineVideoTrakMetaDataSize(MP4HandleImp handle, sampleTable *st, trakSize *ts);
       
    80 mp4_i32 reUpdateAudioMetaData(sampleTable *st, mp4_u32 metaDataSize);
       
    81 mp4_i32 reUpdateVideoMetaData(sampleTable *st, mp4_u32 metaDataSize);
       
    82 mp4_i32 writeFTYP(MP4HandleImp handle);
       
    83 mp4_i32 writeMOOV(MP4HandleImp handle, mp4_u32 moovSize, mp4_bool haveAudio, mp4_bool haveVideo, trakSize *audioTrackSize, trakSize *videoTrakSize);
       
    84 mp4_i32 writeMVHD(MP4HandleImp handle);
       
    85 mp4_i32 writeVideoTrak(MP4HandleImp handle, trakSize *ts);
       
    86 mp4_i32 writeVideoTKHD(MP4HandleImp handle, trakSize *ts);
       
    87 mp4_i32 writeVideoMDIA(MP4HandleImp handle, trakSize *ts);
       
    88 mp4_i32 writeVideoMDHD(MP4HandleImp handle, trakSize *ts);
       
    89 mp4_i32 writeVideoHDLR(MP4HandleImp handle, trakSize *ts);
       
    90 mp4_i32 writeVideoMINF(MP4HandleImp handle, trakSize *ts);
       
    91 mp4_i32 writeVMHD(MP4HandleImp handle, trakSize *ts);
       
    92 mp4_i32 writeDINF(MP4HandleImp handle, trakSize *ts);
       
    93 mp4_i32 writeDREF(MP4HandleImp handle, trakSize *ts);
       
    94 mp4_i32 writeVideoSTBL(MP4HandleImp handle, trakSize *ts);
       
    95 mp4_i32 writeVideoSTSD(MP4HandleImp handle, trakSize *ts);
       
    96 mp4_i32 writeMP4V(MP4HandleImp handle, trakSize *ts);
       
    97 mp4_i32 writeVideoESD(MP4HandleImp handle, trakSize *ts);
       
    98 mp4_i32 writeS263(MP4HandleImp handle, trakSize *ts);
       
    99 mp4_i32 writeD263(MP4HandleImp handle, trakSize *ts);
       
   100 mp4_i32 writeVideoSTTS(MP4HandleImp handle, trakSize *ts);
       
   101 mp4_i32 writeVideoSTTSLongClip(MP4HandleImp handle, trakSize *ts);
       
   102 mp4_i32 writeVideoSTSC(MP4HandleImp handle, trakSize *ts);
       
   103 mp4_i32 writeVideoSTSZ(MP4HandleImp handle, trakSize *ts);
       
   104 mp4_i32 writeVideoSTSZLongClip(MP4HandleImp handle, trakSize *ts);
       
   105 mp4_i32 writeVideoSTCO(MP4HandleImp handle, trakSize *ts);
       
   106 mp4_i32 writeVideoCO64(MP4HandleImp handle, trakSize *ts);
       
   107 mp4_i32 writeVideoSTCOLongClip(MP4HandleImp handle, trakSize *ts);
       
   108 mp4_i32 writeVideoCO64LongClip(MP4HandleImp handle, trakSize *ts);
       
   109 mp4_i32 writeVideoSTSS(MP4HandleImp handle, trakSize *ts);
       
   110 mp4_i32 writeVideoSTSSLongClip(MP4HandleImp handle, trakSize *ts);
       
   111 mp4_i32 writeAVC1(MP4HandleImp handle, trakSize *ts);
       
   112 mp4_i32 writeAVCC(MP4HandleImp handle, trakSize *ts);
       
   113 
       
   114 mp4_i32 writeAudioTrak(MP4HandleImp handle, trakSize *ts);
       
   115 mp4_i32 writeAudioTKHD(MP4HandleImp handle, trakSize *ts);
       
   116 mp4_i32 writeAudioMDIA(MP4HandleImp handle, trakSize *ts);
       
   117 mp4_i32 writeAudioMDHD(MP4HandleImp handle, trakSize *ts);
       
   118 mp4_i32 writeAudioHDLR(MP4HandleImp handle, trakSize *ts);
       
   119 mp4_i32 writeAudioMINF(MP4HandleImp handle, trakSize *ts);
       
   120 mp4_i32 writeSMHD(MP4HandleImp handle, trakSize *ts);
       
   121 mp4_i32 writeAudioSTBL(MP4HandleImp handle, trakSize *ts);
       
   122 mp4_i32 writeAudioSTSD(MP4HandleImp handle, trakSize *ts);
       
   123 mp4_i32 writeMP4A(MP4HandleImp handle, trakSize *ts);
       
   124 mp4_i32 writeAudioESD(MP4HandleImp handle, trakSize *ts);
       
   125 mp4_i32 writeSAMR(MP4HandleImp handle, trakSize *ts);
       
   126 mp4_i32 writeSAWB(MP4HandleImp handle, trakSize *ts);
       
   127 mp4_i32 writeDAMR(MP4HandleImp handle, trakSize *ts);
       
   128 mp4_i32 writeAudioSTTS(MP4HandleImp handle, trakSize *ts);
       
   129 mp4_i32 writeAudioSTTSLongClip(MP4HandleImp handle, trakSize *ts);
       
   130 mp4_i32 writeAudioSTSC(MP4HandleImp handle, trakSize *ts);
       
   131 mp4_i32 writeAudioSTSZ(MP4HandleImp handle, trakSize *ts);
       
   132 mp4_i32 writeAudioSTSZLongClip(MP4HandleImp handle, trakSize *ts);
       
   133 mp4_i32 writeAudioSTCO(MP4HandleImp handle, trakSize *ts);
       
   134 mp4_i32 writeAudioCO64(MP4HandleImp handle, trakSize *ts);
       
   135 mp4_i32 writeAudioSTCOLongClip(MP4HandleImp handle, trakSize *ts);
       
   136 mp4_i32 writeAudioCO64LongClip(MP4HandleImp handle, trakSize *ts);
       
   137 mp4_i32 writeSQCP(MP4HandleImp handle, trakSize *ts);
       
   138 mp4_i32 writeDQCP(MP4HandleImp handle, trakSize *ts);
       
   139 
       
   140 mp4_i32 writeMediaData(MP4HandleImp handle);
       
   141 
       
   142 mp4_i32 insertu64(mp4_u8 *buf, mp4_u64 value);
       
   143 mp4_i32 insertu32(mp4_u8 *buf, mp4_u32 value);
       
   144 mp4_i32 insertu16(mp4_u8 *buf, mp4_u16 value);
       
   145 
       
   146 mp4_i32 writeMetaDataTmp(MP4HandleImp handle);
       
   147 mp4_i32 calculateES_DescriptorSize(MP4HandleImp handle, mp4_u32 type);
       
   148 mp4_i32 writeUDTA(MP4HandleImp handle, userDataAtom *udta);
       
   149 mp4_i32 updateVideoDependencyMetaData(MP4HandleImp handle, mp4_u8 aDependsOn, mp4_u8 aIsDependentOn, mp4_u8 aHasRedundancy);
       
   150 mp4_i32 writeVideoSDTP(MP4HandleImp handle, trakSize *ts);
       
   151 mp4_i32 writeVideoSDTPLongClip(MP4HandleImp handle, trakSize *ts);
       
   152 mp4_i32 writeAVCP(MP4HandleImp handle, trakSize *ts);
       
   153 #endif
       
   154 // End of File