1 /* 2 * The contents of this file are subject to the Mozilla Public 3 * License Version 1.1 (the "License"); you may not use this file 4 * except in compliance with the License. You may obtain a copy of 5 * the License at http://www.mozilla.org/MPL/ 6 * 7 * Software distributed under the License is distributed on an "AS 8 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 * implied. See the License for the specific language governing 10 * rights and limitations under the License. 11 * 12 * The Original Code is MPEG4IP. 13 * 14 * The Initial Developer of the Original Code is Cisco Systems Inc. 15 * Portions created by Cisco Systems Inc. are 16 * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved. 17 * 18 * Contributor(s): 19 * Dave Mackie dmackie@cisco.com 20 */ 21 22 #ifndef MP4V2_IMPL_OCIDESCRIPTORS_H 23 #define MP4V2_IMPL_OCIDESCRIPTORS_H 24 25 namespace mp4v2 { 26 namespace impl { 27 28 /////////////////////////////////////////////////////////////////////////////// 29 30 const uint8_t MP4OCIDescrTagsStart = 0x40; 31 const uint8_t MP4ContentClassDescrTag = 0x40; 32 const uint8_t MP4KeywordDescrTag = 0x41; 33 const uint8_t MP4RatingDescrTag = 0x42; 34 const uint8_t MP4LanguageDescrTag = 0x43; 35 const uint8_t MP4ShortTextDescrTag = 0x44; 36 const uint8_t MP4ExpandedTextDescrTag = 0x45; 37 const uint8_t MP4ContentCreatorDescrTag = 0x46; 38 const uint8_t MP4ContentCreationDescrTag = 0x47; 39 const uint8_t MP4OCICreatorDescrTag = 0x48; 40 const uint8_t MP4OCICreationDescrTag = 0x49; 41 const uint8_t MP4SmpteCameraDescrTag = 0x4A; 42 const uint8_t MP4OCIDescrTagsEnd = 0x5F; 43 44 class MP4ContentClassDescriptor : public MP4Descriptor { 45 public: 46 MP4ContentClassDescriptor(MP4Atom& parentAtom); 47 void Read(MP4File& file); 48 private: 49 MP4ContentClassDescriptor(); 50 MP4ContentClassDescriptor ( const MP4ContentClassDescriptor &src ); 51 MP4ContentClassDescriptor &operator= ( const MP4ContentClassDescriptor &src ); 52 }; 53 54 class MP4KeywordDescriptor : public MP4Descriptor { 55 public: 56 MP4KeywordDescriptor(MP4Atom& parentAtom); 57 protected: 58 void Mutate(); 59 private: 60 MP4KeywordDescriptor(); 61 MP4KeywordDescriptor ( const MP4KeywordDescriptor &src ); 62 MP4KeywordDescriptor &operator= ( const MP4KeywordDescriptor &src ); 63 }; 64 65 class MP4RatingDescriptor : public MP4Descriptor { 66 public: 67 MP4RatingDescriptor(MP4Atom& parentAtom); 68 void Read(MP4File& file); 69 private: 70 MP4RatingDescriptor(); 71 MP4RatingDescriptor ( const MP4RatingDescriptor &src ); 72 MP4RatingDescriptor &operator= ( const MP4RatingDescriptor &src ); 73 }; 74 75 class MP4LanguageDescriptor : public MP4Descriptor { 76 public: 77 MP4LanguageDescriptor(MP4Atom& parentAtom); 78 private: 79 MP4LanguageDescriptor(); 80 MP4LanguageDescriptor ( const MP4LanguageDescriptor &src ); 81 MP4LanguageDescriptor &operator= ( const MP4LanguageDescriptor &src ); 82 }; 83 84 class MP4ShortTextDescriptor : public MP4Descriptor { 85 public: 86 MP4ShortTextDescriptor(MP4Atom& parentAtom); 87 protected: 88 void Mutate(); 89 private: 90 MP4ShortTextDescriptor(); 91 MP4ShortTextDescriptor ( const MP4ShortTextDescriptor &src ); 92 MP4ShortTextDescriptor &operator= ( const MP4ShortTextDescriptor &src ); 93 }; 94 95 class MP4ExpandedTextDescriptor : public MP4Descriptor { 96 public: 97 MP4ExpandedTextDescriptor(MP4Atom& parentAtom); 98 protected: 99 void Mutate(); 100 private: 101 MP4ExpandedTextDescriptor(); 102 MP4ExpandedTextDescriptor ( const MP4ExpandedTextDescriptor &src ); 103 MP4ExpandedTextDescriptor &operator= ( const MP4ExpandedTextDescriptor &src ); 104 }; 105 106 class MP4CreatorDescriptor : public MP4Descriptor { 107 public: 108 MP4CreatorDescriptor(MP4Atom& parentAtom, uint8_t tag); 109 private: 110 MP4CreatorDescriptor(); 111 MP4CreatorDescriptor ( const MP4CreatorDescriptor &src ); 112 MP4CreatorDescriptor &operator= ( const MP4CreatorDescriptor &src ); 113 }; 114 115 class MP4CreationDescriptor : public MP4Descriptor { 116 public: 117 MP4CreationDescriptor(MP4Atom& parentAtom, uint8_t tag); 118 private: 119 MP4CreationDescriptor(); 120 MP4CreationDescriptor ( const MP4CreationDescriptor &src ); 121 MP4CreationDescriptor &operator= ( const MP4CreationDescriptor &src ); 122 }; 123 124 class MP4SmpteCameraDescriptor : public MP4Descriptor { 125 public: 126 MP4SmpteCameraDescriptor(MP4Atom& parentAtom); 127 private: 128 MP4SmpteCameraDescriptor(); 129 MP4SmpteCameraDescriptor ( const MP4SmpteCameraDescriptor &src ); 130 MP4SmpteCameraDescriptor &operator= ( const MP4SmpteCameraDescriptor &src ); 131 }; 132 133 class MP4UnknownOCIDescriptor : public MP4Descriptor { 134 public: 135 MP4UnknownOCIDescriptor(MP4Atom& parentAtom); 136 void Read(MP4File& file); 137 private: 138 MP4UnknownOCIDescriptor(); 139 MP4UnknownOCIDescriptor ( const MP4UnknownOCIDescriptor &src ); 140 MP4UnknownOCIDescriptor &operator= ( const MP4UnknownOCIDescriptor &src ); 141 }; 142 143 144 extern MP4Descriptor *CreateOCIDescriptor(MP4Atom& parentAtom, uint8_t tag); 145 146 /////////////////////////////////////////////////////////////////////////////// 147 148 } 149 } // namespace mp4v2::impl 150 151 #endif // MP4V2_IMPL_OCIDESCRIPTORS_H 152