73 #define OFFSET(x) offsetof(CiescopeContext, x) 74 #define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM 80 {
"ebu",
"EBU Y'U'V' (PAL/SECAM) (ITU-R BT.470 System B, G)", 0,
AV_OPT_TYPE_CONST, {.i64=
EBUsystem}, 0, 0,
FLAGS,
"system" },
81 {
"470bg",
"EBU Y'U'V' (PAL/SECAM) (ITU-R BT.470 System B, G)", 0,
AV_OPT_TYPE_CONST, {.i64=
EBUsystem}, 0, 0,
FLAGS,
"system" },
155 outlink->
h = outlink->
w = s->
size;
174 { 0.175560, 0.005294, 0.819146 },
175 { 0.175483, 0.005286, 0.819231 },
176 { 0.175400, 0.005279, 0.819321 },
177 { 0.175317, 0.005271, 0.819412 },
178 { 0.175237, 0.005263, 0.819500 },
179 { 0.175161, 0.005256, 0.819582 },
180 { 0.175088, 0.005247, 0.819665 },
181 { 0.175015, 0.005236, 0.819749 },
182 { 0.174945, 0.005226, 0.819829 },
183 { 0.174880, 0.005221, 0.819899 },
184 { 0.174821, 0.005221, 0.819959 },
185 { 0.174770, 0.005229, 0.820001 },
186 { 0.174722, 0.005238, 0.820040 },
187 { 0.174665, 0.005236, 0.820098 },
188 { 0.174595, 0.005218, 0.820187 },
189 { 0.174510, 0.005182, 0.820309 },
190 { 0.174409, 0.005127, 0.820464 },
191 { 0.174308, 0.005068, 0.820624 },
192 { 0.174222, 0.005017, 0.820761 },
193 { 0.174156, 0.004981, 0.820863 },
194 { 0.174112, 0.004964, 0.820924 },
195 { 0.174088, 0.004964, 0.820948 },
196 { 0.174073, 0.004973, 0.820955 },
197 { 0.174057, 0.004982, 0.820961 },
198 { 0.174036, 0.004986, 0.820978 },
199 { 0.174008, 0.004981, 0.821012 },
200 { 0.173972, 0.004964, 0.821064 },
201 { 0.173932, 0.004943, 0.821125 },
202 { 0.173889, 0.004926, 0.821185 },
203 { 0.173845, 0.004916, 0.821239 },
204 { 0.173801, 0.004915, 0.821284 },
205 { 0.173754, 0.004925, 0.821321 },
206 { 0.173705, 0.004937, 0.821358 },
207 { 0.173655, 0.004944, 0.821401 },
208 { 0.173606, 0.004940, 0.821454 },
209 { 0.173560, 0.004923, 0.821517 },
210 { 0.173514, 0.004895, 0.821590 },
211 { 0.173468, 0.004865, 0.821667 },
212 { 0.173424, 0.004836, 0.821740 },
213 { 0.173380, 0.004813, 0.821807 },
214 { 0.173337, 0.004797, 0.821866 },
215 { 0.173291, 0.004786, 0.821923 },
216 { 0.173238, 0.004779, 0.821983 },
217 { 0.173174, 0.004775, 0.822051 },
218 { 0.173101, 0.004774, 0.822125 },
219 { 0.173021, 0.004775, 0.822204 },
220 { 0.172934, 0.004781, 0.822285 },
221 { 0.172843, 0.004791, 0.822366 },
222 { 0.172751, 0.004799, 0.822450 },
223 { 0.172662, 0.004802, 0.822536 },
224 { 0.172577, 0.004799, 0.822624 },
225 { 0.172489, 0.004795, 0.822715 },
226 { 0.172396, 0.004796, 0.822808 },
227 { 0.172296, 0.004803, 0.822901 },
228 { 0.172192, 0.004815, 0.822993 },
229 { 0.172087, 0.004833, 0.823081 },
230 { 0.171982, 0.004855, 0.823163 },
231 { 0.171871, 0.004889, 0.823240 },
232 { 0.171741, 0.004939, 0.823319 },
233 { 0.171587, 0.005010, 0.823402 },
234 { 0.171407, 0.005102, 0.823490 },
235 { 0.171206, 0.005211, 0.823583 },
236 { 0.170993, 0.005334, 0.823674 },
237 { 0.170771, 0.005470, 0.823759 },
238 { 0.170541, 0.005621, 0.823838 },
239 { 0.170301, 0.005789, 0.823911 },
240 { 0.170050, 0.005974, 0.823976 },
241 { 0.169786, 0.006177, 0.824037 },
242 { 0.169505, 0.006398, 0.824097 },
243 { 0.169203, 0.006639, 0.824158 },
244 { 0.168878, 0.006900, 0.824222 },
245 { 0.168525, 0.007184, 0.824291 },
246 { 0.168146, 0.007491, 0.824363 },
247 { 0.167746, 0.007821, 0.824433 },
248 { 0.167328, 0.008175, 0.824496 },
249 { 0.166895, 0.008556, 0.824549 },
250 { 0.166446, 0.008964, 0.824589 },
251 { 0.165977, 0.009402, 0.824622 },
252 { 0.165483, 0.009865, 0.824652 },
253 { 0.164963, 0.010351, 0.824687 },
254 { 0.164412, 0.010858, 0.824731 },
255 { 0.163828, 0.011385, 0.824787 },
256 { 0.163210, 0.011937, 0.824853 },
257 { 0.162552, 0.012520, 0.824928 },
258 { 0.161851, 0.013137, 0.825011 },
259 { 0.161105, 0.013793, 0.825102 },
260 { 0.160310, 0.014491, 0.825199 },
261 { 0.159466, 0.015232, 0.825302 },
262 { 0.158573, 0.016015, 0.825412 },
263 { 0.157631, 0.016840, 0.825529 },
264 { 0.156641, 0.017705, 0.825654 },
265 { 0.155605, 0.018609, 0.825786 },
266 { 0.154525, 0.019556, 0.825920 },
267 { 0.153397, 0.020554, 0.826049 },
268 { 0.152219, 0.021612, 0.826169 },
269 { 0.150985, 0.022740, 0.826274 },
270 { 0.149691, 0.023950, 0.826359 },
271 { 0.148337, 0.025247, 0.826416 },
272 { 0.146928, 0.026635, 0.826437 },
273 { 0.145468, 0.028118, 0.826413 },
274 { 0.143960, 0.029703, 0.826337 },
275 { 0.142405, 0.031394, 0.826201 },
276 { 0.140796, 0.033213, 0.825991 },
277 { 0.139121, 0.035201, 0.825679 },
278 { 0.137364, 0.037403, 0.825233 },
279 { 0.135503, 0.039879, 0.824618 },
280 { 0.133509, 0.042692, 0.823798 },
281 { 0.131371, 0.045876, 0.822753 },
282 { 0.129086, 0.049450, 0.821464 },
283 { 0.126662, 0.053426, 0.819912 },
284 { 0.124118, 0.057803, 0.818079 },
285 { 0.121469, 0.062588, 0.815944 },
286 { 0.118701, 0.067830, 0.813468 },
287 { 0.115807, 0.073581, 0.810612 },
288 { 0.112776, 0.079896, 0.807328 },
289 { 0.109594, 0.086843, 0.803563 },
290 { 0.106261, 0.094486, 0.799253 },
291 { 0.102776, 0.102864, 0.794360 },
292 { 0.099128, 0.112007, 0.788865 },
293 { 0.095304, 0.121945, 0.782751 },
294 { 0.091294, 0.132702, 0.776004 },
295 { 0.087082, 0.144317, 0.768601 },
296 { 0.082680, 0.156866, 0.760455 },
297 { 0.078116, 0.170420, 0.751464 },
298 { 0.073437, 0.185032, 0.741531 },
299 { 0.068706, 0.200723, 0.730571 },
300 { 0.063993, 0.217468, 0.718539 },
301 { 0.059316, 0.235254, 0.705430 },
302 { 0.054667, 0.254096, 0.691238 },
303 { 0.050031, 0.274002, 0.675967 },
304 { 0.045391, 0.294976, 0.659633 },
305 { 0.040757, 0.316981, 0.642262 },
306 { 0.036195, 0.339900, 0.623905 },
307 { 0.031756, 0.363598, 0.604646 },
308 { 0.027494, 0.387921, 0.584584 },
309 { 0.023460, 0.412703, 0.563837 },
310 { 0.019705, 0.437756, 0.542539 },
311 { 0.016268, 0.462955, 0.520777 },
312 { 0.013183, 0.488207, 0.498610 },
313 { 0.010476, 0.513404, 0.476120 },
314 { 0.008168, 0.538423, 0.453409 },
315 { 0.006285, 0.563068, 0.430647 },
316 { 0.004875, 0.587116, 0.408008 },
317 { 0.003982, 0.610447, 0.385570 },
318 { 0.003636, 0.633011, 0.363352 },
319 { 0.003859, 0.654823, 0.341318 },
320 { 0.004646, 0.675898, 0.319456 },
321 { 0.006011, 0.696120, 0.297869 },
322 { 0.007988, 0.715342, 0.276670 },
323 { 0.010603, 0.733413, 0.255984 },
324 { 0.013870, 0.750186, 0.235943 },
325 { 0.017766, 0.765612, 0.216622 },
326 { 0.022244, 0.779630, 0.198126 },
327 { 0.027273, 0.792104, 0.180623 },
328 { 0.032820, 0.802926, 0.164254 },
329 { 0.038852, 0.812016, 0.149132 },
330 { 0.045328, 0.819391, 0.135281 },
331 { 0.052177, 0.825164, 0.122660 },
332 { 0.059326, 0.829426, 0.111249 },
333 { 0.066716, 0.832274, 0.101010 },
334 { 0.074302, 0.833803, 0.091894 },
335 { 0.082053, 0.834090, 0.083856 },
336 { 0.089942, 0.833289, 0.076769 },
337 { 0.097940, 0.831593, 0.070468 },
338 { 0.106021, 0.829178, 0.064801 },
339 { 0.114161, 0.826207, 0.059632 },
340 { 0.122347, 0.822770, 0.054882 },
341 { 0.130546, 0.818928, 0.050526 },
342 { 0.138702, 0.814774, 0.046523 },
343 { 0.146773, 0.810395, 0.042832 },
344 { 0.154722, 0.805864, 0.039414 },
345 { 0.162535, 0.801238, 0.036226 },
346 { 0.170237, 0.796519, 0.033244 },
347 { 0.177850, 0.791687, 0.030464 },
348 { 0.185391, 0.786728, 0.027881 },
349 { 0.192876, 0.781629, 0.025495 },
350 { 0.200309, 0.776399, 0.023292 },
351 { 0.207690, 0.771055, 0.021255 },
352 { 0.215030, 0.765595, 0.019375 },
353 { 0.222337, 0.760020, 0.017643 },
354 { 0.229620, 0.754329, 0.016051 },
355 { 0.236885, 0.748524, 0.014591 },
356 { 0.244133, 0.742614, 0.013253 },
357 { 0.251363, 0.736606, 0.012031 },
358 { 0.258578, 0.730507, 0.010916 },
359 { 0.265775, 0.724324, 0.009901 },
360 { 0.272958, 0.718062, 0.008980 },
361 { 0.280129, 0.711725, 0.008146 },
362 { 0.287292, 0.705316, 0.007391 },
363 { 0.294450, 0.698842, 0.006708 },
364 { 0.301604, 0.692308, 0.006088 },
365 { 0.308760, 0.685712, 0.005528 },
366 { 0.315914, 0.679063, 0.005022 },
367 { 0.323066, 0.672367, 0.004566 },
368 { 0.330216, 0.665628, 0.004156 },
369 { 0.337363, 0.658848, 0.003788 },
370 { 0.344513, 0.652028, 0.003459 },
371 { 0.351664, 0.645172, 0.003163 },
372 { 0.358814, 0.638287, 0.002899 },
373 { 0.365959, 0.631379, 0.002662 },
374 { 0.373102, 0.624451, 0.002448 },
375 { 0.380244, 0.617502, 0.002254 },
376 { 0.387379, 0.610542, 0.002079 },
377 { 0.394507, 0.603571, 0.001922 },
378 { 0.401626, 0.596592, 0.001782 },
379 { 0.408736, 0.589607, 0.001657 },
380 { 0.415836, 0.582618, 0.001546 },
381 { 0.422921, 0.575631, 0.001448 },
382 { 0.429989, 0.568649, 0.001362 },
383 { 0.437036, 0.561676, 0.001288 },
384 { 0.444062, 0.554714, 0.001224 },
385 { 0.451065, 0.547766, 0.001169 },
386 { 0.458041, 0.540837, 0.001123 },
387 { 0.464986, 0.533930, 0.001084 },
388 { 0.471899, 0.527051, 0.001051 },
389 { 0.478775, 0.520202, 0.001023 },
390 { 0.485612, 0.513389, 0.001000 },
391 { 0.492405, 0.506615, 0.000980 },
392 { 0.499151, 0.499887, 0.000962 },
393 { 0.505845, 0.493211, 0.000944 },
394 { 0.512486, 0.486591, 0.000923 },
395 { 0.519073, 0.480029, 0.000899 },
396 { 0.525600, 0.473527, 0.000872 },
397 { 0.532066, 0.467091, 0.000843 },
398 { 0.538463, 0.460725, 0.000812 },
399 { 0.544787, 0.454434, 0.000779 },
400 { 0.551031, 0.448225, 0.000744 },
401 { 0.557193, 0.442099, 0.000708 },
402 { 0.563269, 0.436058, 0.000673 },
403 { 0.569257, 0.430102, 0.000641 },
404 { 0.575151, 0.424232, 0.000616 },
405 { 0.580953, 0.418447, 0.000601 },
406 { 0.586650, 0.412758, 0.000591 },
407 { 0.592225, 0.407190, 0.000586 },
408 { 0.597658, 0.401762, 0.000580 },
409 { 0.602933, 0.396497, 0.000571 },
410 { 0.608035, 0.391409, 0.000556 },
411 { 0.612977, 0.386486, 0.000537 },
412 { 0.617779, 0.381706, 0.000516 },
413 { 0.622459, 0.377047, 0.000493 },
414 { 0.627037, 0.372491, 0.000472 },
415 { 0.631521, 0.368026, 0.000453 },
416 { 0.635900, 0.363665, 0.000435 },
417 { 0.640156, 0.359428, 0.000416 },
418 { 0.644273, 0.355331, 0.000396 },
419 { 0.648233, 0.351395, 0.000372 },
420 { 0.652028, 0.347628, 0.000344 },
421 { 0.655669, 0.344018, 0.000313 },
422 { 0.659166, 0.340553, 0.000281 },
423 { 0.662528, 0.337221, 0.000251 },
424 { 0.665764, 0.334011, 0.000226 },
425 { 0.668874, 0.330919, 0.000207 },
426 { 0.671859, 0.327947, 0.000194 },
427 { 0.674720, 0.325095, 0.000185 },
428 { 0.677459, 0.322362, 0.000179 },
429 { 0.680079, 0.319747, 0.000174 },
430 { 0.682582, 0.317249, 0.000170 },
431 { 0.684971, 0.314863, 0.000167 },
432 { 0.687250, 0.312586, 0.000164 },
433 { 0.689426, 0.310414, 0.000160 },
434 { 0.691504, 0.308342, 0.000154 },
435 { 0.693490, 0.306366, 0.000145 },
436 { 0.695389, 0.304479, 0.000133 },
437 { 0.697206, 0.302675, 0.000119 },
438 { 0.698944, 0.300950, 0.000106 },
439 { 0.700606, 0.299301, 0.000093 },
440 { 0.702193, 0.297725, 0.000083 },
441 { 0.703709, 0.296217, 0.000074 },
442 { 0.705163, 0.294770, 0.000067 },
443 { 0.706563, 0.293376, 0.000061 },
444 { 0.707918, 0.292027, 0.000055 },
445 { 0.709231, 0.290719, 0.000050 },
446 { 0.710500, 0.289453, 0.000047 },
447 { 0.711724, 0.288232, 0.000044 },
448 { 0.712901, 0.287057, 0.000041 },
449 { 0.714032, 0.285929, 0.000040 },
450 { 0.715117, 0.284845, 0.000038 },
451 { 0.716159, 0.283804, 0.000036 },
452 { 0.717159, 0.282806, 0.000035 },
453 { 0.718116, 0.281850, 0.000034 },
454 { 0.719033, 0.280935, 0.000032 },
455 { 0.719912, 0.280058, 0.000030 },
456 { 0.720753, 0.279219, 0.000028 },
457 { 0.721555, 0.278420, 0.000026 },
458 { 0.722315, 0.277662, 0.000023 },
459 { 0.723032, 0.276948, 0.000020 },
460 { 0.723702, 0.276282, 0.000016 },
461 { 0.724328, 0.275660, 0.000012 },
462 { 0.724914, 0.275078, 0.000007 },
463 { 0.725467, 0.274530, 0.000003 },
464 { 0.725992, 0.274008, 0.000000 },
465 { 0.726495, 0.273505, 0.000000 },
466 { 0.726975, 0.273025, 0.000000 },
467 { 0.727432, 0.272568, 0.000000 },
468 { 0.727864, 0.272136, 0.000000 },
469 { 0.728272, 0.271728, 0.000000 },
470 { 0.728656, 0.271344, 0.000000 },
471 { 0.729020, 0.270980, 0.000000 },
472 { 0.729361, 0.270639, 0.000000 },
473 { 0.729678, 0.270322, 0.000000 },
474 { 0.729969, 0.270031, 0.000000 },
475 { 0.730234, 0.269766, 0.000000 },
476 { 0.730474, 0.269526, 0.000000 },
477 { 0.730693, 0.269307, 0.000000 },
478 { 0.730896, 0.269104, 0.000000 },
479 { 0.731089, 0.268911, 0.000000 },
480 { 0.731280, 0.268720, 0.000000 },
481 { 0.731467, 0.268533, 0.000000 },
482 { 0.731650, 0.268350, 0.000000 },
483 { 0.731826, 0.268174, 0.000000 },
484 { 0.731993, 0.268007, 0.000000 },
485 { 0.732150, 0.267850, 0.000000 },
486 { 0.732300, 0.267700, 0.000000 },
487 { 0.732443, 0.267557, 0.000000 },
488 { 0.732581, 0.267419, 0.000000 },
489 { 0.732719, 0.267281, 0.000000 },
490 { 0.732859, 0.267141, 0.000000 },
491 { 0.733000, 0.267000, 0.000000 },
492 { 0.733142, 0.266858, 0.000000 },
493 { 0.733281, 0.266719, 0.000000 },
494 { 0.733417, 0.266583, 0.000000 },
495 { 0.733551, 0.266449, 0.000000 },
496 { 0.733683, 0.266317, 0.000000 },
497 { 0.733813, 0.266187, 0.000000 },
498 { 0.733936, 0.266064, 0.000000 },
499 { 0.734047, 0.265953, 0.000000 },
500 { 0.734143, 0.265857, 0.000000 },
501 { 0.734221, 0.265779, 0.000000 },
502 { 0.734286, 0.265714, 0.000000 },
503 { 0.734341, 0.265659, 0.000000 },
504 { 0.734390, 0.265610, 0.000000 },
505 { 0.734438, 0.265562, 0.000000 },
506 { 0.734482, 0.265518, 0.000000 },
507 { 0.734523, 0.265477, 0.000000 },
508 { 0.734560, 0.265440, 0.000000 },
509 { 0.734592, 0.265408, 0.000000 },
510 { 0.734621, 0.265379, 0.000000 },
511 { 0.734649, 0.265351, 0.000000 },
512 { 0.734673, 0.265327, 0.000000 },
513 { 0.734690, 0.265310, 0.000000 },
514 { 0.734690, 0.265310, 0.000000 },
515 { 0.734690, 0.265310, 0.000000 },
516 { 0.734690, 0.265310, 0.000000 },
517 { 0.734690, 0.265310, 0.000000 },
518 { 0.734690, 0.265310, 0.000000 },
519 { 0.734690, 0.265310, 0.000000 },
520 { 0.734690, 0.265310, 0.000000 },
521 { 0.734690, 0.265310, 0.000000 },
522 { 0.734690, 0.265310, 0.000000 },
523 { 0.734690, 0.265310, 0.000000 },
524 { 0.734690, 0.265310, 0.000000 },
525 { 0.734690, 0.265310, 0.000000 },
526 { 0.734690, 0.265310, 0.000000 },
527 { 0.734690, 0.265310, 0.000000 },
528 { 0.734690, 0.265310, 0.000000 },
529 { 0.734690, 0.265310, 0.000000 },
530 { 0.734690, 0.265310, 0.000000 },
531 { 0.734690, 0.265310, 0.000000 },
532 { 0.734690, 0.265310, 0.000000 },
533 { 0.734690, 0.265310, 0.000000 },
534 { 0.734690, 0.265310, 0.000000 },
535 { 0.734690, 0.265310, 0.000000 },
536 { 0.734690, 0.265310, 0.000000 },
537 { 0.734690, 0.265310, 0.000000 },
538 { 0.734690, 0.265310, 0.000000 },
539 { 0.734690, 0.265310, 0.000000 },
540 { 0.734690, 0.265310, 0.000000 },
541 { 0.734690, 0.265310, 0.000000 },
542 { 0.734690, 0.265310, 0.000000 },
543 { 0.734690, 0.265310, 0.000000 },
544 { 0.734690, 0.265310, 0.000000 },
545 { 0.734690, 0.265310, 0.000000 },
546 { 0.734690, 0.265310, 0.000000 },
547 { 0.734690, 0.265310, 0.000000 },
548 { 0.734690, 0.265310, 0.000000 },
549 { 0.734690, 0.265310, 0.000000 },
550 { 0.734690, 0.265310, 0.000000 },
551 { 0.734690, 0.265310, 0.000000 },
552 { 0.734690, 0.265310, 0.000000 },
553 { 0.734690, 0.265310, 0.000000 },
554 { 0.734690, 0.265310, 0.000000 },
555 { 0.734690, 0.265310, 0.000000 },
556 { 0.734690, 0.265310, 0.000000 },
557 { 0.734690, 0.265310, 0.000000 },
558 { 0.734690, 0.265310, 0.000000 },
559 { 0.734690, 0.265310, 0.000000 },
560 { 0.734690, 0.265310, 0.000000 },
561 { 0.734690, 0.265310, 0.000000 },
562 { 0.734690, 0.265310, 0.000000 },
563 { 0.734690, 0.265310, 0.000000 },
564 { 0.734690, 0.265310, 0.000000 },
565 { 0.734690, 0.265310, 0.000000 },
566 { 0.734690, 0.265310, 0.000000 },
567 { 0.734690, 0.265310, 0.000000 },
568 { 0.734690, 0.265310, 0.000000 },
569 { 0.734690, 0.265310, 0.000000 },
570 { 0.734690, 0.265310, 0.000000 },
571 { 0.734690, 0.265310, 0.000000 },
572 { 0.734690, 0.265310, 0.000000 },
573 { 0.734690, 0.265310, 0.000000 },
574 { 0.734690, 0.265310, 0.000000 },
575 { 0.734690, 0.265310, 0.000000 },
576 { 0.734690, 0.265310, 0.000000 },
577 { 0.734690, 0.265310, 0.000000 },
578 { 0.734690, 0.265310, 0.000000 },
579 { 0.734690, 0.265310, 0.000000 },
580 { 0.734690, 0.265310, 0.000000 },
581 { 0.734690, 0.265310, 0.000000 },
582 { 0.734690, 0.265310, 0.000000 },
583 { 0.734690, 0.265310, 0.000000 },
584 { 0.734690, 0.265310, 0.000000 },
585 { 0.734690, 0.265310, 0.000000 },
586 { 0.734690, 0.265310, 0.000000 },
587 { 0.734690, 0.265310, 0.000000 },
588 { 0.734690, 0.265310, 0.000000 },
589 { 0.734690, 0.265310, 0.000000 },
590 { 0.734690, 0.265310, 0.000000 },
591 { 0.734690, 0.265310, 0.000000 },
592 { 0.734690, 0.265310, 0.000000 },
593 { 0.734690, 0.265310, 0.000000 },
594 { 0.734690, 0.265310, 0.000000 },
595 { 0.734690, 0.265310, 0.000000 },
596 { 0.734690, 0.265310, 0.000000 },
597 { 0.734690, 0.265310, 0.000000 },
598 { 0.734690, 0.265310, 0.000000 },
599 { 0.734690, 0.265310, 0.000000 },
600 { 0.734690, 0.265310, 0.000000 },
601 { 0.734690, 0.265310, 0.000000 },
602 { 0.734690, 0.265310, 0.000000 },
603 { 0.734690, 0.265310, 0.000000 },
604 { 0.734690, 0.265310, 0.000000 },
605 { 0.734690, 0.265310, 0.000000 },
606 { 0.734690, 0.265310, 0.000000 },
607 { 0.734690, 0.265310, 0.000000 },
608 { 0.734690, 0.265310, 0.000000 },
609 { 0.734690, 0.265310, 0.000000 },
610 { 0.734690, 0.265310, 0.000000 },
611 { 0.734690, 0.265310, 0.000000 },
612 { 0.734690, 0.265310, 0.000000 },
613 { 0.734690, 0.265310, 0.000000 },
614 { 0.734690, 0.265310, 0.000000 },
615 { 0.734690, 0.265310, 0.000000 },
616 { 0.734690, 0.265310, 0.000000 },
617 { 0.734690, 0.265310, 0.000000 },
618 { 0.734690, 0.265310, 0.000000 },
619 { 0.734690, 0.265310, 0.000000 },
620 { 0.734690, 0.265310, 0.000000 },
621 { 0.734690, 0.265310, 0.000000 },
622 { 0.734690, 0.265310, 0.000000 },
623 { 0.734690, 0.265310, 0.000000 },
624 { 0.734690, 0.265310, 0.000000 },
625 { 0.734690, 0.265310, 0.000000 },
626 { 0.734690, 0.265310, 0.000000 },
627 { 0.734690, 0.265310, 0.000000 },
628 { 0.734690, 0.265310, 0.000000 },
629 { 0.734690, 0.265310, 0.000000 },
630 { 0.734690, 0.265310, 0.000000 },
631 { 0.734690, 0.265310, 0.000000 },
632 { 0.734690, 0.265310, 0.000000 },
633 { 0.734690, 0.265310, 0.000000 },
634 { 0.734690, 0.265310, 0.000000 },
635 { 0.734690, 0.265310, 0.000000 },
636 { 0.734690, 0.265310, 0.000000 },
637 { 0.734690, 0.265310, 0.000000 },
638 { 0.734690, 0.265310, 0.000000 },
639 { 0.734690, 0.265310, 0.000000 },
640 { 0.734690, 0.265310, 0.000000 },
641 { 0.734690, 0.265310, 0.000000 },
642 { 0.734690, 0.265310, 0.000000 },
643 { 0.734690, 0.265310, 0.000000 },
644 { 0.734690, 0.265310, 0.000000 },
650 #define C 0.310063, 0.316158 651 #define E 1.0/3.0, 1.0/3.0 652 #define D50 0.34570, 0.3585 653 #define D65 0.312713, 0.329016 661 #define GAMMA_REC709 0. 665 0.67, 0.33, 0.21, 0.71, 0.14, 0.08,
669 0.64, 0.33, 0.29, 0.60, 0.15, 0.06,
673 0.630, 0.340, 0.310, 0.595, 0.155, 0.070,
677 0.670, 0.330, 0.210, 0.710, 0.150, 0.060,
681 0.625, 0.340, 0.280, 0.595, 0.115, 0.070,
685 0.7347, 0.2653, 0.1152, 0.8264, 0.1566, 0.0177,
689 0.7347, 0.2653, 0.2738, 0.7174, 0.1666, 0.0089,
693 0.64, 0.33, 0.30, 0.60, 0.15, 0.06,
697 0.708, 0.292, 0.170, 0.797, 0.131, 0.046,
701 0.680, 0.320, 0.265, 0.690, 0.150, 0.060,
702 0.314, 0.351, GAMMA_REC709
723 *xc = 3*u / (2*u - 8*v + 4);
724 *yc = 2*v / (2*u - 8*v + 4);
736 *xc = 9*up / (6*up - 16*vp + 12);
737 *yc = 4*vp / (6*up - 16*vp + 12);
749 *up = 4*xc / (- 2*xc + 12*yc + 3);
750 *vp = 9*yc / (- 2*xc + 12*yc + 3);
762 *u = 4*xc / (- 2*xc + 12*yc + 3);
763 *v = 6*yc / (- 2*xc + 12*yc + 3);
768 double xc,
double yc,
double zc,
769 double *
const r,
double *
const g,
double *
const b)
771 *r = m[0][0]*xc + m[0][1]*yc + m[0][2]*zc;
772 *g = m[1][0]*xc + m[1][1]*yc + m[1][2]*zc;
773 *b = m[2][0]*xc + m[2][1]*yc + m[2][2]*zc;
778 double m00 = in[0][0], m01 = in[0][1], m02 = in[0][2],
779 m10 = in[1][0], m11 = in[1][1], m12 = in[1][2],
780 m20 = in[2][0], m21 = in[2][1], m22 = in[2][2];
784 out[0][0] = (m11 * m22 - m21 * m12);
785 out[0][1] = -(m01 * m22 - m21 * m02);
786 out[0][2] = (m01 * m12 - m11 * m02);
787 out[1][0] = -(m10 * m22 - m20 * m12);
788 out[1][1] = (m00 * m22 - m20 * m02);
789 out[1][2] = -(m00 * m12 - m10 * m02);
790 out[2][0] = (m10 * m21 - m20 * m11);
791 out[2][1] = -(m00 * m21 - m20 * m01);
792 out[2][2] = (m00 * m11 - m10 * m01);
794 det = m00 * out[0][0] + m10 * out[0][1] + m20 * out[0][2];
797 for (i = 0; i < 3; i++) {
798 for (j = 0; j < 3; j++)
805 double S[3],
X[4], Z[4];
818 for (i = 0; i < 3; i++) {
826 for (i = 0; i < 3; i++)
827 S[i] = m[i][0] * X[3] + m[i][1] * 1 + m[i][2] * Z[3];
829 for (i = 0; i < 3; i++) {
830 m[0][
i] = S[
i] * X[
i];
832 m[2][
i] = S[
i] * Z[
i];
843 const double m[3][3])
847 *x = m[0][0] * rc + m[0][1] * gc + m[0][2] * bc;
848 *y = m[1][0] * rc + m[1][1] * gc + m[1][2] * bc;
849 *z = m[2][0] * rc + m[2][1] * gc + m[2][2] * bc;
871 w = (0 < *
r) ? 0 : *r;
872 w = (w < *
g) ? w : *g;
873 w = (w < *
b) ? w : *b;
878 *r +=
w; *g +=
w; *b +=
w;
910 *c *= (1.099 * pow(cc, 0.45) - 0.099) / cc;
912 *c = 1.099 * pow(*c, 0.45) - 0.099;
916 *c = pow(*c, 1./gamma);
937 #define Sz(x) (((x) * (int)FFMIN(w, h)) / 512) 941 int cie,
int *xP,
int *yP)
943 const int ix = waveLength - 360;
947 const double px = pX / (pX + pY + pZ);
948 const double py = pY / (pX + pY + pZ);
955 *yP = (h - 1) - vp * (h - 1);
956 }
else if (cie ==
UCS) {
961 *yP = (h - 1) - v * (h - 1);
962 }
else if (cie ==
XYY) {
964 *yP = (h - 1) - py * (h - 1);
975 int *
const presentP,
976 int *
const leftEdgeP,
977 int *
const rightEdgeP)
981 for (i = 0; i < w && pixels[row * linesize + i * 4 + 0] == 0; i++)
988 int const leftEdge =
i;
992 for (j = w - 1; j >= leftEdge && pixels[row * linesize + j * 4 + 0] == 0; j--)
996 *leftEdgeP = leftEdge;
1001 int x0,
int y0,
int x1,
int y1,
1003 const uint16_t *
const rgbcolor)
1005 int dx =
FFABS(x1 - x0), sx = x0 < x1 ? 1 : -1;
1006 int dy =
FFABS(y1 - y0), sy = y0 < y1 ? 1 : -1;
1007 int err = (dx > dy ? dx : -dy) / 2, e2;
1010 pixels[y0 * linesize + x0 * 4 + 0] = rgbcolor[0];
1011 pixels[y0 * linesize + x0 * 4 + 1] = rgbcolor[1];
1012 pixels[y0 * linesize + x0 * 4 + 2] = rgbcolor[2];
1013 pixels[y0 * linesize + x0 * 4 + 3] = rgbcolor[3];
1015 if (x0 == x1 && y0 == y1)
1033 int x0,
int y0,
int x1,
int y1,
1036 int dx =
FFABS(x1 - x0), sx = x0 < x1 ? 1 : -1;
1037 int dy =
FFABS(y1 - y0), sy = y0 < y1 ? 1 : -1;
1038 int err = (dx > dy ? dx : -dy) / 2, e2;
1041 pixels[y0 * linesize + x0 * 4 + 0] = 65535 - pixels[y0 * linesize + x0 * 4 + 0];
1042 pixels[y0 * linesize + x0 * 4 + 1] = 65535 - pixels[y0 * linesize + x0 * 4 + 1];
1043 pixels[y0 * linesize + x0 * 4 + 2] = 65535 - pixels[y0 * linesize + x0 * 4 + 2];
1044 pixels[y0 * linesize + x0 * 4 + 3] = 65535;
1046 if (x0 == x1 && y0 == y1)
1068 uint16_t
const maxval,
1071 const uint16_t rgbcolor[4] = { maxval, maxval, maxval, maxval };
1076 for (wavelength = 360; wavelength <= 830; wavelength++) {
1082 if (wavelength > 360)
1083 draw_line(pixels, linesize, lx, ly, icx, icy, w, h, rgbcolor);
1091 draw_line(pixels, linesize, lx, ly, fx, fy, w, h, rgbcolor);
1099 uint16_t
const maxval,
1101 double const m[3][3],
1113 for (y = 0; y <
h; ++y) {
1118 find_tongue(pixels, w, linesize, y, &present, &leftEdge, &rightEdge);
1123 for (x = leftEdge; x <= rightEdge; ++x) {
1124 double cx, cy, cz, jr, jg, jb, jmax;
1125 int r,
g,
b, mx = maxval;
1129 up = ((double) x) / (w - 1);
1130 vp = 1.0 - ((double) y) / (h - 1);
1132 cz = 1.0 - (cx + cy);
1133 }
else if (cie ==
UCS) {
1135 u = ((double) x) / (w - 1);
1136 v = 1.0 - ((double) y) / (h - 1);
1138 cz = 1.0 - (cx + cy);
1139 }
else if (cie ==
XYY) {
1140 cx = ((double) x) / (w - 1);
1141 cy = 1.0 - ((double) y) / (h - 1);
1142 cz = 1.0 - (cx + cy);
1157 jmax =
FFMAX3(jr, jg, jb);
1169 pixels[y * linesize + x * 4 + 0] =
r;
1170 pixels[y * linesize + x * 4 + 1] =
g;
1171 pixels[y * linesize + x * 4 + 2] =
b;
1172 pixels[y * linesize + x * 4 + 3] = 65535;
1194 wy = (h - 1) - ((
int) ((h - 1) * wvp));
1195 }
else if (cie ==
UCS) {
1199 wy = (h - 1) - ((
int) ((h - 1) * wv));
1200 }
else if (cie ==
XYY) {
1201 wx = (w - 1) * cs->
xWhite;
1202 wy = (h - 1) - ((
int) ((h - 1) * cs->
yWhite));
1208 wx +
Sz(3), wy, wx +
Sz(10), wy,
1211 wx -
Sz(3), wy, wx -
Sz(10), wy,
1214 wx, wy +
Sz(3), wx, wy +
Sz(10),
1217 wx, wy -
Sz(3), wx, wy -
Sz(10),
1232 pixels = (uint16_t *)s->
f->
data[0];
1245 const uint16_t*
src = (
const uint16_t*)(in->
data[0] + in->
linesize[0] * y + x * 6);
1246 double r = src[0] / 65535.;
1247 double g = src[1] / 65535.;
1248 double b = src[2] / 65535.;
1251 rgb_to_xy(r, g, b, cx, cy, &cz, (
const double (*)[3])s->
m);
1257 const uint16_t*
src = (
const uint16_t*)(in->
data[0] + in->
linesize[0] * y + x * 8);
1258 double r = src[0] / 65535.;
1259 double g = src[1] / 65535.;
1260 double b = src[2] / 65535.;
1263 rgb_to_xy(r, g, b, cx, cy, &cz, (
const double (*)[3])s->
m);
1270 double r = src[0] / 255.;
1271 double g = src[1] / 255.;
1272 double b = src[2] / 255.;
1275 rgb_to_xy(r, g, b, cx, cy, &cz, (
const double (*)[3])s->
m);
1282 double r = src[0] / 255.;
1283 double g = src[1] / 255.;
1284 double b = src[2] / 255.;
1287 rgb_to_xy(r, g, b, cx, cy, &cz, (
const double (*)[3])s->
m);
1293 const uint16_t*
src = (uint16_t *)(in->
data[0] + in->
linesize[0] * y + x * 6);
1294 double lx = s->
log2lin[src[0]];
1295 double ly = s->
log2lin[src[1]];
1296 double lz = s->
log2lin[src[2]];
1297 double sum = lx + ly + lz;
1310 for (i = 0; i <
NB_CS; i++) {
1312 int rx, ry, gx, gy, bx, by;
1314 if (!((1 << i) & gamuts))
1320 ry = (h - 1) - ((
int) ((h - 1) * wvp));
1323 gy = (h - 1) - ((
int) ((h - 1) * wvp));
1326 by = (h - 1) - ((
int) ((h - 1) * wvp));
1327 }
else if (cie ==
UCS) {
1331 ry = (h - 1) - ((
int) ((h - 1) * wv));
1334 gy = (h - 1) - ((
int) ((h - 1) * wv));
1337 by = (h - 1) - ((
int) ((h - 1) * wv));
1338 }
else if (cie ==
XYY) {
1339 rx = (w - 1) * cs->
xRed;
1340 ry = (h - 1) - ((
int) ((h - 1) * cs->
yRed));
1341 gx = (w - 1) * cs->
xGreen;
1342 gy = (h - 1) - ((
int) ((h - 1) * cs->
yGreen));
1343 bx = (w - 1) * cs->
xBlue;
1344 by = (h - 1) - ((
int) ((h - 1) * cs->
yBlue));
1349 draw_rline(pixels, linesize, rx, ry, gx, gy, w, h);
1350 draw_rline(pixels, linesize, gx, gy, bx, by, w, h);
1351 draw_rline(pixels, linesize, bx, by, rx, ry, w, h);
1381 for (y = 0; y < outlink->
h; y++) {
1382 memset(out->
data[0] + y * out->
linesize[0], 0, outlink->
w * 8);
1385 for (y = 0; y < in->
height; y++) {
1386 for (x = 0; x < in->
width; x++) {
1391 s->
filter(ctx, in, &cx, &cy, x, y);
1398 }
else if (s->
cie ==
UCS) {
1406 wy = (h - 1) - ((h - 1) * cy);
1408 if (wx < 0 || wx >= w ||
1412 dst = (uint16_t *)(out->
data[0] + wy * out->
linesize[0] + wx * 8 + 0);
1413 dst[0] =
FFMIN(dst[0] + i, 65535);
1414 dst[1] =
FFMIN(dst[1] + i, 65535);
1415 dst[2] =
FFMIN(dst[2] + i, 65535);
1420 for (y = 0; y < outlink->
h; y++) {
1421 uint16_t *dst = (uint16_t *)(out->
data[0] + y * out->
linesize[0]);
1422 const uint16_t *
src = (
const uint16_t *)(s->
f->
data[0] + y * s->
f->
linesize[0]);
1423 for (x = 0; x < outlink->
w; x++) {
1424 const int xx = x * 4;
1425 if (dst[xx + 3] == 0) {
1426 dst[xx + 0] = src[xx + 0];
1427 dst[xx + 1] = src[xx + 1];
1428 dst[xx + 2] = src[xx + 2];
1429 dst[xx + 3] = src[xx + 3];
1436 outlink->
w, outlink->
h, 65535,
1440 outlink->
w, outlink->
h,
1462 switch (inlink->
format) {
1477 for (i = 0; i < 65536; i++)
1510 .priv_class = &ciescope_class,
static const struct ColorSystem color_systems[]
This structure describes decoded (raw) audio or video data.
static void uv_to_xy(double const u, double const v, double *const xc, double *const yc)
static int query_formats(AVFilterContext *ctx)
static void rgb_to_xy(double rc, double gc, double bc, double *const x, double *const y, double *const z, const double m[3][3])
Main libavfilter public API header.
packed RGB 8:8:8, 24bpp, RGBRGB...
static int constrain_rgb(double *const r, double *const g, double *const b)
#define AV_PIX_FMT_RGBA64
int h
agreed upon image height
static int draw_background(AVFilterContext *ctx)
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
AVFrame * ff_get_video_buffer(AVFilterLink *link, int w, int h)
Request a picture buffer with a specific set of permissions.
static void fill_in_tongue(uint16_t *const pixels, int const linesize, int const w, int const h, uint16_t const maxval, const struct ColorSystem *const cs, double const m[3][3], int const cie, int const correct_gamma, float const contrast)
static void filter_rgb48(AVFilterContext *ctx, AVFrame *in, double *cx, double *cy, int x, int y)
static void gamma_correct(const struct ColorSystem *const cs, double *const c)
static void tongue_outline(uint16_t *const pixels, int const linesize, int const w, int const h, uint16_t const maxval, int const cie)
static int config_output(AVFilterLink *outlink)
const char * name
Pad name.
AVFilterLink ** inputs
array of pointers to input links
static void filter_rgb24(AVFilterContext *ctx, AVFrame *in, double *cx, double *cy, int x, int y)
#define av_assert0(cond)
assert() equivalent, that is always enabled.
int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
Send a frame of data to the next filter.
static const AVOption ciescope_options[]
static void xyz_to_rgb(const double m[3][3], double xc, double yc, double zc, double *const r, double *const g, double *const b)
static const AVFilterPad inputs[]
int64_t pts
Presentation timestamp in time_base units (time when frame should be shown to user).
#define u(width, name, range_min, range_max)
static float const spectral_chromaticity[][3]
static void xy_to_uv(double xc, double yc, double *const u, double *const v)
static void draw_line(uint16_t *const pixels, int linesize, int x0, int y0, int x1, int y1, int w, int h, const uint16_t *const rgbcolor)
A filter pad used for either input or output.
static void gamma_correct_rgb(const struct ColorSystem *const cs, double *const r, double *const g, double *const b)
A link between two filters.
static void find_tongue(uint16_t *const pixels, int const w, int const linesize, int const row, int *const presentP, int *const leftEdgeP, int *const rightEdgeP)
void av_frame_free(AVFrame **frame)
Free the frame and any dynamically allocated objects in it, e.g.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
void * priv
private data for use by the filter
static void filter_xyz(AVFilterContext *ctx, AVFrame *in, double *cx, double *cy, int x, int y)
simple assert() macros that are a bit more flexible than ISO C assert().
AVFilterFormats * in_formats
Lists of formats and channel layouts supported by the input and output filters respectively.
static enum AVPixelFormat in_pix_fmts[]
packed RGBA 8:8:8:8, 32bpp, RGBARGBA...
static void filter_rgba64(AVFilterContext *ctx, AVFrame *in, double *cx, double *cy, int x, int y)
int w
agreed upon image width
static void plot_gamuts(uint16_t *pixels, int linesize, int w, int h, int cie, int gamuts)
#define FFABS(a)
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable ...
static void monochrome_color_location(double waveLength, int w, int h, int cie, int *xP, int *yP)
AVFilterContext * src
source filter
int format
agreed upon media format
void(* filter)(AVFilterContext *ctx, AVFrame *in, double *cx, double *cy, int x, int y)
static void invert_matrix3x3(double in[3][3], double out[3][3])
typedef void(RENAME(mix_any_func_type))
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
static void xy_to_upvp(double xc, double yc, double *const up, double *const vp)
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi - 0x80) *(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi - 0x80) *(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t, *(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t, *(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t, *(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t, *(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31)))) #define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac) { } void ff_audio_convert_free(AudioConvert **ac) { if(! *ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);} AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map) { AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method !=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2) { ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc) { av_free(ac);return NULL;} return ac;} in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar) { ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar ? ac->channels :1;} else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;} int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in) { int use_generic=1;int len=in->nb_samples;int p;if(ac->dc) { av_log(ac->avr, AV_LOG_TRACE, "%d samples - audio_convert: %s to %s (dithered)\", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
Describe the class of an AVClass context structure.
static void get_rgb2xyz_matrix(struct ColorSystem system, double m[3][3])
Rational number (pair of numerator and denominator).
static void upvp_to_xy(double const up, double const vp, double *const xc, double *const yc)
const char * name
Filter name.
AVRational sample_aspect_ratio
agreed upon sample aspect ratio
AVFilterLink ** outputs
array of pointers to output links
static void draw_rline(uint16_t *const pixels, int linesize, int x0, int y0, int x1, int y1, int w, int h)
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
static int config_input(AVFilterLink *inlink)
static enum AVPixelFormat out_pix_fmts[]
static void plot_white_point(uint16_t *pixels, int const linesize, int const w, int const h, int const maxval, int const color_system, int const cie)
AVFilterContext * dst
dest filter
static void av_cold uninit(AVFilterContext *ctx)
static const AVFilterPad outputs[]
AVFILTER_DEFINE_CLASS(ciescope)
AVPixelFormat
Pixel format.
static void filter_rgba(AVFilterContext *ctx, AVFrame *in, double *cx, double *cy, int x, int y)
AVFilterFormats * out_formats