1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 #define IMPLEMENT_MovieFragmentHeaderAtom 19 20 #include "moviefragmentheaderatom.h" 21 22 // constructor 23 PVA_FF_MovieFragmentHeaderAtom::PVA_FF_MovieFragmentHeaderAtom(uint32 sequenceNumber) 24 : PVA_FF_FullAtom(MOVIE_FRAGMENT_HEADER_ATOM, (uint8)0, (uint32)0) 25 { 26 _sequenceNumber = sequenceNumber; 27 28 recomputeSize(); 29 30 } 31 32 // destructor 33 PVA_FF_MovieFragmentHeaderAtom::~PVA_FF_MovieFragmentHeaderAtom() 34 { 35 // do nothing 36 } 37 38 39 // return sequence number 40 uint32 41 PVA_FF_MovieFragmentHeaderAtom::getSequenceNumber() 42 { 43 return _sequenceNumber; 44 } 45 46 47 // recompute size of atom 48 void 49 PVA_FF_MovieFragmentHeaderAtom::recomputeSize() 50 { 51 int32 size = getDefaultSize(); 52 53 size += 4; // For sequence number 54 55 _size = size; 56 57 // Update the parent atom size 58 if (_pparent != NULL) 59 { 60 _pparent->recomputeSize(); 61 } 62 } 63 64 65 // write atom to target file 66 bool 67 PVA_FF_MovieFragmentHeaderAtom::renderToFileStream(MP4_AUTHOR_FF_FILE_IO_WRAP* fp) 68 { 69 uint32 rendered = 0; 70 71 if (!renderAtomBaseMembers(fp)) 72 { 73 return false; 74 } 75 rendered += getDefaultSize(); 76 77 if (!PVA_FF_AtomUtils::render32(fp, _sequenceNumber)) 78 { 79 return false; 80 } 81 rendered += 4; 82 83 return true; 84 } 85 86