33 #define MAX_SEGMENTS 2 36 #define MAX_EXPONENTS 304 37 #define MAX_MANTISSAS 1024 39 #define MAX_MSTR_EXP 2 40 #define MAX_BIAS_EXP 50 87 5, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,
88 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 5
102 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
103 2, 2, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 6, 6,
108 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
109 2, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 5, 5, 6, 7, 7,
110 8, 9, 10, 11, 12, 13, 15, 16, 18, 20, 22, 25,
114 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3,
115 3, 4, 4, 5, 5, 6, 6, 7, 8, 9, 9, 10, 12, 13, 14, 16,
116 18, 19, 22, 24, 27, 29, 32, 36, 40, 44, 49, 54, 60, 66, 74, 82,
123 { 50, { 27, 23 }, 0, 0,
nb_mantissa_50, 2, 0, 1152, 0, 1408, 0 },
127 { 38, { 12, 26 }, 0, 0,
nb_mantissa_38, 0, 0, 192, 0, 256, 0 },
128 { 38, { 12, 26 }, 38, 128,
nb_mantissa_38, 0, 1, 256, 64, 448, 0 },
129 { 38, { 12, 26 }, 76, 256,
nb_mantissa_38, 0, 1, 256, 192, 704, 0 },
130 { 38, { 12, 26 }, 114, 384,
nb_mantissa_38, 0, 1, 256, 320, 0, 0 },
131 { 38, { 12, 26 }, 152, 512,
nb_mantissa_38, 0, 1, 256, 448, 0, 0 },
132 { 38, { 12, 26 }, 190, 640,
nb_mantissa_38, 0, 1, 256, 576, 0, 0 },
133 { 38, { 12, 26 }, 228, 768,
nb_mantissa_38, 0, 1, 256, 704, 0, 0 },
134 { 38, { 12, 26 }, 266, 896,
nb_mantissa_38, 0, 1, 256, 832, 0, 0 },
138 { 38, { 12, 26 }, 0, 0,
nb_mantissa_38, 0, 0, 192, 0, 256, 0 },
139 { 38, { 12, 26 }, 38, 128,
nb_mantissa_38, 0, 1, 256, 64, 448, 0 },
140 { 38, { 12, 26 }, 76, 256,
nb_mantissa_38, 0, 1, 256, 192, 704, 0 },
141 { 38, { 12, 26 }, 114, 384,
nb_mantissa_38, 0, 1, 256, 320, 0, 0 },
142 { 38, { 12, 26 }, 152, 512,
nb_mantissa_38, 0, 1, 256, 448, 0, 0 },
143 { 38, { 12, 26 }, 190, 640,
nb_mantissa_38, 0, 1, 256, 576, 0, 0 },
144 { 44, { 19, 25 }, 228, 768,
nb_mantissa_44, 1, 1, 448, 704, 960, 64 },
148 { 21, { 21 }, 0, 0,
nb_mantissa_50, 2, 0, 1152, 0, 1408, 0 },
152 { 50, { 27, 23 }, 0, 0,
nb_mantissa_50, 2, 2, 1152, 0, 1408, 896 },
156 { 38, { 12, 26 }, 0, 0,
nb_mantissa_38, 0, 1, 256, 64, 0, 0 },
157 { 38, { 12, 26 }, 38, 128,
nb_mantissa_38, 0, 1, 256, 192, 0, 0 },
158 { 38, { 12, 26 }, 76, 256,
nb_mantissa_38, 0, 1, 256, 320, 0, 0 },
159 { 38, { 12, 26 }, 114, 384,
nb_mantissa_38, 0, 1, 256, 448, 0, 0 },
160 { 38, { 12, 26 }, 152, 512,
nb_mantissa_38, 0, 1, 256, 576, 0, 0 },
161 { 38, { 12, 26 }, 190, 640,
nb_mantissa_38, 0, 1, 256, 704, 3008, 0 },
162 { 38, { 12, 26 }, 228, 768,
nb_mantissa_38, 0, 1, 256, 832, 2752, 0 },
163 { 38, { 12, 26 }, 266, 896,
nb_mantissa_38, 0, 2, 192, 960, 2560, 64 },
167 { 44, { 19, 25 }, 0, 0,
nb_mantissa_44, 1, 1, 448, 0, 3264, 0 },
168 { 38, { 12, 26 }, 44, 256,
nb_mantissa_38, 0, 1, 256, 320, 0, 0 },
169 { 38, { 12, 26 }, 82, 384,
nb_mantissa_38, 0, 1, 256, 448, 0, 0 },
170 { 38, { 12, 26 }, 120, 512,
nb_mantissa_38, 0, 1, 256, 576, 0, 0 },
171 { 38, { 12, 26 }, 158, 640,
nb_mantissa_38, 0, 1, 256, 704, 3008, 0 },
172 { 38, { 12, 26 }, 196, 768,
nb_mantissa_38, 0, 1, 256, 832, 2752, 0 },
173 { 38, { 12, 26 }, 234, 896,
nb_mantissa_38, 0, 2, 192, 960, 2560, 64 },
177 { 21, { 21 }, 0, 0,
nb_mantissa_50, 2, 2, 1152, 0, 1408, 896 },
186 { 0, 0, 0, 0 }, { 2, 1, 1, 1 }, { 3, 2, 1, 1 }, { 4, 3, 2, 1 },
187 { 5, 4, 3, 2 }, { 6, 5, 4, 3 }, { 7, 6, 5, 4 }, { 8, 7, 6, 5 },
188 { 9, 8, 7, 6 }, { 10, 9, 8, 7 }, { 11, 10, 9, 8 }, { 12, 11, 10, 9 },
189 { 13, 12, 11, 10 }, { 14, 13, 12, 11 }, { 15, 14, 13, 12 }, { 16, 15, 14, 13 },
193 { 0, 0, 0, 0 }, { 2, 1, 2, 2 }, { 3, 2, 3, 3 }, { 4, 3, 4, 4 },
194 { 5, 4, 5, 5 }, { 6, 5, 6, 6 }, { 7, 6, 7, 7 }, { 8, 7, 8, 8 },
195 { 9, 8, 9, 9 }, { 10, 9, 10, 10 }, { 11, 10, 11, 11 }, { 12, 11, 12, 12 },
196 { 13, 12, 13, 13 }, { 14, 13, 14, 14 }, { 15, 14, 15, 15 }, { 16, 15, 16, 16 },
200 0.00161569379826, 0.00185748233347, 0.00198562758548, 0.00207834078104,
201 0.00215717748523, 0.00223067096393, 0.00230299213147, 0.00237651215396,
202 0.00245275561606, 0.00253281402069, 0.00261754673613, 0.00270768786168,
203 0.00280390761895, 0.00290684998656, 0.00301715751161, 0.00313548872798,
204 0.00326253122934, 0.00339901215995, 0.00354570716636, 0.00370344845023,
205 0.00387313232586, 0.00405572653911, 0.00425227750970, 0.00446391759265,
206 0.00469187240551, 0.00493746822816, 0.00520213944619, 0.00548743597507,
207 0.00579503056737, 0.00612672586953, 0.00648446105606, 0.00687031782873,
208 0.00728652552677, 0.00773546505205, 0.00821967127415, 0.00874183354619,
209 0.00930479393832, 0.00991154278653, 0.01056521116692, 0.01126905994567,
210 0.01202646513050, 0.01284089936559, 0.01371590957417, 0.01465509096066,
211 0.01566205783408, 0.01674041199523, 0.01789370972358, 0.01912542867865,
212 0.02043893626265, 0.02183746113793, 0.02332406961796, 0.02490164852364,
213 0.02657289580178, 0.02834031974193, 0.03020624702903, 0.03217283918354,
214 0.03424211623810, 0.03641598586180, 0.03869627565015, 0.04108476601498,
215 0.04358322107390, 0.04619341515939, 0.04891715301882, 0.05175628239149,
217 0.05471237327267, 0.05778734733755, 0.06098291402413, 0.06430101352084,
218 0.06774345212186, 0.07131188644726, 0.07500780649199, 0.07883251748595,
219 0.08278712056651, 0.08687249228061, 0.09108926295730, 0.09543779401074,
220 0.09991815425851, 0.10453009536427, 0.10927302653894, 0.11414598865987,
221 0.11914762799220, 0.12427616972097, 0.12952939152560, 0.13490459744934,
222 0.14039859233595, 0.14600765712201, 0.15172752528722, 0.15755336077528,
223 0.16347973770491, 0.16950062219342, 0.17560935661442, 0.18179864660619,
224 0.18806055113821, 0.19438647593012, 0.20076717050010, 0.20719272909882,
225 0.21365259576030, 0.22013557367283, 0.22662983904194, 0.23312295958328,
226 0.23960191774666, 0.24605313873388, 0.25246252333253, 0.25881548554631,
227 0.26509699495987, 0.27129162373316, 0.27738359807707, 0.28335685401987,
228 0.28919509723179, 0.29488186663467, 0.30040060148455, 0.30573471157819,
229 0.31086765019993, 0.31578298939317, 0.32046449711227, 0.32489621578468,
230 0.32906254179156, 0.33294830535654, 0.33653885031840, 0.33982011325336,
231 0.34277870140679, 0.34540196889300, 0.34767809062480, 0.34959613344194,
232 0.35114612391958, 0.35231911235422, 0.35310723244504, 0.35350375621308,
234 0.35350314372945, 0.35310108725579, 0.35229454943591, 0.35108179521634,
235 0.34946241721522, 0.34743735430290, 0.34500890320420, 0.34218072298001,
236 0.33895783229541, 0.33534659943168, 0.33135472505060, 0.32699121776996,
237 0.32226636266000, 0.31719168282019, 0.31177989424432, 0.30604485422875,
238 0.30000150362379, 0.29366580327088, 0.28705466500775, 0.28018587766131,
239 0.27307802848095, 0.26575042049535, 0.25822298630189, 0.25051619882000,
240 0.24265097955783, 0.23464860495522, 0.22653061137548, 0.21831869932335,
241 0.21003463746705, 0.20170016703857, 0.19333690717811, 0.18496626177620,
242 0.17660932835062, 0.16828680947474, 0.16001892724986, 0.15182534128597,
243 0.14372507062477, 0.13573642000364, 0.12787691082233, 0.12016321713317,
244 0.11261110693234, 0.10523538898282, 0.09804986534955, 0.09106728977263,
245 0.08429933194438, 0.07775654768810, 0.07144835495683, 0.06538301547324,
246 0.05956762170687, 0.05400808871425, 0.04870915012107, 0.04367435714993,
247 0.03890607899172, 0.03440550179663, 0.03017262174627, 0.02620622428513,
248 0.02250383492507, 0.01906161305732, 0.01587412848221, 0.01293388032354,
249 0.01023019677288, 0.00774641320626, 0.00545109736891, 0.00325868651263,
253 0.00018861094606, 0.00033433010202, 0.00050309624485, 0.00070306161748,
254 0.00093995174533, 0.00121913067128, 0.00154606505568, 0.00192647806126,
255 0.00236641248692, 0.00287225985240, 0.00345077377440, 0.00410907465023,
256 0.00485464855241, 0.00569534163219, 0.00663935063508, 0.00769520981249,
257 0.00887177436246, 0.01017820046395, 0.01162392194150, 0.01321862359335,
258 0.01497221122468, 0.01689477844427, 0.01899657030441, 0.02128794388846,
259 0.02377932597692, 0.02648116795039, 0.02940389811590, 0.03255787167130,
260 0.03595331854986, 0.03960028941437, 0.04350860009563, 0.04768777479454,
261 0.05214698838949, 0.05689500821121, 0.06194013566525, 0.06729014809766,
262 0.07295224131210, 0.07893297315602, 0.08523820859989, 0.09187306673620,
263 0.09884187012422, 0.10614809690222, 0.11379433608064, 0.12178224641797,
264 0.13011251926531, 0.13878484574660, 0.14779788861830, 0.15714925912610,
265 0.16683549914631, 0.17685206886673, 0.18719334022589, 0.19785259629099,
266 0.20882203671372, 0.22009278936030, 0.23165492816694, 0.24349749722585,
267 0.25560854105961, 0.26797514099368, 0.28058345748882, 0.29341877824732,
268 0.30646557185942, 0.31970754671026, 0.33312771482295, 0.34670846027024,
270 0.36043161174692, 0.37427851885723, 0.38823013163645, 0.40226708279486,
271 0.41636977214436, 0.43051845264462, 0.44469331748632, 0.45887458761470,
272 0.47304259908636, 0.48717788964798, 0.50126128392546, 0.51527397661778,
273 0.52919761310050, 0.54301436685998, 0.55670701320069, 0.57025899869448,
274 0.58365450587230, 0.59687851269542, 0.60991684638414, 0.62275623122793,
275 0.63538433005035, 0.64778977905593, 0.65996221584264, 0.67189230042379,
276 0.68357172916486, 0.69499324160511, 0.70615062019861, 0.71703868307548,
277 0.72765326998919, 0.73799122168099, 0.74805035295521, 0.75782941981995,
278 0.76732808110520, 0.77654685502339, 0.78548707118622, 0.79415081863423,
279 0.80254089047207, 0.81066072573188, 0.81851434910893, 0.82610630922734,
280 0.83344161609862, 0.84052567843230, 0.84736424144524, 0.85396332579459,
281 0.86032916822973, 0.86646816451999, 0.87238681516918, 0.87809167437532,
282 0.88358930263537, 0.88888622333073, 0.89398888356256, 0.89890361943564,
283 0.90363662591861, 0.90819393133744, 0.91258137648979, 0.91680459830070,
284 0.92086901787718, 0.92477983276087, 0.92854201312583, 0.93216030163834,
285 0.93563921662343, 0.93898305819384, 0.94219591693690, 0.94528168477979,
287 0.94823843319821, 0.95106834367330, 0.95377776558539, 0.95636718335775,
288 0.95883679961479, 0.96118650212341, 0.96341583179195, 0.96552395212906,
289 0.96750962060547, 0.96937116231768, 0.97110644638309, 0.97271286544154,
290 0.97418731862798, 0.97552619834964, 0.97672538116257, 0.97778022299974,
291 0.97868555895586, 0.97943570778357, 0.98002448120255, 0.98044519806866,
292 0.98069070339493, 0.98075339216123, 0.98062523779637, 0.98029782516478,
293 0.97976238784222, 0.97900984942031, 0.97803086854002, 0.97681588731895,
294 0.97535518280755, 0.97363892108474, 0.97165721358452, 0.96940017523145,
295 0.96685798395452, 0.96402094114589, 0.96087953263194, 0.95742448973047,
296 0.95364684997699, 0.94953801711660, 0.94508981997396, 0.94029456983253,
297 0.93514511597504, 0.92963489905951, 0.92375800202883, 0.91750919827624,
298 0.91088399681406, 0.90387868421832, 0.89649036314692, 0.88871698725397,
299 0.88055739234735, 0.87201132366062, 0.86307945913336, 0.85376342861693,
300 0.84406582894455, 0.83399023482637, 0.82354120554757, 0.81272428745995,
301 0.80154601230457, 0.79001389138101, 0.77813640562199, 0.76592299164227,
302 0.75338402384395, 0.74053079267526, 0.72737547915460, 0.71393112578527,
306 0.00326887936450, 0.00550242900936, 0.00786846643791, 0.01045683453520,
307 0.01330402120132, 0.01643221072863, 0.01985798040609, 0.02359509464766,
308 0.02765559221954, 0.03205025893128, 0.03678884369614, 0.04188015679495,
309 0.04733210987781, 0.05315172583924, 0.05934513287609, 0.06591755045290,
310 0.07287327156378, 0.08021564389822, 0.08794705152307, 0.09606889811179,
311 0.10458159240070, 0.11348453632940, 0.12277611617809, 0.13245369691511,
312 0.14251361989876, 0.15295120402567, 0.16376075037904, 0.17493555039885,
313 0.18646789757072, 0.19834910260891, 0.21056951208995, 0.22311853047787,
314 0.23598464546683, 0.24915545655419, 0.26261770674500, 0.27635731727778,
315 0.29035942525136, 0.30460842402318, 0.31908800624032, 0.33378120935681,
316 0.34867046348260, 0.36373764140285, 0.37896411059909, 0.39433078709788,
317 0.40981819096657, 0.42540650327031, 0.44107562429959, 0.45680523287270,
318 0.47257484651351, 0.48836388230077, 0.50415171818214, 0.51991775454258,
319 0.53564147581496, 0.55130251191887, 0.56688069931047, 0.58235614142007,
320 0.59770926827271, 0.61292089506118, 0.62797227945823, 0.64284517745255,
321 0.65752189749349, 0.67198535273209, 0.68621911114984, 0.70020744337099,
329 { 12, 8, 4, 0 }, { 14, 10, 6, 0 }, { 12, 8, 4, 0 }
335 128, 256, 384, 512, 640, 768, 896, 1024
341 { { 354, -1 }, { 425, 425 } },
342 { { 266, -1 }, { 320, -1 } },
343 { { 213, -1 }, { 256, -1 } }
348 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
349 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
350 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
351 142, 142, 142, 142, 142, 142, 142, 142,
353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
354 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
356 -1, -1, -1, -1, -1, -1, -1, -1,
358 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
359 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
360 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
361 170, 170, 170, 170, 170, 170, 170, 170,
363 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
364 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
365 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
366 64, 64, 64, 64, 64, 64, 64, 64,
368 266, 266, 106, 106, 106, 106, 106, 106, 106, 106,
369 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
370 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
371 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
374 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
375 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
376 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
377 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
380 319, 319, 128, 128, 128, 128, 128, 128, 128, 128,
381 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
382 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
383 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
386 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
387 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
388 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
389 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
392 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
393 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
394 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
395 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
396 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
398 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
399 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
400 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
401 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
402 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
404 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
405 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
406 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
407 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
408 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
410 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
413 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
414 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
423 0, 1, 2, 4, 7, 11, 16, 29, 44, 59,
424 76, 94, 116, 142, 179, 221, 252, 285, 312, 334,
426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
427 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
428 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
429 2, 5, 8, 10, 15, 28, 42, 57, 75, 93,
430 115, 140, 177, 219, 247, 280, 308, 330, 427, 533,
432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
436 0, 2, 5, 8, 12, 21, 35, 51, 69, 89,
437 111, 138, 176, 220, 251, 284, 312, 334,
439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
442 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,
443 5, 8, 11, 18, 33, 49, 65, 84, 106, 132,
444 168, 214, 245, 279, 308, 329, 427, 533,
446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
448 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
450 0, 0, 0, 0, 0, 1, 4, 7, 10, 17,
451 31, 47, 65, 84, 107, 134, 171, 215, 250, 283,
454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458 0, 0, 0, 0, 3, 6, 9, 13, 27, 43,
459 60, 79, 100, 126, 160, 207, 242, 276, 307, 329,
466 3072, 3072, 3072, 3072, 3072, 3072, 1063, 1063, 1063, 1063,
467 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
468 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
469 1063, 1063, 1063, 1063, 1063, 1063, 1063, 1063,
471 3072, 3072, 3072, 3072, 3072, 3072, 850, 850, 850, 850,
472 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
473 850, 850, 850, 850, 850, 850, 850, 850, 850, 850,
474 850, 850, 850, 850, 850, 850, 850, 850,
476 3072, 1212, 1212, 1212, 999, 999, 999, 999, 999, 999,
477 999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
478 999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
479 999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
482 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
483 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
484 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
488 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072, 3072,
489 999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
490 999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
491 999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
492 999, 999, 999, 999, 999, 999, 999, 999, 999, 999,
494 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
495 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
496 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
497 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
498 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
504 1403, 1141, 1000, 959, 948, 957, 946, 925, 899, 871,
505 843, 815, 789, 766, 745, 727, 705, 687, 681, 686,
506 701, 725, 768, 854, 940, 1018, 1075, 1103, 1111, 1106,
507 1098, 1105, 1142, 1237, 1419, 1721, 2169, 2805,
509 1401, 1130, 995, 957, 947, 955, 941, 918, 890, 861,
510 831, 803, 777, 754, 734, 717, 698, 684, 682, 692,
511 712, 743, 798, 894, 976, 1045, 1091, 1109, 1110, 1102,
512 1098, 1116, 1174, 1300, 1526, 1884, 2401, 3072,
514 1393, 1086, 974, 949, 957, 941, 913, 878, 843, 808,
515 777, 750, 727, 708, 695, 686, 681, 689, 714, 752,
516 811, 888, 971, 1044, 1087, 1108, 1110, 1102, 1098, 1115,
517 1172, 1290, 1489, 1812, 2293, 2964, 3072, 3072,
519 1412, 1343, 1141, 1047, 1000, 974, 959, 951, 948, 947,
520 957, 953, 946, 936, 925, 906, 878, 850, 822, 795,
521 771, 745, 719, 700, 687, 681, 685, 701, 733, 784,
522 885, 977, 1047, 1092, 1110, 1108, 1099, 1102, 1138, 1233,
523 1413, 1711, 2157, 2797,
525 1412, 1336, 1130, 1040, 995, 970, 957, 950, 947, 947,
526 955, 950, 941, 930, 918, 897, 868, 838, 810, 783,
527 759, 734, 710, 693, 684, 681, 690, 712, 752, 823,
528 924, 1009, 1069, 1102, 1111, 1104, 1098, 1111, 1168, 1295,
529 1518, 1873, 2388, 3072,
531 1411, 1293, 1086, 1009, 974, 957, 949, 947, 957, 951,
532 941, 928, 913, 896, 878, 852, 817, 785, 756, 732,
533 713, 695, 683, 682, 689, 710, 746, 811, 906, 992,
534 1061, 1099, 1111, 1106, 1098, 1107, 1155, 1266, 1471, 1799,
535 2277, 2945, 3072, 3072,
537 1431, 1412, 1403, 1379, 1343, 1293, 1229, 1180, 1125, 1075,
538 1040, 1014, 996, 979, 965, 957, 951, 948, 947, 957,
539 951, 940, 924, 903, 877, 846, 815, 785, 753, 725,
540 702, 686, 681, 689, 714, 760, 847, 947, 1028, 1083,
541 1108, 1109, 1101, 1100, 1132, 1222, 1402, 1705, 2160, 2803,
543 1431, 1412, 1401, 1375, 1336, 1278, 1215, 1168, 1115, 1066,
544 1032, 1008, 991, 975, 962, 954, 950, 947, 947, 955,
545 948, 935, 916, 894, 866, 835, 803, 772, 742, 715,
546 695, 683, 683, 697, 729, 784, 887, 982, 1054, 1096,
547 1111, 1106, 1098, 1107, 1159, 1281, 1505, 1865, 2391, 3072,
549 1427, 1411, 1393, 1353, 1293, 1215, 1160, 1118, 1072, 1031,
550 1003, 984, 971, 960, 952, 948, 947, 957, 952, 941,
551 924, 902, 876, 847, 815, 781, 750, 723, 700, 685,
552 681, 691, 719, 766, 858, 958, 1039, 1089, 1109, 1108,
553 1099, 1102, 1141, 1245, 1442, 1766, 2250, 2930, 3072, 3072,
558 { -21, -197, -271, -466, 32767, 32767, 32767 },
559 { -197, -29, -244, -271, -540, 32767, 32767 },
560 { -271, -244, -29, -249, -271, -593, 32767 },
561 { -466, -271, -249, -29, -251, -271, -632 },
562 { -540, -271, -251, -29, -251, -271, -664 },
563 { -593, -271, -251, -29, -252, -271, -690 },
564 { -632, -271, -252, -29, -252, -271, -711 },
565 { -664, -271, -252, -29, -252, -271, -730 },
566 { -690, -271, -252, -29, -252, -271, -745 },
567 { -711, -271, -252, -29, -253, -271, -759 },
568 { -730, -271, -253, -29, -253, -271, -771 },
572 -192, -320, -448, -512, -448, -320, -192,
576 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 52, 51, 50,
577 49, 48, 47, 47, 46, 45, 44, 44, 43, 42, 41, 41, 40, 39, 38, 38,
578 37, 36, 36, 35, 35, 34, 33, 33, 32, 32, 31, 30, 30, 29, 29, 28,
579 28, 27, 27, 26, 26, 25, 25, 24, 24, 23, 23, 22, 22, 21, 21, 21,
580 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 17, 16, 16, 16, 15, 15,
581 15, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 12, 11, 11, 11, 11,
582 10, 10, 10, 10, 10, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8,
583 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 5, 5,
584 5, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
585 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2,
586 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
587 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
588 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
593 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 4,
594 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8,
595 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12,
596 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15,
647 for (i = 0; i < nb_words; i++, src += 2, dst += 2)
652 for (i = 0; i < nb_words; i++, src += 3)
657 for (i = 0; i < nb_words; i++, src += 3, dst += 3)
697 for (i = 0, p =
NULL, g = c->
groups; i < c->nb_groups; i++, p = g, g++) {
713 int c =
FFABS(a - b) >> 1;
719 int lwc_val[17] = { 0 };
722 for (i = 0; i < 11; i++) {
727 for (j =
FFMAX(i - 3, 0), k = 0; j <= i + 3; j++, k++) {
736 if (msk_val[i] < thr) {
737 for (j =
FFMAX(max_j - 3, 0),
738 k =
FFMAX(3 - max_j, 0);
739 j <= max_j + 3; j++, k++)
744 for (i = 0; i < 16; i++) {
745 int v =
FFMAX(lwc_val[i], -512);
746 msk_val[
i] =
FFMAX(msk_val[i] + v, 0);
752 int fg_spc,
int fg_ofs,
int msk_mod,
int snr_ofs)
764 const uint16_t *fast_decay =
fast_decay_tab[nb_code][dc_code][msk_mod];
770 psd_val[i] = (48 - exp[i]) * 64;
774 fast_leak =
log_add(fast_leak - fast_decay[i],
775 psd_val[i] - fast_gain + fast_gain_adj[i]);
776 slow_leak =
log_add(slow_leak - slow_decay,
777 psd_val[i] - slow_gain[i]);
778 msk_val[
i] =
FFMAX(fast_leak, slow_leak);
782 for (i = nb_exponent - 1; i >
band_low_tab[nb_code]; i--) {
783 fast_leak =
log_add(fast_leak - misc_decay, psd_val[i] - fast_gain);
784 msk_val[
i] =
FFMAX(msk_val[i], fast_leak);
788 msk_val[i] =
FFMAX(msk_val[i], hearing_thresh[i]);
794 int v = 16 * (snr_ofs - 64) + psd_val[i] - msk_val[i] >> 5;
795 bap[
i] =
bap_tab[av_clip_uintp2(v, 6)];
809 if (bap_strategy[i]) {
814 fg_spc[
i] = fg_spc[i - 1];
815 fg_ofs[
i] = fg_ofs[i - 1];
816 msk_mod[
i] = msk_mod[i - 1];
827 memset(c->
bap, 0,
sizeof(c->
bap));
831 for (i = 0, p =
NULL, g = c->
groups; i < c->nb_groups; i++, p = g, g++) {
835 fg_spc[i], fg_ofs[i], msk_mod[i], snr_ofs);
851 for (i = 0, p =
NULL, g = c->
groups; i < c->nb_groups; i++, p = g, g++) {
860 for (j = 0; j < start; j++)
882 for (i = 0, g = c->
groups; i < c->nb_groups; i++, g++) {
894 memset(mnt, 0, count *
sizeof(*mnt));
897 int escape = -(1 << size1 - 1);
899 for (k = 0; k <
count; k++)
902 for (k = 0; k <
count; k++) {
903 if (values[k] != escape) {
904 mnt[k] = values[k] * scale;
911 mnt[k] = ((value + 1) * a - b) *
exp;
913 mnt[k] = (value * a +
b) * exp;
917 for (k = 0; k <
count; k++)
992 for (ch = start; ch <
end; ch++) {
1029 for (i = 0; i < n2; i++)
1030 result[n2 + i] = result[n2 - i - 1];
1036 imdct->
imdct_half(imdct, result + n2, values);
1037 for (i = 0; i < n2; i++)
1038 result[i] = -result[n - i - 1];
1052 memset(
result, 0, 1152 *
sizeof(
float));
1053 for (i = 0, g = c->
groups; i < c->nb_groups; i++, g++) {
1062 for (i = 0; i < 256; i++)
1063 output[i] = history[i] +
result[i];
1064 for (i = 256; i < 896; i++)
1066 for (i = 0; i < 256; i++)
1067 history[i] =
result[896 + i];
1072 if (begin == 960 && end == 960)
1083 output[i] *= a * (FRAME_SAMPLES - i - 1) + b *
i;
1116 int *got_frame_ptr,
AVPacket *avpkt)
1183 for (i = 0; i < 3; i++)
1195 for (i = 1; i < 17; i++)
1198 for (i = 2; i < 16; i++) {
1208 for (i = 1; i < 17; i++) {
1212 for (j = 1; j < 4; j++)
1213 mantissa_tab3[i][j] = 1.0
f / (1 << i) + 1.0f / (1 << j) - 1.0
f / (1 << i + j);
1218 for (i = 0; i < 25; i++) {
1223 for (i = 1; i < 1024; i++)
1228 for (i = 0; i < 128; i++)
1232 for (i = 0; i < 192; i++)
1236 for (i = 0; i < 192; i++)
1238 for (i = 0; i < 64; i++)
1242 for (i = 0; i < 64; i++)
1244 for (i = 0; i < 192; i++)
1248 for (i = 0; i < 128; i++)
1250 for (i = 0; i < 64; i++)
1255 for (i = 0; i < 640; i++)
1257 for (i = 0; i < 256; i++)
1261 for (i = 0; i < 192; i++)
1265 for (i = 0; i < 256; i++)
1269 for (i = 0; i < 256; i++)
1273 for (i = 0; i < 448; i++)
1286 for (i = 0; i < 3; i++)
static const uint8_t nb_groups_tab[4]
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
#define AV_CH_LAYOUT_7POINT1
int exp_strategy[MAX_GROUPS]
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
static const DBEGroup grp_tab_1[8]
static float mantissa_tab3[17][4]
static int filter_frame(DBEDecodeContext *s, AVFrame *frame)
This structure describes decoded (raw) audio or video data.
static void apply_gain(DBEDecodeContext *s, int begin, int end, float *output)
ptrdiff_t const GLvoid * data
static void flush(AVCodecContext *avctx)
Dolby E reading context used by decoder and parser.
static void put_bits(Jpeg2000EncoderContext *s, int val, int n)
put n times val bit
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
#define AV_LOG_WARNING
Something somehow does not look correct.
av_cold void ff_kbd_window_init(float *window, float alpha, int n)
Generate a Kaiser-Bessel Derived Window.
uint8_t nb_bias_exp[MAX_MSTR_EXP]
Memory handling functions.
static float win(SuperEqualizerContext *s, float n, int N)
static av_cold int init(AVCodecContext *avctx)
DBEGroup groups[MAX_GROUPS]
static const uint8_t mantissa_size1[16][4]
static const int8_t lfe_channel_tab[MAX_PROG_CONF+1]
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
static const uint8_t ht_code_tab[5]
static const DBEGroup grp_tab_6[7]
#define AV_CH_LAYOUT_4POINT0
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_WB24 unsigned int_TMPL AV_RB16
static const uint8_t ch_reorder_4[4]
static const DBEGroup grp_tab_5[8]
static const uint8_t mantissa_size2[16][4]
static int get_sbits(GetBitContext *s, int n)
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
static const uint16_t fast_decay_tab[3][2][2][50]
static const uint8_t band_ofs_tab[3][4]
#define av_assert0(cond)
assert() equivalent, that is always enabled.
static int parse_metadata_ext(DBEDecodeContext *s1)
static int parse_channel(DBEDecodeContext *s1, int ch, int seg_id)
#define FF_CODEC_CAP_INIT_THREADSAFE
The codec does not modify any global variables in the init function, allowing to call the init functi...
enum AVSampleFormat sample_fmt
audio sample format
uint8_t buffer[1024 *3+AV_INPUT_BUFFER_PADDING_SIZE]
static int dolby_e_decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt)
static const int16_t lwc_gain_tab[11][7]
static const OptionGroupDef groups[]
static av_cold int end(AVCodecContext *avctx)
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
#define LOCAL_ALIGNED_32(t, v,...)
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce output
GLsizei GLboolean const GLfloat * value
static const uint16_t fast_gain_tab[8]
#define u(width, name, range_min, range_max)
static const uint8_t ch_reorder_n[8]
#define DECLARE_ALIGNED(n, t, v)
Declare a variable that is aligned in memory.
static const float short_window3[64]
static const uint16_t hearing_thresh_tab[3][3][50]
bitstream reader API header.
static const uint8_t dc_code_tab[5]
static const uint8_t nb_mantissa_50[50]
#define AV_CH_LAYOUT_5POINT1
static const uint8_t imdct_bits_tab[3]
static int parse_key(DBEContext *s)
static int get_bits_left(GetBitContext *gb)
static int parse_bit_alloc(DBEDecodeContext *s1, DBEChannel *c)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
static float mantissa_tab2[17][4]
av_cold AVFloatDSPContext * avpriv_float_dsp_alloc(int bit_exact)
Allocate a float DSP context.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static const uint8_t ch_reorder_8[8]
static const int16_t lwc_adj_tab[7]
static const DBEGroup grp_tab_2[7]
static const uint8_t bap_tab[64]
DBEChannel channels[MAX_SEGMENTS][MAX_CHANNELS]
static const DBEGroup grp_tab_4[1]
const char * name
Name of the codec implementation.
void(* imdct_calc)(struct FFTContext *s, FFTSample *output, const FFTSample *input)
AVCodec ff_dolby_e_decoder
static const uint16_t slow_gain_tab[3][2][50]
static int parse_indices(DBEContext *s, DBEChannel *c)
static av_cold int dolby_e_init(AVCodecContext *avctx)
uint64_t channel_layout
Audio channel layout.
static const uint8_t nb_mstr_exp_tab[4]
int ff_dolby_e_parse_init(DBEContext *s, const uint8_t *buf, int buf_size)
Initialize DBEContext.
static const uint16_t sample_rate_tab[16]
static const uint16_t slow_decay_tab[2][2]
int err_recognition
Error recognition; may misdetect some more or less valid parts as errors.
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return values
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame For filters that do not use the this method is called when a frame is wanted on an output For a it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return or at least make progress towards producing a frame
#define FFABS(a)
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable ...
int ff_dolby_e_parse_header(DBEContext *s, DolbyEHeaderInfo *hdr)
Parse Dolby E metadata.
#define AV_EF_EXPLODE
abort decoding on minor error detection
static const uint16_t fast_gain_adj_tab[3][2][62]
#define AVERROR_PATCHWELCOME
Not yet implemented in FFmpeg, patches welcome.
float mantissas[MAX_MANTISSAS]
DolbyEHeaderInfo metadata
static const uint8_t nb_mantissa_44[44]
static void transform(DBEDecodeContext *s1, DBEChannel *c, float *history, float *output)
static const uint16_t misc_decay_tab[3][2][2]
static void imdct_calc(DBEDecodeContext *s1, DBEGroup *g, float *result, float *values)
AVSampleFormat
Audio sample formats.
uint64_t_TMPL AV_WL64 unsigned int_TMPL AV_WL32 unsigned int_TMPL AV_WL24 unsigned int_TMPL AV_WL16 uint64_t_TMPL AV_WB64 unsigned int_TMPL AV_WB32 unsigned int_TMPL AV_RB24
int sample_rate
samples per second
#define AV_CH_LAYOUT_NATIVE
Channel mask value used for AVCodecContext.request_channel_layout to indicate that the user requests ...
static const uint8_t nb_mantissa_38[38]
main external API structure.
int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
Get a buffer for a frame.
static void calc_lowcomp(int *msk_val)
static const DBEGroup grp_tab_3[1]
static const float short_window2[192]
static float exponent_tab[50]
static unsigned int get_bits1(GetBitContext *s)
static float gain_tab[1024]
static int parse_mantissas(DBEContext *s, DBEChannel *c)
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext.
static int parse_audio(DBEDecodeContext *s1, int start, int end, int seg_id)
void(* vector_fmul_scalar)(float *dst, const float *src, float mul, int len)
Multiply a vector of floats by a scalar float.
static const uint8_t log_add_tab[212]
static int log_add(int a, int b)
static const float start_window[192]
static const DBEGroup grp_tab_7[1]
void(* imdct_half)(struct FFTContext *s, FFTSample *output, const FFTSample *input)
static av_cold void dolby_e_flush(AVCodecContext *avctx)
void avpriv_report_missing_feature(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature.
static const DBEGroup *const frm_ofs_tab[2][4]
static void bit_allocate(int nb_exponent, int nb_code, int fr_code, int *exp, int *bap, int fg_spc, int fg_ofs, int msk_mod, int snr_ofs)
const uint8_t * nb_mantissa
common internal api header.
static void flush_put_bits(PutBitContext *s)
Pad the end of the output stream with zeros.
float history[MAX_CHANNELS][256]
void(* vector_fmul_add)(float *dst, const float *src0, const float *src1, const float *src2, int len)
Calculate the entry wise product of two vectors of floats, add a third vector of floats and store the...
static const DBEGroup grp_tab_0[1]
static void init_put_bits(PutBitContext *s, uint8_t *buffer, int buffer_size)
Initialize the PutBitContext s.
#define AVERROR_UNKNOWN
Unknown error, typically from an external library.
int exponents[MAX_EXPONENTS]
int channels
number of audio channels
static int parse_exponents(DBEContext *s, DBEChannel *c)
static int ff_thread_once(char *control, void(*routine)(void))
static int skip_input(DBEContext *s, int nb_words)
static int convert_input(DBEContext *s, int nb_words, int key)
static av_cold void init_tables(void)
static float mantissa_tab1[17][4]
and forward the result(frame or status change) to the corresponding input.If nothing is possible
static enum AVSampleFormat sample_fmts[]
static const uint8_t band_low_tab[3]
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later.That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another.Frame references ownership and permissions
uint8_t ** extended_data
pointers to the data planes/channels.
uint64_t request_channel_layout
Request decoder to use this channel layout if it can (0 for default)
This structure stores compressed data.
int nb_samples
number of audio samples (per channel) described by this frame
static void unbias_exponents(DBEContext *s, DBEChannel *c, DBEGroup *g)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
static const uint8_t ch_reorder_6[6]
static int parse_meter(DBEDecodeContext *s1)
static float window[3712]
static av_cold int dolby_e_close(AVCodecContext *avctx)