annotate Plugins/Input/aac/libmp4v2/mp4container.cpp @ 790:8f437afc4f4a trunk

[svn] - more sanity checking
author nenolod
date Fri, 03 Mar 2006 20:09:52 -0800
parents fa848bd484d8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
1 /*
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
2 * The contents of this file are subject to the Mozilla Public
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
3 * License Version 1.1 (the "License"); you may not use this file
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
4 * except in compliance with the License. You may obtain a copy of
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
5 * the License at http://www.mozilla.org/MPL/
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
6 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
7 * Software distributed under the License is distributed on an "AS
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
8 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
9 * implied. See the License for the specific language governing
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
10 * rights and limitations under the License.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
11 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
12 * The Original Code is MPEG4IP.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
13 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
14 * The Initial Developer of the Original Code is Cisco Systems Inc.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
15 * Portions created by Cisco Systems Inc. are
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
16 * Copyright (C) Cisco Systems Inc. 2001. All Rights Reserved.
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
17 *
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
18 * Contributor(s):
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
19 * Dave Mackie dmackie@cisco.com
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
20 */
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
21
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
22 #include "mp4common.h"
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
23
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
24 MP4Container::~MP4Container()
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
25 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
26 for (u_int32_t i = 0; i < m_pProperties.Size(); i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
27 delete m_pProperties[i];
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
28 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
29 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
30
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
31 void MP4Container::AddProperty(MP4Property* pProperty)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
32 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
33 ASSERT(pProperty);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
34 m_pProperties.Add(pProperty);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
35 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
36
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
37 bool MP4Container::FindProperty(const char *name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
38 MP4Property** ppProperty, u_int32_t* pIndex)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
39 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
40 if (pIndex) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
41 *pIndex = 0; // set the default answer for index
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
42 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
43
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
44 u_int32_t numProperties = m_pProperties.Size();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
45
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
46 for (u_int32_t i = 0; i < numProperties; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
47 if (m_pProperties[i]->FindProperty(name, ppProperty, pIndex)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
48 return true;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
49 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
50 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
51 return false;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
52 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
53
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
54 void MP4Container::FindIntegerProperty(const char* name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
55 MP4Property** ppProperty, u_int32_t* pIndex)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
56 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
57 if (!FindProperty(name, ppProperty, pIndex)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
58 throw new MP4Error("no such property",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
59 "MP4Container::FindIntegerProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
60 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
61
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
62 switch ((*ppProperty)->GetType()) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
63 case Integer8Property:
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
64 case Integer16Property:
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
65 case Integer24Property:
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
66 case Integer32Property:
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
67 case Integer64Property:
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
68 break;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
69 default:
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
70 throw new MP4Error("type mismatch",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
71 "MP4Container::FindIntegerProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
72 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
73 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
74
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
75 u_int64_t MP4Container::GetIntegerProperty(const char* name)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
76 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
77 MP4Property* pProperty;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
78 u_int32_t index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
79
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
80 FindIntegerProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
81
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
82 return ((MP4IntegerProperty*)pProperty)->GetValue(index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
83 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
84
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
85 void MP4Container::SetIntegerProperty(const char* name, u_int64_t value)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
86 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
87 MP4Property* pProperty = NULL;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
88 u_int32_t index = 0;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
89
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
90 FindIntegerProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
91
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
92 ((MP4IntegerProperty*)pProperty)->SetValue(value, index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
93 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
94
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
95 void MP4Container::FindFloatProperty(const char* name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
96 MP4Property** ppProperty, u_int32_t* pIndex)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
97 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
98 if (!FindProperty(name, ppProperty, pIndex)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
99 throw new MP4Error("no such property",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
100 "MP4Container::FindFloatProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
101 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
102 if ((*ppProperty)->GetType() != Float32Property) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
103 throw new MP4Error("type mismatch",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
104 "MP4Container::FindFloatProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
105 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
106 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
107
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
108 float MP4Container::GetFloatProperty(const char* name)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
109 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
110 MP4Property* pProperty;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
111 u_int32_t index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
112
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
113 FindFloatProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
114
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
115 return ((MP4Float32Property*)pProperty)->GetValue(index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
116 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
117
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
118 void MP4Container::SetFloatProperty(const char* name, float value)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
119 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
120 MP4Property* pProperty;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
121 u_int32_t index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
122
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
123 FindFloatProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
124
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
125 ((MP4Float32Property*)pProperty)->SetValue(value, index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
126 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
127
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
128 void MP4Container::FindStringProperty(const char* name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
129 MP4Property** ppProperty, u_int32_t* pIndex)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
130 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
131 if (!FindProperty(name, ppProperty, pIndex)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
132 throw new MP4Error("no such property",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
133 "MP4Container::FindStringProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
134 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
135 if ((*ppProperty)->GetType() != StringProperty) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
136 throw new MP4Error("type mismatch",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
137 "MP4Container::FindStringProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
138 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
139 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
140
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
141 const char* MP4Container::GetStringProperty(const char* name)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
142 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
143 MP4Property* pProperty;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
144 u_int32_t index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
145
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
146 FindStringProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
147
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
148 return ((MP4StringProperty*)pProperty)->GetValue(index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
149 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
150
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
151 void MP4Container::SetStringProperty(const char* name, const char* value)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
152 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
153 MP4Property* pProperty;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
154 u_int32_t index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
155
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
156 FindStringProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
157
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
158 ((MP4StringProperty*)pProperty)->SetValue(value, index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
159 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
160
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
161 void MP4Container::FindBytesProperty(const char* name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
162 MP4Property** ppProperty, u_int32_t* pIndex)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
163 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
164 if (!FindProperty(name, ppProperty, pIndex)) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
165 throw new MP4Error("no such property",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
166 "MP4Container::FindBytesProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
167 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
168 if ((*ppProperty)->GetType() != BytesProperty) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
169 throw new MP4Error("type mismatch",
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
170 "MP4Container::FindBytesProperty");
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
171 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
172 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
173
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
174 void MP4Container::GetBytesProperty(const char* name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
175 u_int8_t** ppValue, u_int32_t* pValueSize)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
176 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
177 MP4Property* pProperty;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
178 u_int32_t index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
179
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
180 FindBytesProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
181
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
182 ((MP4BytesProperty*)pProperty)->GetValue(ppValue, pValueSize, index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
183 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
184
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
185 void MP4Container::SetBytesProperty(const char* name,
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
186 const u_int8_t* pValue, u_int32_t valueSize)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
187 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
188 MP4Property* pProperty;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
189 u_int32_t index;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
190
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
191 FindBytesProperty(name, &pProperty, &index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
192
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
193 ((MP4BytesProperty*)pProperty)->SetValue(pValue, valueSize, index);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
194 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
195
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
196 void MP4Container::Read(MP4File* pFile)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
197 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
198 u_int32_t numProperties = m_pProperties.Size();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
199
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
200 for (u_int32_t i = 0; i < numProperties; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
201 m_pProperties[i]->Read(pFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
202 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
203 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
204
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
205 void MP4Container::Write(MP4File* pFile)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
206 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
207 u_int32_t numProperties = m_pProperties.Size();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
208
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
209 if (numProperties == 0) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
210 WARNING(numProperties == 0);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
211 return;
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
212 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
213
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
214 for (u_int32_t i = 0; i < numProperties; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
215 m_pProperties[i]->Write(pFile);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
216 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
217 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
218
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
219 void MP4Container::Dump(FILE* pFile, u_int8_t indent, bool dumpImplicits)
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
220 {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
221 u_int32_t numProperties = m_pProperties.Size();
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
222
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
223 for (u_int32_t i = 0; i < numProperties; i++) {
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
224 m_pProperties[i]->Dump(pFile, indent, dumpImplicits);
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
225 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
226 }
fa848bd484d8 [svn] Move plugins to Plugins/
nenolod
parents:
diff changeset
227