1 /*****************************************************************************
3 *****************************************************************************
4 * Copyright (C) 2017 L-SMASH project
6 * Authors: Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>
8 * Permission to use, copy, modify, and/or distribute this software for any
9 * purpose with or without fee is hereby granted, provided that the above
10 * copyright notice and this permission notice appear in all copies.
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 *****************************************************************************/
21 /* This file is available under an ISC license. */
23 #include "common/internal.h" /* must be placed first */
26 #include "box_default.h"
28 #define INITIALIZE_BASEBOX_COMMON( box_name ) \
29 .class = &isom_box_default_class, \
30 .root = (isom_root_abstract_t *)&isom_root_abstract_box_default, \
31 .file = (isom_file_abstract_t *)&isom_file_abstract_box_default, \
32 .parent = (isom_box_t *)&isom_opaque_box_default, \
33 .nonexist_ptr = (void *)&isom_##box_name##_box_default, \
37 .manager = LSMASH_NON_EXISTING_BOX, \
40 .extensions = { .head = NULL }, \
42 .type = LSMASH_BOX_TYPE_INITIALIZER
44 #define DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( box_name ) \
45 const isom_##box_name##_t isom_##box_name##_box_default = \
47 INITIALIZE_BASEBOX_COMMON( box_name ) \
50 static const lsmash_class_t isom_box_default_class
=
55 typedef isom_box_t isom_opaque_t
;
56 static const isom_box_t isom_opaque_box_default
=
58 INITIALIZE_BASEBOX_COMMON( opaque
)
61 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( dummy
);
62 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( unknown
);
63 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( ftyp
);
64 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( ctab
);
65 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tkhd
);
66 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( clef
);
67 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( prof
);
68 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( enof
);
69 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( elst
);
70 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tref_type
);
71 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tref
);
72 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mdhd
);
73 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( hdlr
);
74 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( vmhd
);
75 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( smhd
);
76 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( hmhd
);
77 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( nmhd
);
78 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( gmin
);
79 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( text
);
80 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( dref_entry
);
81 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( dref
);
82 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( esds
);
83 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( btrt
);
84 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( glbl
);
85 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( clap
);
86 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( pasp
);
87 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( colr
);
88 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( gama
);
89 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( fiel
);
90 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( cspc
);
91 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( clli
);
92 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mdcv
);
93 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( sgbt
);
94 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stsl
);
95 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( sample_entry
);
96 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mp4s_entry
);
97 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( visual_entry
);
98 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( frma
);
99 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( enda
);
100 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mp4a
);
101 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( terminator
);
102 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( chan
);
103 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( srat
);
104 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( audio_entry
);
105 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tims
);
106 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tsro
);
107 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tssy
);
108 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( hint_entry
);
109 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( metadata_entry
);
110 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( qt_text_entry
);
111 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( ftab
);
112 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stsd
);
113 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stts
);
114 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( ctts
);
115 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( cslg
);
116 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stsz
);
117 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stz2
);
118 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stss
);
119 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stps
);
120 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( sdtp
);
121 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stsc
);
122 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( stco
);
123 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( sgpd
);
124 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( sbgp
);
125 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mvhd
);
126 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( iods
);
127 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mdat
);
128 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( skip
);
129 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( chpl
);
130 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( keys
);
131 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mean
);
132 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( name
);
133 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( data
);
134 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( ilst
);
135 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( WLOC
);
136 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( LOOP
);
137 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( SelO
);
138 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( AllF
);
139 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( rtp
);
140 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( sdp
);
141 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( cprt
);
142 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mehd
);
143 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( trex
);
144 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mfhd
);
145 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tfhd
);
146 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tfdt
);
147 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( trun
);
148 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( tfra
);
149 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( mfro
);
150 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( styp
);
151 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( sidx
);
152 DEFINE_SIMPLE_BOX_DEFAULT_CONSTANT( root_abstract
);
154 #define INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( child_name ) \
155 .child_name = (isom_##child_name##_t *)&isom_##child_name##_box_default
157 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( ... ) \
158 CALL_FUNC_DEFAULT_ARGS( DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT, __VA_ARGS__ )
159 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, expanded_initializations ) \
160 const isom_##box_name##_t isom_##box_name##_box_default = \
162 INITIALIZE_BASEBOX_COMMON( box_name ), \
163 expanded_initializations \
165 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_12( box_name, \
166 _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10 ) \
167 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
168 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
169 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ), \
170 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _2 ), \
171 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _3 ), \
172 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _4 ), \
173 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _5 ), \
174 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _6 ), \
175 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _7 ), \
176 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _8 ), \
177 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _9 ), \
178 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _10 ) ) )
179 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_9( box_name, _0, _1, _2, _3, _4, _5, _6, _7 ) \
180 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
181 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
182 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ), \
183 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _2 ), \
184 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _3 ), \
185 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _4 ), \
186 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _5 ), \
187 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _6 ), \
188 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _7 ) ) )
189 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_8( box_name, _0, _1, _2, _3, _4, _5, _6 ) \
190 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
191 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
192 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ), \
193 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _2 ), \
194 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _3 ), \
195 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _4 ), \
196 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _5 ), \
197 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _6 ) ) )
198 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_7( box_name, _0, _1, _2, _3, _4, _5 ) \
199 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
200 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
201 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ), \
202 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _2 ), \
203 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _3 ), \
204 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _4 ), \
205 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _5 ) ) )
206 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_6( box_name, _0, _1, _2, _3, _4 ) \
207 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
208 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
209 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ), \
210 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _2 ), \
211 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _3 ), \
212 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _4 ) ) )
213 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_5( box_name, _0, _1, _2, _3 ) \
214 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
215 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
216 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ), \
217 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _2 ), \
218 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _3 ) ) )
219 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_4( box_name, _0, _1, _2 ) \
220 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
221 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
222 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ), \
223 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _2 ) ) )
224 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_3( box_name, _0, _1 ) \
225 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
226 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ), \
227 INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _1 ) ) )
228 #define DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_2( box_name, _0 ) \
229 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT_TEMPLATE( box_name, \
230 EXPAND_VA_ARGS( INITIALIZE_PREDEFINED_CHILD_BY_DEFAULT_CONSTANT_PTR( _0 ) ) )
232 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( tapt
, clef
, enof
, prof
);
233 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( edts
, elst
);
234 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( gmhd
, gmin
, text
);
235 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( dinf
, dref
);
236 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( wave
, frma
, enda
, mp4a
);
237 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( tx3g_entry
, ftab
);
238 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( stbl
, stsd
, stts
, ctts
, cslg
, stss
, stps
, sdtp
, stsc
, stsz
, stz2
, stco
);
239 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( minf
, vmhd
, smhd
, hmhd
, nmhd
, gmhd
, hdlr
, dinf
, stbl
);
240 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( mdia
, mdhd
, hdlr
, minf
);
241 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( metaitem
, mean
, name
, data
);
242 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( meta
, hdlr
, dinf
, keys
, ilst
);
243 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( udta
, chpl
, meta
, WLOC
, LOOP
, SelO
, AllF
, hnti
);
244 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( hnti
, rtp
, sdp
);
245 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( mvex
, mehd
);
246 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( traf
, tfhd
, tfdt
, sdtp
);
247 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( moof
, mfhd
);
248 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( mfra
, mfro
);
249 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( trak
, tkhd
, tapt
, edts
, tref
, mdia
, udta
, meta
);
250 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( moov
, mvhd
, iods
, udta
, ctab
, meta
, mvex
);
251 DEFINE_SIMPLE_CONTAINER_BOX_DEFAULT_CONSTANT( file_abstract
, ftyp
, moov
, mdat
, meta
, mfra
);
253 /* Box-lists predefined in the parent box definitions are initialized by 0s, thus the entry eliminator
254 * of each list also be set to NULL (0). This must not be an issue since all box are deallocated through
255 * the 'extensions' list of the parent box. Only 'entry' which holds the actual box data is deallocated
256 * when the box is deallocated by the isom_remove_box_in_predefined_list() function. Because of that,
257 * here, there are no explicit default constant definitions of indivisual predefined box-lists. */
260 /* Allocate box by default settings.
262 * Use this function to allocate boxes as much as possible, it covers forgetful settings. */
263 void *allocate_box_by_default
265 const void *nonexist_ptr
,
266 const size_t data_type_size
269 assert( data_type_size
>= offsetof( isom_box_t
, manager
) + sizeof(((isom_box_t
*)0)->manager
) );
270 isom_box_t
*box
= (isom_box_t
*)lsmash_memdup( nonexist_ptr
, data_type_size
);
272 return (void *)nonexist_ptr
;
273 box
->manager
&= ~LSMASH_NON_EXISTING_BOX
;
274 lsmash_list_init( &box
->extensions
, isom_remove_extension_box
);