utils: Adjust lsmash_fixed2double arguments to display negative values
[L-SMASH.git] / core / box_default.h
blob7ce01046232e385256b6f60f92c9a0318e849647
1 /*****************************************************************************
2 * box_default.h
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 #define ALLOCATE_BOX( box_name ) \
24 (isom_##box_name##_t *)allocate_box_by_default( &isom_##box_name##_box_default, \
25 sizeof(isom_##box_name##_box_default) )
27 #define DEFINE_BOX_DEFAULT_CONSTANT( box_name ) \
28 extern const isom_##box_name##_t isom_##box_name##_box_default; \
29 static inline isom_##box_name##_t *isom_non_existing_##box_name( void ) \
30 { \
31 return (isom_##box_name##_t *)&isom_##box_name##_box_default; \
34 DEFINE_BOX_DEFAULT_CONSTANT( dummy )
35 DEFINE_BOX_DEFAULT_CONSTANT( unknown )
36 DEFINE_BOX_DEFAULT_CONSTANT( ftyp )
37 DEFINE_BOX_DEFAULT_CONSTANT( ctab )
38 DEFINE_BOX_DEFAULT_CONSTANT( tkhd )
39 DEFINE_BOX_DEFAULT_CONSTANT( clef )
40 DEFINE_BOX_DEFAULT_CONSTANT( prof )
41 DEFINE_BOX_DEFAULT_CONSTANT( enof )
42 DEFINE_BOX_DEFAULT_CONSTANT( tapt )
43 DEFINE_BOX_DEFAULT_CONSTANT( elst )
44 DEFINE_BOX_DEFAULT_CONSTANT( edts )
45 DEFINE_BOX_DEFAULT_CONSTANT( tref_type )
46 DEFINE_BOX_DEFAULT_CONSTANT( tref )
47 DEFINE_BOX_DEFAULT_CONSTANT( mdhd )
48 DEFINE_BOX_DEFAULT_CONSTANT( hdlr )
49 DEFINE_BOX_DEFAULT_CONSTANT( vmhd )
50 DEFINE_BOX_DEFAULT_CONSTANT( smhd )
51 DEFINE_BOX_DEFAULT_CONSTANT( hmhd )
52 DEFINE_BOX_DEFAULT_CONSTANT( nmhd )
53 DEFINE_BOX_DEFAULT_CONSTANT( gmin )
54 DEFINE_BOX_DEFAULT_CONSTANT( text )
55 DEFINE_BOX_DEFAULT_CONSTANT( gmhd )
56 DEFINE_BOX_DEFAULT_CONSTANT( dref_entry )
57 DEFINE_BOX_DEFAULT_CONSTANT( dref )
58 DEFINE_BOX_DEFAULT_CONSTANT( dinf )
59 DEFINE_BOX_DEFAULT_CONSTANT( esds )
60 DEFINE_BOX_DEFAULT_CONSTANT( btrt )
61 DEFINE_BOX_DEFAULT_CONSTANT( glbl )
62 DEFINE_BOX_DEFAULT_CONSTANT( clap )
63 DEFINE_BOX_DEFAULT_CONSTANT( pasp )
64 DEFINE_BOX_DEFAULT_CONSTANT( colr )
65 DEFINE_BOX_DEFAULT_CONSTANT( gama )
66 DEFINE_BOX_DEFAULT_CONSTANT( fiel )
67 DEFINE_BOX_DEFAULT_CONSTANT( clli )
68 DEFINE_BOX_DEFAULT_CONSTANT( mdcv )
69 DEFINE_BOX_DEFAULT_CONSTANT( cspc )
70 DEFINE_BOX_DEFAULT_CONSTANT( sgbt )
71 DEFINE_BOX_DEFAULT_CONSTANT( stsl )
72 DEFINE_BOX_DEFAULT_CONSTANT( sample_entry )
73 DEFINE_BOX_DEFAULT_CONSTANT( mp4s_entry )
74 DEFINE_BOX_DEFAULT_CONSTANT( visual_entry )
75 DEFINE_BOX_DEFAULT_CONSTANT( frma )
76 DEFINE_BOX_DEFAULT_CONSTANT( enda )
77 DEFINE_BOX_DEFAULT_CONSTANT( mp4a )
78 DEFINE_BOX_DEFAULT_CONSTANT( terminator )
79 DEFINE_BOX_DEFAULT_CONSTANT( wave )
80 DEFINE_BOX_DEFAULT_CONSTANT( chan )
81 DEFINE_BOX_DEFAULT_CONSTANT( srat )
82 DEFINE_BOX_DEFAULT_CONSTANT( audio_entry )
83 DEFINE_BOX_DEFAULT_CONSTANT( tims )
84 DEFINE_BOX_DEFAULT_CONSTANT( tsro )
85 DEFINE_BOX_DEFAULT_CONSTANT( tssy )
86 DEFINE_BOX_DEFAULT_CONSTANT( hint_entry )
87 DEFINE_BOX_DEFAULT_CONSTANT( metadata_entry )
88 DEFINE_BOX_DEFAULT_CONSTANT( qt_text_entry )
89 DEFINE_BOX_DEFAULT_CONSTANT( ftab )
90 DEFINE_BOX_DEFAULT_CONSTANT( tx3g_entry )
91 DEFINE_BOX_DEFAULT_CONSTANT( stsd )
92 DEFINE_BOX_DEFAULT_CONSTANT( stts )
93 DEFINE_BOX_DEFAULT_CONSTANT( ctts )
94 DEFINE_BOX_DEFAULT_CONSTANT( cslg )
95 DEFINE_BOX_DEFAULT_CONSTANT( stsz )
96 DEFINE_BOX_DEFAULT_CONSTANT( stz2 )
97 DEFINE_BOX_DEFAULT_CONSTANT( stss )
98 DEFINE_BOX_DEFAULT_CONSTANT( stps )
99 DEFINE_BOX_DEFAULT_CONSTANT( sdtp )
100 DEFINE_BOX_DEFAULT_CONSTANT( stsc )
101 DEFINE_BOX_DEFAULT_CONSTANT( stco )
102 DEFINE_BOX_DEFAULT_CONSTANT( sgpd )
103 DEFINE_BOX_DEFAULT_CONSTANT( sbgp )
104 DEFINE_BOX_DEFAULT_CONSTANT( stbl )
105 DEFINE_BOX_DEFAULT_CONSTANT( minf )
106 DEFINE_BOX_DEFAULT_CONSTANT( mdia )
107 DEFINE_BOX_DEFAULT_CONSTANT( mvhd )
108 DEFINE_BOX_DEFAULT_CONSTANT( iods )
109 DEFINE_BOX_DEFAULT_CONSTANT( mdat )
110 DEFINE_BOX_DEFAULT_CONSTANT( skip )
111 DEFINE_BOX_DEFAULT_CONSTANT( chpl )
112 DEFINE_BOX_DEFAULT_CONSTANT( keys )
113 DEFINE_BOX_DEFAULT_CONSTANT( mean )
114 DEFINE_BOX_DEFAULT_CONSTANT( name )
115 DEFINE_BOX_DEFAULT_CONSTANT( data )
116 DEFINE_BOX_DEFAULT_CONSTANT( metaitem )
117 DEFINE_BOX_DEFAULT_CONSTANT( ilst )
118 DEFINE_BOX_DEFAULT_CONSTANT( meta )
119 DEFINE_BOX_DEFAULT_CONSTANT( WLOC )
120 DEFINE_BOX_DEFAULT_CONSTANT( LOOP )
121 DEFINE_BOX_DEFAULT_CONSTANT( SelO )
122 DEFINE_BOX_DEFAULT_CONSTANT( AllF )
123 DEFINE_BOX_DEFAULT_CONSTANT( hnti )
124 DEFINE_BOX_DEFAULT_CONSTANT( rtp )
125 DEFINE_BOX_DEFAULT_CONSTANT( sdp )
126 DEFINE_BOX_DEFAULT_CONSTANT( cprt )
127 DEFINE_BOX_DEFAULT_CONSTANT( udta )
128 DEFINE_BOX_DEFAULT_CONSTANT( mehd )
129 DEFINE_BOX_DEFAULT_CONSTANT( trex )
130 DEFINE_BOX_DEFAULT_CONSTANT( mvex )
131 DEFINE_BOX_DEFAULT_CONSTANT( mfhd )
132 DEFINE_BOX_DEFAULT_CONSTANT( tfhd )
133 DEFINE_BOX_DEFAULT_CONSTANT( tfdt )
134 DEFINE_BOX_DEFAULT_CONSTANT( trun )
135 DEFINE_BOX_DEFAULT_CONSTANT( traf )
136 DEFINE_BOX_DEFAULT_CONSTANT( moof )
137 DEFINE_BOX_DEFAULT_CONSTANT( tfra )
138 DEFINE_BOX_DEFAULT_CONSTANT( mfro )
139 DEFINE_BOX_DEFAULT_CONSTANT( mfra )
140 DEFINE_BOX_DEFAULT_CONSTANT( trak )
141 DEFINE_BOX_DEFAULT_CONSTANT( moov )
142 DEFINE_BOX_DEFAULT_CONSTANT( styp )
143 DEFINE_BOX_DEFAULT_CONSTANT( sidx )
144 DEFINE_BOX_DEFAULT_CONSTANT( file_abstract )
145 DEFINE_BOX_DEFAULT_CONSTANT( root_abstract )
147 void *allocate_box_by_default
149 const void *nonexist_ptr,
150 const size_t data_type_size