mirror of
https://github.com/opencv/opencv.git
synced 2026-11-10 10:38:59 -06:00
Compare commits
5922 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
725e440d27 | ||
|
|
121034876d | ||
|
|
9627ab9462 | ||
|
|
499035c6ea | ||
|
|
71765858dc | ||
|
|
9a2a34f94e | ||
|
|
838c34eee1 | ||
|
|
253429d3f1 | ||
|
|
38f7cd7173 | ||
|
|
eab7faf536 | ||
|
|
83391ac59d | ||
|
|
a8a93a57e7 | ||
|
|
f637629c5a | ||
|
|
93aa94e71e | ||
|
|
86b46a27cf | ||
|
|
1bc3077890 | ||
|
|
fc27a343e9 | ||
|
|
692d6168b3 | ||
|
|
de9787a6ac | ||
|
|
d2bf2be8e6 | ||
|
|
b7292bc899 | ||
|
|
dbd4a0e5e6 | ||
|
|
b361209d52 | ||
|
|
4abe6dc48d | ||
|
|
26f36f2ff9 | ||
|
|
b42c11de82 | ||
|
|
a494c75bfe | ||
|
|
bc8c912c7a | ||
|
|
5247237bf0 | ||
|
|
8e6aae0d7a | ||
|
|
8681686d8f | ||
|
|
9012e6dd9b | ||
|
|
139bd30247 | ||
|
|
4930516652 | ||
|
|
ad568edd7f | ||
|
|
62b3a20da5 | ||
|
|
1f41d06f9a | ||
|
|
1339c7f30c | ||
|
|
734fb18c4d | ||
|
|
71c6339af0 | ||
|
|
34a0897f90 | ||
|
|
a32100d9ba | ||
|
|
b5400902a7 | ||
|
|
d35fbe6bfc | ||
|
|
645930387c | ||
|
|
44dfe62af0 | ||
|
|
4acb267cf4 | ||
|
|
8676d19dc3 | ||
|
|
6b4f3e5fab | ||
|
|
dafc4e456d | ||
|
|
2a884cc179 | ||
|
|
b774753922 | ||
|
|
5e03305da5 | ||
|
|
3ff1ec99ac | ||
|
|
bc8d494617 | ||
|
|
35e771daab | ||
|
|
1ab259df9a | ||
|
|
0bd54a60e9 | ||
|
|
63b6b24cd0 | ||
|
|
8e49560709 | ||
|
|
b8f57c9a96 | ||
|
|
c6a15e1835 | ||
|
|
05f4416ba0 | ||
|
|
91ac790249 | ||
|
|
3cfe737581 | ||
|
|
a2b3acfc6e | ||
|
|
f4b23de9dd | ||
|
|
a08c98cdfb | ||
|
|
279e2be56b | ||
|
|
cdbb893b27 | ||
|
|
41d172f22d | ||
|
|
3f7ec99166 | ||
|
|
1102b7eff8 | ||
|
|
da43778c1f | ||
|
|
9aa5ab7557 | ||
|
|
d44c58a1fb | ||
|
|
7463e9b8bb | ||
|
|
9f201a8ebe | ||
|
|
91998d6424 | ||
|
|
420db56ffd | ||
|
|
07ed5e5346 | ||
|
|
4824ce300f | ||
|
|
5855eba9f3 | ||
|
|
cdaf4c7321 | ||
|
|
eace6adb6d | ||
|
|
6db9fcbc30 | ||
|
|
b4b35cff15 | ||
|
|
47fb79bd8c | ||
|
|
6b50410336 | ||
|
|
6e3700593f | ||
|
|
6a8c5a1d27 | ||
|
|
50da209dc4 | ||
|
|
b7b08fa0c3 | ||
|
|
b1288dad40 | ||
|
|
ac6fb17784 | ||
|
|
3f22f4727c | ||
|
|
0153e796cc | ||
|
|
4891818114 | ||
|
|
db4a557187 | ||
|
|
04c3a534af | ||
|
|
a32143003d | ||
|
|
8bd17163c7 | ||
|
|
81aaca8c04 | ||
|
|
189e1b228d | ||
|
|
52709c7771 | ||
|
|
7dbb125a34 | ||
|
|
aff375808d | ||
|
|
3f5f09e730 | ||
|
|
332ff4bf1c | ||
|
|
253a4c113e | ||
|
|
1788c93aea | ||
|
|
c2ecbc76ce | ||
|
|
4203c903f8 | ||
|
|
727feda935 | ||
|
|
39087fecdc | ||
|
|
c725771e11 | ||
|
|
103212f209 | ||
|
|
be326ff752 | ||
|
|
ebaee3ea21 | ||
|
|
423bc515e5 | ||
|
|
941d89e06d | ||
|
|
281b790618 | ||
|
|
f5d7c5f103 | ||
|
|
93c4bca04d | ||
|
|
726f0adde3 | ||
|
|
24d7eb0ca5 | ||
|
|
8ba44e7d55 | ||
|
|
49f539cb46 | ||
|
|
0a650b573b | ||
|
|
7e3c53b9d3 | ||
|
|
ab912329b6 | ||
|
|
6ad216576d | ||
|
|
c5a4df30c6 | ||
|
|
cb8f1dca3b | ||
|
|
d1ff87d94d | ||
|
|
b16f76eede | ||
|
|
4792837f2e | ||
|
|
416830fb59 | ||
|
|
07b1bc2e88 | ||
|
|
d16b3b2487 | ||
|
|
74d0b4cc78 | ||
|
|
8832a9dbd5 | ||
|
|
c55613ccf7 | ||
|
|
6c399aa62a | ||
|
|
5862b50217 | ||
|
|
5696629b13 | ||
|
|
3a15152be5 | ||
|
|
f1055a7e91 | ||
|
|
d4dc6b509b | ||
|
|
1192779d05 | ||
|
|
71a1150c95 | ||
|
|
e14ca39fd7 | ||
|
|
421ba8730a | ||
|
|
0d56524b72 | ||
|
|
9fded9ca53 | ||
|
|
441624a5fb | ||
|
|
25ac77e010 | ||
|
|
77d887898d | ||
|
|
a32f2cd24a | ||
|
|
eb68de9268 | ||
|
|
ed3810f7a5 | ||
|
|
1c3e287d32 | ||
|
|
5044af69d1 | ||
|
|
bc6544c0bc | ||
|
|
a462f49b99 | ||
|
|
7622fbf895 | ||
|
|
3f371fe2dd | ||
|
|
6ca205a029 | ||
|
|
aba2167d9c | ||
|
|
5db4f1f7df | ||
|
|
a0a8d2160d | ||
|
|
2a5da50902 | ||
|
|
51758b2dd6 | ||
|
|
90b144cf0a | ||
|
|
529bd0425e | ||
|
|
6c36cd5d6e | ||
|
|
c102720af4 | ||
|
|
c63a6c472d | ||
|
|
5b3f721efa | ||
|
|
e5bea2bde4 | ||
|
|
e9d64e0a8c | ||
|
|
f0df78b7e7 | ||
|
|
e93d976d00 | ||
|
|
64aad34cb4 | ||
|
|
7592d58f0c | ||
|
|
08906ddd4b | ||
|
|
d21761c0fd | ||
|
|
277ead95d9 | ||
|
|
5d14cc68b7 | ||
|
|
ce80e0dc57 | ||
|
|
4c74e6d89d | ||
|
|
45d04175d4 | ||
|
|
687c9b7b29 | ||
|
|
d9f66413ee | ||
|
|
1b1bbe4262 | ||
|
|
3edf7c25d4 | ||
|
|
54531f8e3b | ||
|
|
b5a68f235a | ||
|
|
5bf64e7dfe | ||
|
|
51b897b672 | ||
|
|
da4ac6b7ef | ||
|
|
1ba0984203 | ||
|
|
f5e852cdf0 | ||
|
|
ef2677b0a6 | ||
|
|
2aad039b4f | ||
|
|
8a90948a1c | ||
|
|
63bff33e85 | ||
|
|
21133a2091 | ||
|
|
39f995e319 | ||
|
|
91624e87ab | ||
|
|
11d492b0b9 | ||
|
|
17f2b56291 | ||
|
|
d1d8ac57f3 | ||
|
|
b418eb112c | ||
|
|
ee9137f176 | ||
|
|
903bf0147e | ||
|
|
540aa13300 | ||
|
|
bbbf1168dc | ||
|
|
18fbb72f7d | ||
|
|
0b5fd4f6bb | ||
|
|
87360c2ae5 | ||
|
|
17b98dd005 | ||
|
|
1293e99ad8 | ||
|
|
028d4d83d3 | ||
|
|
be670e168a | ||
|
|
b619477be9 | ||
|
|
778faddbd8 | ||
|
|
f644634aa6 | ||
|
|
547f4c2c5a | ||
|
|
5462a6be6e | ||
|
|
a60496f9df | ||
|
|
acd8d3a617 | ||
|
|
0c92305a4b | ||
|
|
1ecfff0fa0 | ||
|
|
d933034ad4 | ||
|
|
a6fadfe1c2 | ||
|
|
aae317c017 | ||
|
|
37683aca56 | ||
|
|
22f8fb4d5c | ||
|
|
7d1589d407 | ||
|
|
b35018d955 | ||
|
|
c29a3aa0a0 | ||
|
|
eae5fd81e5 | ||
|
|
23edec83fb | ||
|
|
e4cd430710 | ||
|
|
35b2cff295 | ||
|
|
8e5f37f87c | ||
|
|
cee8c86b6e | ||
|
|
c0a84dcc85 | ||
|
|
e80b443cd9 | ||
|
|
e309a06b47 | ||
|
|
86dad3aebe | ||
|
|
5a9fe9dedb | ||
|
|
c7d24c0fb3 | ||
|
|
5d292826b2 | ||
|
|
f378f02954 | ||
|
|
ba575fd4ad | ||
|
|
dd14cf6a9c | ||
|
|
2c81cb2f76 | ||
|
|
6eb34716b8 | ||
|
|
871bc98933 | ||
|
|
ec7fc5adca | ||
|
|
c0c3f4cbac | ||
|
|
02143cd0e2 | ||
|
|
1c5dcbcac8 | ||
|
|
d24d8f2abe | ||
|
|
584ea43b2f | ||
|
|
292f62c5cc | ||
|
|
762481411d | ||
|
|
d816442e4d | ||
|
|
ea5ca16036 | ||
|
|
2991717191 | ||
|
|
0fa43e3aac | ||
|
|
085fb78e85 | ||
|
|
a565aa6db9 | ||
|
|
2763f988da | ||
|
|
82ac7ea236 | ||
|
|
f89dee4f3e | ||
|
|
70779d4e66 | ||
|
|
c0ecf08ca0 | ||
|
|
35f43cc429 | ||
|
|
cfafd0493c | ||
|
|
9119692bb8 | ||
|
|
8b0aa6a64d | ||
|
|
ec26541771 | ||
|
|
1c825dd509 | ||
|
|
d9eff7daeb | ||
|
|
3419e64dcf | ||
|
|
1e2ceca4df | ||
|
|
347246901e | ||
|
|
68bd156a71 | ||
|
|
9821fae59d | ||
|
|
43b2bb2c25 | ||
|
|
a3ebafbdeb | ||
|
|
5cd07006f6 | ||
|
|
3d350a002e | ||
|
|
f18b8cd569 | ||
|
|
5389d9e0d4 | ||
|
|
07c795408d | ||
|
|
5f50e7bafe | ||
|
|
e92716a1b6 | ||
|
|
bbcc1752b1 | ||
|
|
40ae06091d | ||
|
|
d480e2e51b | ||
|
|
839321642e | ||
|
|
9f88a65873 | ||
|
|
b77330bafc | ||
|
|
4a4b2a0ce6 | ||
|
|
0ae126d3b8 | ||
|
|
af9332dfaf | ||
|
|
4103567776 | ||
|
|
8f0edf6a1c | ||
|
|
ab5279f4ad | ||
|
|
1113c9ab10 | ||
|
|
bf5d7c0c10 | ||
|
|
fef8d4c990 | ||
|
|
5a0c85b3ef | ||
|
|
9fd877acc9 | ||
|
|
ed3b56d763 | ||
|
|
2f79b1b087 | ||
|
|
7208f63221 | ||
|
|
572d4f4491 | ||
|
|
0cd4396180 | ||
|
|
aafb7567c1 | ||
|
|
468431cd8f | ||
|
|
cf5db9b94f | ||
|
|
589b6c15f0 | ||
|
|
2af0813634 | ||
|
|
15d2a5faf8 | ||
|
|
b1d28d5b4a | ||
|
|
a6fbd8287c | ||
|
|
b0b77b3047 | ||
|
|
96844b0ca5 | ||
|
|
7fc6146973 | ||
|
|
6cf0910842 | ||
|
|
692c536ac5 | ||
|
|
1646a21197 | ||
|
|
4557971481 | ||
|
|
8baf46c0a8 | ||
|
|
0c0083ba72 | ||
|
|
d18362c726 | ||
|
|
b403d37267 | ||
|
|
2d189e24ee | ||
|
|
c8c29b0f1a | ||
|
|
784dd55d88 | ||
|
|
adb916ce82 | ||
|
|
15cfafb360 | ||
|
|
d43cb4fe7c | ||
|
|
38c9c20a35 | ||
|
|
935acc500f | ||
|
|
c189f31f23 | ||
|
|
cbf43a54fb | ||
|
|
2918071a3e | ||
|
|
1829eba584 | ||
|
|
3a64607d94 | ||
|
|
64649a1207 | ||
|
|
4dfbbabf8b | ||
|
|
72f1ce6550 | ||
|
|
c34c4b50d0 | ||
|
|
4521d66103 | ||
|
|
0c238c9e72 | ||
|
|
3d9f27b877 | ||
|
|
50e66a2e53 | ||
|
|
a682f02f59 | ||
|
|
df24bd295d | ||
|
|
04ebedb6f0 | ||
|
|
71ae1cac5f | ||
|
|
e0b21dccf1 | ||
|
|
bfeeb0ad70 | ||
|
|
2273af0166 | ||
|
|
604192337f | ||
|
|
ccfc34b13f | ||
|
|
3f4abcb228 | ||
|
|
f2ccce23f3 | ||
|
|
7d96ef2671 | ||
|
|
2882725927 | ||
|
|
062cee2933 | ||
|
|
fcf9f117b0 | ||
|
|
0f1cb5ad7c | ||
|
|
0ab4872032 | ||
|
|
a6274647a4 | ||
|
|
65f71ce2eb | ||
|
|
6aefb8e86f | ||
|
|
4aef9b1c93 | ||
|
|
0ac67ee8d9 | ||
|
|
66b3155a48 | ||
|
|
b3adffe437 | ||
|
|
ec92f3fefa | ||
|
|
fb85a83108 | ||
|
|
41ef2bfb16 | ||
|
|
1ae801554d | ||
|
|
65998d8076 | ||
|
|
45a7b71cac | ||
|
|
e1e9261450 | ||
|
|
819e5b19b3 | ||
|
|
a3cb2020bc | ||
|
|
a6017ac550 | ||
|
|
7faeb82585 | ||
|
|
48e50a7674 | ||
|
|
dc9d775f88 | ||
|
|
66cbb7b911 | ||
|
|
9ca3a3139a | ||
|
|
6fb465cb4e | ||
|
|
8ae03fcd6e | ||
|
|
122250b554 | ||
|
|
eb8883160d | ||
|
|
8af4fe9ed3 | ||
|
|
adb5971494 | ||
|
|
377fdf5ae5 | ||
|
|
e1272d73fe | ||
|
|
e3e61078a5 | ||
|
|
13823f117b | ||
|
|
2e15582799 | ||
|
|
65bdb3a544 | ||
|
|
ac91c45b0f | ||
|
|
6481cfd048 | ||
|
|
0f6b01a531 | ||
|
|
364b3f181d | ||
|
|
04849f26b2 | ||
|
|
26a7647e0e | ||
|
|
8eb036fb3c | ||
|
|
fce8349c99 | ||
|
|
5ea912e778 | ||
|
|
c2c8da2517 | ||
|
|
1be40554af | ||
|
|
d717de5719 | ||
|
|
bcc19a622d | ||
|
|
fb3fc5322c | ||
|
|
2eff70fbf4 | ||
|
|
d885242b61 | ||
|
|
46d988e2cb | ||
|
|
7a5122121b | ||
|
|
7fc14504b1 | ||
|
|
cb1a1e9a51 | ||
|
|
619e038de9 | ||
|
|
4154bd0667 | ||
|
|
5408949951 | ||
|
|
866191478f | ||
|
|
c9060b053d | ||
|
|
9dc844a6e1 | ||
|
|
e2a9cff3dc | ||
|
|
c3b83b8354 | ||
|
|
e24382691f | ||
|
|
9074b3e980 | ||
|
|
65d66a05dd | ||
|
|
7de7891c4d | ||
|
|
4bec43cf79 | ||
|
|
6cc0107693 | ||
|
|
ca7f964104 | ||
|
|
b26fc6f31b | ||
|
|
5fa624f35e | ||
|
|
7955469f7c | ||
|
|
ce62fc8371 | ||
|
|
2e40b7f113 | ||
|
|
2ac62bccec | ||
|
|
22eb91a7e0 | ||
|
|
448e3a7e58 | ||
|
|
bf54a370e5 | ||
|
|
337452b4c0 | ||
|
|
5bb098ba5d | ||
|
|
4159842195 | ||
|
|
b69b1eae8f | ||
|
|
c4a6e1fd4d | ||
|
|
3456d28cc2 | ||
|
|
f376bfe95d | ||
|
|
a72074b33f | ||
|
|
5185544864 | ||
|
|
7834a465d5 | ||
|
|
1f0bfc8d83 | ||
|
|
a122f0f248 | ||
|
|
a31fb88fd0 | ||
|
|
70fb1cd603 | ||
|
|
d2c48b898c | ||
|
|
2d837efba7 | ||
|
|
1852d0b9b8 | ||
|
|
837e41f9a7 | ||
|
|
1fd45a1b85 | ||
|
|
2cd7e17b65 | ||
|
|
8eb4f72531 | ||
|
|
2619099fe5 | ||
|
|
2959286eb5 | ||
|
|
a4b191a7e0 | ||
|
|
3929e26276 | ||
|
|
a1d5565e65 | ||
|
|
9638e34ab0 | ||
|
|
ed9d4c0b2b | ||
|
|
bb64db98d8 | ||
|
|
88115811a9 | ||
|
|
67fa8a2f47 | ||
|
|
560eba91e5 | ||
|
|
42561e1233 | ||
|
|
7e2c8cc9f4 | ||
|
|
eea05f5078 | ||
|
|
7eaec9dd22 | ||
|
|
e1305e8d05 | ||
|
|
2dd3408caa | ||
|
|
3651831e7e | ||
|
|
a1d752bfc0 | ||
|
|
d10832074e | ||
|
|
a001ab3a44 | ||
|
|
ef570e4e13 | ||
|
|
7831aae5dd | ||
|
|
1336da9450 | ||
|
|
6432f02996 | ||
|
|
1fb8d60fd2 | ||
|
|
5e92bf8e41 | ||
|
|
7e5d012f75 | ||
|
|
925ff6241f | ||
|
|
e14c3cff85 | ||
|
|
984e42b0bc | ||
|
|
0702685e7e | ||
|
|
7deb8f568f | ||
|
|
d8434e6875 | ||
|
|
b9a1039566 | ||
|
|
03130548ea | ||
|
|
11c5a6bb4d | ||
|
|
8dc332721f | ||
|
|
189f647264 | ||
|
|
56baf4ed87 | ||
|
|
7ffb103758 | ||
|
|
9fcf015214 | ||
|
|
27bfab4e6e | ||
|
|
ffccfa2ee9 | ||
|
|
d3dcef4b8b | ||
|
|
3cd36ebc7b | ||
|
|
2ebdc04787 | ||
|
|
cc8add9f66 | ||
|
|
c2c539e3cc | ||
|
|
0cdff46725 | ||
|
|
d0d115321d | ||
|
|
99683e958a | ||
|
|
f572ae3474 | ||
|
|
e65ad44b32 | ||
|
|
3d8614cb47 | ||
|
|
d09cc0f30c | ||
|
|
80c82e10aa | ||
|
|
2fb652ce09 | ||
|
|
1bab920cf5 | ||
|
|
bb71cb200e | ||
|
|
48afe1586a | ||
|
|
e7e814fa8c | ||
|
|
496eed950f | ||
|
|
f0d29cd33c | ||
|
|
75bb6aa9a1 | ||
|
|
44b2f9637a | ||
|
|
0643165519 | ||
|
|
cde18648dc | ||
|
|
04e01e2b31 | ||
|
|
348b7383f9 | ||
|
|
b2b7193374 | ||
|
|
47a59d72c9 | ||
|
|
163770f99a | ||
|
|
4c1e064a2b | ||
|
|
88555948d0 | ||
|
|
1893b37e23 | ||
|
|
c3cbd302cb | ||
|
|
2ffa7ac0da | ||
|
|
885a446b10 | ||
|
|
8bfe620fcc | ||
|
|
129319b0bc | ||
|
|
7ce83f2a95 | ||
|
|
4b05765174 | ||
|
|
3390da6beb | ||
|
|
50707a2741 | ||
|
|
0614c40b42 | ||
|
|
facd07a732 | ||
|
|
26ac81df3e | ||
|
|
1ec10ca565 | ||
|
|
26a39c733b | ||
|
|
15f0e2e7cb | ||
|
|
d4640f4647 | ||
|
|
4c9364a803 | ||
|
|
e951edeed3 | ||
|
|
e7a787aa41 | ||
|
|
500e24d6cd | ||
|
|
759cbd7486 | ||
|
|
57545653b1 | ||
|
|
3c5377ca1b | ||
|
|
a89868928b | ||
|
|
5bf3991f55 | ||
|
|
08696d92ea | ||
|
|
2c2466fb25 | ||
|
|
fc3e393516 | ||
|
|
ebaf8cc06c | ||
|
|
0862d69a6e | ||
|
|
b8106e4ba4 | ||
|
|
6ce2f1316f | ||
|
|
294348939b | ||
|
|
e2db95184f | ||
|
|
f8597fc150 | ||
|
|
85b0b0cd77 | ||
|
|
2bd72af2ef | ||
|
|
f729202272 | ||
|
|
47f30a04d2 | ||
|
|
a42b35598e | ||
|
|
db53f4533e | ||
|
|
71e33265f5 | ||
|
|
a016f6022c | ||
|
|
3e3b53f815 | ||
|
|
e2bfe0ce76 | ||
|
|
98c33c605d | ||
|
|
b3269b08a1 | ||
|
|
e59cff47d4 | ||
|
|
47912431e6 | ||
|
|
0ef803950b | ||
|
|
3c23a44786 | ||
|
|
701d0d9905 | ||
|
|
d4e1d89901 | ||
|
|
14aa9eaadd | ||
|
|
1feabf4275 | ||
|
|
65c173f2a3 | ||
|
|
697acf7f6a | ||
|
|
ed69bcae2d | ||
|
|
728545468c | ||
|
|
33b1e76e48 | ||
|
|
1d134025a5 | ||
|
|
96a9cfab36 | ||
|
|
c9e10e1d0b | ||
|
|
60846b2b7a | ||
|
|
6fe7886e2b | ||
|
|
199c2d2fd0 | ||
|
|
bd54ba911d | ||
|
|
a9354fc743 | ||
|
|
b4b69ae484 | ||
|
|
1c7b71bf9e | ||
|
|
1377f0147e | ||
|
|
d2b1e38207 | ||
|
|
9ffb67478f | ||
|
|
1dee848d3e | ||
|
|
afe1c70f2d | ||
|
|
1b8fba8e26 | ||
|
|
45fbb67aba | ||
|
|
914005174f | ||
|
|
2a82467a6f | ||
|
|
a233232b7d | ||
|
|
ed4bf13960 | ||
|
|
3135063100 | ||
|
|
87ef6a9cc1 | ||
|
|
ff31f90b7e | ||
|
|
2b2ba534e2 | ||
|
|
3635b3dee7 | ||
|
|
fa613e393f | ||
|
|
7d3dbcb027 | ||
|
|
db70676933 | ||
|
|
b3b235ebc0 | ||
|
|
70492c2127 | ||
|
|
f562264674 | ||
|
|
0a88f84847 | ||
|
|
139c443770 | ||
|
|
a630ad73cb | ||
|
|
366e8217c2 | ||
|
|
01226cb8ac | ||
|
|
3891b72f33 | ||
|
|
a80fcacd90 | ||
|
|
c54ccaac31 | ||
|
|
79731cb0ff | ||
|
|
16b5fd4bf2 | ||
|
|
fb9463c55f | ||
|
|
2920a8e0ec | ||
|
|
6a4c3b61e6 | ||
|
|
6360c3bf46 | ||
|
|
e313603aac | ||
|
|
0f3de805f4 | ||
|
|
3bf22d0024 | ||
|
|
66567933d7 | ||
|
|
56e19e3494 | ||
|
|
d2f5a10f5d | ||
|
|
32bb4fa950 | ||
|
|
8ae06b4648 | ||
|
|
652396678d | ||
|
|
59b870a87a | ||
|
|
0f067fd0a6 | ||
|
|
b91f173680 | ||
|
|
a311d1bdc0 | ||
|
|
eb7add1828 | ||
|
|
b152b8cbcd | ||
|
|
2336b0706d | ||
|
|
300b57dd70 | ||
|
|
0769bf416f | ||
|
|
90f2e1f8b5 | ||
|
|
2a4926f417 | ||
|
|
5e1c9099e8 | ||
|
|
397e9bc8d6 | ||
|
|
2366f2cb2e | ||
|
|
35f1a90df7 | ||
|
|
9faefa0c96 | ||
|
|
b5adffd5c2 | ||
|
|
82010bf5c1 | ||
|
|
6234f01a6d | ||
|
|
44c2519d75 | ||
|
|
ef94275eb6 | ||
|
|
a6ca48a1c2 | ||
|
|
24a66a44bf | ||
|
|
2411b825b4 | ||
|
|
dd7b9000ad | ||
|
|
f1328c7395 | ||
|
|
9d06e58c3c | ||
|
|
711b136191 | ||
|
|
a04f9e7a59 | ||
|
|
db5b22e895 | ||
|
|
0d52c37e11 | ||
|
|
734e309b3e | ||
|
|
3efc645975 | ||
|
|
572812217b | ||
|
|
008507327c | ||
|
|
f4a6c3e7ea | ||
|
|
ff41fbc5c1 | ||
|
|
cac864192c | ||
|
|
b19683eb41 | ||
|
|
7a46d7efde | ||
|
|
d09bd6f862 | ||
|
|
7676be5570 | ||
|
|
ed9524e125 | ||
|
|
533bb035cf | ||
|
|
dda2e9374b | ||
|
|
14754deb21 | ||
|
|
b0dc474160 | ||
|
|
adf89bbb33 | ||
|
|
c103b63fe1 | ||
|
|
a3d0882317 | ||
|
|
583bd1a6e2 | ||
|
|
53eda42da7 | ||
|
|
c26c4a61c6 | ||
|
|
ea2527c2d1 | ||
|
|
65fcf22670 | ||
|
|
d0572538ff | ||
|
|
3577265508 | ||
|
|
f28e191d70 | ||
|
|
38b6c44b4c | ||
|
|
1a24e316d5 | ||
|
|
9da9e8244b | ||
|
|
8d51ef0f35 | ||
|
|
9cfae823a7 | ||
|
|
d6151eae23 | ||
|
|
4a0a3281c6 | ||
|
|
1230075011 | ||
|
|
7459954377 | ||
|
|
cf38098ba8 | ||
|
|
8ca394efaf | ||
|
|
f9c7931800 | ||
|
|
24547f40ff | ||
|
|
72debee125 | ||
|
|
a3d6994afa | ||
|
|
08c270f65a | ||
|
|
e585453c2e | ||
|
|
86f4524010 | ||
|
|
6d098cc230 | ||
|
|
434c96e625 | ||
|
|
d6e9616256 | ||
|
|
e9187ae38c | ||
|
|
978dc76653 | ||
|
|
b409fd32ac | ||
|
|
a2ad997e97 | ||
|
|
e9428726ca | ||
|
|
400906b433 | ||
|
|
50d7c61c01 | ||
|
|
d9bf522b27 | ||
|
|
93dc0679ec | ||
|
|
1ddc51cfd1 | ||
|
|
50bf0e10f5 | ||
|
|
d1ccb7e47f | ||
|
|
6a22c5b2b5 | ||
|
|
7e845a3b87 | ||
|
|
ea1c970190 | ||
|
|
3d207ccf11 | ||
|
|
aaf7f5ae02 | ||
|
|
50e8ad285b | ||
|
|
bb5462e327 | ||
|
|
df2e7fa6eb | ||
|
|
11f36bdf9a | ||
|
|
bc0d4585b3 | ||
|
|
70917f291c | ||
|
|
9f6f0c7424 | ||
|
|
4722a8df3c | ||
|
|
7be8a71c60 | ||
|
|
ce859edba8 | ||
|
|
90820cd044 | ||
|
|
c929f1b62f | ||
|
|
ff88132620 | ||
|
|
89f8d4ae12 | ||
|
|
3f4ffe7844 | ||
|
|
ed567a2dd1 | ||
|
|
22a00036e2 | ||
|
|
2aac0a5a26 | ||
|
|
07ad6a437e | ||
|
|
d9a444ca1a | ||
|
|
766f58ed7e | ||
|
|
1099b4c881 | ||
|
|
7c0f49fc36 | ||
|
|
761e796201 | ||
|
|
8d0fbc6a1e | ||
|
|
affcea8822 | ||
|
|
53f0be00a9 | ||
|
|
602caa9cd6 | ||
|
|
f35ec8c955 | ||
|
|
1316491e50 | ||
|
|
2cc4309bf8 | ||
|
|
612d43f284 | ||
|
|
56824d1769 | ||
|
|
2238ac7d59 | ||
|
|
2b5b192cd7 | ||
|
|
64e1d23cba | ||
|
|
40d2904f3d | ||
|
|
9712cc479b | ||
|
|
0ef1fb0b67 | ||
|
|
2b67bc448d | ||
|
|
a3f81b79ed | ||
|
|
8d0dae4cec | ||
|
|
dda96264df | ||
|
|
4af8e5c5c4 | ||
|
|
eff5605be5 | ||
|
|
2b53ab23c0 | ||
|
|
2010de9104 | ||
|
|
280a99b3b6 | ||
|
|
646025589b | ||
|
|
4502003e61 | ||
|
|
07abb6240e | ||
|
|
dea0815199 | ||
|
|
e4ed2d2e42 | ||
|
|
c8228e5789 | ||
|
|
667e5e4f89 | ||
|
|
ada703a73a | ||
|
|
2b8094f915 | ||
|
|
9e1e960116 | ||
|
|
82ae9ef541 | ||
|
|
1b07274e34 | ||
|
|
15ac54d5d6 | ||
|
|
1cdd8510fd | ||
|
|
039f3d01a0 | ||
|
|
f63feea05e | ||
|
|
fbac38d98b | ||
|
|
ca2ab3387f | ||
|
|
64ded50bbf | ||
|
|
d44ac61033 | ||
|
|
18ada77d8a | ||
|
|
6d0f1275c2 | ||
|
|
a848eccfc6 | ||
|
|
2402fa4824 | ||
|
|
2bf4135afc | ||
|
|
c677f132cd | ||
|
|
ec4015d73c | ||
|
|
8c42dbf71c | ||
|
|
4ca679180d | ||
|
|
64da959619 | ||
|
|
88123e2512 | ||
|
|
87e98e8788 | ||
|
|
767857c516 | ||
|
|
2b60166e5c | ||
|
|
2e41db39f5 | ||
|
|
a55fa8389e | ||
|
|
d23142027f | ||
|
|
438fe3f9db | ||
|
|
5cc154147f | ||
|
|
9cd5a0a1e6 | ||
|
|
2958142e31 | ||
|
|
27c15bed60 | ||
|
|
2985739b8c | ||
|
|
2465d93330 | ||
|
|
556d211136 | ||
|
|
0ee2a58cdc | ||
|
|
7daf84fb44 | ||
|
|
9aff01c9a9 | ||
|
|
a2b84e9897 | ||
|
|
66f3c2673c | ||
|
|
554d08c3a1 | ||
|
|
3a595ea5c4 | ||
|
|
03c9648f2e | ||
|
|
e3a55af336 | ||
|
|
be4a432bea | ||
|
|
0d32a24cba | ||
|
|
e36948cfbc | ||
|
|
9aa647068b | ||
|
|
092030c1ca | ||
|
|
0bd261ded4 | ||
|
|
7ed557497d | ||
|
|
d793ec2ffe | ||
|
|
271f7df343 | ||
|
|
08d44f588f | ||
|
|
84b4a5a495 | ||
|
|
b2e20a82ba | ||
|
|
1b3a06a02a | ||
|
|
91a5e75151 | ||
|
|
4754b0e253 | ||
|
|
84b517f5a0 | ||
|
|
8ac88cf069 | ||
|
|
13a995cc1d | ||
|
|
a93fb52632 | ||
|
|
4d927e73f1 | ||
|
|
38228709c8 | ||
|
|
38788a3161 | ||
|
|
46b6973c05 | ||
|
|
af2b7708a8 | ||
|
|
a233982931 | ||
|
|
ed1439fbc6 | ||
|
|
b379b67a32 | ||
|
|
f3945fbddb | ||
|
|
8b44ee2ce1 | ||
|
|
7b582b71ba | ||
|
|
4e8c507276 | ||
|
|
9390c56831 | ||
|
|
abebbf04b1 | ||
|
|
5e434073d4 | ||
|
|
3e4a566e46 | ||
|
|
6f5cf8c15f | ||
|
|
b687bc807a | ||
|
|
5440fd6cb4 | ||
|
|
b060151625 | ||
|
|
be38d4ea93 | ||
|
|
56f21c4fd5 | ||
|
|
386df457a9 | ||
|
|
e4abf6e723 | ||
|
|
1339ebaa84 | ||
|
|
c9b90884da | ||
|
|
9b2b2c88df | ||
|
|
e5bdab0355 | ||
|
|
4d46958c82 | ||
|
|
9dd8e4df7f | ||
|
|
d98e07c3d3 | ||
|
|
78bc11465b | ||
|
|
8e8e4bbabc | ||
|
|
90671233c6 | ||
|
|
12bae51384 | ||
|
|
7b848e215f | ||
|
|
21872e2fb0 | ||
|
|
2a218b96c4 | ||
|
|
e76cda6923 | ||
|
|
9d16612a9b | ||
|
|
63c865ace6 | ||
|
|
0a62de0d4f | ||
|
|
593996216f | ||
|
|
4eae23a2cc | ||
|
|
f3699b5ac8 | ||
|
|
9ce0e51305 | ||
|
|
4c79318694 | ||
|
|
f7ac724c5d | ||
|
|
ee9fe1239a | ||
|
|
b6b5c27cec | ||
|
|
632e07b749 | ||
|
|
48cd2d190f | ||
|
|
685797f403 | ||
|
|
ef6f421f89 | ||
|
|
e0ffd3e8a5 | ||
|
|
0d16b5fc38 | ||
|
|
ac8a27cba9 | ||
|
|
e5f2a8ebf2 | ||
|
|
54733eba6f | ||
|
|
93353aea70 | ||
|
|
e16cb8b4a2 | ||
|
|
5bf3c1df24 | ||
|
|
419918076e | ||
|
|
fb768c420d | ||
|
|
eb067fee55 | ||
|
|
6390b50d6e | ||
|
|
5d8134ed32 | ||
|
|
852904e1a4 | ||
|
|
a120adde63 | ||
|
|
a80af177b6 | ||
|
|
8db7d435b9 | ||
|
|
901e0ddfe4 | ||
|
|
ecb30409f6 | ||
|
|
44c2c77548 | ||
|
|
5be5efdacf | ||
|
|
057c3da82a | ||
|
|
8fa429caef | ||
|
|
87f526d82f | ||
|
|
1ae2320e09 | ||
|
|
54693cf7b1 | ||
|
|
a082375d57 | ||
|
|
9c7adb7248 | ||
|
|
ccebbbc0ac | ||
|
|
ebb6915e58 | ||
|
|
5cc27fd3b5 | ||
|
|
a332509e02 | ||
|
|
375fe81311 | ||
|
|
d354ad1c34 | ||
|
|
119d8b3aca | ||
|
|
cd9edba26f | ||
|
|
8f1c502d2b | ||
|
|
92312fbc0c | ||
|
|
2efcaa9e8e | ||
|
|
aa53541235 | ||
|
|
b863c25d21 | ||
|
|
f77c3574af | ||
|
|
f5105bac65 | ||
|
|
5a86592e93 | ||
|
|
2c83cfc14c | ||
|
|
863546e125 | ||
|
|
9198e30688 | ||
|
|
1890157faa | ||
|
|
0898f372b1 | ||
|
|
b9e5256cf9 | ||
|
|
6b6d89b911 | ||
|
|
d3e0193c8a | ||
|
|
31881209d6 | ||
|
|
5c7e893393 | ||
|
|
3c814ebf87 | ||
|
|
5cf1dca36e | ||
|
|
12338c1dc4 | ||
|
|
5b23752205 | ||
|
|
4e53f301d8 | ||
|
|
2b7803dbac | ||
|
|
446a278f3d | ||
|
|
0047d3f81a | ||
|
|
4e1f17d65b | ||
|
|
f9b1dbe2ac | ||
|
|
a251474144 | ||
|
|
8d88bb06b2 | ||
|
|
9f2ff3ed22 | ||
|
|
45cbf70265 | ||
|
|
59e16b88ae | ||
|
|
33f219dfe6 | ||
|
|
44db2eea70 | ||
|
|
12ab54648c | ||
|
|
19926e2979 | ||
|
|
1620a1e014 | ||
|
|
888546b6f5 | ||
|
|
3215db26aa | ||
|
|
76aff84788 | ||
|
|
fc28ba3156 | ||
|
|
effce0573b | ||
|
|
e8db363431 | ||
|
|
9603b6877d | ||
|
|
d5ecb5ff5a | ||
|
|
dae73938e8 | ||
|
|
619b6dfae3 | ||
|
|
8f9c36b730 | ||
|
|
3eeec4faae | ||
|
|
972a4b95b6 | ||
|
|
ffee1a4126 | ||
|
|
96e23c2ff6 | ||
|
|
08356007c9 | ||
|
|
5064b6f747 | ||
|
|
57d3002ee1 | ||
|
|
a00a0dbfcd | ||
|
|
b41d2c5c14 | ||
|
|
1da48beeec | ||
|
|
b57ff73086 | ||
|
|
67978b5746 | ||
|
|
062f305d1a | ||
|
|
1f70d4e2a5 | ||
|
|
aa5bc20c83 | ||
|
|
09af10f635 | ||
|
|
4d7953aa56 | ||
|
|
46e1560678 | ||
|
|
4d0148b417 | ||
|
|
1605d1d24d | ||
|
|
5190043e56 | ||
|
|
f66a2ffa1e | ||
|
|
d1e76a34a0 | ||
|
|
5b3d5f9f3c | ||
|
|
415a42f327 | ||
|
|
09f6e55338 | ||
|
|
a351e05a17 | ||
|
|
d37bcbdc92 | ||
|
|
437af37b13 | ||
|
|
c62367612d | ||
|
|
a92cba8484 | ||
|
|
5f7d922b10 | ||
|
|
dc29632d4e | ||
|
|
f4a7754cc0 | ||
|
|
6811d3d80b | ||
|
|
245f6273bd | ||
|
|
870c8d3c4e | ||
|
|
d573472a86 | ||
|
|
441b6dbda0 | ||
|
|
a7e6a1059c | ||
|
|
85719a0a5d | ||
|
|
b5b52afd35 | ||
|
|
dc35633aa4 | ||
|
|
9e3ba487fa | ||
|
|
aee8425b68 | ||
|
|
94229bb262 | ||
|
|
1f6444fbea | ||
|
|
439ef6447d | ||
|
|
9cab808c5d | ||
|
|
d41fcf7345 | ||
|
|
ac51ba38f9 | ||
|
|
ef85b24a78 | ||
|
|
d88730685e | ||
|
|
16661847a7 | ||
|
|
7f782a1a24 | ||
|
|
9188ce68aa | ||
|
|
2b79a6ff8f | ||
|
|
70b0274c8e | ||
|
|
83ce1de8e7 | ||
|
|
b1d484f827 | ||
|
|
123519165d | ||
|
|
30ff9c6775 | ||
|
|
906f5f7e96 | ||
|
|
9238316cf1 | ||
|
|
5e89b9a455 | ||
|
|
e3a4ff33d2 | ||
|
|
5d9ea394ba | ||
|
|
abb5c9fd92 | ||
|
|
266835cd2e | ||
|
|
92af03579c | ||
|
|
2e20f2b89f | ||
|
|
e67593673f | ||
|
|
d1b533d399 | ||
|
|
2647902fee | ||
|
|
574320ec3f | ||
|
|
3f2377017c | ||
|
|
2b5bb02817 | ||
|
|
302d14adef | ||
|
|
b796ededae | ||
|
|
f811ba8777 | ||
|
|
eb7b45d26b | ||
|
|
17b2d92a3d | ||
|
|
22f0bcaf8f | ||
|
|
e61277002c | ||
|
|
ca5258f140 | ||
|
|
8f4473b3e3 | ||
|
|
51e8af9e5f | ||
|
|
82818e7324 | ||
|
|
6ae8103022 | ||
|
|
eca2d92791 | ||
|
|
6778e19710 | ||
|
|
25f25275cd | ||
|
|
7e746ad2a6 | ||
|
|
6ffa2b01e1 | ||
|
|
ed6ca0d7fa | ||
|
|
8e2a3c1d2f | ||
|
|
7f6dcc2745 | ||
|
|
76e34d6f2c | ||
|
|
e613b17c05 | ||
|
|
5ba9a089e1 | ||
|
|
f2d5d6d24e | ||
|
|
a1ec4ea3a9 | ||
|
|
0fe7420638 | ||
|
|
b304730225 | ||
|
|
4801526f35 | ||
|
|
f1857030b5 | ||
|
|
b5b3f4e1c6 | ||
|
|
172bb7887c | ||
|
|
60228d30d1 | ||
|
|
9592537840 | ||
|
|
8768a80242 | ||
|
|
d5f73f89d8 | ||
|
|
19bbe6c67d | ||
|
|
aebb65e983 | ||
|
|
5e327af327 | ||
|
|
bc1f8813c2 | ||
|
|
80d9f624d0 | ||
|
|
e9c46f38fc | ||
|
|
ecfbaa267d | ||
|
|
c25fd3349b | ||
|
|
c3e27bcf87 | ||
|
|
a5894f3e6b | ||
|
|
4db3a388dd | ||
|
|
6fd1a2ef52 | ||
|
|
fe2a259eb1 | ||
|
|
1ba7c2f276 | ||
|
|
649f747f8a | ||
|
|
05dbaf7672 | ||
|
|
742a08229e | ||
|
|
5602d2c7bb | ||
|
|
f3e0479a8f | ||
|
|
a1143c4ea0 | ||
|
|
0314d1dd01 | ||
|
|
751b3f502d | ||
|
|
bf5e09d5ab | ||
|
|
14e4a10312 | ||
|
|
53b89e1ee4 | ||
|
|
370f878a36 | ||
|
|
6e4d61c1fd | ||
|
|
f6fe5c07f6 | ||
|
|
c685293297 | ||
|
|
0e6a2c0491 | ||
|
|
c2209ad5e4 | ||
|
|
5f249a3e67 | ||
|
|
76fb3652fc | ||
|
|
92925e846d | ||
|
|
43c04c29ce | ||
|
|
06b74c87da | ||
|
|
7f075b0b15 | ||
|
|
c5a86c22a4 | ||
|
|
3621c6234c | ||
|
|
80c2fefc43 | ||
|
|
a47952146a | ||
|
|
a55950865e | ||
|
|
ab181ac329 | ||
|
|
db172d1053 | ||
|
|
dad26339a9 | ||
|
|
3b0ed61826 | ||
|
|
9699e2b483 | ||
|
|
3048188b5b | ||
|
|
547bb3b053 | ||
|
|
7c2087cf05 | ||
|
|
217fea9667 | ||
|
|
523c3cd50b | ||
|
|
631126c77a | ||
|
|
655d381ef3 | ||
|
|
c68fec7e97 | ||
|
|
cdfa8a668b | ||
|
|
92651d228d | ||
|
|
90e3692603 | ||
|
|
3a8316ab93 | ||
|
|
8d3f0d0eab | ||
|
|
ded0efb955 | ||
|
|
cdd4354256 | ||
|
|
bde955fc56 | ||
|
|
abc9e98625 | ||
|
|
d086ee14dd | ||
|
|
f43fec7ee6 | ||
|
|
6385511e88 | ||
|
|
ed4becf007 | ||
|
|
f11ab4c569 | ||
|
|
b12c2c76d1 | ||
|
|
f5589445b9 | ||
|
|
032a61b197 | ||
|
|
011ed380aa | ||
|
|
88a18c8b6a | ||
|
|
51e65db715 | ||
|
|
cc02fcd889 | ||
|
|
9f17c62533 | ||
|
|
36bd2a65e3 | ||
|
|
85d4e56bb1 | ||
|
|
381d9bafdf | ||
|
|
ada16fd188 | ||
|
|
c408157a4d | ||
|
|
6e299b582a | ||
|
|
9777fbacf6 | ||
|
|
643b4dd126 | ||
|
|
19ac54277b | ||
|
|
c78a8dfd2d | ||
|
|
b1a57c4cb2 | ||
|
|
54c180092d | ||
|
|
be110d0464 | ||
|
|
6e733b65ae | ||
|
|
f948a2d0c0 | ||
|
|
2aa47554fc | ||
|
|
c80b270678 | ||
|
|
dcc32e84b9 | ||
|
|
947d610309 | ||
|
|
3e01a387ba | ||
|
|
4dbba5ac98 | ||
|
|
374cc4183e | ||
|
|
b9d9730b62 | ||
|
|
0a178a687a | ||
|
|
c4c43c3d26 | ||
|
|
8fa86d4d34 | ||
|
|
a22dd28e02 | ||
|
|
0e274fc4be | ||
|
|
bc3da25a4a | ||
|
|
80492d663e | ||
|
|
172c539a5a | ||
|
|
a079acc0d9 | ||
|
|
30df77fa4c | ||
|
|
71a22e45b0 | ||
|
|
defd8a527b | ||
|
|
3ce29236f3 | ||
|
|
04ee99f1a3 | ||
|
|
91817bffe1 | ||
|
|
c39b83667b | ||
|
|
1bd382c1d0 | ||
|
|
49bef1cdbf | ||
|
|
249c508126 | ||
|
|
04b27525fa | ||
|
|
175bcb1734 | ||
|
|
fec2c7e715 | ||
|
|
07dca8cc03 | ||
|
|
60c093f086 | ||
|
|
db4ab1c936 | ||
|
|
f071207463 | ||
|
|
622b9d9276 | ||
|
|
05bfdeab7a | ||
|
|
b4bb98ea60 | ||
|
|
792b7e0629 | ||
|
|
a079c2eb7c | ||
|
|
f7aa91e660 | ||
|
|
6d677bbd63 | ||
|
|
cee3ec6dc4 | ||
|
|
3da17c42a4 | ||
|
|
2329cbc1a2 | ||
|
|
b39ee54103 | ||
|
|
299f9837b7 | ||
|
|
6a889ed3e5 | ||
|
|
f3ba88c87c | ||
|
|
498f1525b2 | ||
|
|
e7c5120682 | ||
|
|
19cfaa2be7 | ||
|
|
e97c7e042b | ||
|
|
d8b1fc45aa | ||
|
|
35f27d0d3e | ||
|
|
330a11861e | ||
|
|
4827fe86bb | ||
|
|
72c55b56f2 | ||
|
|
295da7e5f3 | ||
|
|
4eab85d364 | ||
|
|
3cc83ce024 | ||
|
|
52c423a423 | ||
|
|
952f8e38cf | ||
|
|
542b3e8a64 | ||
|
|
4f79eb256d | ||
|
|
7620456486 | ||
|
|
052d209901 | ||
|
|
e9c45ff406 | ||
|
|
f1053d48a2 | ||
|
|
ba12f52f6c | ||
|
|
456137fa24 | ||
|
|
692059e899 | ||
|
|
252ce0b581 | ||
|
|
d24befa0bc | ||
|
|
5462710103 | ||
|
|
d1b923bee9 | ||
|
|
81a6d1b0d4 | ||
|
|
04020f391a | ||
|
|
c4ab0c09ea | ||
|
|
6e50e4b9ee | ||
|
|
1599f9f0c0 | ||
|
|
0c5b6e5556 | ||
|
|
e3e04f5dae | ||
|
|
17bc8565f6 | ||
|
|
c08954c18b | ||
|
|
7ba56a4b88 | ||
|
|
9b7f40ce4d | ||
|
|
b70370f3fd | ||
|
|
4d3cf77ad5 | ||
|
|
b2005ccaef | ||
|
|
659cf7249e | ||
|
|
62a010a25d | ||
|
|
6b4ea68bc7 | ||
|
|
d6891c705e | ||
|
|
9bcb006ec7 | ||
|
|
02ac6ec81c | ||
|
|
5c91f5b71d | ||
|
|
16b674b984 | ||
|
|
65392d5e6b | ||
|
|
41d108ead6 | ||
|
|
0c9dbc61a1 | ||
|
|
6788fdb0d6 | ||
|
|
3a4b61579d | ||
|
|
51d7ba7446 | ||
|
|
e608adea60 | ||
|
|
8dd6882222 | ||
|
|
5aef565fb6 | ||
|
|
a4d6bcba09 | ||
|
|
f09a577ab5 | ||
|
|
973e1acb67 | ||
|
|
676a724491 | ||
|
|
73318fd514 | ||
|
|
cb08c15616 | ||
|
|
a3287b85c5 | ||
|
|
0c0b1ec9ae | ||
|
|
d2f87ca76c | ||
|
|
4935b14539 | ||
|
|
0835611d3a | ||
|
|
8b4fa2605e | ||
|
|
c3910807c5 | ||
|
|
c5b8b5687f | ||
|
|
f61883b227 | ||
|
|
35ff9af6ce | ||
|
|
dad2b9aac8 | ||
|
|
1613d30544 | ||
|
|
b6df9debaf | ||
|
|
b9d0dc60b0 | ||
|
|
37b1876807 | ||
|
|
d206350738 | ||
|
|
2da1f9181a | ||
|
|
bd396e1fd5 | ||
|
|
f55c9ed1ba | ||
|
|
5da69c0b9a | ||
|
|
a806e8cc58 | ||
|
|
369b260e12 | ||
|
|
d9e7c1626a | ||
|
|
1a1a7bbbfd | ||
|
|
33e97e994d | ||
|
|
11e6848bb9 | ||
|
|
829410729c | ||
|
|
4995aecd62 | ||
|
|
0e2a3686c0 | ||
|
|
66b2140892 | ||
|
|
0d2857a242 | ||
|
|
17d99e6266 | ||
|
|
ea7d4be3f8 | ||
|
|
05db8784ae | ||
|
|
68667d6057 | ||
|
|
d58b5ef74b | ||
|
|
f044037ec5 | ||
|
|
a97f21ba4e | ||
|
|
b594ed99b8 | ||
|
|
58b06222ff | ||
|
|
58dc397930 | ||
|
|
15073d63d9 | ||
|
|
a6277370ca | ||
|
|
31b2d6be75 | ||
|
|
57ee14d62d | ||
|
|
d470cfe86e | ||
|
|
b55d8f46f4 | ||
|
|
c15218e37a | ||
|
|
985aa0423d | ||
|
|
c14a8dce93 | ||
|
|
f5d45221ca | ||
|
|
d668aa7c24 | ||
|
|
e20fe421e7 | ||
|
|
2deb38d615 | ||
|
|
b95d71af2b | ||
|
|
ebe4ca6b60 | ||
|
|
f159ed20c2 | ||
|
|
cdbb042ce4 | ||
|
|
23bbe511fe | ||
|
|
444218e755 | ||
|
|
9cc60c9dd3 | ||
|
|
cc1fbe0956 | ||
|
|
2c226d597d | ||
|
|
c6ab32ffb9 | ||
|
|
97c6ec6d49 | ||
|
|
1fcf7ba5bc | ||
|
|
12c1e1d149 | ||
|
|
fa222b0ea2 | ||
|
|
101be77d9d | ||
|
|
a6dbef89c2 | ||
|
|
02f08879a4 | ||
|
|
61f1ee2d2d | ||
|
|
ac4b592b4e | ||
|
|
93b6e80cd7 | ||
|
|
f5de714451 | ||
|
|
d4741eece1 | ||
|
|
585484cb06 | ||
|
|
b696928a5b | ||
|
|
79d4e865fe | ||
|
|
8380879804 | ||
|
|
091461cece | ||
|
|
d228c5459d | ||
|
|
3d5d3ea20c | ||
|
|
de7f8eec04 | ||
|
|
4b6047e746 | ||
|
|
c47673bf10 | ||
|
|
49432009fe | ||
|
|
2f6d2b08aa | ||
|
|
473f10877c | ||
|
|
c7df82460c | ||
|
|
b19697e3ac | ||
|
|
3e51448ef0 | ||
|
|
2b2e515a30 | ||
|
|
394e640909 | ||
|
|
b48eb4e88b | ||
|
|
b525480b25 | ||
|
|
45f18eaa52 | ||
|
|
4c92a2869b | ||
|
|
8041ab8a61 | ||
|
|
8251fc0811 | ||
|
|
827ff80c06 | ||
|
|
18ca998f67 | ||
|
|
cb286a66be | ||
|
|
8444470e3a | ||
|
|
f33828a1ca | ||
|
|
68e425f869 | ||
|
|
da6344297a | ||
|
|
3cfca01372 | ||
|
|
d934bb15b0 | ||
|
|
0c0a8392e5 | ||
|
|
98b6ce353c | ||
|
|
58043dac0f | ||
|
|
d2c1f1131b | ||
|
|
fa5c7a9e75 | ||
|
|
ceb94d52a1 | ||
|
|
a2716712ab | ||
|
|
1ac7baceff | ||
|
|
968d94d417 | ||
|
|
7842181b47 | ||
|
|
2ce47fda88 | ||
|
|
ffd010767f | ||
|
|
635990a5b0 | ||
|
|
562f2375c5 | ||
|
|
edf533c83e | ||
|
|
c1d61c88e9 | ||
|
|
6360b846c6 | ||
|
|
57900d07f0 | ||
|
|
8e72e1ed88 | ||
|
|
10c547396d | ||
|
|
66dd871288 | ||
|
|
d484939c02 | ||
|
|
85fd8729ce | ||
|
|
b3e16c6423 | ||
|
|
30d6766db4 | ||
|
|
17234f82d0 | ||
|
|
7b57df02a7 | ||
|
|
b65ae3b036 | ||
|
|
bce76a7977 | ||
|
|
66f3e97457 | ||
|
|
0ee61d178f | ||
|
|
1ceba29f4b | ||
|
|
40c748a2ae | ||
|
|
0e9453a395 | ||
|
|
69d0bc8fd5 | ||
|
|
6a73e5a720 | ||
|
|
e70ba29d95 | ||
|
|
e5647cf70d | ||
|
|
9637cf0574 | ||
|
|
74cc63ba2f | ||
|
|
0b6e360602 | ||
|
|
a49cda6523 | ||
|
|
d612c72405 | ||
|
|
eb152d7431 | ||
|
|
6bd143dd25 | ||
|
|
770d3eabc0 | ||
|
|
75e2ba5af3 | ||
|
|
1726bb6c0d | ||
|
|
5dfe65d53a | ||
|
|
83afd09f13 | ||
|
|
d059cc7170 | ||
|
|
96488c1c74 | ||
|
|
84a81579ba | ||
|
|
244ba1a61a | ||
|
|
9dadc06e64 | ||
|
|
60f949e36f | ||
|
|
af154e3053 | ||
|
|
9e6c290696 | ||
|
|
0a71063530 | ||
|
|
0b1ae11498 | ||
|
|
017a4e7c30 | ||
|
|
3891f18e71 | ||
|
|
6a2077cbd8 | ||
|
|
aa11cc19e8 | ||
|
|
9267536fee | ||
|
|
a6f5717567 | ||
|
|
0a58d6812a | ||
|
|
12507aab8a | ||
|
|
d376fe9e17 | ||
|
|
d21622bef4 | ||
|
|
7febec49b2 | ||
|
|
14d5098ca2 | ||
|
|
bc8eac2439 | ||
|
|
4e65db80e8 | ||
|
|
c0c71d6b3a | ||
|
|
bac1c6d12f | ||
|
|
ce68291d83 | ||
|
|
4176a0ade3 | ||
|
|
ec10f2e72b | ||
|
|
f36c268b9e | ||
|
|
824392a1c2 | ||
|
|
1f9a7b8fd3 | ||
|
|
9379e85e23 | ||
|
|
805c2832c1 | ||
|
|
d33a048d89 | ||
|
|
f77fdc0ce8 | ||
|
|
7da51787b9 | ||
|
|
b1f422c1c5 | ||
|
|
b3f966e2ca | ||
|
|
3f191e1b75 | ||
|
|
6d5fdfbf73 | ||
|
|
9a9e457dd6 | ||
|
|
c316dbe2aa | ||
|
|
b5fcb06a76 | ||
|
|
b5a9a6793b | ||
|
|
0cf79155d4 | ||
|
|
f8f9f3c438 | ||
|
|
1926e919be | ||
|
|
e6c68eed51 | ||
|
|
f9e747dbc6 | ||
|
|
0e86e292e4 | ||
|
|
a590682764 | ||
|
|
31c40fa4cc | ||
|
|
1feb3838b5 | ||
|
|
bd0732b1d0 | ||
|
|
0b5cbcefdd | ||
|
|
e4a87f2f4f | ||
|
|
3c8cadf7ca | ||
|
|
7c0b26e8a0 | ||
|
|
982503e9a8 | ||
|
|
3d93675ff9 | ||
|
|
53d6c9b9c0 | ||
|
|
a02e90d502 | ||
|
|
238dbffb48 | ||
|
|
a9d7b6eab7 | ||
|
|
39c3334147 | ||
|
|
4223495e6c | ||
|
|
023e86d68f | ||
|
|
ac57be91e1 | ||
|
|
c2e65bafb5 | ||
|
|
74161b2122 | ||
|
|
39ee5c5a46 | ||
|
|
788f330d07 | ||
|
|
af56151231 | ||
|
|
34d359fe03 | ||
|
|
4672dbda2a | ||
|
|
62252d157e | ||
|
|
b1cf550123 | ||
|
|
9c84749e2c | ||
|
|
cca4c47781 | ||
|
|
17bd9a1fa1 | ||
|
|
0321644bbd | ||
|
|
81e7988eb9 | ||
|
|
4985311d46 | ||
|
|
05348f3250 | ||
|
|
003609e565 | ||
|
|
e0cfaee7aa | ||
|
|
9537a909f7 | ||
|
|
e75387f029 | ||
|
|
8c2dd5fb9a | ||
|
|
27545dcc86 | ||
|
|
724e04e979 | ||
|
|
dfc94c58f0 | ||
|
|
4b0f8d76f4 | ||
|
|
fac895d7ba | ||
|
|
d023f316ac | ||
|
|
04b40ff221 | ||
|
|
03a08435e2 | ||
|
|
4dd3ab8f32 | ||
|
|
8e0660ad54 | ||
|
|
1f42512199 | ||
|
|
1a29ea1038 | ||
|
|
eab2b9dc09 | ||
|
|
94e92cd6c0 | ||
|
|
57cd6d2de1 | ||
|
|
822d468232 | ||
|
|
bdaa6a1910 | ||
|
|
2221dcc9f2 | ||
|
|
2eb1ee967c | ||
|
|
c49cfefe88 | ||
|
|
c6a6f39d29 | ||
|
|
a3d7811f24 | ||
|
|
eb56ca3b0d | ||
|
|
755e0143fb | ||
|
|
dfa48094dc | ||
|
|
e585192eeb | ||
|
|
646924fce8 | ||
|
|
13c6eb42e9 | ||
|
|
e5fb50476c | ||
|
|
073c590d0b | ||
|
|
c63aa7f085 | ||
|
|
c832e62db0 | ||
|
|
b7a7119b1f | ||
|
|
19a880bb91 | ||
|
|
672399c751 | ||
|
|
c54abde1bd | ||
|
|
95c1d2a887 | ||
|
|
3e6f27522b | ||
|
|
1b70f94282 | ||
|
|
ebef84e9ea | ||
|
|
87d4970e8b | ||
|
|
b1a772d194 | ||
|
|
4938765eb3 | ||
|
|
cce78cc5e2 | ||
|
|
f11f2bfb56 | ||
|
|
24f43e7ae9 | ||
|
|
9085b933d8 | ||
|
|
d94d469c86 | ||
|
|
59502594f8 | ||
|
|
d20c9bde7e | ||
|
|
62414e3073 | ||
|
|
505dde09de | ||
|
|
603d623eda | ||
|
|
87ebf2e50b | ||
|
|
37c3f0d8a0 | ||
|
|
48c985e775 | ||
|
|
7358fffb0f | ||
|
|
de5b6386e0 | ||
|
|
1de2d5c2b6 | ||
|
|
ef53a9229f | ||
|
|
259c39a63a | ||
|
|
4d87f6025e | ||
|
|
327b98eb13 | ||
|
|
f977d10a19 | ||
|
|
a0cf8c322d | ||
|
|
627be179c1 | ||
|
|
1e74f5850b | ||
|
|
6d83a73858 | ||
|
|
9b76872708 | ||
|
|
9b093c9a12 | ||
|
|
4d587c341b | ||
|
|
f8f6cd6ef5 | ||
|
|
cf08eac15e | ||
|
|
9a8552e8ae | ||
|
|
846317ef37 | ||
|
|
7e62789edf | ||
|
|
5865af7f6e | ||
|
|
852663f6d2 | ||
|
|
c1148c4ea6 | ||
|
|
280dc77f8b | ||
|
|
a9b30984a3 | ||
|
|
2f83c3b689 | ||
|
|
b25ad12f1a | ||
|
|
d95e43a6a1 | ||
|
|
27df987211 | ||
|
|
982745fb83 | ||
|
|
8fa8d471af | ||
|
|
2cc14bd0fb | ||
|
|
98ad72b096 | ||
|
|
fdc8ed8d05 | ||
|
|
24fcb7f813 | ||
|
|
236c64a17d | ||
|
|
9e835e8edb | ||
|
|
f96569da1e | ||
|
|
91ff45fbde | ||
|
|
1261f250c6 | ||
|
|
3673b45437 | ||
|
|
45aabc5d0d | ||
|
|
f9bd83c854 | ||
|
|
499d8adb75 | ||
|
|
54386c82fd | ||
|
|
86a51015b1 | ||
|
|
38b9ec7a18 | ||
|
|
998406d20e | ||
|
|
f7b4b750d8 | ||
|
|
2558ab3de7 | ||
|
|
a4e2c56317 | ||
|
|
0c10ae1861 | ||
|
|
b3cc828995 | ||
|
|
ba8f9d8620 | ||
|
|
3c89a28a06 | ||
|
|
9c5d7716e2 | ||
|
|
46fd26e366 | ||
|
|
41a2eb5245 | ||
|
|
c410d7a97d | ||
|
|
6fa63dcc0c | ||
|
|
3d7670a6ba | ||
|
|
96f25332ea | ||
|
|
3385d38648 | ||
|
|
1618c963e4 | ||
|
|
50462dcdc6 | ||
|
|
1e3be09b3b | ||
|
|
6e66a9222a | ||
|
|
c3ac834526 | ||
|
|
9d1e8b1e1d | ||
|
|
f605373a2b | ||
|
|
56b7622612 | ||
|
|
696a6ccd57 | ||
|
|
51b03b87e6 | ||
|
|
aa7ba0bc1a | ||
|
|
07e4076585 | ||
|
|
de1a459879 | ||
|
|
1aacb9bb15 | ||
|
|
9b4ecc96f6 | ||
|
|
e3f4f874c5 | ||
|
|
6ace801418 | ||
|
|
d31b93b513 | ||
|
|
ac0fd6aa9a | ||
|
|
c7e0888982 | ||
|
|
068f33cfdf | ||
|
|
4807cd8a6e | ||
|
|
c703f1eed6 | ||
|
|
5ac5da3524 | ||
|
|
0c13d34ade | ||
|
|
35e824c287 | ||
|
|
1e0d290f2e | ||
|
|
0097a8d097 | ||
|
|
36cc43170d | ||
|
|
5578ad5e14 | ||
|
|
d11f0a709d | ||
|
|
0a43b23275 | ||
|
|
7967683296 | ||
|
|
5b2c016834 | ||
|
|
aaff125608 | ||
|
|
407adc7061 | ||
|
|
d0e612dc36 | ||
|
|
5aa7435d25 | ||
|
|
7c23ec90a9 | ||
|
|
390957fec4 | ||
|
|
060a76dc3e | ||
|
|
6625810d2a | ||
|
|
edc442afdb | ||
|
|
16b9514543 | ||
|
|
95c7f4a7f0 | ||
|
|
ae6fabc6fe | ||
|
|
7eaadf616c | ||
|
|
8fed5fc5ae | ||
|
|
f25951c412 | ||
|
|
c11195d5e3 | ||
|
|
2ed5cba110 | ||
|
|
4c05a697fa | ||
|
|
1259a474ba | ||
|
|
3995deaf76 | ||
|
|
076587425e | ||
|
|
da6aeaca46 | ||
|
|
8ee33ca551 | ||
|
|
ea7f13922b | ||
|
|
38d0063c36 | ||
|
|
56d0d5986f | ||
|
|
df83459721 | ||
|
|
54a9e00970 | ||
|
|
9bda96d39e | ||
|
|
053470d5a8 | ||
|
|
6f4160c014 | ||
|
|
65ef82a946 | ||
|
|
b509a7060a | ||
|
|
5ad6ff239b | ||
|
|
fdaa6ff9e3 | ||
|
|
2f31763335 | ||
|
|
350562919c | ||
|
|
aa5c4945d6 | ||
|
|
6fbfc58602 | ||
|
|
77a5c43d50 | ||
|
|
f28e4b86fb | ||
|
|
6801dd043d | ||
|
|
b675e6ab77 | ||
|
|
d6306f8ccb | ||
|
|
a9817e9127 | ||
|
|
bb5f33d13c | ||
|
|
c08897cd10 | ||
|
|
384875f4fc | ||
|
|
9cfa84313c | ||
|
|
f787c49b53 | ||
|
|
fa90e14b06 | ||
|
|
fe625a558e | ||
|
|
03b989251d | ||
|
|
95919051e0 | ||
|
|
46fb88c76f | ||
|
|
210bfaf8d6 | ||
|
|
a50dec88d5 | ||
|
|
8dcec034ed | ||
|
|
9ef41f68fb | ||
|
|
05d733e707 | ||
|
|
4bbe28bdf0 | ||
|
|
0c01cf7c85 | ||
|
|
917cd13ce2 | ||
|
|
cfb36443fb | ||
|
|
9d3826c676 | ||
|
|
4300bb2e1f | ||
|
|
6edc438789 | ||
|
|
955cf35d5f | ||
|
|
25cd7c7c50 | ||
|
|
0f8efb07c7 | ||
|
|
732cb6c45c | ||
|
|
4d63a89fa6 | ||
|
|
266a868ba9 | ||
|
|
8199967b31 | ||
|
|
9d61c18143 | ||
|
|
7c73e28a6d | ||
|
|
221bfa4c67 | ||
|
|
aaca4987c9 | ||
|
|
1a8b7f7513 | ||
|
|
992b47b991 | ||
|
|
21d0f40751 | ||
|
|
5e7f06397f | ||
|
|
adaace4ab8 | ||
|
|
739ff84732 | ||
|
|
2a177052de | ||
|
|
424eaba4c5 | ||
|
|
e1cafa3834 | ||
|
|
ba539eb9aa | ||
|
|
24de676a64 | ||
|
|
0c2741f7ad | ||
|
|
f7c82baee9 | ||
|
|
2b34e0abdc | ||
|
|
6306bc3ddc | ||
|
|
ea068dcc2c | ||
|
|
633fedaa96 | ||
|
|
4ff76cad2a | ||
|
|
65134c793b | ||
|
|
5af09e73f2 | ||
|
|
d5f34cf34c | ||
|
|
6a2e559222 | ||
|
|
cefa602601 | ||
|
|
d773691848 | ||
|
|
da07ad16c1 | ||
|
|
f40707dc68 | ||
|
|
2d8ce500fa | ||
|
|
ba0cea6826 | ||
|
|
ddf1b04cce | ||
|
|
ad5b3a4753 | ||
|
|
531ea5b3a2 | ||
|
|
b468468e7e | ||
|
|
d52e4e5df3 | ||
|
|
907743eee7 | ||
|
|
610e3dccb7 | ||
|
|
27392f832d | ||
|
|
e9db7fea5b | ||
|
|
bdd3930855 | ||
|
|
cff0168f3a | ||
|
|
70d5c88026 | ||
|
|
d83901e665 | ||
|
|
1e1984a586 | ||
|
|
2f180cea7f | ||
|
|
f4d6a3ec4e | ||
|
|
7aa922ceac | ||
|
|
06dcc5a2c6 | ||
|
|
000f762fb9 | ||
|
|
3bc3eeb5da | ||
|
|
4e5699fa71 | ||
|
|
acc576658a | ||
|
|
a76274b549 | ||
|
|
803ff8ebb9 | ||
|
|
b42152ffeb | ||
|
|
4015a5486c | ||
|
|
024b43ca06 | ||
|
|
aae48e6fd7 | ||
|
|
d29c7e7871 | ||
|
|
9448fe3db4 | ||
|
|
3817f3a89b | ||
|
|
755f4f324b | ||
|
|
863ab0e72e | ||
|
|
4ab0377c6e | ||
|
|
2062a7ca8f | ||
|
|
b61a55eebf | ||
|
|
c30078c5a3 | ||
|
|
39b91c97f0 | ||
|
|
8334ee18e6 | ||
|
|
cc2592f582 | ||
|
|
96d35f7c54 | ||
|
|
98c5fc6ae2 | ||
|
|
fbde0c6c96 | ||
|
|
602e7c83e2 | ||
|
|
eb9218a86b | ||
|
|
9f2dcc3f13 | ||
|
|
bc210b292b | ||
|
|
2113af9c52 | ||
|
|
6f417b57c1 | ||
|
|
a7742d7d63 | ||
|
|
5179e37bd1 | ||
|
|
a7b17bfaf0 | ||
|
|
4af1f31a3f | ||
|
|
0acd06d13c | ||
|
|
fd22e98298 | ||
|
|
9e42e04b4a | ||
|
|
9103837228 | ||
|
|
3f3c5de851 | ||
|
|
167a12028d | ||
|
|
6af2faebd2 | ||
|
|
34b65be44a | ||
|
|
fd16222613 | ||
|
|
1ba6cd8423 | ||
|
|
b928ebdd53 | ||
|
|
b42623ff9d | ||
|
|
59ae0e0013 | ||
|
|
4788de784b | ||
|
|
926535469d | ||
|
|
c0f63eb21f | ||
|
|
5627a0cbdf | ||
|
|
ed2a698392 | ||
|
|
aaad1791d9 | ||
|
|
ad6e82942b | ||
|
|
9a9954a036 | ||
|
|
d60bb57d4b | ||
|
|
591708903b | ||
|
|
f9d62fba7a | ||
|
|
85dde8a800 | ||
|
|
9d039c206b | ||
|
|
cbff19ff1a | ||
|
|
4c3f9b2ef4 | ||
|
|
167bac23aa | ||
|
|
5d0cfa2527 | ||
|
|
0e523618a1 | ||
|
|
821fae0d94 | ||
|
|
3b26105f68 | ||
|
|
0f2f966a91 | ||
|
|
d7d491d445 | ||
|
|
41effbe2da | ||
|
|
9b0d6862c4 | ||
|
|
890fcdf842 | ||
|
|
18dbac203f | ||
|
|
8d1f254dcc | ||
|
|
e5841d3126 | ||
|
|
90df3af6cf | ||
|
|
11cc36d770 | ||
|
|
05f1939b02 | ||
|
|
050ea9762f | ||
|
|
0f24d4d2a1 | ||
|
|
fc799191f4 | ||
|
|
8fad85edda | ||
|
|
d70053aba5 | ||
|
|
b699fe7a9d | ||
|
|
94c67faaea | ||
|
|
b2ed5c3070 | ||
|
|
9fe49497bb | ||
|
|
5b8c10f2f8 | ||
|
|
24983f62e2 | ||
|
|
f2057ce1ab | ||
|
|
6797fd65a5 | ||
|
|
bf489feef1 | ||
|
|
947e06a860 | ||
|
|
6a3d925a47 | ||
|
|
04d5ba266f | ||
|
|
90be83ae99 | ||
|
|
5e80bd3cc9 | ||
|
|
fb7ef76e74 | ||
|
|
db4b1e613c | ||
|
|
ee39081b11 | ||
|
|
7d842f5bcf | ||
|
|
4eac198270 | ||
|
|
faac32418c | ||
|
|
42810621df | ||
|
|
61a5378aeb | ||
|
|
42d644ef91 | ||
|
|
c95a56450d | ||
|
|
dc5199feea | ||
|
|
f88fdf6a1b | ||
|
|
b68057d927 | ||
|
|
e9a860d9cb | ||
|
|
8be86cbdfd | ||
|
|
5091e64a42 | ||
|
|
828304d587 | ||
|
|
9d584475f6 | ||
|
|
bb60cb0bf9 | ||
|
|
25f908b320 | ||
|
|
9b7dca2fa1 | ||
|
|
55e1dfb778 | ||
|
|
735a79ae83 | ||
|
|
ef2b400c61 | ||
|
|
c2263db7bc | ||
|
|
53eca2ff5b | ||
|
|
7bbbda71df | ||
|
|
3a15a3821a | ||
|
|
9557b9f70f | ||
|
|
464441d8c3 | ||
|
|
f30f1afd47 | ||
|
|
b3db37b99d | ||
|
|
7a276f39fb | ||
|
|
415668ecf0 | ||
|
|
651967b95c | ||
|
|
8e0baf257c | ||
|
|
c8268e65fd | ||
|
|
3cf4375387 | ||
|
|
438e2dc228 | ||
|
|
c1adbe3189 | ||
|
|
7ee1816612 | ||
|
|
b4084491e5 | ||
|
|
cb97421edf | ||
|
|
e461031d40 | ||
|
|
c82e4596e4 | ||
|
|
8f4f834ce6 | ||
|
|
15ba3e123f | ||
|
|
2db243b8ed | ||
|
|
b57b64b7a3 | ||
|
|
8e386ac71f | ||
|
|
bc1af6227a | ||
|
|
2b84c97a78 | ||
|
|
3ddf84534b | ||
|
|
4c2dff88de | ||
|
|
bd26104088 | ||
|
|
80238880e6 | ||
|
|
f4abafb093 | ||
|
|
3e538355e2 | ||
|
|
5f80f43ff5 | ||
|
|
76e9da3fe9 | ||
|
|
cafa04f842 | ||
|
|
fef84f69ec | ||
|
|
ba98cd97e5 | ||
|
|
81b897c291 | ||
|
|
1c4d70896a | ||
|
|
039bcd932a | ||
|
|
eaa9228a4f | ||
|
|
a8757df963 | ||
|
|
b221143c0f | ||
|
|
2c796de92b | ||
|
|
6f2a64a511 | ||
|
|
995841624c | ||
|
|
f5f675ef6c | ||
|
|
bdc8e9118b | ||
|
|
d9ed9a9a83 | ||
|
|
b57faa41c2 | ||
|
|
1b5fe91624 | ||
|
|
1a305cadb3 | ||
|
|
bbcd06f42f | ||
|
|
34183237ce | ||
|
|
286ec92967 | ||
|
|
43940f7ffc | ||
|
|
b05631432b | ||
|
|
dc92886ab6 | ||
|
|
993416d9cf | ||
|
|
f4a79b0554 | ||
|
|
411fd2b761 | ||
|
|
327109f327 | ||
|
|
f1f9121bc7 | ||
|
|
3b42e19505 | ||
|
|
709156ee65 | ||
|
|
472030907b | ||
|
|
61e30c15a9 | ||
|
|
d332f33346 | ||
|
|
636db09d73 | ||
|
|
64c018507b | ||
|
|
3e513ee6ab | ||
|
|
c34445a496 | ||
|
|
c2ce3d927a | ||
|
|
ff60abb575 | ||
|
|
7d91dfe339 | ||
|
|
15af65d4cf | ||
|
|
0e8431d17b | ||
|
|
81afeda537 | ||
|
|
e10de25e86 | ||
|
|
826fdaf06c | ||
|
|
a4d0a1483a | ||
|
|
746bd47ce5 | ||
|
|
dcb4cabb26 | ||
|
|
59b4baee0c | ||
|
|
2610724ee0 | ||
|
|
61359a5bd0 | ||
|
|
bb3bbd192b | ||
|
|
de781b306f | ||
|
|
1212aef03b | ||
|
|
814550d2a6 | ||
|
|
478663b08c | ||
|
|
fb9a00c36d | ||
|
|
fb68fe8930 | ||
|
|
73ee01a7f4 | ||
|
|
eb9b5fa9a5 | ||
|
|
8bd5405228 | ||
|
|
cb51a155b2 | ||
|
|
d3be58b6d7 | ||
|
|
8ecfbdb4ff | ||
|
|
63256a00ff | ||
|
|
450dc92452 | ||
|
|
9c16408e91 | ||
|
|
d42a2b2d16 | ||
|
|
3d2f4fa164 | ||
|
|
3d394943e6 | ||
|
|
cf96a9fd27 | ||
|
|
76e81dfbb0 | ||
|
|
684ba6fe14 | ||
|
|
830cb5cad7 | ||
|
|
3e25f32c9b | ||
|
|
81567a9d3e | ||
|
|
2b06208bbd | ||
|
|
5f637e5a02 | ||
|
|
cc712a165d | ||
|
|
4a2adba8f4 | ||
|
|
84f78059d3 | ||
|
|
b67c0e5f4a | ||
|
|
1e1ddd3279 | ||
|
|
70f69cb265 | ||
|
|
ae4cc404c1 | ||
|
|
32df5faa25 | ||
|
|
ac8e7d57dc | ||
|
|
da4a531717 | ||
|
|
fea12f7806 | ||
|
|
7499a15c92 | ||
|
|
115e471515 | ||
|
|
c4df8989e9 | ||
|
|
0f11b1fc0d | ||
|
|
5f4e55bc68 | ||
|
|
c621384707 | ||
|
|
c0162a64d1 | ||
|
|
527d86a93d | ||
|
|
7d66f1e391 | ||
|
|
6265155ce4 | ||
|
|
70d1ff7155 | ||
|
|
4753206783 | ||
|
|
6376a3aef2 | ||
|
|
1ae16beb06 | ||
|
|
e53a4ce64d | ||
|
|
72655a9eea | ||
|
|
125f890dc3 | ||
|
|
101d50703c | ||
|
|
901ed5545f | ||
|
|
a604d44d06 | ||
|
|
bb92eb5a93 | ||
|
|
699b4b9fc5 | ||
|
|
1fb3133ec5 | ||
|
|
fea45c6911 | ||
|
|
1d7d18afba | ||
|
|
aadbebf9d8 | ||
|
|
7e12af2448 | ||
|
|
b335fe67b0 | ||
|
|
776d92e797 | ||
|
|
dde029f105 | ||
|
|
7ffc02283b | ||
|
|
7a31a6edee | ||
|
|
df05bc65c5 | ||
|
|
3a49ff9e72 | ||
|
|
302c2354a3 | ||
|
|
158b13e0ba | ||
|
|
71e2a17fdb | ||
|
|
b1dc7ed873 | ||
|
|
1bced43e96 | ||
|
|
7de627c504 | ||
|
|
6a4bfc0863 | ||
|
|
170bf6d7af | ||
|
|
8550f7e04d | ||
|
|
9f3e83baf6 | ||
|
|
17ab61a40d | ||
|
|
1b844f8413 | ||
|
|
baa22fa808 | ||
|
|
f78cebfc98 | ||
|
|
d2a9ca13f1 | ||
|
|
71bae7c23f | ||
|
|
1dacea3a20 | ||
|
|
083a7c8f0a | ||
|
|
d4f104f17f | ||
|
|
fd44ba296d | ||
|
|
4ed91ce7ed | ||
|
|
b04d6a2d9b | ||
|
|
15e2f991dd | ||
|
|
a08eac452e | ||
|
|
0c171c0749 | ||
|
|
7021ea6748 | ||
|
|
dbd65a3b01 | ||
|
|
55aa1d4852 | ||
|
|
971dacaf41 | ||
|
|
159534313e | ||
|
|
2f68c43e39 | ||
|
|
e2483aa072 | ||
|
|
6c53af8e41 | ||
|
|
c4ca9a7bae | ||
|
|
c69f37343c | ||
|
|
aec62a7fc5 | ||
|
|
bf26050f7e | ||
|
|
402bce1a31 | ||
|
|
e68657cdb2 | ||
|
|
e00cfe067d | ||
|
|
8868350888 | ||
|
|
fcaeeac931 | ||
|
|
a53582d706 | ||
|
|
e655083e3c | ||
|
|
1b64851fa8 | ||
|
|
40a7c70969 | ||
|
|
2e143b8799 | ||
|
|
5105a937d1 | ||
|
|
3930c9a492 | ||
|
|
29fb4f98b1 | ||
|
|
f0839d2703 | ||
|
|
405e820fe1 | ||
|
|
3386efddba | ||
|
|
c41650db20 | ||
|
|
a0ff55db7d | ||
|
|
896bffb543 | ||
|
|
0df6159149 | ||
|
|
cfb77091ca | ||
|
|
6598e9d506 | ||
|
|
8c2cf89845 | ||
|
|
aeb8dfc52d | ||
|
|
0649a2fbdb | ||
|
|
ec32061f5f | ||
|
|
f2da1a0a7a | ||
|
|
fda1e6f148 | ||
|
|
2a48730166 | ||
|
|
0bdbc745c4 | ||
|
|
6f70b0524a | ||
|
|
b9b19185bc | ||
|
|
63ba9970bd | ||
|
|
1f726e81f9 | ||
|
|
a9a6801c6d | ||
|
|
222af8e7e4 | ||
|
|
df71853075 | ||
|
|
bfb10d74eb | ||
|
|
ec8b7c933a | ||
|
|
68d15fc62e | ||
|
|
f479935cda | ||
|
|
76860933f0 | ||
|
|
19a936fc03 | ||
|
|
be17fce657 | ||
|
|
9a1d7736f8 | ||
|
|
9f295b2c91 | ||
|
|
6e8daaec0f | ||
|
|
3a8154051f | ||
|
|
f3f46096d6 | ||
|
|
ace37df941 | ||
|
|
de7377485b | ||
|
|
e23578acd9 | ||
|
|
770445ae2a | ||
|
|
b9b65e9392 | ||
|
|
ac9182f20d | ||
|
|
125b9f6057 | ||
|
|
69357b1e88 | ||
|
|
e9e9e3898a | ||
|
|
9ef20ad20e | ||
|
|
2cf1a13755 | ||
|
|
6465e393b6 | ||
|
|
6e6c0f31f7 | ||
|
|
1263949e70 | ||
|
|
12d80b9e64 | ||
|
|
d0e3e638c3 | ||
|
|
ad333e0d22 | ||
|
|
34a8a45a6a | ||
|
|
6a72bf5085 | ||
|
|
1e51f87298 | ||
|
|
8095f601d1 | ||
|
|
0ff57e3292 | ||
|
|
5db484b6c2 | ||
|
|
b40d24ad75 | ||
|
|
6865787a75 | ||
|
|
7f664850f5 | ||
|
|
2907fb88f5 | ||
|
|
f839fa4070 | ||
|
|
32d51313d0 | ||
|
|
69341edfe6 | ||
|
|
81f0b0e0dc | ||
|
|
d7cb2ea210 | ||
|
|
28f919d9d2 | ||
|
|
4ae2c11520 | ||
|
|
3e1673e8b2 | ||
|
|
1b3e0b27af | ||
|
|
e4b0251e9d | ||
|
|
b26f5b9468 | ||
|
|
5340dc6686 | ||
|
|
174753921d | ||
|
|
aa32e3deb1 | ||
|
|
2b86de217a | ||
|
|
1615afd7f4 | ||
|
|
908957317f | ||
|
|
6fa2bdd7f2 | ||
|
|
f82303d614 | ||
|
|
6773fa03e2 | ||
|
|
47fe017a6c | ||
|
|
7baae20c20 | ||
|
|
921c4551d9 | ||
|
|
c20a424e3a | ||
|
|
2e005f5dc2 | ||
|
|
9f13fdb840 | ||
|
|
e6f52b0996 | ||
|
|
d651ff8d6b | ||
|
|
e11408f6ad | ||
|
|
8069a6b4f8 | ||
|
|
b697b3162f | ||
|
|
53a16b1186 | ||
|
|
a2a92999be | ||
|
|
40c0830b63 | ||
|
|
6f1eefec69 | ||
|
|
61a4100d0c | ||
|
|
bb6e15f2c0 | ||
|
|
0dcb99cf23 | ||
|
|
69fc0acd1a | ||
|
|
3f14cb073b | ||
|
|
cc6d48959e | ||
|
|
5ffe32439d | ||
|
|
76a9c0ccb0 | ||
|
|
aab62aa6dd | ||
|
|
c89084e6b7 | ||
|
|
64072e44cc | ||
|
|
e7007668a6 | ||
|
|
105b57c8d9 | ||
|
|
79d4a38d87 | ||
|
|
e08de1101d | ||
|
|
b5339cc01b | ||
|
|
ac9f3a1242 | ||
|
|
53652a6194 | ||
|
|
8d232a63ad | ||
|
|
35eaacd1db | ||
|
|
bf03f5fa3a | ||
|
|
6e8022a3af | ||
|
|
d27eb79fa6 | ||
|
|
3e48a91d97 | ||
|
|
ad2f5ccc66 | ||
|
|
77bfd9434b | ||
|
|
144443d011 | ||
|
|
6ba99068c9 | ||
|
|
86d0a86141 | ||
|
|
b7f6584dab | ||
|
|
3290a5f370 | ||
|
|
bf9f67e93f | ||
|
|
26ea4760ad | ||
|
|
0753408e10 | ||
|
|
f59917bea1 | ||
|
|
b62d015285 | ||
|
|
a394c8b10b | ||
|
|
24002a5dfe | ||
|
|
7c4b873ba3 | ||
|
|
e56e4876e7 | ||
|
|
7949983c41 | ||
|
|
56bdd7db5c | ||
|
|
3df6bc58e9 | ||
|
|
b0d66e06f4 | ||
|
|
e75f1b071b | ||
|
|
7a2b3ed471 | ||
|
|
551d4a8ec1 | ||
|
|
29a289dfa1 | ||
|
|
a00d6b8377 | ||
|
|
ca8c3dd9b5 | ||
|
|
c434ca74a2 | ||
|
|
bdd2b57e5d | ||
|
|
a97f6f8058 | ||
|
|
c0dd82fb53 | ||
|
|
94f00cf096 | ||
|
|
1211a8b9cd | ||
|
|
50a264d832 | ||
|
|
3f52d0e46c | ||
|
|
716bdd5ee5 | ||
|
|
bad08d26da | ||
|
|
a41394c885 | ||
|
|
f680505086 | ||
|
|
ae60bbc7e4 | ||
|
|
dc31e20925 | ||
|
|
7664e6d090 | ||
|
|
af63fffb63 | ||
|
|
0a6adedaf1 | ||
|
|
b19f860384 | ||
|
|
960f501cc1 | ||
|
|
7a8e171691 | ||
|
|
7ca9740da5 | ||
|
|
68fae94cbb | ||
|
|
6da5c7c1d0 | ||
|
|
87e607a19b | ||
|
|
cbe236652b | ||
|
|
d4d805cb3e | ||
|
|
8d29a902e4 | ||
|
|
4c1d5840bb | ||
|
|
f136adcad5 | ||
|
|
95ab9468c1 | ||
|
|
f8181fbef8 | ||
|
|
c5c2b6f9bf | ||
|
|
b995de4ff3 | ||
|
|
825dadfbdd | ||
|
|
0f4b27c300 | ||
|
|
63048812c7 | ||
|
|
fbb38cc245 | ||
|
|
c1a57a10a4 | ||
|
|
e4692ac079 | ||
|
|
12fa8d8444 | ||
|
|
47337e2196 | ||
|
|
ddd2447192 | ||
|
|
1d6a1e5f9c | ||
|
|
04d907fb97 | ||
|
|
84fcc4ab9b | ||
|
|
65b51e1538 | ||
|
|
e2610df073 | ||
|
|
6c9be1bc1d | ||
|
|
4c48f1eed2 | ||
|
|
31f66766b7 | ||
|
|
601690695e | ||
|
|
4287961aed | ||
|
|
85009800b3 | ||
|
|
d643a90efa | ||
|
|
04a9ff88d8 | ||
|
|
dc24663e8d | ||
|
|
d2cc63e779 | ||
|
|
d0fe6ad109 | ||
|
|
358878caf7 | ||
|
|
b450dd7a87 | ||
|
|
640f188ca2 | ||
|
|
a1e2c4f338 | ||
|
|
625d4fc884 | ||
|
|
f821530eb0 | ||
|
|
7894cd3c73 | ||
|
|
125cc79c17 | ||
|
|
2e429268ff | ||
|
|
2a808aeec0 | ||
|
|
94533e12eb | ||
|
|
a0008de281 | ||
|
|
a42d4da003 | ||
|
|
e2ca50f1cb | ||
|
|
be24659c03 | ||
|
|
2dc157246b | ||
|
|
b6670f3ac3 | ||
|
|
0689c70dba | ||
|
|
d2ac304ade | ||
|
|
16c3522f4e | ||
|
|
7ac6abe02a | ||
|
|
6af20d3907 | ||
|
|
75ad74c893 | ||
|
|
cbfd38bd41 | ||
|
|
a823b06fa5 | ||
|
|
cbb0151303 | ||
|
|
ec4baf337a | ||
|
|
2ab1f3f166 | ||
|
|
a123c48d4d | ||
|
|
1c88e1fd19 | ||
|
|
cc22a73d0f | ||
|
|
325bdf952c | ||
|
|
6fbf93750b | ||
|
|
ba7d0c5b23 | ||
|
|
5d499a185b | ||
|
|
65eb946756 | ||
|
|
137ec1c846 | ||
|
|
b0afb4d63c | ||
|
|
51fd26b19b | ||
|
|
eab8ac9a71 | ||
|
|
1b0f781b7c | ||
|
|
d1c04af603 | ||
|
|
eb82ba36a3 | ||
|
|
7bcb51eded | ||
|
|
f70e80a6ba | ||
|
|
19865a26e5 | ||
|
|
96947c30c0 | ||
|
|
e0265c67c6 | ||
|
|
19f1bac18c | ||
|
|
b3b80f85fe | ||
|
|
9695165877 | ||
|
|
84080c12fd | ||
|
|
1a855fed8f | ||
|
|
773262bc09 | ||
|
|
28c064f345 | ||
|
|
c7f03814ea | ||
|
|
90623498a2 | ||
|
|
21b2e33ebb | ||
|
|
fadb25baf8 | ||
|
|
0553543e6e | ||
|
|
543379d343 | ||
|
|
20a46b31cd | ||
|
|
37eba84056 | ||
|
|
293e777fce | ||
|
|
b2321576bc | ||
|
|
dd5976162b | ||
|
|
7328600a7a | ||
|
|
67b6ef4c2a | ||
|
|
3d0a421ab4 | ||
|
|
831d48d971 | ||
|
|
3a062eed5b | ||
|
|
52a6a823ad | ||
|
|
9d61b1e754 | ||
|
|
b89410a266 | ||
|
|
317db39a5e | ||
|
|
7ffc4b57aa | ||
|
|
d4d12164aa | ||
|
|
34d5746553 | ||
|
|
86cb435adf | ||
|
|
513f5a8869 | ||
|
|
1de02b9c57 | ||
|
|
f6bc4fd4c6 | ||
|
|
9d89edff2f | ||
|
|
599d64a405 | ||
|
|
0a6f216f83 | ||
|
|
9b399f3960 | ||
|
|
98c2ccfaa3 | ||
|
|
1d0334fc07 | ||
|
|
309e1e2b1d | ||
|
|
af13f61a43 | ||
|
|
6c57428742 | ||
|
|
0f35412dcd | ||
|
|
d093ac6a0f | ||
|
|
6d81a88288 | ||
|
|
96a15434a2 | ||
|
|
6111935835 | ||
|
|
c131c12fd7 | ||
|
|
4badf640bf | ||
|
|
ca7518c13b | ||
|
|
77e26a7db3 | ||
|
|
a7c1838c69 | ||
|
|
54d80d9168 | ||
|
|
db2cefd12b | ||
|
|
8f6ba5a089 | ||
|
|
a40d308d6a | ||
|
|
3dd55d284d | ||
|
|
5cf08b0722 | ||
|
|
504ff978c5 | ||
|
|
0421c3991d | ||
|
|
50a1a33d07 | ||
|
|
9a7df7a85d | ||
|
|
96570820ef | ||
|
|
b5a4bd22fb | ||
|
|
eb90186614 | ||
|
|
8d21c84e7d | ||
|
|
0aca3fb5af | ||
|
|
b50c1ba9e6 | ||
|
|
601851cc7e | ||
|
|
413c056504 | ||
|
|
29f55810cf | ||
|
|
f76ba285c9 | ||
|
|
0a7a54f312 | ||
|
|
5b16b190c1 | ||
|
|
0885a79c28 | ||
|
|
20d5d1c4c2 | ||
|
|
6d3502833f | ||
|
|
bc8727786b | ||
|
|
928d5ae315 | ||
|
|
f0445295bd | ||
|
|
0cdbdfdf9f | ||
|
|
47426a8ae5 | ||
|
|
cc73c36e32 | ||
|
|
5a06d679cf | ||
|
|
76cc034df2 | ||
|
|
cbb230fdfc | ||
|
|
5d1540f4fc | ||
|
|
fdd5c26eb8 | ||
|
|
a5a421a9f1 | ||
|
|
743099f9f9 | ||
|
|
ad66b070a7 | ||
|
|
6f6dd227f8 | ||
|
|
d2d6eba16a | ||
|
|
cceec84139 | ||
|
|
3d5f9e8b14 | ||
|
|
2cb48e034e | ||
|
|
c909693d45 | ||
|
|
e5d78960c6 | ||
|
|
fba70f7991 | ||
|
|
84a290097b | ||
|
|
ba8d20e9ae | ||
|
|
767127c92e | ||
|
|
65b5d34aee | ||
|
|
6ee23c9b85 | ||
|
|
cac5b0fe5a | ||
|
|
107f233626 | ||
|
|
0677f3e21c | ||
|
|
93783df42a | ||
|
|
1162cef978 | ||
|
|
a3fb64d1cd | ||
|
|
7079e7ea5e | ||
|
|
4f39f8a8d0 | ||
|
|
27bada6737 | ||
|
|
650836d700 | ||
|
|
c527b3cefd | ||
|
|
3b9aebee11 | ||
|
|
847b16fb76 | ||
|
|
8fa013309e | ||
|
|
7ab3a80d0a | ||
|
|
e5518ee657 | ||
|
|
2387813428 | ||
|
|
0c31c0756c | ||
|
|
7405075ede | ||
|
|
6b474c4051 | ||
|
|
a9c954e821 | ||
|
|
b6933dbf3a | ||
|
|
f46b1252c4 | ||
|
|
e6959055b5 | ||
|
|
0be18f5cb0 | ||
|
|
7ea21c4b3c | ||
|
|
9d227641c9 | ||
|
|
2a2e4e78bf | ||
|
|
fb3b297369 | ||
|
|
050327a1e2 | ||
|
|
4f08bb5046 | ||
|
|
09d2ca17cf | ||
|
|
83aa711346 | ||
|
|
fcff767a7f | ||
|
|
7a282a8892 | ||
|
|
863ecded30 | ||
|
|
3e34cec96b | ||
|
|
6ca46afa63 | ||
|
|
0a86ddc36c | ||
|
|
ab0e1c573a | ||
|
|
26da491053 | ||
|
|
674ecc5581 | ||
|
|
6c1a433c4c | ||
|
|
eced4dd023 | ||
|
|
23734aff74 | ||
|
|
0016c25b58 | ||
|
|
94e1126678 | ||
|
|
68eb54dc13 | ||
|
|
b08d67c4e1 | ||
|
|
2b787eb4b8 | ||
|
|
5ab4623c2a | ||
|
|
cdf73f2e05 | ||
|
|
30bef20e22 | ||
|
|
4be077163f | ||
|
|
b9dfffc237 | ||
|
|
c5bf15e009 | ||
|
|
e2949c7d0a | ||
|
|
e448f4f6ef | ||
|
|
e250bae356 | ||
|
|
ebd91459f2 | ||
|
|
1a5b411ae4 | ||
|
|
4c7f56263e | ||
|
|
6be9496d73 | ||
|
|
46b2da409b | ||
|
|
694fe3e7d2 | ||
|
|
900051cd04 | ||
|
|
34c3f0f495 | ||
|
|
e705414bea | ||
|
|
467870415b | ||
|
|
ff8a624189 | ||
|
|
37c12db366 | ||
|
|
449ebc1b70 | ||
|
|
b73bf03bfc | ||
|
|
3f14341629 | ||
|
|
ca9cbab532 | ||
|
|
5c70a2015f | ||
|
|
8c221981bf | ||
|
|
e85b41f9be | ||
|
|
573812d0ff | ||
|
|
c12930cdde | ||
|
|
857f339914 | ||
|
|
b1ffe7a153 | ||
|
|
f54f6627c3 | ||
|
|
62b60b11bb | ||
|
|
96e0902f39 | ||
|
|
1d3207d7c7 | ||
|
|
13a1105318 | ||
|
|
8e5e1b62aa | ||
|
|
19ef9505e8 | ||
|
|
e982ad2284 | ||
|
|
fb0abdeb4f | ||
|
|
331f1b9961 | ||
|
|
3cfe7b9af9 | ||
|
|
37e656082b | ||
|
|
0c0cf8b19f | ||
|
|
7825abd540 | ||
|
|
cd59516433 | ||
|
|
bbad38b2c5 | ||
|
|
413febf657 | ||
|
|
d5447d859f | ||
|
|
1a3a25f825 | ||
|
|
38a49f92ab | ||
|
|
b4e941d431 | ||
|
|
ea41f89b40 | ||
|
|
7a790d0d35 | ||
|
|
995c308a49 | ||
|
|
1d5589296e | ||
|
|
0f968e3b6d | ||
|
|
8a44e712f8 | ||
|
|
e4e10e54df | ||
|
|
f65d75f5c8 | ||
|
|
d93790717d | ||
|
|
291dbdfbe6 | ||
|
|
5e5f47321b | ||
|
|
6ce9bb6f7a | ||
|
|
109637e213 | ||
|
|
a0bdb78a99 | ||
|
|
321f26f450 | ||
|
|
212815a10d | ||
|
|
104e64dd0f | ||
|
|
e49ae68524 | ||
|
|
49127b6a26 | ||
|
|
255853a819 | ||
|
|
5967acc9ca | ||
|
|
28c0cd8460 | ||
|
|
eea4397b12 | ||
|
|
a122a53e72 | ||
|
|
8215380336 | ||
|
|
10ef76905c | ||
|
|
af9597f454 | ||
|
|
e43375cc68 | ||
|
|
63bb2abada | ||
|
|
235e648bf5 | ||
|
|
5202186681 | ||
|
|
98889e41b0 | ||
|
|
962cdc2d98 | ||
|
|
71acf078ba | ||
|
|
b3233de1c2 | ||
|
|
63982d6771 | ||
|
|
2cd540b9c4 | ||
|
|
bbdae291ed | ||
|
|
f9f33a7bb5 | ||
|
|
d34a34f328 | ||
|
|
3eaeca58da | ||
|
|
d3bc563c6e | ||
|
|
fbcc532de5 | ||
|
|
72894a1a90 | ||
|
|
e3856dfe5d | ||
|
|
62420b900e | ||
|
|
89ef676613 | ||
|
|
83e14f602f | ||
|
|
5389309d40 | ||
|
|
058460ddf4 | ||
|
|
380009ac58 | ||
|
|
2775099a32 | ||
|
|
f98e567f49 | ||
|
|
9fb48d5f44 | ||
|
|
8f653ba8de | ||
|
|
87b3b48fe0 | ||
|
|
0043d9bf13 | ||
|
|
2d2d72afbb | ||
|
|
941a9792f7 | ||
|
|
646a023ff4 | ||
|
|
4f9cb3871a | ||
|
|
005508a07b | ||
|
|
5b598c1812 | ||
|
|
701744c621 | ||
|
|
e4c7fca755 | ||
|
|
8f66dad65b | ||
|
|
bec7b297ed | ||
|
|
ee17b5de6e | ||
|
|
a0041125c6 | ||
|
|
378a634de8 | ||
|
|
8a05850302 | ||
|
|
8c74d7e4fa | ||
|
|
55f06b76f9 | ||
|
|
ba3f150b14 | ||
|
|
2f8c62999f | ||
|
|
3eea3dd46b | ||
|
|
ba2b331461 | ||
|
|
a6f7dca685 | ||
|
|
282605ea76 | ||
|
|
6e1da2ef91 | ||
|
|
244511e434 | ||
|
|
656b20a169 | ||
|
|
50bb344a9d | ||
|
|
1ec2ade65b | ||
|
|
13148df9f2 | ||
|
|
5a10261111 | ||
|
|
064d48771d | ||
|
|
1c078c59e3 | ||
|
|
7eeba4d485 | ||
|
|
cd68cc1f46 | ||
|
|
0681deb3c9 | ||
|
|
e80f6624ed | ||
|
|
109255a730 | ||
|
|
b13b5d86f6 | ||
|
|
0ffa78b66a | ||
|
|
15265918a7 | ||
|
|
ed00088f17 | ||
|
|
3ed376d103 | ||
|
|
e2930c7898 | ||
|
|
84676fefe3 | ||
|
|
1363496c11 | ||
|
|
a029f03edc | ||
|
|
03df48899c | ||
|
|
b51ae87828 | ||
|
|
68fb8dd873 | ||
|
|
cdbea6f0a0 | ||
|
|
8869dc7762 | ||
|
|
6659d55a9d | ||
|
|
e6c9291e32 | ||
|
|
a6f14ca97c | ||
|
|
c555a6747d | ||
|
|
dd276dbb59 | ||
|
|
70d82017fe | ||
|
|
663bd73518 | ||
|
|
c526705f4f | ||
|
|
c84d2cb32a | ||
|
|
ff211371bc | ||
|
|
e9a4734a57 | ||
|
|
3359bdc464 | ||
|
|
17faee5d81 | ||
|
|
b4795086fe | ||
|
|
5cd852f9bd | ||
|
|
4c75b1c102 | ||
|
|
a6b5771297 | ||
|
|
dac298ef41 | ||
|
|
ef27c11d50 | ||
|
|
cd3939a153 | ||
|
|
9f5463ce42 | ||
|
|
3bc1b53962 | ||
|
|
de1b919641 | ||
|
|
3e9158acd6 | ||
|
|
03e224ee83 | ||
|
|
c2bc171ef6 | ||
|
|
f8740e124c | ||
|
|
b82700ae41 | ||
|
|
009860e98a | ||
|
|
57da381ae3 | ||
|
|
935cb4076b | ||
|
|
b2ea15da35 | ||
|
|
9733177083 | ||
|
|
fa665141bb | ||
|
|
64720f15a2 | ||
|
|
8df0f13230 | ||
|
|
624d532000 | ||
|
|
94e7be3714 | ||
|
|
9b4adc9acb | ||
|
|
e27162397a | ||
|
|
99d750d597 | ||
|
|
c51f5e8d76 | ||
|
|
ba7dbca018 | ||
|
|
8391a23600 | ||
|
|
ec3ef520e6 | ||
|
|
28aab134db | ||
|
|
752cc26ad6 | ||
|
|
d159417474 | ||
|
|
7d7ab462d6 | ||
|
|
c4c21c2fa7 | ||
|
|
e06a497c7c | ||
|
|
7b0d7d0c9a | ||
|
|
f7cab121fe | ||
|
|
bb59b81d82 | ||
|
|
7631056b8a | ||
|
|
4107dc7355 | ||
|
|
b74804f61f | ||
|
|
50baf76cc2 | ||
|
|
085a131801 | ||
|
|
50fed1d774 | ||
|
|
c240355cc6 | ||
|
|
a9edcc1705 | ||
|
|
4b3d2c8834 | ||
|
|
fcdd69fd97 | ||
|
|
48d9031efb | ||
|
|
a8adb99e94 | ||
|
|
b01ae2de05 | ||
|
|
46e275dfe4 | ||
|
|
af71b03000 | ||
|
|
392991fa0b | ||
|
|
743f1810c7 | ||
|
|
dd1494eebf | ||
|
|
1bfc75ac23 | ||
|
|
5bb45baa6c | ||
|
|
def679554f | ||
|
|
08b6abd711 | ||
|
|
33761ee06b | ||
|
|
a04479746a | ||
|
|
d2b8fd6401 | ||
|
|
8ac304517e | ||
|
|
4f236d1c50 | ||
|
|
f9f9e2ad4a | ||
|
|
e52291cbcc | ||
|
|
23c246882e | ||
|
|
f290ff215e | ||
|
|
79b4dc14a3 | ||
|
|
8ed0fc6f0c | ||
|
|
9f01b97e14 | ||
|
|
1f3255d76b | ||
|
|
fdeac73a59 | ||
|
|
175cd03ff2 | ||
|
|
9f52244574 | ||
|
|
d6a7f5e1e0 | ||
|
|
fce8d8e090 | ||
|
|
8ce08dedfe | ||
|
|
32377ce57d | ||
|
|
d84a9484b7 | ||
|
|
8ff27a07bb | ||
|
|
55a2bcbe15 | ||
|
|
f2422ace7d | ||
|
|
d1ea2ad143 | ||
|
|
3e5d7e1718 | ||
|
|
de385009ae | ||
|
|
114848d313 | ||
|
|
8286d84fb1 | ||
|
|
c42d0c8374 | ||
|
|
37bfb3c48d | ||
|
|
b3937288e5 | ||
|
|
a55150b1bc | ||
|
|
7eaa548b6d | ||
|
|
d7e936de5c | ||
|
|
d2bc0e5fe0 | ||
|
|
d8107a5125 | ||
|
|
a82c50eac2 | ||
|
|
7fa9efbfd8 | ||
|
|
b5a9ef6b7b | ||
|
|
8ebe320270 | ||
|
|
fe3893ff01 | ||
|
|
f41327df0c | ||
|
|
f77276311d | ||
|
|
e8348e5f64 | ||
|
|
da5bfefc78 | ||
|
|
619cc01ca1 | ||
|
|
ad94d8cc4f | ||
|
|
c3cebc3ac5 | ||
|
|
fb85974d01 | ||
|
|
02488c5cbb | ||
|
|
3377ddaf09 | ||
|
|
40ca8f4695 | ||
|
|
962f5c9b82 | ||
|
|
2c634eeef2 | ||
|
|
c6e60f06eb | ||
|
|
e5d2642780 | ||
|
|
cf28b5e5be | ||
|
|
c79a1528ad | ||
|
|
31619faa70 | ||
|
|
9e6b7f5dc1 | ||
|
|
a9f4f8ded4 | ||
|
|
541a09b7ac | ||
|
|
26e8048a0a | ||
|
|
6bfb0dda85 | ||
|
|
d1b5a78171 | ||
|
|
753ccd6b17 | ||
|
|
8ae1552a5b | ||
|
|
08bee40fa2 | ||
|
|
00f36a3149 | ||
|
|
461e26b60b | ||
|
|
6fdb7aee84 | ||
|
|
12a36b5a94 | ||
|
|
22d64ae08f | ||
|
|
e371592f75 | ||
|
|
84a3654371 | ||
|
|
7e5c4fe1cd | ||
|
|
5ecf693774 | ||
|
|
773ccc4bf8 | ||
|
|
b31ce408ae | ||
|
|
7983c484b2 | ||
|
|
6502737bd5 | ||
|
|
b98dd728ca | ||
|
|
7f3ba5963d | ||
|
|
43e58de918 | ||
|
|
b7a70fda79 | ||
|
|
e309ad8465 | ||
|
|
2fa624aef0 | ||
|
|
b023fcd264 | ||
|
|
e958600f32 | ||
|
|
484251c52b | ||
|
|
e98c845f0b | ||
|
|
e4ed1d08f4 | ||
|
|
8e32566583 | ||
|
|
512be4ab65 | ||
|
|
6f8120cb3a | ||
|
|
a3de45741e | ||
|
|
7d7d907de7 | ||
|
|
c42d47d94a | ||
|
|
d35e2f5339 | ||
|
|
673e4e20f0 | ||
|
|
38a4eaf8a3 | ||
|
|
29b453eb86 | ||
|
|
ef0eed8d3c | ||
|
|
91ce6ef190 | ||
|
|
9d37cdaa66 | ||
|
|
3f686a6ab8 | ||
|
|
db3e3a766a | ||
|
|
9cef41000a | ||
|
|
fc54853d44 | ||
|
|
6f5af6eb42 | ||
|
|
eb6d8e6af2 | ||
|
|
446f344818 | ||
|
|
3c40f87af3 | ||
|
|
aac30e772f | ||
|
|
69e1167882 | ||
|
|
acc142d4ba | ||
|
|
e726ff3296 | ||
|
|
56568dae31 | ||
|
|
24fac5f56d | ||
|
|
74b6646737 | ||
|
|
986ad4ff06 | ||
|
|
95ce8f45ea | ||
|
|
4e4458416d | ||
|
|
da2978f607 | ||
|
|
7521f207b1 | ||
|
|
2155296a13 | ||
|
|
23be514886 | ||
|
|
77b986c7a1 | ||
|
|
f90673ef4c | ||
|
|
df18431b45 | ||
|
|
7c78c59e64 | ||
|
|
5c987e4c75 | ||
|
|
0cc92bd67c | ||
|
|
7efc0011fd | ||
|
|
2cf2456f4c | ||
|
|
ece14eae24 | ||
|
|
3c9d03c36f | ||
|
|
8c5b3c4150 | ||
|
|
36d771affc | ||
|
|
7afd48658c | ||
|
|
387a76ba59 | ||
|
|
f601e817fe | ||
|
|
3fd0d0dafb | ||
|
|
f28895cd6b | ||
|
|
d65c6af3a5 | ||
|
|
c08e38acd0 | ||
|
|
0800f6f91b | ||
|
|
85b0fb2a9c | ||
|
|
19d825aa16 | ||
|
|
f4f462c50b | ||
|
|
e1a8fc0417 | ||
|
|
eafe6ccdbe | ||
|
|
359ecda4fc | ||
|
|
bf0846f0ea | ||
|
|
0401d5920c | ||
|
|
ac418e999d | ||
|
|
ae42815b7d | ||
|
|
5a3a915a9b | ||
|
|
632a08ff40 | ||
|
|
0f8ab0557e | ||
|
|
1b3dd8f38b | ||
|
|
ce31c9c448 | ||
|
|
bc434e8f67 | ||
|
|
0105f8fa38 | ||
|
|
e05c2e0f1d | ||
|
|
2255973b0f | ||
|
|
ac24a72e66 | ||
|
|
049b50d9c0 | ||
|
|
12fd382fec | ||
|
|
c996fd1c06 | ||
|
|
c4c9cdd2b1 | ||
|
|
34c4e454c5 | ||
|
|
11cfa64a10 | ||
|
|
adafb20d1e | ||
|
|
bb067c7ebf | ||
|
|
599bb9c457 | ||
|
|
dbfa1bfba4 | ||
|
|
f8c7862f69 | ||
|
|
b86f129393 | ||
|
|
12b8d542b7 | ||
|
|
fef23768fe | ||
|
|
328883b6ea | ||
|
|
87ed750510 | ||
|
|
cc7f17f011 | ||
|
|
3c25fd1ba5 | ||
|
|
e8536c4a0e | ||
|
|
2687a2b6dc | ||
|
|
aab6362705 | ||
|
|
94e8a08d1d | ||
|
|
ce8027c6fb | ||
|
|
301c078d19 | ||
|
|
9485113923 | ||
|
|
9acbfc6e05 | ||
|
|
4f3130f562 | ||
|
|
a783bf4a93 | ||
|
|
f7e8dc770a | ||
|
|
34909d97b4 | ||
|
|
474a67231c | ||
|
|
a316b11aaa | ||
|
|
b645fc10a3 | ||
|
|
8e1e08ee38 | ||
|
|
d266fee8bb | ||
|
|
8357e865bc | ||
|
|
2c6a2f0381 | ||
|
|
fe9a8ebea2 | ||
|
|
b866d0dc38 | ||
|
|
2b558a3787 | ||
|
|
72d06080c6 | ||
|
|
3cdf926454 | ||
|
|
23baf1a75e | ||
|
|
025a9647af | ||
|
|
32e7ef8a3d | ||
|
|
2b82f8f12c | ||
|
|
b5c162175b | ||
|
|
60c76cc289 | ||
|
|
efd556b1a9 | ||
|
|
3a184ae677 | ||
|
|
b4b2a276c8 | ||
|
|
464d53bb16 | ||
|
|
4c9e3723e8 | ||
|
|
06477743ab | ||
|
|
e4a9ad1730 | ||
|
|
d0b6637c1d | ||
|
|
58268b6eef | ||
|
|
14aa8affe5 | ||
|
|
56074c2eb3 | ||
|
|
3da1e8b2f8 | ||
|
|
786cecfe66 | ||
|
|
dde3cb3b99 | ||
|
|
24f2b7dd3f | ||
|
|
936530f795 | ||
|
|
cfbdbffcad | ||
|
|
71db9d3b57 | ||
|
|
b455e1cf52 | ||
|
|
564d1a0f79 | ||
|
|
90bea15e35 | ||
|
|
892cac9e1b | ||
|
|
f58f36dc88 | ||
|
|
9e84b860f2 | ||
|
|
2e7ef6f4e8 | ||
|
|
cea137f313 | ||
|
|
79a82013ad | ||
|
|
05c011e842 | ||
|
|
3826158547 | ||
|
|
a7c150ec66 | ||
|
|
61144f935e | ||
|
|
d23435baac | ||
|
|
389495f76a | ||
|
|
a3f3fbe05d | ||
|
|
4d00ed8df7 | ||
|
|
41e906d1a4 | ||
|
|
41c2669476 | ||
|
|
0e4b5b88dc | ||
|
|
011d8e80d8 | ||
|
|
1f8f0abe92 | ||
|
|
d9c5b85671 | ||
|
|
76cf31bee7 | ||
|
|
ed3591ed1f | ||
|
|
d986cc4861 | ||
|
|
724001aa0f | ||
|
|
5564d73071 | ||
|
|
3fc1c73064 | ||
|
|
1b0dca9c2c | ||
|
|
5dae278652 | ||
|
|
ef32d7fd16 | ||
|
|
30d91e8ed6 | ||
|
|
5f1ca33c6f | ||
|
|
c69417149d | ||
|
|
08271e5591 | ||
|
|
a104e7c593 | ||
|
|
c3e7a23da5 | ||
|
|
083edb201c | ||
|
|
df7bf9a048 | ||
|
|
bed5debca6 | ||
|
|
caa1658a4c | ||
|
|
bb5b628cce | ||
|
|
e12adcdf08 | ||
|
|
127a44f2b9 | ||
|
|
527cedd848 | ||
|
|
ec5065eb53 | ||
|
|
90524a8528 | ||
|
|
ad71a1633c | ||
|
|
eb24575e2c | ||
|
|
d9877efe1d | ||
|
|
7459613623 | ||
|
|
fb69620a27 | ||
|
|
a6e15b2f57 | ||
|
|
39ecd96b09 | ||
|
|
21a8d9569d | ||
|
|
07736c912f | ||
|
|
24d60da553 | ||
|
|
039795b405 | ||
|
|
a110ede0a2 | ||
|
|
2a3cdba724 | ||
|
|
099ad1a259 | ||
|
|
6df92b3bca | ||
|
|
48ccbe39b4 | ||
|
|
716450ceb5 | ||
|
|
691c3d1e3c | ||
|
|
ca8bb8d053 | ||
|
|
56d2b7137c | ||
|
|
d9a62c42e5 | ||
|
|
97eaddd93b | ||
|
|
e3ce0fbee3 | ||
|
|
364702b1c9 | ||
|
|
978f387961 | ||
|
|
209f6cdcc7 | ||
|
|
0f7b2eb79f | ||
|
|
4a0760719e | ||
|
|
d011383a3d | ||
|
|
1fe276d041 | ||
|
|
f345ed564a | ||
|
|
3d4563913d | ||
|
|
93c3775927 | ||
|
|
afbf383ba3 | ||
|
|
36598677cf | ||
|
|
0ec94630d4 | ||
|
|
c71f2714c6 | ||
|
|
71462d9f99 | ||
|
|
72dfd4846e | ||
|
|
61a8cf8ba7 | ||
|
|
bd40952097 | ||
|
|
8869d3212f | ||
|
|
ea1e3fb90d | ||
|
|
3a99fb9d34 | ||
|
|
e1b56e376e | ||
|
|
aac7c5465b | ||
|
|
22ee5c0c4d | ||
|
|
e8058b9fdb | ||
|
|
d31b6c3480 | ||
|
|
95ff928228 | ||
|
|
510dc17c2e | ||
|
|
2669d8ce73 | ||
|
|
7f3d8de26f | ||
|
|
331b73c8e4 | ||
|
|
1729297ef3 | ||
|
|
9138c98b25 | ||
|
|
456af21d8b | ||
|
|
b87f7a625e | ||
|
|
c3e8790dfd | ||
|
|
bf49149c97 | ||
|
|
49d5960a32 | ||
|
|
dcfa23d5d2 | ||
|
|
5ac0712cf1 | ||
|
|
c82417697a | ||
|
|
adac1da64e | ||
|
|
9c8626bf3c | ||
|
|
ef21fd3cf8 | ||
|
|
bd19f991a5 | ||
|
|
e87ba1d317 | ||
|
|
f9d1f5196a | ||
|
|
b5717f82a0 | ||
|
|
aa51382dbc | ||
|
|
bc6a70c689 | ||
|
|
1fb6c6e6e5 | ||
|
|
d2dbc9d7a0 | ||
|
|
8bf451a3e0 | ||
|
|
0d3e05f9b3 | ||
|
|
8c4d415412 | ||
|
|
06a09d5991 | ||
|
|
57c894f44d | ||
|
|
7de189114b | ||
|
|
4c048a487e | ||
|
|
09a62012b2 | ||
|
|
b494de6a01 | ||
|
|
dbeec7715d | ||
|
|
25163eb008 | ||
|
|
1048feac3b | ||
|
|
96e8b83d41 | ||
|
|
78476a0fe2 | ||
|
|
d5fd2f0155 | ||
|
|
c8ebe0eb86 | ||
|
|
de93782fab | ||
|
|
16561ed71e | ||
|
|
4bfdf7cf2a | ||
|
|
e58da86efc | ||
|
|
7ed82aea38 | ||
|
|
dc15187f1b | ||
|
|
ae1a249a0a | ||
|
|
2dd2d60955 | ||
|
|
171fbf879f | ||
|
|
1b443219ed | ||
|
|
8a1caa0d16 | ||
|
|
cdcf7e62f3 | ||
|
|
083727b0a6 | ||
|
|
718dd9f170 | ||
|
|
76be3529f4 | ||
|
|
6c218c7b0f | ||
|
|
e87a0baa4b | ||
|
|
8ee5f2ad89 | ||
|
|
ee76cef1ff | ||
|
|
6a51e3b39a | ||
|
|
6da05f7086 | ||
|
|
ae265a48c7 | ||
|
|
af2f8c69f0 | ||
|
|
e24b1629a0 | ||
|
|
46ccde82cf | ||
|
|
537494f4dd | ||
|
|
d9ea9bedb2 | ||
|
|
1546b9bf99 | ||
|
|
39d5e14c1f | ||
|
|
62b5d37b6b | ||
|
|
d78d9bf151 | ||
|
|
a5f0fb6008 | ||
|
|
f2bb3d0d80 | ||
|
|
d5dce63254 | ||
|
|
01981ed290 | ||
|
|
037a72debd | ||
|
|
1ef4b7ae5a | ||
|
|
b314cc4c23 | ||
|
|
6f5d56d994 | ||
|
|
644de8f22a | ||
|
|
36f61f3879 | ||
|
|
aa11f7d8a3 | ||
|
|
793b2b9ad9 | ||
|
|
050c960dfc | ||
|
|
f30aafc3cc | ||
|
|
2f065b8b4c | ||
|
|
aece3e732e | ||
|
|
aabeb8a18e | ||
|
|
ebe9327a92 | ||
|
|
d7d51e4cc7 | ||
|
|
102d8f67cd | ||
|
|
a00fe15abd | ||
|
|
3acf8cfd63 | ||
|
|
5224d016e9 | ||
|
|
d34717d8c9 | ||
|
|
199687a1c5 | ||
|
|
b5a6c8e2b2 | ||
|
|
a5b8f163d7 | ||
|
|
6add3b9161 | ||
|
|
955909bdb5 | ||
|
|
1ddd61f98a | ||
|
|
3503a36e5e | ||
|
|
2ea7269450 | ||
|
|
a968eadbf1 | ||
|
|
c6b63e0e28 | ||
|
|
7bd8ddc8fa | ||
|
|
e3da18121f | ||
|
|
0c4a8e2ca8 | ||
|
|
a3e7c2d8e3 | ||
|
|
40b8b58bc6 | ||
|
|
fc1a156262 | ||
|
|
8cbd20b380 | ||
|
|
43d306fc2d | ||
|
|
14e264f646 | ||
|
|
01e23a2222 | ||
|
|
f88d89ad82 | ||
|
|
969b55036f | ||
|
|
b29f73d5e0 | ||
|
|
e998d89e88 | ||
|
|
b91e701f35 | ||
|
|
295afd5882 | ||
|
|
cbf978d1f7 | ||
|
|
94e0ac7d9f | ||
|
|
08b36e4f48 | ||
|
|
d62d880316 | ||
|
|
361b5e0ebf | ||
|
|
8da1b9aafa | ||
|
|
c16e2e6234 | ||
|
|
19f4cc57c1 | ||
|
|
c08f29c803 | ||
|
|
ecb6d03ccd | ||
|
|
e59793cc75 | ||
|
|
236ad4aeda | ||
|
|
97bb91d5fa | ||
|
|
80d4d4d92c | ||
|
|
6a7df4e973 | ||
|
|
098f07664d | ||
|
|
233030e417 | ||
|
|
6256e425f3 | ||
|
|
4dbb8ac4b2 | ||
|
|
48368dc9a1 | ||
|
|
691c655630 | ||
|
|
e7f2af5fdb | ||
|
|
4419f4093e | ||
|
|
b88ad7f2d9 | ||
|
|
b300b6b3bd | ||
|
|
c945ea125a | ||
|
|
c32e349332 | ||
|
|
118218754b | ||
|
|
234117800f | ||
|
|
00c61cf197 | ||
|
|
f6901ab877 | ||
|
|
ac58b2f857 | ||
|
|
862fc06b6f | ||
|
|
89ed813585 | ||
|
|
0dc28d3446 | ||
|
|
50657e2324 | ||
|
|
7c22cd49a7 | ||
|
|
220b37144b | ||
|
|
c012490399 | ||
|
|
e937d9b559 | ||
|
|
688aea6bec | ||
|
|
7186c46377 | ||
|
|
74c8ccb45b | ||
|
|
3fc1487cc9 | ||
|
|
48ddb53332 | ||
|
|
9cfe981e1f | ||
|
|
f584c6d723 | ||
|
|
3ea9022c5f | ||
|
|
45ee8e2532 | ||
|
|
2f9072efdc | ||
|
|
f7b8f522ff | ||
|
|
f6aa9ac304 | ||
|
|
6c575e8826 | ||
|
|
f52a2cf5e1 | ||
|
|
5e90802b1a | ||
|
|
45fee13f3d | ||
|
|
5bfb779d82 | ||
|
|
261ad78122 | ||
|
|
4fa82809df | ||
|
|
95fd61c9b4 | ||
|
|
d1cdef596c | ||
|
|
7163781639 | ||
|
|
a63cee2139 | ||
|
|
3e3787ecb6 | ||
|
|
a723aaedd8 | ||
|
|
830d8d6b75 | ||
|
|
ebb528976f | ||
|
|
f77c2d700f | ||
|
|
8c44b8306b | ||
|
|
a07f064e50 | ||
|
|
e668cff573 | ||
|
|
ea4b491a73 | ||
|
|
fa953e4205 | ||
|
|
986bc65e1f | ||
|
|
540982cc9d | ||
|
|
5218443784 | ||
|
|
a61546680b | ||
|
|
8cb7eae5c9 | ||
|
|
18440c1faf | ||
|
|
9f69ca503a | ||
|
|
49ba744130 | ||
|
|
3b00ee2afb | ||
|
|
4b24ddd70d | ||
|
|
1612db5f91 | ||
|
|
7dfe68cac6 | ||
|
|
7d832337ae | ||
|
|
a258404a58 | ||
|
|
83807811cd | ||
|
|
a3048239b3 | ||
|
|
23e71d1aa2 | ||
|
|
f787c73841 | ||
|
|
b542a1804c | ||
|
|
2dff2f36bf | ||
|
|
1604ea3b27 | ||
|
|
6b674709b8 | ||
|
|
b23d377567 | ||
|
|
f445b826d0 | ||
|
|
a12ceb04bb | ||
|
|
623aaaccd4 | ||
|
|
da0fd62c23 | ||
|
|
f56445d7ca | ||
|
|
a10d289997 | ||
|
|
750b1aba8d | ||
|
|
a3e8c6e866 | ||
|
|
03bee14372 | ||
|
|
50ff40d684 | ||
|
|
bfd056ceb1 | ||
|
|
620629593b | ||
|
|
05ad3a535f | ||
|
|
5c76f99fdd | ||
|
|
c31164bf1e | ||
|
|
3835ab394e | ||
|
|
20b23da8e2 | ||
|
|
f6795d75a6 | ||
|
|
36915db699 | ||
|
|
17640d6008 | ||
|
|
8711653530 | ||
|
|
7e019af50d | ||
|
|
8b61719a9d | ||
|
|
fa11b98800 | ||
|
|
5ae9892170 | ||
|
|
6426101433 | ||
|
|
cf8322c0d3 | ||
|
|
64c67a93d3 | ||
|
|
0384eb7d8c | ||
|
|
0c84b91dde | ||
|
|
154380ccf5 | ||
|
|
7a796b20ea | ||
|
|
1f2c83845d | ||
|
|
71f665bd8c | ||
|
|
2349a09736 | ||
|
|
1df533c914 | ||
|
|
44bf748479 | ||
|
|
2129c72bc0 | ||
|
|
0428dce27d | ||
|
|
f9fbd29c14 | ||
|
|
31dc3e9256 | ||
|
|
698b2bf729 | ||
|
|
1d42560018 | ||
|
|
efcf307b4c | ||
|
|
6876f3b91d | ||
|
|
60354e3901 | ||
|
|
2e6e9c14b5 | ||
|
|
7495a4722f | ||
|
|
721ab68bec | ||
|
|
192e5c8166 | ||
|
|
7ce56b3a47 | ||
|
|
bce5d364df | ||
|
|
2dfb163281 | ||
|
|
5376863c0c | ||
|
|
417d7a38de | ||
|
|
a86e036594 | ||
|
|
ba147d2be2 | ||
|
|
01324b02e7 | ||
|
|
792722865f | ||
|
|
9aa401a7d0 | ||
|
|
a160e4fb6b | ||
|
|
c7422e4d90 | ||
|
|
1192cbe4ab | ||
|
|
485d2b593c | ||
|
|
1bea537731 | ||
|
|
75e88d613f | ||
|
|
379b83e946 | ||
|
|
dda1bf1887 | ||
|
|
f7e524cbe6 | ||
|
|
e503ac508e | ||
|
|
458bd1652d | ||
|
|
f5ba3f51ce | ||
|
|
e5e08ec523 | ||
|
|
d392b11dfb | ||
|
|
cd01ee9a54 | ||
|
|
8c1af09989 | ||
|
|
3547ac4b49 | ||
|
|
f6c2bf21c8 | ||
|
|
f53ff0d01c | ||
|
|
4f48dab023 | ||
|
|
397ba2d9aa | ||
|
|
a7ffcaab28 | ||
|
|
f617f18e46 | ||
|
|
4372d75b26 | ||
|
|
da555a2c9b | ||
|
|
885fb703cf | ||
|
|
cd00d8f3f0 | ||
|
|
b3755e617c | ||
|
|
fc0f9da7a7 | ||
|
|
277961fa25 | ||
|
|
8cc2cbf1c4 | ||
|
|
14a9103fc0 | ||
|
|
6d1f7c2b1b | ||
|
|
2c1f3487a4 | ||
|
|
acc6189da0 | ||
|
|
ac177b849c | ||
|
|
d696d7f9ea | ||
|
|
29aeebf5bc | ||
|
|
41548a091b | ||
|
|
c9e1386e44 | ||
|
|
cc769ff19d | ||
|
|
5108e3ced6 | ||
|
|
8753203df0 | ||
|
|
1834eed809 | ||
|
|
b34234ac14 | ||
|
|
7ec9f52509 | ||
|
|
a66f61748f | ||
|
|
b45273eccb | ||
|
|
68f527267b | ||
|
|
7f22b34c78 | ||
|
|
ad63d24dba | ||
|
|
3b5813c035 | ||
|
|
339b963e6b | ||
|
|
00890aecdf | ||
|
|
7fe87d9a5b | ||
|
|
2171cae8ff | ||
|
|
3f55152ca0 | ||
|
|
f3cebb3e1b | ||
|
|
2b227f00f2 | ||
|
|
98de57c6c4 | ||
|
|
e231be86b7 | ||
|
|
a37f7cce52 | ||
|
|
7ec221e734 | ||
|
|
949fe93d5a | ||
|
|
b4e9b4fe7d | ||
|
|
c3ced6db4e | ||
|
|
0b38571920 | ||
|
|
2ffe15f22f | ||
|
|
fe9ff64d64 | ||
|
|
31ddd98c8e | ||
|
|
3f65c12d0c | ||
|
|
759c9522fd | ||
|
|
f0149cdae2 | ||
|
|
bedabc15ae | ||
|
|
565f14655c | ||
|
|
760e7e8efa | ||
|
|
336627a776 | ||
|
|
fa25faa2d2 | ||
|
|
6226ea0085 | ||
|
|
dbab8d8c38 | ||
|
|
9f02b8742e | ||
|
|
1067cd0649 | ||
|
|
1537ecd931 | ||
|
|
5b5c42d2c7 | ||
|
|
161890dad4 | ||
|
|
35846fe735 | ||
|
|
422f802ec9 | ||
|
|
5fd3d36fe8 | ||
|
|
96ce65f021 | ||
|
|
8457e471fd | ||
|
|
246de2b7f5 | ||
|
|
e8c26963e9 | ||
|
|
793e7c0d9f | ||
|
|
3b337a12c9 | ||
|
|
2c32cb743c | ||
|
|
11eff8bae0 | ||
|
|
883b995fd6 | ||
|
|
27b2059662 | ||
|
|
a28533933f | ||
|
|
d695208727 | ||
|
|
e6ec42d462 | ||
|
|
613ff61de7 | ||
|
|
65b02cc8f2 | ||
|
|
1c8ee3f957 | ||
|
|
922108060d | ||
|
|
ce74285c5e | ||
|
|
ff4c3873f2 | ||
|
|
1192734131 | ||
|
|
c262eea84a | ||
|
|
f2ca7e664a | ||
|
|
cf8f65d806 | ||
|
|
bc221bdb90 | ||
|
|
29976a04c5 | ||
|
|
a3106d424b | ||
|
|
77b01deb80 | ||
|
|
f53f491cd2 | ||
|
|
6bed5c181b | ||
|
|
e421233a1d | ||
|
|
f162c08cda | ||
|
|
0d1d452b79 | ||
|
|
3c3e131c38 | ||
|
|
a218cf3c61 | ||
|
|
866468cc3e | ||
|
|
f66fc199a2 | ||
|
|
11ac26bfb4 | ||
|
|
2241bfb0df | ||
|
|
a2f7ef9d21 | ||
|
|
c708f506a4 | ||
|
|
d92af2aa85 | ||
|
|
ae293f27cf | ||
|
|
afe9993376 | ||
|
|
e4d573a080 | ||
|
|
f86c8656a3 | ||
|
|
6697f0ea86 | ||
|
|
a9f5c19239 | ||
|
|
53bfdc318a | ||
|
|
e935f06f16 | ||
|
|
1e18004bdd | ||
|
|
19646ad049 | ||
|
|
7e943808b6 | ||
|
|
88dbee3589 | ||
|
|
5bfa43f7d5 | ||
|
|
7ed37b3fa5 | ||
|
|
f0271e54d9 | ||
|
|
0ac2f0e04c | ||
|
|
ef1690ef45 | ||
|
|
0fa06b1db0 | ||
|
|
abceef74e0 | ||
|
|
4cf76754d3 | ||
|
|
5444a6b11c | ||
|
|
b698d0a6ee | ||
|
|
11fb04c2f7 | ||
|
|
aaf65bb3af | ||
|
|
9411cd6c07 | ||
|
|
9d38a95292 | ||
|
|
0291dd3ef8 | ||
|
|
a35d4f9029 | ||
|
|
a46ca98c57 | ||
|
|
e65e23b9c0 | ||
|
|
d8b2f11cc8 | ||
|
|
c3bb57afea | ||
|
|
8a480ac3c1 | ||
|
|
ffe0d50447 | ||
|
|
a199d7adf1 | ||
|
|
348414dc62 | ||
|
|
243ce78508 | ||
|
|
33db2ac928 | ||
|
|
1fabe92ace | ||
|
|
4564b8a224 | ||
|
|
284d26da05 | ||
|
|
971cc3354b | ||
|
|
e8d4259f9a | ||
|
|
8086afc60a | ||
|
|
9b7b22ee0e | ||
|
|
b2ebd37ee2 | ||
|
|
83e6813345 | ||
|
|
d17ab271e8 | ||
|
|
09f24a851e | ||
|
|
a216b8bf87 | ||
|
|
81e027eef7 | ||
|
|
1c371d07b5 | ||
|
|
55e8549839 | ||
|
|
f8d6c5b330 | ||
|
|
435b6df989 | ||
|
|
bf8136eaa6 | ||
|
|
af9ee90091 | ||
|
|
cb2e276bff | ||
|
|
cd0f0384ef | ||
|
|
cc584760d3 | ||
|
|
5924770504 | ||
|
|
111cdd7a32 | ||
|
|
89a17b4232 | ||
|
|
f0c411d8b5 | ||
|
|
e5e767abc1 | ||
|
|
521aac9665 | ||
|
|
d41b20b268 | ||
|
|
36da867caf | ||
|
|
c5f540e3d7 | ||
|
|
1949056423 | ||
|
|
c90e824342 | ||
|
|
749bd80091 | ||
|
|
1c0b70bbd2 | ||
|
|
b75f6c05c0 | ||
|
|
269b810601 | ||
|
|
e54040d540 | ||
|
|
3d50bde46e | ||
|
|
0b454486cf | ||
|
|
b96e9a4a4a | ||
|
|
ead1dcf308 | ||
|
|
553259ef99 | ||
|
|
e18df87a15 | ||
|
|
5cb8619eca | ||
|
|
476094ad5a | ||
|
|
ff992183b2 | ||
|
|
d2469edd10 | ||
|
|
0df8fb70b4 | ||
|
|
37e2afb8f6 | ||
|
|
4dd9a36a3c | ||
|
|
41678fe3d3 | ||
|
|
d0e6d2438c | ||
|
|
a724dc99e8 | ||
|
|
44d473fba0 | ||
|
|
5bc6b6fc26 | ||
|
|
8931c68b20 | ||
|
|
988bc804bf | ||
|
|
f78f908c09 | ||
|
|
5487bca4f3 | ||
|
|
52ac3661b0 | ||
|
|
27f1ab5a70 | ||
|
|
762a5c8334 | ||
|
|
2fed41dfa5 | ||
|
|
8bf1b9a422 | ||
|
|
e0f9eac521 | ||
|
|
b90a2a8497 | ||
|
|
950a916952 | ||
|
|
524a2fffe9 | ||
|
|
3f13339071 | ||
|
|
eb6678ebef | ||
|
|
6781ca7d55 | ||
|
|
d62e0a3695 | ||
|
|
dcb7fd8520 | ||
|
|
d5713c657b | ||
|
|
99c4b76a6d | ||
|
|
e4887aaa5b | ||
|
|
0970ef57bd | ||
|
|
f98c97f796 | ||
|
|
d69a7a3bbf | ||
|
|
ccf6dd07b3 | ||
|
|
e8129429e9 | ||
|
|
46d3637609 | ||
|
|
992c908b56 | ||
|
|
2566d13100 | ||
|
|
cbdaa93e54 | ||
|
|
5a15369d4d | ||
|
|
deaf1dd458 | ||
|
|
65f87b114b | ||
|
|
8f5b453a96 | ||
|
|
b7eec216e9 | ||
|
|
4988e131fd | ||
|
|
17c430da88 | ||
|
|
96a501c08b | ||
|
|
657c8d1c65 | ||
|
|
e03891b744 | ||
|
|
dc57707e60 | ||
|
|
56b5a7d977 | ||
|
|
65dbbf712d | ||
|
|
49497d8e7c | ||
|
|
728684840c | ||
|
|
73f7d091f8 | ||
|
|
00e1bc49c8 | ||
|
|
cb3a098b25 | ||
|
|
5a7045181a | ||
|
|
6a045fd678 | ||
|
|
327f92cc46 | ||
|
|
482cacd420 | ||
|
|
93a6be836c | ||
|
|
ef7185ce43 | ||
|
|
a5fdcf9881 | ||
|
|
62a63021c7 | ||
|
|
33fab84473 | ||
|
|
0ccc839397 | ||
|
|
920c180052 | ||
|
|
a711e2aa41 | ||
|
|
a84afb6334 | ||
|
|
ab4065fa1c | ||
|
|
ee73b0bd08 | ||
|
|
e58977a3de | ||
|
|
31bee49371 | ||
|
|
48ef6df842 | ||
|
|
98ad7d01d5 | ||
|
|
cdac7c7bec | ||
|
|
fe09c79f4b | ||
|
|
206c843f36 | ||
|
|
cabad90d6c | ||
|
|
4e6a108bda | ||
|
|
6dba1733f0 | ||
|
|
c62e63909a | ||
|
|
daa88c6b9e | ||
|
|
9b727fa1f3 | ||
|
|
7566921364 | ||
|
|
e45d74c8f9 | ||
|
|
923009b5ff | ||
|
|
4cec9e5ff1 | ||
|
|
59ba33658a | ||
|
|
4064d4c7eb | ||
|
|
e58ce89b10 | ||
|
|
085bd5f55f | ||
|
|
6259ba1bfd | ||
|
|
86905754e4 | ||
|
|
6044395986 | ||
|
|
eff259b047 | ||
|
|
cd8262eb79 | ||
|
|
d2b854674e | ||
|
|
4f03f70968 | ||
|
|
ad930f6216 | ||
|
|
f061a0ab36 | ||
|
|
c81d785ada | ||
|
|
6fb46bb34b | ||
|
|
2e165053ef | ||
|
|
8cc8b0d2b4 | ||
|
|
06b4292534 | ||
|
|
29f883feee | ||
|
|
365a10f58c | ||
|
|
0e69cddda2 | ||
|
|
3bdd7bfbea | ||
|
|
ad5e70f94e | ||
|
|
7fae2e834c | ||
|
|
8e3f5fb209 | ||
|
|
05fbd1e5bc | ||
|
|
1491934d17 | ||
|
|
6573b9ace0 | ||
|
|
ee5ff71d55 | ||
|
|
6e5f0a2a58 | ||
|
|
721fac5542 | ||
|
|
fce486c4f9 | ||
|
|
99bc35a883 | ||
|
|
63e92cccf2 | ||
|
|
a74ed58893 | ||
|
|
1b4955342f | ||
|
|
95ac650af6 | ||
|
|
2b98aa403e | ||
|
|
5ed65460d1 | ||
|
|
0eb7060205 | ||
|
|
425c653a14 | ||
|
|
52844614c4 | ||
|
|
85c0c8c7ed | ||
|
|
a8f04359e8 | ||
|
|
e3d502310f | ||
|
|
cb54f4c2ec | ||
|
|
77fa1a20bf | ||
|
|
a7cdc42140 | ||
|
|
a8aa9d5ecb | ||
|
|
52fbfb3ec0 | ||
|
|
d25293b721 | ||
|
|
c07af090f5 | ||
|
|
456e88a8a4 | ||
|
|
a7cc1159cd | ||
|
|
6bd87e8146 | ||
|
|
42a4c3fba6 | ||
|
|
1cba763189 | ||
|
|
d01cbe9320 | ||
|
|
9ba5581d17 | ||
|
|
b10ab79743 | ||
|
|
619462b029 | ||
|
|
6fdddd53a1 | ||
|
|
d93b6be3cc | ||
|
|
9755ab160d | ||
|
|
88a187a737 | ||
|
|
57f5700e18 | ||
|
|
2043e06102 | ||
|
|
d84b213f59 | ||
|
|
177fbc7bbb | ||
|
|
c7dcdc0e88 | ||
|
|
eb67dc9f50 | ||
|
|
676b818d6a | ||
|
|
56373428dc | ||
|
|
411ce04f54 | ||
|
|
13962b8533 | ||
|
|
04bee3f9b7 | ||
|
|
305a245530 | ||
|
|
74113737f3 | ||
|
|
c244b456f0 | ||
|
|
d321a34f7c | ||
|
|
fb1a58ac76 | ||
|
|
87ab4ee567 | ||
|
|
0cbaaba4b1 | ||
|
|
1644af841b | ||
|
|
b0def9617f | ||
|
|
c2664d912a | ||
|
|
9697e3ac24 | ||
|
|
d2a9efd039 | ||
|
|
442999dcdb | ||
|
|
d753ae1489 | ||
|
|
db3e3be8ee | ||
|
|
0c8da03869 | ||
|
|
6fbf7042b5 | ||
|
|
0417c8c9c7 | ||
|
|
d4af89781b | ||
|
|
265acccd56 | ||
|
|
c6638d62e6 | ||
|
|
a8c1cdf88e | ||
|
|
7a187e9b5e | ||
|
|
9096b1c768 | ||
|
|
781fbde449 | ||
|
|
55ca0fcc27 | ||
|
|
1b336bb602 | ||
|
|
25f3a11a16 | ||
|
|
b1706bc7e5 | ||
|
|
579d74d35b | ||
|
|
7ce518106b | ||
|
|
0fb3b8db72 | ||
|
|
171cba4947 | ||
|
|
fd498501d6 | ||
|
|
51bfe74ce1 | ||
|
|
5f3012fc9a | ||
|
|
b44302382d | ||
|
|
0f3c82e73b | ||
|
|
458f1d5ebe | ||
|
|
a43e3bebe6 | ||
|
|
f62fe956d1 | ||
|
|
02385472b6 | ||
|
|
f30b5995b6 | ||
|
|
852b0226e0 | ||
|
|
89a6937c00 | ||
|
|
08a3eef62a | ||
|
|
434014b05e | ||
|
|
29ff1129fb | ||
|
|
5906b49bd1 | ||
|
|
b03ed532cf | ||
|
|
7d30e19b3e | ||
|
|
b083c20eb2 | ||
|
|
7722a2b8a8 | ||
|
|
ef3844a177 | ||
|
|
476aa443c6 | ||
|
|
cb0f74ab9f | ||
|
|
977e5afbac | ||
|
|
08d1c54364 | ||
|
|
dbbfa003d3 | ||
|
|
a17d1843fb | ||
|
|
5ffc5bca7c | ||
|
|
11ac2e1475 | ||
|
|
59608907b8 | ||
|
|
e454c4891e | ||
|
|
3ed243abde | ||
|
|
d60524ecfa | ||
|
|
345e071b24 | ||
|
|
be1a121d0d | ||
|
|
156406b56c | ||
|
|
f68654a204 | ||
|
|
8abb312c20 | ||
|
|
adcb943f61 | ||
|
|
5489735258 | ||
|
|
8de176988d | ||
|
|
79c5d07abe | ||
|
|
74020a084b | ||
|
|
09acd478f1 | ||
|
|
e6c9e2fa50 | ||
|
|
ab2c59b80e | ||
|
|
a5209c4882 | ||
|
|
f1dd5e49c5 | ||
|
|
c6b60e219d | ||
|
|
740f6628ec | ||
|
|
821fac187c | ||
|
|
73fdf75328 | ||
|
|
f7daa9e4f5 | ||
|
|
c3e8a82c9c | ||
|
|
d3aaf2d3a3 | ||
|
|
e58e545584 | ||
|
|
319db07b6b | ||
|
|
407cc5f1b6 | ||
|
|
80037dc6de | ||
|
|
d9bada9867 | ||
|
|
6b89154afd | ||
|
|
1f2d4e4839 | ||
|
|
4a9904fe62 | ||
|
|
4b5fdc6bb2 | ||
|
|
2d11edd103 | ||
|
|
515a06cedf | ||
|
|
fef6192bca | ||
|
|
7d9e1be588 | ||
|
|
ba3cf47600 | ||
|
|
9e09828cc3 | ||
|
|
b236f10792 | ||
|
|
f0bef94a03 | ||
|
|
9f177b2bcd | ||
|
|
765f333a1d | ||
|
|
1bec7ca540 | ||
|
|
29bbbaa0a7 | ||
|
|
4e97c69792 | ||
|
|
88d8a48b09 | ||
|
|
73aa5f567b | ||
|
|
d5e8792f55 | ||
|
|
6202556fc0 | ||
|
|
be9f3826d7 | ||
|
|
7f453ade73 | ||
|
|
5393185add | ||
|
|
b3a261c7ce | ||
|
|
9fef09fe89 | ||
|
|
6b0fff72d9 | ||
|
|
21e28adb87 | ||
|
|
a9b030591b | ||
|
|
57ca10636c | ||
|
|
d4a9c731ff | ||
|
|
17d15df6cd | ||
|
|
98611adeb9 | ||
|
|
01a8c9ca8d | ||
|
|
0940c56a3f | ||
|
|
d650b5cc5a | ||
|
|
e96a58f091 | ||
|
|
b624da27bd | ||
|
|
5b443199ca | ||
|
|
cb82388a84 | ||
|
|
735c31bb4a | ||
|
|
b7253e3280 | ||
|
|
e02318d384 | ||
|
|
94d187e269 | ||
|
|
d991c22090 | ||
|
|
9039284d96 | ||
|
|
593af7287b | ||
|
|
322960f795 | ||
|
|
b5035ce991 | ||
|
|
07c56f149f | ||
|
|
c0f435349a | ||
|
|
0e1c7eda39 | ||
|
|
2b2bcc9b38 | ||
|
|
a3b109eca0 | ||
|
|
a1b09a3734 | ||
|
|
d81ac52ce2 | ||
|
|
220df8252d | ||
|
|
de720ac34a | ||
|
|
68d59a2913 | ||
|
|
5ecf5f106a | ||
|
|
753e417dec | ||
|
|
7d1094b7e1 | ||
|
|
5b095dfcb6 | ||
|
|
7c41b54e3d | ||
|
|
58426c80a3 | ||
|
|
cddd7f10d5 | ||
|
|
ea3c2307dc | ||
|
|
65b3209441 | ||
|
|
400a781ebf | ||
|
|
c8689d9d0a | ||
|
|
ea0d1424d8 | ||
|
|
365f44b094 | ||
|
|
bcf96d637e | ||
|
|
6ced54a892 | ||
|
|
486de65067 | ||
|
|
c5a2d28367 | ||
|
|
b4a6aa335d | ||
|
|
35245cb76e | ||
|
|
fa349b7a4e | ||
|
|
df305e83fa | ||
|
|
b2464e3379 | ||
|
|
06bff34a6b | ||
|
|
6856cc7253 | ||
|
|
508bd3f55d | ||
|
|
8b51e2df8b | ||
|
|
bd1b252de9 | ||
|
|
77ddfa2fc9 | ||
|
|
f30931848e | ||
|
|
b27ae9c63b | ||
|
|
79f8b7fd73 | ||
|
|
48e9e651a4 | ||
|
|
7386d8523b | ||
|
|
1bf353b876 | ||
|
|
23e336ee53 | ||
|
|
ac54bb193c | ||
|
|
713577b257 | ||
|
|
583f4b9633 | ||
|
|
45a6386e45 | ||
|
|
e9058ea8f5 | ||
|
|
3c35b563d7 | ||
|
|
fd06139c20 | ||
|
|
b43da8aa5d | ||
|
|
066259b656 | ||
|
|
d981d04c76 | ||
|
|
666be238d8 | ||
|
|
64f5471b2a | ||
|
|
4e789635c9 | ||
|
|
7c17695be4 | ||
|
|
3e3d4ad797 | ||
|
|
73bbabcd04 | ||
|
|
93d79d2e5d | ||
|
|
1889d72889 | ||
|
|
6e5437a582 | ||
|
|
09799402f9 | ||
|
|
5813d2439c | ||
|
|
4f1ba5e69e | ||
|
|
c934d9c3cc | ||
|
|
00b19d6fba | ||
|
|
8b13b85c5e | ||
|
|
64b0757758 | ||
|
|
1622e7cc90 | ||
|
|
1f9713195b | ||
|
|
ea04f9d12e | ||
|
|
74e4cfd1da | ||
|
|
27ee6501eb | ||
|
|
a5696da9ec | ||
|
|
0b439bcd08 | ||
|
|
b805115c1a | ||
|
|
c41fb45da3 | ||
|
|
cdfa58dde0 | ||
|
|
c722625f28 | ||
|
|
6630eac813 | ||
|
|
63f5f93063 | ||
|
|
1d30a524fa | ||
|
|
7f90f04df2 | ||
|
|
5da4bb7e88 | ||
|
|
dc1b1f2cd7 | ||
|
|
25ec4ce6f1 | ||
|
|
d30bc0a4c0 | ||
|
|
c05ac8729e | ||
|
|
9926a93a78 | ||
|
|
7093752cb5 | ||
|
|
0daf055fe6 | ||
|
|
3f38edfd61 | ||
|
|
ee201f4df5 | ||
|
|
7228d2a824 | ||
|
|
9181ecfc7b | ||
|
|
4bf94cb5d1 | ||
|
|
599a3026d1 | ||
|
|
288fa70ed9 | ||
|
|
152e6476d9 | ||
|
|
8d05dab32c | ||
|
|
3c14a8c507 | ||
|
|
15b948d109 | ||
|
|
ab3b1e9922 | ||
|
|
cd7db168e0 | ||
|
|
cbcdbde29d | ||
|
|
aff2c7c43c | ||
|
|
2df978b8e7 | ||
|
|
10808ccbb4 | ||
|
|
f756923271 | ||
|
|
51a42c0647 | ||
|
|
189fc43765 | ||
|
|
a327418767 | ||
|
|
a1641f938e | ||
|
|
351fb8c058 | ||
|
|
83c4378d5d | ||
|
|
561421f748 | ||
|
|
9415560250 | ||
|
|
e74075c689 | ||
|
|
511d0fe198 | ||
|
|
1c1762d3f6 | ||
|
|
e0ac0cfbe2 | ||
|
|
bfcc136dc7 | ||
|
|
775d031366 | ||
|
|
1a17f402a4 | ||
|
|
40973bea31 | ||
|
|
94e36d8c8d | ||
|
|
4ee6852a1e | ||
|
|
0be2c7018b | ||
|
|
aa08900ac8 | ||
|
|
05d5c284f6 | ||
|
|
d37180a2c4 | ||
|
|
8badf7f354 | ||
|
|
150bd3aee6 | ||
|
|
f19d0ae41d | ||
|
|
a748eba42e | ||
|
|
850b1ea2d7 | ||
|
|
10d2bcc8a2 | ||
|
|
7ce1bd5d88 | ||
|
|
935420217c | ||
|
|
81d4d4948e | ||
|
|
041da57e87 | ||
|
|
acf1be547d | ||
|
|
908bf935f7 | ||
|
|
e59e978fcd | ||
|
|
fbaae7ac37 | ||
|
|
dcf7eb972e | ||
|
|
2840362868 | ||
|
|
d4fc302c7e | ||
|
|
1cce9db710 | ||
|
|
e92f1eaa3d | ||
|
|
f84cae833a | ||
|
|
2cef100303 | ||
|
|
ed58b5489f | ||
|
|
ef5fa498d4 | ||
|
|
78e4fbd2d7 | ||
|
|
96075ce0c9 | ||
|
|
c007228d0f | ||
|
|
dca9b4283b | ||
|
|
dcec3150f0 | ||
|
|
d015db3de8 | ||
|
|
ef7fb905aa | ||
|
|
5e5385a814 | ||
|
|
7aaa918367 | ||
|
|
c2e484a465 | ||
|
|
f64d807863 | ||
|
|
81c2f3d194 | ||
|
|
8c77f35fce | ||
|
|
ff4ce9f7b1 | ||
|
|
fecebea2e3 | ||
|
|
f39784c584 | ||
|
|
98e38b2a41 | ||
|
|
1d8c73cf6c | ||
|
|
ef68cc3d5f | ||
|
|
18550b4601 | ||
|
|
07a0274507 | ||
|
|
8ff0399432 | ||
|
|
c8f1948d58 | ||
|
|
f6de25b6cb | ||
|
|
b3514a5708 | ||
|
|
dd2c7c5140 | ||
|
|
91b0100287 | ||
|
|
870a775d7d | ||
|
|
575a609b80 | ||
|
|
ca9756f6a1 | ||
|
|
675342ecd9 | ||
|
|
245b2fec34 | ||
|
|
49a75079f2 | ||
|
|
d3f9ad1145 | ||
|
|
46615ffc4a | ||
|
|
f351653589 | ||
|
|
f0ffc52435 | ||
|
|
f7d029cfce | ||
|
|
1eb63cfc42 | ||
|
|
43ff8f8e8d | ||
|
|
b11a3a0820 | ||
|
|
bef6b6282c | ||
|
|
9c58a7cb1e | ||
|
|
69ac19d82d | ||
|
|
b77fe9d624 | ||
|
|
0556450801 | ||
|
|
5c7c80dd27 | ||
|
|
d7abb641ca | ||
|
|
4e75f31c55 | ||
|
|
1537a5f253 | ||
|
|
ce772b346c | ||
|
|
e1f14fcac7 | ||
|
|
39d3bbb601 | ||
|
|
b1f42a6506 | ||
|
|
cb5921b375 | ||
|
|
016f9ab16e | ||
|
|
499e20da4f | ||
|
|
d50c21e571 | ||
|
|
4d35a46c48 | ||
|
|
676d1dfd5b | ||
|
|
2c9d149ac2 | ||
|
|
06bf845783 | ||
|
|
acede976e4 | ||
|
|
90e7c29c46 | ||
|
|
ca6a11e4d2 | ||
|
|
f496a37340 | ||
|
|
b8579f12be | ||
|
|
b745e1c43a | ||
|
|
21ed892489 | ||
|
|
5504d94e36 | ||
|
|
31ec9b2aa7 | ||
|
|
0c2a43923c | ||
|
|
63320aba6c | ||
|
|
2fe9c87433 | ||
|
|
adf54d41d5 | ||
|
|
ab4dbff150 | ||
|
|
75bd9f86b2 | ||
|
|
734771418e | ||
|
|
01a85736e6 | ||
|
|
51a8885566 | ||
|
|
7d5a8053d7 | ||
|
|
60c382d8f1 | ||
|
|
3371e679ce | ||
|
|
b8cf5d8d5f | ||
|
|
43df944eb4 | ||
|
|
ce5626db45 | ||
|
|
763a1d7392 | ||
|
|
1377b9b736 | ||
|
|
5db3092a1f | ||
|
|
be1615b1c3 | ||
|
|
936428cb3b | ||
|
|
ca9fd66744 | ||
|
|
bdc95d2c66 | ||
|
|
c305455cb2 | ||
|
|
8334932a26 | ||
|
|
a10385543b | ||
|
|
99d29c9d39 | ||
|
|
a448d3a6aa | ||
|
|
e80adc0bc6 | ||
|
|
1a6b4d6ce6 | ||
|
|
a15417fe74 | ||
|
|
1b5730a799 | ||
|
|
3dcb775d16 | ||
|
|
2d387356de | ||
|
|
07c3aae315 | ||
|
|
b36eba7fab | ||
|
|
8574a757f9 | ||
|
|
01dcfb0825 | ||
|
|
01b2c5a77c | ||
|
|
3a45a65625 | ||
|
|
0812207db7 | ||
|
|
c8776e6ebd | ||
|
|
cf2a3c8e74 | ||
|
|
1cc1e6fa56 | ||
|
|
277f0d270f | ||
|
|
6216bf9221 | ||
|
|
388a7ce86e | ||
|
|
5d95a500ad | ||
|
|
95341c2b1b | ||
|
|
54063c40de | ||
|
|
585593e9fc | ||
|
|
f15e885baf | ||
|
|
9109cb1ec6 | ||
|
|
3ffed0bf6e | ||
|
|
dc9ee53ff5 | ||
|
|
1485968fc4 | ||
|
|
557ac3dbaf | ||
|
|
09134ac881 | ||
|
|
433c5199fd | ||
|
|
d448a636f8 | ||
|
|
396f43d674 | ||
|
|
3c5fec6746 | ||
|
|
e12b1c2209 | ||
|
|
f6b2b49e4a | ||
|
|
e1322cf503 | ||
|
|
67dfdee33f | ||
|
|
61c4cfd896 | ||
|
|
be17f532e1 | ||
|
|
6d85fa3fd2 | ||
|
|
95a07ca11c | ||
|
|
222a48577f | ||
|
|
353273579b | ||
|
|
72c5ac37de | ||
|
|
1eba7f60c2 | ||
|
|
7373ef0983 | ||
|
|
2740901378 | ||
|
|
0c00d082cf | ||
|
|
e661ad2a67 | ||
|
|
3a4b79173b | ||
|
|
faceb05775 | ||
|
|
bdc29cccb6 | ||
|
|
8d78400052 | ||
|
|
b4b4d21212 | ||
|
|
99502e99cc | ||
|
|
99436bb8cf | ||
|
|
7465125f67 | ||
|
|
340df65fb4 | ||
|
|
9a463b74dc | ||
|
|
7e4b2057f2 | ||
|
|
c303aaa94d | ||
|
|
c920b45fb8 | ||
|
|
2a9a2fff66 | ||
|
|
b0563ce368 | ||
|
|
673eb2b006 | ||
|
|
ef395c3866 | ||
|
|
4d3d6230c5 | ||
|
|
a28a520c7f | ||
|
|
0aac17d9f7 | ||
|
|
ea34b2fefb | ||
|
|
f44a0960df | ||
|
|
b1ed003d08 | ||
|
|
22d930998b | ||
|
|
d2b0953735 | ||
|
|
978666c816 | ||
|
|
fa002bde01 | ||
|
|
13c4dc0e69 | ||
|
|
ad4e5dbd3d | ||
|
|
0b4c101e8a | ||
|
|
2d63861c09 | ||
|
|
e8c7d61752 | ||
|
|
4e8cd4629c | ||
|
|
467c3ef0ac | ||
|
|
b1f390b170 | ||
|
|
154fdef965 | ||
|
|
2f665ec589 | ||
|
|
801f26c35d | ||
|
|
6db9f00fd1 | ||
|
|
39b64fc7d7 | ||
|
|
4dfa798e75 | ||
|
|
2aeb32d2d1 | ||
|
|
8433620295 | ||
|
|
760e9e0943 | ||
|
|
7b82ad2918 | ||
|
|
49d8c0bd52 | ||
|
|
8253562794 | ||
|
|
d7e839b8c5 | ||
|
|
2fb1d9d02e | ||
|
|
4cdb4652cf | ||
|
|
0fb4f2cc9c | ||
|
|
183e4d50ed | ||
|
|
020be63df5 | ||
|
|
377dd04224 | ||
|
|
31d624f9a8 | ||
|
|
bf224e61a9 | ||
|
|
8ac333697d | ||
|
|
dbb30134bc | ||
|
|
847190b5b8 | ||
|
|
0f31231872 | ||
|
|
b76aeb40fb | ||
|
|
8fe9674301 | ||
|
|
66cf55ea1f | ||
|
|
4b47c7dbd2 | ||
|
|
221ddec845 | ||
|
|
2160f9b20e | ||
|
|
e63af185de | ||
|
|
11d565ca62 | ||
|
|
8d69dbdf49 | ||
|
|
14da5ec311 | ||
|
|
9cc9237522 | ||
|
|
25ab141b93 | ||
|
|
718d7e4b04 | ||
|
|
ca68fac4b2 | ||
|
|
034a43e7f7 | ||
|
|
ca23c0e630 | ||
|
|
1d7bfcc958 | ||
|
|
01ea055d79 | ||
|
|
df74eb4ff6 | ||
|
|
c48473dfe4 | ||
|
|
77d1c20fb7 | ||
|
|
05d4975619 | ||
|
|
d4d95bd70d | ||
|
|
7e7bb3027c | ||
|
|
8f49b820db | ||
|
|
3b2e409fa7 | ||
|
|
1c2ed2876f | ||
|
|
7f0d90a525 | ||
|
|
71ec112093 | ||
|
|
e021b85b36 | ||
|
|
9ea62bfddb | ||
|
|
00925ad795 | ||
|
|
683910f579 | ||
|
|
2645ee90ca | ||
|
|
0e6ce50131 | ||
|
|
ff70b02efc | ||
|
|
9b64eadcb6 | ||
|
|
2a52e44bc6 | ||
|
|
3af63fe052 | ||
|
|
3d36f9044d | ||
|
|
a1230ad0a0 | ||
|
|
448a5452d0 | ||
|
|
4cebef9090 | ||
|
|
7080c783d1 | ||
|
|
d3b68b059b | ||
|
|
866b15ddb8 | ||
|
|
7d1c42afe1 | ||
|
|
d594e72586 | ||
|
|
4e56c1326f | ||
|
|
3ba6b41961 | ||
|
|
034a5f140c | ||
|
|
3a99ebb446 | ||
|
|
c1a8fb72b7 | ||
|
|
11b08b5ff3 | ||
|
|
850414a501 | ||
|
|
a560ebf09d | ||
|
|
72fedbe096 | ||
|
|
d00e58cdb0 | ||
|
|
9f82b74788 | ||
|
|
764e8ac2c4 | ||
|
|
612746b4e5 | ||
|
|
83e1d79403 | ||
|
|
155b751a75 | ||
|
|
4966186e10 | ||
|
|
510a8520c7 | ||
|
|
09fe66e87f | ||
|
|
3c85745e22 | ||
|
|
b7ecaceda8 | ||
|
|
3befdb4ae8 | ||
|
|
db95aec4a7 | ||
|
|
490908f0ff | ||
|
|
27b71d6368 | ||
|
|
9b3be01b83 | ||
|
|
0bcdf7d03e | ||
|
|
44560c3e50 | ||
|
|
b927ce18b2 | ||
|
|
969cc3dd95 | ||
|
|
198b5096aa | ||
|
|
e0a9468488 | ||
|
|
7e637c134f | ||
|
|
619180dffd | ||
|
|
6d113bd03f | ||
|
|
a76c72acdd | ||
|
|
e9655cf646 | ||
|
|
34530da66e | ||
|
|
6271192a32 | ||
|
|
3a2f40ac6f | ||
|
|
094a5b0cba | ||
|
|
a55cc07548 | ||
|
|
c9296e599f | ||
|
|
b33ff22988 | ||
|
|
880d2afb67 | ||
|
|
9e332dc5fb | ||
|
|
a694e5074f | ||
|
|
90a4d67e8d | ||
|
|
23bc89d6fc | ||
|
|
73ddc091a2 | ||
|
|
bce9837604 | ||
|
|
f3a50224f2 | ||
|
|
d4a17da7b2 | ||
|
|
4f288a1e28 | ||
|
|
fd09413566 | ||
|
|
ad16c243ca | ||
|
|
da6ad1c640 | ||
|
|
9ed1332355 | ||
|
|
90ec651bd7 | ||
|
|
0aa5391c4b | ||
|
|
57cf120118 | ||
|
|
0b85d0ec68 | ||
|
|
e18d5e94c7 | ||
|
|
bc036e1e86 | ||
|
|
219ef95dd8 | ||
|
|
8ed89bae84 | ||
|
|
124bf8339f | ||
|
|
29d214474f | ||
|
|
4d0f13544d | ||
|
|
a5ca5f6daf | ||
|
|
b1b78aedd2 | ||
|
|
9214103564 | ||
|
|
599a595c6f | ||
|
|
8559237d4e | ||
|
|
8808aaccff | ||
|
|
831153d5fb | ||
|
|
333a767be4 | ||
|
|
5012fc5d23 | ||
|
|
f00607c8ac | ||
|
|
8c24af66bd | ||
|
|
7ffab23a53 | ||
|
|
4a39b12a78 | ||
|
|
1bc607e8d8 | ||
|
|
98db891851 | ||
|
|
1f48940a93 | ||
|
|
edcc762f7a | ||
|
|
db5f1c3554 | ||
|
|
9c4b1d0a51 | ||
|
|
98b5fb4b9f | ||
|
|
d2cc30e2a5 | ||
|
|
e93c51762b | ||
|
|
b16c1096d1 | ||
|
|
4d8d152461 | ||
|
|
cc0066d38d | ||
|
|
5bbe116f89 | ||
|
|
b17e9c614b | ||
|
|
45d073f889 | ||
|
|
85c97f772c | ||
|
|
af9ded89d0 | ||
|
|
c13a62ce10 | ||
|
|
d8dea7896b | ||
|
|
09df7810d1 | ||
|
|
95aa6d7307 | ||
|
|
2617c9aa64 | ||
|
|
f48c84eaee | ||
|
|
84bb67e49b | ||
|
|
9e4b1d5a75 | ||
|
|
f2d3edec80 | ||
|
|
53c0189ed7 | ||
|
|
bf96d8239d | ||
|
|
64588dff46 | ||
|
|
f9bd025722 | ||
|
|
a5d0c7b02c | ||
|
|
53a853c3c9 | ||
|
|
43a907ddda | ||
|
|
c2f5f5a202 | ||
|
|
5e082ab852 | ||
|
|
fce6e7248e | ||
|
|
d54d01ca46 | ||
|
|
2b96a485e7 | ||
|
|
8eafddf211 | ||
|
|
1540ae340f | ||
|
|
8b5efc6f4c | ||
|
|
c23ab37355 | ||
|
|
95f0c9b19b | ||
|
|
01048e5603 | ||
|
|
102ef39a27 | ||
|
|
966c2191cb | ||
|
|
8f3867756c | ||
|
|
b29512032a | ||
|
|
a0f5eb282c | ||
|
|
07b475062f | ||
|
|
a41cbbdc99 | ||
|
|
8b2c499be6 | ||
|
|
c87b99e82b | ||
|
|
96b26dc8f4 | ||
|
|
4fdf4d380c | ||
|
|
150c29356a | ||
|
|
8177adbd54 | ||
|
|
30331eef4b | ||
|
|
1f695c4532 | ||
|
|
e007d93d93 | ||
|
|
77dd40c96c | ||
|
|
f3eef792eb | ||
|
|
4d14307f5d | ||
|
|
450b96510e | ||
|
|
4b0d3316f6 | ||
|
|
7ac7aca33b | ||
|
|
6713063a8d | ||
|
|
331a96c670 | ||
|
|
1602a38fa9 | ||
|
|
dae1fc8889 | ||
|
|
a6ef9b4584 | ||
|
|
e970eccbf1 | ||
|
|
5ad9e5f9bc | ||
|
|
3a546aa380 | ||
|
|
d67a6c1be4 | ||
|
|
d84360e7f3 | ||
|
|
f81fdd58da | ||
|
|
a6f3a21256 | ||
|
|
f3237fdc6e | ||
|
|
cc259e49f6 | ||
|
|
a8c257cecb | ||
|
|
9a4cafa319 | ||
|
|
c41f50f5f7 | ||
|
|
e48ae883e9 | ||
|
|
0a91261c7f | ||
|
|
d81a0da3e0 | ||
|
|
ef93aea0da | ||
|
|
2a6637afdf | ||
|
|
3efa78311a | ||
|
|
d4422e473a | ||
|
|
aaf9297592 | ||
|
|
1159453139 | ||
|
|
fb13b87285 | ||
|
|
aa2777ed61 | ||
|
|
8a588f2c0b | ||
|
|
1dd24eeec0 | ||
|
|
5eec3be850 | ||
|
|
236e3868df | ||
|
|
c3264aa83c | ||
|
|
9d0f16e8fe | ||
|
|
867c922bcc | ||
|
|
41f444a230 | ||
|
|
a631196155 | ||
|
|
e13a73d084 | ||
|
|
98d96f2cc8 | ||
|
|
bd6ab6d38e | ||
|
|
80aaed73e6 | ||
|
|
db9f4436e0 | ||
|
|
cd53144ed3 | ||
|
|
f791cf825f | ||
|
|
eb14f9a464 | ||
|
|
0a691f7840 | ||
|
|
8ecfb59930 | ||
|
|
69944cd46b | ||
|
|
6c8f50d1f3 | ||
|
|
8d078f63a9 | ||
|
|
bcc9946650 | ||
|
|
d4a28f3bf6 | ||
|
|
55cdeaa6dd | ||
|
|
7d998336d3 | ||
|
|
6ad390a1cd | ||
|
|
3c2e5583d2 | ||
|
|
d64529f6de | ||
|
|
3cc07a4411 | ||
|
|
ac0a14631d | ||
|
|
745153098a | ||
|
|
981e63d8c2 | ||
|
|
d0d676929d | ||
|
|
4dffcbd9f0 | ||
|
|
6d75be03f9 | ||
|
|
fb781834f5 | ||
|
|
6eba1a4d44 | ||
|
|
fa4871b013 | ||
|
|
8dd0fd8a13 | ||
|
|
5baa2c0706 | ||
|
|
225566da7b | ||
|
|
0cb3bf95f1 | ||
|
|
d917f889b1 | ||
|
|
e50acb923e | ||
|
|
4e4dfffe06 | ||
|
|
85a59ef292 | ||
|
|
f67c8e37d6 | ||
|
|
17fe63446f | ||
|
|
0673866ceb | ||
|
|
0dd1ce1a4f | ||
|
|
c56e91dcc0 | ||
|
|
5c6d319ebc | ||
|
|
20fb9281f4 | ||
|
|
edaf4e0104 | ||
|
|
005f38fb45 | ||
|
|
a173ea36f7 | ||
|
|
e569e9dcbd | ||
|
|
01c1b341a8 | ||
|
|
4d291c06f6 | ||
|
|
a9a33d9a5f | ||
|
|
57c9991413 | ||
|
|
8519db8efb | ||
|
|
174022547f | ||
|
|
579dcf12bd | ||
|
|
f05d5888c9 | ||
|
|
bf2f7b0f8b | ||
|
|
84c29dce77 | ||
|
|
126b0d855f | ||
|
|
ac9f8c1f41 | ||
|
|
86e5e8d765 | ||
|
|
27edba495a | ||
|
|
0d456f9111 | ||
|
|
591f427003 | ||
|
|
2ced568d34 | ||
|
|
ecbba852cf | ||
|
|
48c8c95381 | ||
|
|
cd2d6ac935 | ||
|
|
a4bd7506a5 | ||
|
|
70cbc3d883 | ||
|
|
ec033330df | ||
|
|
e037800e46 | ||
|
|
7e6bdbad9b | ||
|
|
5542dcb2bc | ||
|
|
bd531bd828 | ||
|
|
8facf61bed | ||
|
|
560f85f8e5 | ||
|
|
f856c964e2 | ||
|
|
223790e6fc | ||
|
|
5429b1f5ff | ||
|
|
24166ac402 | ||
|
|
02f8a9470a | ||
|
|
4a19ac5aca | ||
|
|
4af55e64e9 | ||
|
|
5790810c3a | ||
|
|
acc089ca64 | ||
|
|
282a15c9f9 | ||
|
|
5d01821d9f | ||
|
|
f8f74fc4ae | ||
|
|
0853085ec6 | ||
|
|
e83438c23d | ||
|
|
3d5ca3ef75 | ||
|
|
043b9fbb31 | ||
|
|
76c21b73aa | ||
|
|
4d2da2debe | ||
|
|
84895d2566 | ||
|
|
4b2363de5c | ||
|
|
ffaf15d0d9 | ||
|
|
4b35112022 | ||
|
|
bd66f76fea | ||
|
|
5265db82c7 | ||
|
|
d9474648f0 | ||
|
|
d0e02cccba | ||
|
|
0687cffe21 | ||
|
|
504cd8a9f5 | ||
|
|
a3ae69893c | ||
|
|
55b03dcaba | ||
|
|
1358c0ae66 | ||
|
|
a6359e49d2 | ||
|
|
f4147c99c8 | ||
|
|
6670e6b0bb | ||
|
|
814a5cec41 | ||
|
|
e5ed22bd5b | ||
|
|
3d14dd4e39 | ||
|
|
3019927a61 | ||
|
|
881cee4d8f | ||
|
|
7e5b5390ba | ||
|
|
b21a861c5b | ||
|
|
35c24480ae | ||
|
|
16d8e9e0c8 | ||
|
|
3fe9dfaa2e | ||
|
|
832ca0734d | ||
|
|
15e1acaf67 | ||
|
|
8b3042da63 | ||
|
|
8af87d5792 | ||
|
|
65ccafd494 | ||
|
|
6c93e42d94 | ||
|
|
6bc953e911 | ||
|
|
fada959b4b | ||
|
|
c6936f5a77 | ||
|
|
d825caf18e | ||
|
|
998e355b97 | ||
|
|
7dad0f23d6 | ||
|
|
97455f1593 | ||
|
|
08ba63da02 | ||
|
|
d42e04d0df | ||
|
|
80ade96c8c | ||
|
|
00830d9dd8 | ||
|
|
4e577b8d3c | ||
|
|
61b6d40539 | ||
|
|
bb91e6999b | ||
|
|
f29bc22005 | ||
|
|
ac30620344 | ||
|
|
8128f6284a | ||
|
|
2c0ebf36a9 | ||
|
|
b3a07166ba | ||
|
|
301626ba26 | ||
|
|
886220b9be | ||
|
|
55d54b56bf | ||
|
|
282fcb90dc | ||
|
|
09b3383a7e | ||
|
|
b4316af834 | ||
|
|
a696348ec5 | ||
|
|
3b54ebec3f | ||
|
|
16b13c6e3b | ||
|
|
f429cee5d1 | ||
|
|
90e4907b0b | ||
|
|
fb3a334bbe | ||
|
|
2bd9488475 | ||
|
|
d85e67d3ec | ||
|
|
c30af724ef | ||
|
|
3e2d8ca0a1 | ||
|
|
1f8802b94d | ||
|
|
8b9e8a805d | ||
|
|
2b9cfe1e1c | ||
|
|
358139b6b9 | ||
|
|
c6a622542d | ||
|
|
4ecbcf0885 | ||
|
|
2638c5e9b7 | ||
|
|
ed377ac1e8 | ||
|
|
ced3df73da | ||
|
|
4057e81b76 | ||
|
|
24ca53183d | ||
|
|
fd369a5004 | ||
|
|
f6137292f1 | ||
|
|
a90dacdf75 | ||
|
|
d92a883de1 | ||
|
|
f6a8f7859c | ||
|
|
4e2ef8c8f5 | ||
|
|
7cd3615f9f | ||
|
|
7c741f54fa | ||
|
|
0d896af8ec | ||
|
|
afc8dd5661 | ||
|
|
52f930cca7 | ||
|
|
4cb9faf6c9 | ||
|
|
a67228cd73 | ||
|
|
f4daf14bfa | ||
|
|
abe2ca886d | ||
|
|
4b93820880 | ||
|
|
be86338a79 | ||
|
|
c1c84d2fd1 | ||
|
|
3f27f8cf41 | ||
|
|
31289d2f32 | ||
|
|
f163778da7 | ||
|
|
8f1e36f7c1 | ||
|
|
4cc458eb10 | ||
|
|
55f2370f36 | ||
|
|
a718f2e6ea | ||
|
|
fb61f88b9c | ||
|
|
38e6d668b1 | ||
|
|
2c21ea2dd7 | ||
|
|
a9f3acb125 | ||
|
|
993b9af756 | ||
|
|
e180cc050b | ||
|
|
ea31a14cc5 | ||
|
|
c75d93337e | ||
|
|
1e32781b54 | ||
|
|
9ed372b297 | ||
|
|
4625337179 | ||
|
|
e9e3af0aaa | ||
|
|
a33d50084d | ||
|
|
7eba3a7c96 | ||
|
|
1a74de1f9c | ||
|
|
2d778434f1 | ||
|
|
e57ceea3d3 | ||
|
|
8b43861217 | ||
|
|
7d484d21f7 | ||
|
|
74bc8d351c | ||
|
|
1f2b2c5242 | ||
|
|
178c4810e6 | ||
|
|
e4a64760db | ||
|
|
c1cdb2416a | ||
|
|
40ac72a8f1 | ||
|
|
43a91f82fe | ||
|
|
ccfca869e5 | ||
|
|
f6ec467f19 | ||
|
|
039f5ca42e | ||
|
|
1996ae4a42 | ||
|
|
bb93066558 | ||
|
|
f954f0830c | ||
|
|
dec25e8531 | ||
|
|
7b28d5b409 | ||
|
|
1df148aae9 | ||
|
|
48eecafc89 | ||
|
|
76cfa65d55 | ||
|
|
ef290366b0 | ||
|
|
b4759d7272 | ||
|
|
8aebef2459 | ||
|
|
7b12cbd7dc | ||
|
|
01f97f150c | ||
|
|
17a35587e1 | ||
|
|
d76f24567b | ||
|
|
752653c70b | ||
|
|
03a602b6ef | ||
|
|
523f081923 | ||
|
|
9572895da0 | ||
|
|
515ec6b98a | ||
|
|
9ec3d76b21 | ||
|
|
c4c94f891e | ||
|
|
d16cf68a3b | ||
|
|
4ebd91e637 | ||
|
|
f9c514b391 | ||
|
|
ccb7253818 | ||
|
|
badd0d1ff4 | ||
|
|
8b55f476be | ||
|
|
659ffaddb4 | ||
|
|
07729e396d | ||
|
|
d064079a4e | ||
|
|
cf477f7e9f | ||
|
|
543e0302d3 | ||
|
|
ffa72fc979 | ||
|
|
2da7360b63 | ||
|
|
16bc505d26 | ||
|
|
6e33769e56 | ||
|
|
89d3f95a8e | ||
|
|
bda89a6469 | ||
|
|
ee4feb4b09 | ||
|
|
1fac1421e5 | ||
|
|
4de1efd3c8 | ||
|
|
5e2bcc9149 | ||
|
|
545f8a8c93 | ||
|
|
97b6068c46 | ||
|
|
71ef76ecad | ||
|
|
4c86fc13cb | ||
|
|
b379969c63 | ||
|
|
b8e0898c7c | ||
|
|
61969dc158 | ||
|
|
8f910d2d49 | ||
|
|
fd4fac946a | ||
|
|
287874a444 | ||
|
|
c6c8783c60 | ||
|
|
a11f9e1963 | ||
|
|
d427cebd12 | ||
|
|
e5b58b1020 | ||
|
|
2c0d9fa81f | ||
|
|
cf93df41fc | ||
|
|
ba7b0f4c54 | ||
|
|
17c485eb03 | ||
|
|
5b0b59ecfb | ||
|
|
c2b6c67431 | ||
|
|
4a4ff6749b | ||
|
|
f270e8d040 | ||
|
|
3cd8976493 | ||
|
|
92b9888837 | ||
|
|
121bc50ca9 | ||
|
|
0d19fa0720 | ||
|
|
b8ef2036b0 | ||
|
|
8b9982a0a5 | ||
|
|
6b6c2f6087 | ||
|
|
9a18330f3a | ||
|
|
c89780dfe0 | ||
|
|
3fddd3bf93 | ||
|
|
b505cf84de | ||
|
|
476a02739e | ||
|
|
544ceedcac | ||
|
|
e0e683aedf | ||
|
|
dd3f517fe9 | ||
|
|
65d606630d | ||
|
|
ad56838040 | ||
|
|
202ba124a5 | ||
|
|
a91eca6ec2 | ||
|
|
c0503718cd | ||
|
|
1ddcfc5c68 | ||
|
|
9b8ddba4d1 | ||
|
|
b2b6f52d14 | ||
|
|
15621532b8 | ||
|
|
774d28efb1 | ||
|
|
c3023fb52b | ||
|
|
ccf415c341 | ||
|
|
8108fb0575 | ||
|
|
b4a3c92867 | ||
|
|
72315e7b00 | ||
|
|
1633c29f29 | ||
|
|
529a241a26 | ||
|
|
5e3a7ac8a7 | ||
|
|
63b154396a | ||
|
|
fbb3f64a1a | ||
|
|
0dc0bc80ae | ||
|
|
4b0132ed7a | ||
|
|
78c5e41c23 | ||
|
|
01a28db949 | ||
|
|
53b6fb465c | ||
|
|
a7acb8805f | ||
|
|
fb5e7964b3 | ||
|
|
d9efb55d29 | ||
|
|
9276f1910b | ||
|
|
ad0ab4109a | ||
|
|
a4d16acd00 | ||
|
|
744798aadd | ||
|
|
318cba4ce3 | ||
|
|
cf93217365 | ||
|
|
0867e3188d | ||
|
|
1261559305 | ||
|
|
af230ec133 | ||
|
|
fc41c18c6f | ||
|
|
eff514f8bb | ||
|
|
1acadd363b | ||
|
|
ac2dc29525 | ||
|
|
d1c4e4b5a5 | ||
|
|
beb14c70da | ||
|
|
b5426a8679 | ||
|
|
7a52a4c134 | ||
|
|
363976694e | ||
|
|
b6a58818bb | ||
|
|
5dd3e6052e | ||
|
|
3d47e043af | ||
|
|
895fc72a0b | ||
|
|
f42d5399aa | ||
|
|
ad5874779c | ||
|
|
d19bccad74 | ||
|
|
417034518c | ||
|
|
dcf72e49e2 | ||
|
|
c4c4ac28dc | ||
|
|
a165f55579 | ||
|
|
0d7f770996 | ||
|
|
2947877871 | ||
|
|
0ca5f68d72 | ||
|
|
48073e6d95 | ||
|
|
469addeca3 | ||
|
|
c394847c35 | ||
|
|
ea64bb58a5 | ||
|
|
ea5499fa51 | ||
|
|
278b4ca40c | ||
|
|
cd6d79d106 | ||
|
|
02f4d6ca53 | ||
|
|
8dfba51884 | ||
|
|
055ffc0425 | ||
|
|
61d7d67c39 | ||
|
|
87a692b89e | ||
|
|
09619c1c45 | ||
|
|
8bf5bed0a9 | ||
|
|
5ffeebabad | ||
|
|
e89c1103ff | ||
|
|
fe4f27b99b | ||
|
|
471b40040a | ||
|
|
613c12e590 | ||
|
|
fadb90c579 | ||
|
|
8ec6544624 | ||
|
|
da0fec7308 | ||
|
|
2477103707 | ||
|
|
2ff12c4981 | ||
|
|
194304bbe4 | ||
|
|
cc9b199ecb | ||
|
|
a84969bdcd | ||
|
|
823e767eed | ||
|
|
e42560bed5 | ||
|
|
d6630ab35b | ||
|
|
2f30c3fd4f | ||
|
|
2f9351d995 | ||
|
|
230e44b01d | ||
|
|
46206b4814 | ||
|
|
4c71dbf0af | ||
|
|
0cf77c3916 | ||
|
|
9efafc3e33 | ||
|
|
65573784c4 | ||
|
|
40215f99d7 | ||
|
|
9ab5e52f04 | ||
|
|
ec37364762 | ||
|
|
23288b7cb5 | ||
|
|
626bfbf309 | ||
|
|
c54753c185 | ||
|
|
8115b004b9 | ||
|
|
4429352125 | ||
|
|
c9b2cedebd | ||
|
|
f0058bbed3 | ||
|
|
3c50d24d8e | ||
|
|
53c88f0f9e | ||
|
|
d50babfc99 | ||
|
|
3fb6617d62 | ||
|
|
3133bb49aa | ||
|
|
06067efa3f | ||
|
|
6aa689f87c | ||
|
|
fba9fdfd27 | ||
|
|
507ca291e1 | ||
|
|
bc927f9788 | ||
|
|
e2a5a6a05c | ||
|
|
9f4f9000bc | ||
|
|
6e246ee58c | ||
|
|
2fef9bc1d8 | ||
|
|
bab8addcbb | ||
|
|
a74fe2ec01 | ||
|
|
a052567db8 | ||
|
|
2d2330382d | ||
|
|
ee23a7575d | ||
|
|
9fa6c2ac04 | ||
|
|
3ece62cb9c | ||
|
|
cd7fa04985 | ||
|
|
b8d4664e6e | ||
|
|
bd5d16ce36 | ||
|
|
e98852a389 | ||
|
|
08e4ffdf79 | ||
|
|
b4c5b50a3e | ||
|
|
3ddb005480 | ||
|
|
1e410ed826 | ||
|
|
95a55250a7 | ||
|
|
349f0cf5e9 | ||
|
|
57b16a4b6e | ||
|
|
758156a9b6 | ||
|
|
8747082091 | ||
|
|
4de115c08c | ||
|
|
60488ffbbd | ||
|
|
a13862e924 | ||
|
|
8b42995e8b | ||
|
|
84c3bbd934 | ||
|
|
a0d227714e | ||
|
|
bea2c75452 | ||
|
|
00f36a261b | ||
|
|
b17d16623a | ||
|
|
61cc855564 | ||
|
|
e736f590f7 | ||
|
|
6d669dcd7d | ||
|
|
55c1720719 | ||
|
|
07f0225ca6 | ||
|
|
f7b5900671 | ||
|
|
8a7e74673e | ||
|
|
3c62f3a8e3 | ||
|
|
48d41ab088 | ||
|
|
e98e58c65a | ||
|
|
3b9f981358 | ||
|
|
1661e83939 | ||
|
|
834c992553 | ||
|
|
1ae001d10a | ||
|
|
4e67eb6c42 | ||
|
|
a7b954f655 | ||
|
|
576644a197 | ||
|
|
410583e5f9 | ||
|
|
ccecd3405a | ||
|
|
4700722444 | ||
|
|
0e92ac2af7 | ||
|
|
b77a0039ee | ||
|
|
b2274a63cd | ||
|
|
6a439ae53d | ||
|
|
19a4b51371 | ||
|
|
a41b79d43e | ||
|
|
ec43292e1e | ||
|
|
ea667d82b3 | ||
|
|
0a02dd5f58 | ||
|
|
32aba5e64b | ||
|
|
dbf8e22fad | ||
|
|
0b5d0b83be | ||
|
|
35e5f00cac | ||
|
|
290da93845 | ||
|
|
f6bb900259 | ||
|
|
f7f2438478 | ||
|
|
2ad0487cec | ||
|
|
72ccb5fe6e | ||
|
|
bf0765fc7f | ||
|
|
59de4d9ad8 | ||
|
|
4c168e95de | ||
|
|
183fc43a67 | ||
|
|
c95407f1bc | ||
|
|
f1ea9d86b9 | ||
|
|
e06efd5329 | ||
|
|
358d69956a | ||
|
|
212f0fb509 | ||
|
|
487d331d74 | ||
|
|
5e527d22e3 | ||
|
|
816929c704 | ||
|
|
a9839af903 | ||
|
|
174b4ce29d | ||
|
|
bca49b99ca | ||
|
|
6427744063 | ||
|
|
0757a51e2b | ||
|
|
290078e0d0 | ||
|
|
59b0314a0e | ||
|
|
95eb199f41 | ||
|
|
d659eb9327 | ||
|
|
f17a6b478b | ||
|
|
f18cbd036a | ||
|
|
f9cefc84a3 | ||
|
|
fc85f3644d | ||
|
|
304e3ac12f | ||
|
|
778f42ad34 | ||
|
|
f482050f9a | ||
|
|
4e998c9ade | ||
|
|
3debb98805 | ||
|
|
ddbd10c001 | ||
|
|
7c0a43d425 | ||
|
|
0cf479dd5c | ||
|
|
1f736a95a7 | ||
|
|
79859ebca3 | ||
|
|
5691d998ea | ||
|
|
b10ec8ef8b | ||
|
|
8313209704 | ||
|
|
89f23a35c5 | ||
|
|
293729f48a | ||
|
|
79310a0051 | ||
|
|
b69bf8a897 | ||
|
|
426482e05b | ||
|
|
2734291b35 | ||
|
|
95c65aff75 | ||
|
|
3361c59576 | ||
|
|
8936d55675 | ||
|
|
199ddff13b | ||
|
|
985e5014bc | ||
|
|
8b341884d2 | ||
|
|
a897fc91ec | ||
|
|
e7bb0ecee0 | ||
|
|
4a28ef8034 | ||
|
|
f6ec0cd827 | ||
|
|
add1df4bcb | ||
|
|
65d148d9a8 | ||
|
|
c9bd43c0f6 | ||
|
|
c11423df1e | ||
|
|
e629785a97 | ||
|
|
3a2a74b655 | ||
|
|
97e88bd769 | ||
|
|
d4501f08b8 | ||
|
|
2df7736562 | ||
|
|
ee1de8f30d | ||
|
|
bee510dbce | ||
|
|
571b69bdb6 | ||
|
|
095f44f4b2 | ||
|
|
95415ac3a5 | ||
|
|
f6c573880e | ||
|
|
f663e8f903 | ||
|
|
de4d304d90 | ||
|
|
2a9521661e | ||
|
|
693877212d | ||
|
|
8408587341 | ||
|
|
0fc584961c | ||
|
|
d7744aca02 | ||
|
|
db211446f3 | ||
|
|
43eba3d750 | ||
|
|
ad49138fae | ||
|
|
097d81363b | ||
|
|
2bf8793632 | ||
|
|
bff90d4684 | ||
|
|
65552bf403 | ||
|
|
6fdce865b8 | ||
|
|
453466eb1a | ||
|
|
49805f976a | ||
|
|
1666195984 | ||
|
|
3d345ca4c4 | ||
|
|
8dd596b7ba | ||
|
|
719912e46e | ||
|
|
75c567b6ab | ||
|
|
0e9a865bbf | ||
|
|
b95e93c20a | ||
|
|
b58b2c5ae8 | ||
|
|
de60600126 | ||
|
|
f4ca2c8e72 | ||
|
|
46205a7235 | ||
|
|
974491f93d | ||
|
|
442bc80cd7 | ||
|
|
f84b08ff08 | ||
|
|
f33f88de31 | ||
|
|
e69ff71302 | ||
|
|
2b2633c11f | ||
|
|
729848caeb | ||
|
|
9cb239247d | ||
|
|
1b7b2c3a62 | ||
|
|
7c0a9ff4c1 | ||
|
|
8d75bfae47 | ||
|
|
1d2ef6b2a1 | ||
|
|
7f9a9f2a09 | ||
|
|
26dfa5e77c | ||
|
|
7b099e0fe2 | ||
|
|
66d7956e67 | ||
|
|
3df83dce7e | ||
|
|
d3c0f4ef98 | ||
|
|
cf9bddcb89 | ||
|
|
3af1b6ecdc | ||
|
|
4623e6220f | ||
|
|
ae31115017 | ||
|
|
6389303c1c | ||
|
|
5015829ce8 | ||
|
|
81fad9e247 | ||
|
|
e7dbc4ff28 | ||
|
|
b4d3ff378e | ||
|
|
6c8ffe81d0 | ||
|
|
1706a7609a | ||
|
|
d60ac98ef2 | ||
|
|
3f67623c26 | ||
|
|
59f4a2e0f3 | ||
|
|
d3d13c41c4 | ||
|
|
f6230ae019 | ||
|
|
11b020b9f9 | ||
|
|
987061d800 | ||
|
|
f99f58d99f | ||
|
|
1aefa6779f | ||
|
|
ddcf388270 | ||
|
|
f3de2b4be7 | ||
|
|
25e4bce1a6 | ||
|
|
e329c84d5e | ||
|
|
03a3be0844 | ||
|
|
76fca0e755 | ||
|
|
db900af8c7 | ||
|
|
9fd95b93f7 | ||
|
|
ae279966c2 | ||
|
|
3ccb1d67c2 | ||
|
|
d2d8535a31 | ||
|
|
419a6d51b3 | ||
|
|
9f68376c91 | ||
|
|
216988b0b1 | ||
|
|
53c771551c | ||
|
|
43467a2ac7 | ||
|
|
ed96864892 | ||
|
|
d1615ba11a | ||
|
|
6c6dd16acf | ||
|
|
a6144b8e1a | ||
|
|
166ecaeda8 | ||
|
|
2080e06f7b | ||
|
|
1050b5351e | ||
|
|
8bf9dda604 | ||
|
|
54ff72a1cc | ||
|
|
cbb699efd2 | ||
|
|
d9dac9cd1b | ||
|
|
bcf7286ad9 | ||
|
|
935c02c0a3 | ||
|
|
de977cc9c8 | ||
|
|
e4b9a58c15 | ||
|
|
3c1267dbe6 | ||
|
|
b4ec8fe3ef | ||
|
|
6fc6207e93 | ||
|
|
9003b60d65 | ||
|
|
d93588dfeb | ||
|
|
e21262deba | ||
|
|
b8f9076de0 | ||
|
|
d784b40e24 | ||
|
|
50af4df1d7 | ||
|
|
b2abd8ca41 | ||
|
|
2aed9aea47 | ||
|
|
c2e26c1527 | ||
|
|
610f5481c1 | ||
|
|
03ec1ca0a4 | ||
|
|
04caf0549d | ||
|
|
0e1dd63f5e | ||
|
|
e28e3c9491 | ||
|
|
076ee65c85 | ||
|
|
834d438d6e | ||
|
|
f5801ee7da | ||
|
|
faca45a7ea | ||
|
|
e8ac7a34dd | ||
|
|
c9f3f4d1d3 | ||
|
|
7b8ce63730 | ||
|
|
ffaf4d5da4 | ||
|
|
fb326a3589 | ||
|
|
f81886d17c | ||
|
|
d0032b0717 | ||
|
|
8120595c3e | ||
|
|
44bd849697 | ||
|
|
8af96248bf | ||
|
|
f439fc4306 | ||
|
|
25247b9f6e | ||
|
|
c024edb9a8 | ||
|
|
1f517b8a02 | ||
|
|
7ad5d21900 | ||
|
|
dfb9832a25 | ||
|
|
a56c12278e | ||
|
|
4635356435 | ||
|
|
d68e722b71 | ||
|
|
5cb0eded64 | ||
|
|
15bb0b86ce | ||
|
|
64168fc20a | ||
|
|
072b524e02 | ||
|
|
371bba8f54 | ||
|
|
2eaf35eb63 | ||
|
|
0b9d53829f | ||
|
|
c9fc27b337 | ||
|
|
aa1359dc19 | ||
|
|
4c2100e02c | ||
|
|
473941c341 | ||
|
|
4001346a30 | ||
|
|
ee7255aac4 | ||
|
|
5dc606097c | ||
|
|
14843679af | ||
|
|
785a540ebd | ||
|
|
d2854448c2 | ||
|
|
cd6d8048bb | ||
|
|
3d7a3a51a7 | ||
|
|
b4e2c99346 | ||
|
|
33dde339fe | ||
|
|
066c074b66 | ||
|
|
142a524d2f | ||
|
|
7142f46d1c | ||
|
|
f2803aba07 | ||
|
|
45428b897f | ||
|
|
50a6f9d251 | ||
|
|
360758e8ae | ||
|
|
8afb2f0cb7 | ||
|
|
7442100caa | ||
|
|
52cd1dacbf | ||
|
|
62775660d1 | ||
|
|
f75152a597 | ||
|
|
b761ec0132 | ||
|
|
c7c987843c | ||
|
|
73191ad3ec | ||
|
|
769d2f4c44 | ||
|
|
90df5e00b4 | ||
|
|
8c25a8eb7b | ||
|
|
f147ba16e2 | ||
|
|
c43371f190 | ||
|
|
fbed33cc1f | ||
|
|
a509ec0d91 | ||
|
|
40da61a314 | ||
|
|
f473b61585 | ||
|
|
6501cb93a4 | ||
|
|
0d1a0b126b | ||
|
|
9a202c1522 | ||
|
|
e8a0bc5794 | ||
|
|
e783e6677e | ||
|
|
8518d078d7 | ||
|
|
3a1ccd5f43 | ||
|
|
6e90b85cae | ||
|
|
dd2823aaec | ||
|
|
00171ca935 | ||
|
|
9c748beef5 | ||
|
|
26087e28ad | ||
|
|
17ad33c919 | ||
|
|
1ed47900d8 | ||
|
|
d338644159 | ||
|
|
bd1fd59fc1 | ||
|
|
1fa3d21f6a | ||
|
|
3f42122387 | ||
|
|
f73b4f4a26 | ||
|
|
a534af68b8 | ||
|
|
6e2ede8c56 | ||
|
|
8c0b0714e7 | ||
|
|
55f02d8c66 | ||
|
|
49093d6d38 | ||
|
|
d71977b4dd | ||
|
|
a1ef612662 | ||
|
|
4f9a99141e | ||
|
|
713d91b04e | ||
|
|
332c37f332 | ||
|
|
b46fa2e556 | ||
|
|
25a9a32f8e | ||
|
|
11fd9e5fdc | ||
|
|
403f11fdbf | ||
|
|
b4cba524d3 | ||
|
|
746cd1e1e6 | ||
|
|
19cf511895 | ||
|
|
6b31f58092 | ||
|
|
7444f0c651 | ||
|
|
dd37c10d4a | ||
|
|
dd262b7087 | ||
|
|
65e76adeda | ||
|
|
c0d41f05d6 | ||
|
|
9a6f2630b2 | ||
|
|
939ea4ba30 | ||
|
|
576ab3df9a | ||
|
|
c3cf35ab63 | ||
|
|
4188e8aaf9 | ||
|
|
9702987209 | ||
|
|
8bde6aea4b | ||
|
|
f1d9666a20 | ||
|
|
c0076b58cd | ||
|
|
00e8c7810f | ||
|
|
322115bfcf | ||
|
|
a6160b6994 | ||
|
|
abfcb60118 | ||
|
|
406392e13d | ||
|
|
7b7d21ebef | ||
|
|
54a1bbe1c4 | ||
|
|
caf438c63b | ||
|
|
dfef04b325 | ||
|
|
f8ac46ba07 | ||
|
|
997b7b18af | ||
|
|
f414c16c13 | ||
|
|
c6f39870ff | ||
|
|
b1cc114b7b | ||
|
|
766fd20faa | ||
|
|
315e7fbbee | ||
|
|
fcec053d59 | ||
|
|
d073215f10 | ||
|
|
665408e57f | ||
|
|
ea3dc78986 | ||
|
|
a65ccc0603 | ||
|
|
e2dbf054ac | ||
|
|
62f3c9bfa9 | ||
|
|
287ee9d0ea | ||
|
|
3c6d5aba22 | ||
|
|
eeb6f7726e | ||
|
|
631b246881 | ||
|
|
e1c8256602 | ||
|
|
5728679fd5 | ||
|
|
a6af9c75e9 | ||
|
|
6de86e325f | ||
|
|
48e471fdd4 | ||
|
|
e5917a8fa5 | ||
|
|
49a43dfc8f | ||
|
|
40959fcc61 | ||
|
|
55770c9853 | ||
|
|
2ea4626911 | ||
|
|
c8a89134a7 | ||
|
|
53c2ebf7f6 | ||
|
|
7e2ebecd52 | ||
|
|
581d0ef8a9 | ||
|
|
a9c1af39d6 | ||
|
|
5f419c014f | ||
|
|
ed7607935e | ||
|
|
78da679472 | ||
|
|
2f89158339 | ||
|
|
27d15894d8 | ||
|
|
79e13be04c | ||
|
|
c72a855214 | ||
|
|
fd08d0d80d | ||
|
|
d93ec07dd8 | ||
|
|
6b96512d46 | ||
|
|
a9cf01113a | ||
|
|
85ade61ef7 | ||
|
|
3d44e9ad92 | ||
|
|
a8fb72a807 | ||
|
|
73959fed45 | ||
|
|
e267342108 | ||
|
|
757411bffc | ||
|
|
6142b21dd5 | ||
|
|
b363489702 | ||
|
|
dae03273cd | ||
|
|
be6a837e15 | ||
|
|
e1f5b886fb | ||
|
|
c9ad5779f2 | ||
|
|
26c5b0c71f | ||
|
|
1dee705074 | ||
|
|
f9c951440d | ||
|
|
578ea4bae9 | ||
|
|
6bcf0b5519 | ||
|
|
e82d03ef61 | ||
|
|
eedd7bfd50 | ||
|
|
cbf80117af | ||
|
|
2b35c1708b | ||
|
|
e093a19c70 | ||
|
|
6fbcb283b9 | ||
|
|
7fb70e1701 | ||
|
|
2fb409b286 | ||
|
|
d5f430cc11 | ||
|
|
fd27d5ea00 | ||
|
|
493611ace5 | ||
|
|
e058febaad | ||
|
|
d7f60f69f1 | ||
|
|
4b33910449 | ||
|
|
0c16d8f6c3 | ||
|
|
5340073770 | ||
|
|
384ac63490 | ||
|
|
d38676085a | ||
|
|
d8583b2c7a | ||
|
|
82227b5ace | ||
|
|
c8f934b5b1 | ||
|
|
a4111fab39 | ||
|
|
54de51ef3c | ||
|
|
0915df5b18 | ||
|
|
81e7c7d8c8 | ||
|
|
ea64e860de | ||
|
|
e70786e05e | ||
|
|
cab15f6c5e | ||
|
|
e82e672a93 | ||
|
|
93971a53d9 | ||
|
|
09b3dcb6db | ||
|
|
ef42baf9f0 | ||
|
|
e55ad25355 | ||
|
|
80a3d7bffa | ||
|
|
6481397710 | ||
|
|
388ccda85d | ||
|
|
2e0150e601 | ||
|
|
2dc5e245d0 | ||
|
|
ea3a5950a3 | ||
|
|
4e8311085f | ||
|
|
cf0be1a0af | ||
|
|
c577c2cc6a | ||
|
|
905d96dd4a | ||
|
|
197285d12a | ||
|
|
ab430b8c87 | ||
|
|
d1029faa90 | ||
|
|
6374b99a1a | ||
|
|
4fb9bce79f | ||
|
|
487f631243 | ||
|
|
c928c21fe7 | ||
|
|
59fa477edb | ||
|
|
992d5b8bcd | ||
|
|
6808d33b2f | ||
|
|
966f27df34 | ||
|
|
21bb17e3ee | ||
|
|
4ba4901ca9 | ||
|
|
9de63c1edd | ||
|
|
51cc78b2a2 | ||
|
|
8f4e5c2fb8 | ||
|
|
db1c8b3f9e | ||
|
|
f07856eab9 | ||
|
|
dd952f6d68 | ||
|
|
e63efe2978 | ||
|
|
fb6929ac3d | ||
|
|
4e65283081 | ||
|
|
c6daa4aa16 | ||
|
|
c0016d7fe9 | ||
|
|
a518e7063d | ||
|
|
de8696aa43 | ||
|
|
02cc1cd6e6 | ||
|
|
0e6cf41923 | ||
|
|
7579cd8068 | ||
|
|
b6a447798a | ||
|
|
9344d0d0e3 | ||
|
|
7fa7fa0226 | ||
|
|
a3df05d93b | ||
|
|
798e2779f2 | ||
|
|
1b13df5368 | ||
|
|
083332f85f | ||
|
|
6757c2c5a6 | ||
|
|
59e2ca16d9 | ||
|
|
75ed282b20 | ||
|
|
754956857c | ||
|
|
f6ee03471d | ||
|
|
a4ab60920f | ||
|
|
a574788e89 | ||
|
|
22dbcf98c5 | ||
|
|
d7540c9a3c | ||
|
|
bea312bd65 | ||
|
|
3705648c9b | ||
|
|
940dc1f2b7 | ||
|
|
f54b230906 | ||
|
|
3bbc4e44c3 | ||
|
|
f81370232a | ||
|
|
85fad1504a | ||
|
|
1d10d56651 | ||
|
|
ef5d921eac | ||
|
|
8409aa9eba | ||
|
|
ca9aa180c1 | ||
|
|
ce46cc9852 | ||
|
|
39f327acdb | ||
|
|
6189b47648 | ||
|
|
dd6f5949c2 | ||
|
|
a62539489d | ||
|
|
d6b2739525 | ||
|
|
846a500fb4 | ||
|
|
8b7f805642 | ||
|
|
cc5190eb91 | ||
|
|
4eff798270 | ||
|
|
4e40e5bb88 | ||
|
|
a456b968cf | ||
|
|
a6387c3012 | ||
|
|
5f2074d757 | ||
|
|
2a9c81eb25 | ||
|
|
65fb8ae33e | ||
|
|
dc88c9f3a2 | ||
|
|
fc3fc6005e | ||
|
|
27fd913c86 | ||
|
|
e0e828ef5c | ||
|
|
9992c4d275 | ||
|
|
ab65b9745b | ||
|
|
4e3ab026fe | ||
|
|
f5b212a9d4 | ||
|
|
e31eb46123 | ||
|
|
326be0d7ba | ||
|
|
e5c39ed48a | ||
|
|
0d65397ae7 | ||
|
|
a7f30391d0 | ||
|
|
c96850ba59 | ||
|
|
5459c11e99 | ||
|
|
e755a2a6e4 | ||
|
|
1913482cf5 | ||
|
|
c7d04c6c5c | ||
|
|
1ba7c728a6 | ||
|
|
be9b676db3 | ||
|
|
75a6eaf147 | ||
|
|
10e1c2b3cd | ||
|
|
a1dd30ed50 | ||
|
|
f74f1a94fe | ||
|
|
96bf26611e | ||
|
|
841741aa52 | ||
|
|
8f15a609af | ||
|
|
8cdf7bb84b | ||
|
|
6fb780eae6 | ||
|
|
858ba6c798 | ||
|
|
386733aea1 | ||
|
|
11eafca3e2 | ||
|
|
5087ff0814 | ||
|
|
ebc8015638 | ||
|
|
35c7cab742 | ||
|
|
c1921f1b12 | ||
|
|
9b978afaa2 | ||
|
|
997ad12730 | ||
|
|
777eaa7352 | ||
|
|
bb61a2547a | ||
|
|
5869415a57 | ||
|
|
b5248da826 | ||
|
|
b059a361dd | ||
|
|
3c99dc96b1 | ||
|
|
dadba232de | ||
|
|
787f5236a9 | ||
|
|
31498ebbea | ||
|
|
9636ffc471 | ||
|
|
b17e1531d2 | ||
|
|
05dc645b81 | ||
|
|
d4f038dfcc | ||
|
|
c972c94662 | ||
|
|
33c9d57c6f | ||
|
|
2c6f1ab57d | ||
|
|
000110e760 | ||
|
|
7a686a0c43 | ||
|
|
835e4b6de9 | ||
|
|
0a5301bc5b | ||
|
|
3a4bc0d41e | ||
|
|
cfb02b5370 | ||
|
|
b8175f8976 | ||
|
|
182f43b6f9 | ||
|
|
6d2a97e954 | ||
|
|
66e4ace39f | ||
|
|
a920ed9e1e | ||
|
|
6c8ec5336f | ||
|
|
687fa6a8ca | ||
|
|
32797515de | ||
|
|
0f622206e4 | ||
|
|
ca55982669 | ||
|
|
ea67060081 | ||
|
|
2dfaad3259 | ||
|
|
06ffa408ce | ||
|
|
34e9d1eb3c | ||
|
|
3914c17b0d | ||
|
|
c92e0838c1 | ||
|
|
443fed796a | ||
|
|
08536943ad | ||
|
|
936523ae52 | ||
|
|
7fff245f87 | ||
|
|
6e3ea8b49d | ||
|
|
220b278575 | ||
|
|
2b022311a4 | ||
|
|
853f5111c2 | ||
|
|
65ab6ed59f | ||
|
|
389aae59ae | ||
|
|
c9abb823a7 | ||
|
|
e6dd9a78ae | ||
|
|
e0c888acf7 | ||
|
|
50bec53afc | ||
|
|
828091cfbb | ||
|
|
eb981cc7d7 | ||
|
|
31be03a805 | ||
|
|
ca3848d773 | ||
|
|
e6d9486a6c | ||
|
|
9a8e47a766 | ||
|
|
13f244b6a5 | ||
|
|
28556f1498 | ||
|
|
0ccd810738 | ||
|
|
e959f449ae | ||
|
|
e4aea680b9 | ||
|
|
5d3822f15e | ||
|
|
465ae048a0 | ||
|
|
71009c9b4d | ||
|
|
dbed39a931 | ||
|
|
ea31c09384 | ||
|
|
329a1fb781 | ||
|
|
043e7e3516 | ||
|
|
9c23f2f1a6 | ||
|
|
5e9750d1f5 | ||
|
|
2180a67670 | ||
|
|
1188c6fe14 | ||
|
|
a2e754c136 | ||
|
|
5339ef3004 | ||
|
|
6a2b3c8d4c | ||
|
|
edacd91a27 | ||
|
|
5dd46b54c1 | ||
|
|
ea502b6e84 | ||
|
|
954536073d | ||
|
|
cc45c10f3d | ||
|
|
13aa23f706 | ||
|
|
78b51fb574 | ||
|
|
922d5796b9 | ||
|
|
f0ddc2a53c | ||
|
|
d5d059690f | ||
|
|
fd832bb57d | ||
|
|
09cb329d73 | ||
|
|
4a9291fd89 | ||
|
|
5115e5decb | ||
|
|
1ed9ff17e1 | ||
|
|
f1fdfa1a51 | ||
|
|
0f3fe957f5 | ||
|
|
fc4679d4cf | ||
|
|
35c53204cb | ||
|
|
f731515628 | ||
|
|
59bf2a34fa | ||
|
|
abbb73e894 | ||
|
|
dada5a422d | ||
|
|
8bb3d363a4 | ||
|
|
1522722fab | ||
|
|
8f1f4273a2 | ||
|
|
a9c8a526cf | ||
|
|
699db77293 | ||
|
|
690fb0544c | ||
|
|
ae4c72a153 | ||
|
|
ea92c2b1a6 | ||
|
|
9ac7aea930 | ||
|
|
5f17cc1abd | ||
|
|
8f6695acc7 | ||
|
|
9524abcd28 | ||
|
|
83efde6243 | ||
|
|
8eb987e393 | ||
|
|
2c6ab65476 | ||
|
|
66fdddc339 | ||
|
|
5575171652 | ||
|
|
a8b0db4e5d | ||
|
|
e104fcc000 | ||
|
|
e4f71994c2 | ||
|
|
29e88e50ff | ||
|
|
852f061b26 | ||
|
|
f0d277e452 | ||
|
|
2e8483bd1c | ||
|
|
3eec8fd0eb | ||
|
|
d8d025c33b | ||
|
|
8811dabbac | ||
|
|
efca746d36 | ||
|
|
e0f524d3b7 | ||
|
|
d1c842cf29 | ||
|
|
4d23a5d92d | ||
|
|
0739d1c2eb | ||
|
|
475c775b25 | ||
|
|
b7e8ce4523 | ||
|
|
e8fcd721b8 | ||
|
|
ef5579dc86 | ||
|
|
84ae8097b1 | ||
|
|
295b988657 | ||
|
|
68942affdb | ||
|
|
e0980c4d73 | ||
|
|
c5920df159 | ||
|
|
86ddff0b88 | ||
|
|
908978d00b | ||
|
|
a956732874 | ||
|
|
879e046b22 | ||
|
|
5fb0f34e8a | ||
|
|
861415133e | ||
|
|
fce75cd858 | ||
|
|
b6d5565df1 | ||
|
|
53ad291ef1 | ||
|
|
145d3ba99d | ||
|
|
e6171d17f8 | ||
|
|
aa1c86f95e | ||
|
|
699565828d | ||
|
|
38de2a8754 | ||
|
|
8b661cde15 | ||
|
|
e628fd7bce | ||
|
|
808ba552c5 | ||
|
|
a024593fa6 | ||
|
|
87b5737293 | ||
|
|
b80c978f5d | ||
|
|
10ae0c4364 | ||
|
|
cb3ae1232b | ||
|
|
e73e393c82 | ||
|
|
b01f63835e | ||
|
|
6d7f5871db | ||
|
|
89720ae24d | ||
|
|
9097ccf515 | ||
|
|
dca657a2fd | ||
|
|
df8b057b44 | ||
|
|
64b3c1e691 | ||
|
|
15aee09c7f | ||
|
|
80610ca054 | ||
|
|
fd0df5a89b | ||
|
|
b487e2df0b | ||
|
|
c6ed2bf9aa | ||
|
|
40b1dc12de | ||
|
|
8eba3c1e7e | ||
|
|
b50c70bbfa | ||
|
|
af021e79d9 | ||
|
|
73bfe68821 | ||
|
|
4a73b4859f | ||
|
|
f5d181db3a | ||
|
|
da7e1cfb49 | ||
|
|
43b64140ae | ||
|
|
d74b98c3d9 | ||
|
|
e0bfe44cac | ||
|
|
10fb88d027 | ||
|
|
f826709452 | ||
|
|
f10fd64630 | ||
|
|
09837928d9 | ||
|
|
dce4e94f02 | ||
|
|
ee6415bd1c | ||
|
|
78835ad87a | ||
|
|
4e6be21a44 | ||
|
|
f89e4e7dd0 | ||
|
|
dfa8467a08 | ||
|
|
669ee0415a | ||
|
|
367668710c | ||
|
|
94dea84915 | ||
|
|
9f1218b00b | ||
|
|
fcfa488250 | ||
|
|
2bbe31a8f6 | ||
|
|
7cdb0eafeb | ||
|
|
90f47eb952 | ||
|
|
15e57d28f5 | ||
|
|
532eace7d6 | ||
|
|
d4ac4fcde1 | ||
|
|
c1db75e0c7 | ||
|
|
acfdd0e1fc | ||
|
|
9fb8f6347f | ||
|
|
7f73b105ca | ||
|
|
ae8dcdf40d | ||
|
|
ee1e1ce377 | ||
|
|
6d165dae5e | ||
|
|
335e61dc47 | ||
|
|
64380baa85 | ||
|
|
b5eb65e53e | ||
|
|
f1ca05c822 | ||
|
|
900df21b7d | ||
|
|
93bad514a8 | ||
|
|
d8cd1d8fcc | ||
|
|
6356403964 | ||
|
|
e8a14a775e | ||
|
|
7b90a1e85a | ||
|
|
49283ec035 | ||
|
|
7d4bb9428b | ||
|
|
76eb389761 | ||
|
|
e9a1ccb89a | ||
|
|
db262fa76a | ||
|
|
4e59d6fd12 | ||
|
|
e136c11c7c | ||
|
|
0e80f56e44 | ||
|
|
94758c18de | ||
|
|
e76b375a31 | ||
|
|
9f5f64e14e | ||
|
|
4eb2966559 | ||
|
|
293facbae7 | ||
|
|
053259fd92 | ||
|
|
da41ac9e60 | ||
|
|
82c477c9f7 | ||
|
|
57bead3a5e | ||
|
|
d044ac1c66 | ||
|
|
9787ab598b | ||
|
|
7e9b5d9e30 | ||
|
|
3d141280aa | ||
|
|
9df7517dea | ||
|
|
4560909a5e | ||
|
|
3f65924c45 | ||
|
|
5e31c82b5b | ||
|
|
4382bdc859 | ||
|
|
fa66c6b797 | ||
|
|
2da96be217 | ||
|
|
43f821afb9 | ||
|
|
3165baa1f1 | ||
|
|
9a8a964b69 | ||
|
|
17888ce0fd | ||
|
|
051b40f956 | ||
|
|
cc8db99695 | ||
|
|
b39cd06249 | ||
|
|
46def2fdc1 | ||
|
|
2195f0cc62 | ||
|
|
387e92353c | ||
|
|
2047abd9c3 | ||
|
|
64f2b1b250 | ||
|
|
577546ccd9 | ||
|
|
e858c21e1f | ||
|
|
fd46684bf8 | ||
|
|
0d6518aaa0 | ||
|
|
d1a598c652 | ||
|
|
bfc227b8d4 | ||
|
|
45dd575ed2 | ||
|
|
80709697e5 | ||
|
|
1b53a4fccc | ||
|
|
4bb220bb90 | ||
|
|
e1b3cf5c14 | ||
|
|
0f298a4203 | ||
|
|
5e68f35500 | ||
|
|
ba1bd64bf9 | ||
|
|
db88cd1b25 | ||
|
|
936d2963a2 | ||
|
|
4378b4d03d | ||
|
|
6ddef3b7a9 | ||
|
|
68c92908d5 | ||
|
|
51e543050c | ||
|
|
000a13b6a3 | ||
|
|
84b3b5b4a4 | ||
|
|
4e83f4c579 | ||
|
|
cd2b188c9a | ||
|
|
1e0a60be2a | ||
|
|
fc5bba66af | ||
|
|
4d7d630e92 | ||
|
|
4b2d1aaeea | ||
|
|
7e5581cd86 | ||
|
|
8b6a6d4546 | ||
|
|
7ae83df8aa | ||
|
|
779a42678d | ||
|
|
10ba6a93a6 | ||
|
|
c917be2189 | ||
|
|
c6aa97c9aa | ||
|
|
250941bd47 | ||
|
|
5b17a60dde | ||
|
|
b07f772f36 | ||
|
|
d4688e6474 | ||
|
|
e7e29cb63c | ||
|
|
ca922443db | ||
|
|
2385a5870e | ||
|
|
e567135ed3 | ||
|
|
98c8584b88 | ||
|
|
2b2fa58f97 | ||
|
|
2d54fed3cc | ||
|
|
964a4d75b4 | ||
|
|
9badb0d903 | ||
|
|
c5f06814bc | ||
|
|
69d43e2997 | ||
|
|
0f0dea79fc | ||
|
|
b6d636214e | ||
|
|
4b64955a12 | ||
|
|
546239a3a8 | ||
|
|
8be0a3452d | ||
|
|
99d914ea3b | ||
|
|
24284d3d17 | ||
|
|
9fc872b70b | ||
|
|
e3654d5416 | ||
|
|
d92bee821d | ||
|
|
df10411e05 | ||
|
|
44e9fb306d |
47
.github/ISSUE_TEMPLATE.md
vendored
47
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,5 +1,5 @@
|
||||
<!--
|
||||
If you have a question rather than reporting a bug please go to http://answers.opencv.org where you get much faster responses.
|
||||
If you have a question rather than reporting a bug please go to https://forum.opencv.org where you get much faster responses.
|
||||
If you need further assistance please read [How To Contribute](https://github.com/opencv/opencv/wiki/How_to_contribute).
|
||||
|
||||
This is a template helping you to create an issue which can be processed as quickly as possible. This is the bug reporting section for the OpenCV library.
|
||||
@@ -7,9 +7,9 @@ This is a template helping you to create an issue which can be processed as quic
|
||||
|
||||
##### System information (version)
|
||||
<!-- Example
|
||||
- OpenCV => 3.1
|
||||
- OpenCV => 4.2
|
||||
- Operating System / Platform => Windows 64 Bit
|
||||
- Compiler => Visual Studio 2015
|
||||
- Compiler => Visual Studio 2017
|
||||
-->
|
||||
|
||||
- OpenCV => :grey_question:
|
||||
@@ -27,4 +27,43 @@ This is a template helping you to create an issue which can be processed as quic
|
||||
// C++ code example
|
||||
```
|
||||
or attach as .txt or .zip file
|
||||
-->
|
||||
-->
|
||||
|
||||
##### Issue submission checklist
|
||||
|
||||
- [ ] I report the issue, it's not a question
|
||||
<!--
|
||||
OpenCV team works with forum.opencv.org, Stack Overflow and other communities
|
||||
to discuss problems. Tickets with questions without a real issue statement will be
|
||||
closed.
|
||||
-->
|
||||
- [ ] I checked the problem with documentation, FAQ, open issues,
|
||||
forum.opencv.org, Stack Overflow, etc and have not found any solution
|
||||
<!--
|
||||
Places to check:
|
||||
* OpenCV documentation: https://docs.opencv.org
|
||||
* FAQ page: https://github.com/opencv/opencv/wiki/FAQ
|
||||
* OpenCV forum: https://forum.opencv.org
|
||||
* OpenCV issue tracker: https://github.com/opencv/opencv/issues?q=is%3Aissue
|
||||
* Stack Overflow branch: https://stackoverflow.com/questions/tagged/opencv
|
||||
-->
|
||||
- [ ] I updated to the latest OpenCV version and the issue is still there
|
||||
<!--
|
||||
master branch for OpenCV 4.x and 3.4 branch for OpenCV 3.x releases.
|
||||
OpenCV team supports only the latest release for each branch.
|
||||
The ticket is closed if the problem is not reproduced with the modern version.
|
||||
-->
|
||||
- [ ] There is reproducer code and related data files: videos, images, onnx, etc
|
||||
<!--
|
||||
The best reproducer -- test case for OpenCV that we can add to the library.
|
||||
Recommendations for media files and binary files:
|
||||
* Try to reproduce the issue with images and videos in opencv_extra repository
|
||||
to reduce attachment size
|
||||
* Use PNG for images, if you report some CV related bug, but not image reader
|
||||
issue
|
||||
* Attach the image as an archive to the ticket, if you report some reader issue.
|
||||
Image hosting services compress images and it breaks the repro code.
|
||||
* Provide ONNX file for some public model or ONNX file with random weights,
|
||||
if you report ONNX parsing or handling issue. Architecture details diagram
|
||||
from netron tool can be very useful too. See https://lutzroeder.github.io/netron/
|
||||
-->
|
||||
|
||||
64
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
64
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
name: Bug Report
|
||||
description: Create a report to help us reproduce and fix the bug
|
||||
labels: ["bug"]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
#### Thank you for contributing! Before reporting a bug, please have a look at the [FAQ](https://github.com/opencv/opencv/wiki/FAQ), make sure the issue has no duplicate and hasn't been already addressed by searching through [the existing and past issues](https://github.com/opencv/opencv/issues?page=1&q=is%3Aissue+sort%3Acreated-desc).
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: System Information
|
||||
description: |
|
||||
Please provide the following system information to help us diagnose the bug. For example:
|
||||
|
||||
// example for c++ user
|
||||
OpenCV version: 4.6.0
|
||||
Operating System / Platform: Ubuntu 20.04
|
||||
Compiler & compiler version: GCC 9.3.0
|
||||
|
||||
// example for python user
|
||||
OpenCV python version: 4.6.0.66
|
||||
Operating System / Platform: Ubuntu 20.04
|
||||
Python version: 3.9.6
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Detailed description
|
||||
description: |
|
||||
Please provide a clear and concise description of what the bug is and paste the error log below. It helps improving readability if the error log is wrapped in ```` ```triple quotes blocks``` ````.
|
||||
placeholder: |
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
```
|
||||
# error log
|
||||
```
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
description: |
|
||||
Please provide a minimal example to help us reproduce the bug. Code should be wrapped with ```` ```triple quotes blocks``` ```` to improve readability. If the code is too long, please attach as a file or create and link a public gist: https://gist.github.com.
|
||||
|
||||
Related data files (images, onnx, etc) should be attached below as well. If the data files are too big, feel free to upload them to a online drive, share them and put the link below.
|
||||
placeholder: |
|
||||
```cpp (replace cpp with python if python code)
|
||||
# sample code to reproduce the bug
|
||||
```
|
||||
|
||||
Test data: [image](https://link/to/the/image), [model.onnx](htts://link/to/the/onnx/model)
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Issue submission checklist
|
||||
options:
|
||||
- label: I report the issue, it's not a question
|
||||
required: true
|
||||
- label: I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
|
||||
- label: I updated to the latest OpenCV version and the issue is still there
|
||||
- label: There is reproducer code and related data files (videos, images, onnx, etc)
|
||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Questions
|
||||
url: https://forum.opencv.org/
|
||||
about: Ask questions and discuss with OpenCV community members
|
||||
26
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
26
.github/ISSUE_TEMPLATE/documentation.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: Documentation
|
||||
description: Report an issue related to https://docs.opencv.org/
|
||||
labels: ["category: documentation"]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
#### Thank you for contributing! Before submitting a doc issue, please make sure it has no duplicate by searching through [the existing and past issues](https://github.com/opencv/opencv/issues?page=1&q=is%3Aissue+sort%3Acreated-desc)
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Descripe the doc issue
|
||||
description: >
|
||||
Please provide a clear and concise description of what content in https://docs.opencv.org/ is an issue. Note that there are multiple active branches, such as 3.4, 4.x and 5.x, so please specify the branch with the problem.
|
||||
placeholder: |
|
||||
A clear and concise description of what content in https://docs.opencv.org/ is an issue.
|
||||
|
||||
Link to the doc: https://docs.opencv.org/4.x/d3/d63/classcv_1_1Mat.html
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Fix suggestion
|
||||
description: >
|
||||
Tell us how we could improve the documentation in this regard.
|
||||
22
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
22
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: Feature request
|
||||
description: Submit a request for a new OpenCV feature
|
||||
labels: ["feature"]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
#### Thank you for contributing! Before submitting a feature request, please make sure the request has no duplicate by searching through [the existing and past issues](https://github.com/opencv/opencv/issues?page=1&q=is%3Aissue+sort%3Acreated-desc)
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Descripe the feature and motivation
|
||||
description: |
|
||||
Please provide a clear and concise proposal of the feature and outline the motivation.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: |
|
||||
Add any other context, such as pseudo code, links, diagram, screenshots, to help the community better understand the feature request.
|
||||
16
.github/PULL_REQUEST_TEMPLATE.md
vendored
16
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,9 +1,11 @@
|
||||
<!-- Please use this line to close one or multiple issues when this pullrequest gets merged
|
||||
You can add another line right under the first one:
|
||||
resolves #1234
|
||||
resolves #1235
|
||||
-->
|
||||
### Pull Request Readiness Checklist
|
||||
|
||||
### This pullrequest changes
|
||||
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
|
||||
|
||||
<!-- Please describe what your pullrequest is changing -->
|
||||
- [ ] I agree to contribute to the project under Apache 2 License.
|
||||
- [ ] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
|
||||
- [ ] The PR is proposed to the proper branch
|
||||
- [ ] There is a reference to the original bug report and related work
|
||||
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
|
||||
Patch to opencv_extra has the same branch name.
|
||||
- [ ] The feature is well documented and sample code can be built with the project CMake
|
||||
|
||||
41
.github/workflows/PR-4.x.yaml
vendored
Normal file
41
.github/workflows/PR-4.x.yaml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
name: PR:4.x
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- 4.x
|
||||
|
||||
jobs:
|
||||
Ubuntu2004-ARM64:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-ARM64.yaml@main
|
||||
|
||||
Ubuntu2004-ARM64-Debug:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-ARM64-Debug.yaml@main
|
||||
|
||||
Ubuntu2004-x64:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U20.yaml@main
|
||||
|
||||
Ubuntu2004-x64-CUDA:
|
||||
if: "${{ contains(github.event.pull_request.labels.*.name, 'category: dnn') }} || ${{ contains(github.event.pull_request.labels.*.name, 'category: dnn (onnx)') }}"
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-U20-Cuda.yaml@main
|
||||
|
||||
Windows10-x64:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-W10.yaml@main
|
||||
|
||||
macOS-ARM64:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-ARM64.yaml@main
|
||||
|
||||
macOS-x64:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-macOS-x86_64.yaml@main
|
||||
|
||||
iOS:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-iOS.yaml@main
|
||||
|
||||
Android:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-Android.yaml@main
|
||||
|
||||
TIM-VX:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-timvx-backend-tests-4.x.yml@main
|
||||
|
||||
docs:
|
||||
uses: opencv/ci-gha-workflow/.github/workflows/OCV-PR-4.x-docs.yaml@main
|
||||
50
.github/workflows/arm64-build-checks.yml
vendored
Normal file
50
.github/workflows/arm64-build-checks.yml
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
name: arm64 build checks
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-18.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Install dependency packages
|
||||
run: |
|
||||
sudo sed -i -E 's|^deb ([^ ]+) (.*)$|deb [arch=amd64] \1 \2\ndeb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ \2|' /etc/apt/sources.list
|
||||
sudo dpkg --add-architecture arm64
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y --no-install-recommends \
|
||||
crossbuild-essential-arm64 \
|
||||
git \
|
||||
cmake \
|
||||
libpython-dev:arm64 \
|
||||
libpython3-dev:arm64 \
|
||||
python-numpy \
|
||||
python3-numpy
|
||||
|
||||
- name: Fetch opencv_contrib
|
||||
run: |
|
||||
git clone --depth 1 https://github.com/opencv/opencv_contrib.git ../opencv_contrib
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DPYTHON2_INCLUDE_PATH=/usr/include/python2.7/ \
|
||||
-DPYTHON2_LIBRARIES=/usr/lib/aarch64-linux-gnu/libpython2.7.so \
|
||||
-DPYTHON2_NUMPY_INCLUDE_DIRS=/usr/lib/python2.7/dist-packages/numpy/core/include \
|
||||
-DPYTHON3_INCLUDE_PATH=/usr/include/python3.6m/ \
|
||||
-DPYTHON3_LIBRARIES=/usr/lib/aarch64-linux-gnu/libpython3.6m.so \
|
||||
-DPYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \
|
||||
-DCMAKE_TOOLCHAIN_FILE=../platforms/linux/aarch64-gnu.toolchain.cmake \
|
||||
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \
|
||||
../
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
cd build
|
||||
make -j$(nproc --all)
|
||||
27
.github/workflows/lint_python.yml
vendored
Normal file
27
.github/workflows/lint_python.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
name: lint_python
|
||||
on: workflow_dispatch
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
jobs:
|
||||
lint_python:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-python@v2
|
||||
- run: pip install --upgrade pip wheel
|
||||
- run: pip install bandit black codespell flake8 flake8-2020 flake8-bugbear
|
||||
flake8-comprehensions isort mypy pytest pyupgrade safety
|
||||
- run: bandit --recursive --skip B101 . || true # B101 is assert statements
|
||||
- run: black --check . || true
|
||||
- run: codespell || true # --ignore-words-list="" --skip="*.css,*.js,*.lock"
|
||||
- run: flake8 . --count --select=E9,F63,F7 --show-source --statistics
|
||||
- run: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=88
|
||||
--show-source --statistics
|
||||
- run: isort --check-only --profile black . || true
|
||||
- run: pip install -r requirements.txt || pip install --editable . || true
|
||||
- run: mkdir --parents --verbose .mypy_cache
|
||||
- run: mypy --ignore-missing-imports --install-types --non-interactive . || true
|
||||
- run: pytest . || true
|
||||
- run: pytest --doctest-modules . || true
|
||||
- run: shopt -s globstar && pyupgrade --py36-plus **/*.py || true
|
||||
- run: safety check
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -23,3 +23,5 @@ bin/
|
||||
*.tlog
|
||||
build
|
||||
node_modules
|
||||
CMakeSettings.json
|
||||
xcuserdata/
|
||||
|
||||
18
3rdparty/carotene/CMakeLists.txt
vendored
18
3rdparty/carotene/CMakeLists.txt
vendored
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION ${MIN_VER_CMAKE} FATAL_ERROR)
|
||||
|
||||
project(Carotene)
|
||||
|
||||
@@ -20,11 +20,18 @@ if(CMAKE_COMPILER_IS_GNUCC)
|
||||
# - matchTemplate about 5-10%
|
||||
# - goodFeaturesToTrack 10-20%
|
||||
# - cornerHarris 30% for some cases
|
||||
|
||||
set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0.0")
|
||||
set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
|
||||
else()
|
||||
set_source_files_properties(${carotene_sources} COMPILE_FLAGS "--param ipa-cp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_library(carotene_objs OBJECT
|
||||
if(APPLE AND CV_CLANG AND WITH_NEON)
|
||||
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-unused-function)
|
||||
endif()
|
||||
|
||||
add_library(carotene_objs OBJECT EXCLUDE_FROM_ALL
|
||||
${carotene_headers}
|
||||
${carotene_sources}
|
||||
)
|
||||
@@ -37,4 +44,5 @@ if(WITH_NEON)
|
||||
target_compile_definitions(carotene_objs PRIVATE "-DWITH_NEON")
|
||||
endif()
|
||||
|
||||
add_library(carotene STATIC EXCLUDE_FROM_ALL "$<TARGET_OBJECTS:carotene_objs>")
|
||||
# we add dummy file to fix XCode build
|
||||
add_library(carotene STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} "$<TARGET_OBJECTS:carotene_objs>" "${CAROTENE_SOURCE_DIR}/dummy.cpp")
|
||||
|
||||
29
3rdparty/carotene/hal/CMakeLists.txt
vendored
29
3rdparty/carotene/hal/CMakeLists.txt
vendored
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION ${MIN_VER_CMAKE} FATAL_ERROR)
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
include(CheckCXXCompilerFlag)
|
||||
@@ -12,6 +12,8 @@ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64.*|AARCH64.*")
|
||||
set(AARCH64 TRUE)
|
||||
endif()
|
||||
|
||||
ocv_warnings_disable(CMAKE_CXX_FLAGS -Wunused-function)
|
||||
|
||||
set(TEGRA_COMPILER_FLAGS "")
|
||||
|
||||
if(CV_GCC OR CV_CLANG)
|
||||
@@ -58,22 +60,6 @@ function(compile_carotene)
|
||||
endif()
|
||||
|
||||
add_subdirectory("${CAROTENE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/carotene")
|
||||
|
||||
if(ARM OR AARCH64)
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_TRY_COMPILE_CONFIGURATION ${CMAKE_BUILD_TYPE})
|
||||
endif()
|
||||
check_cxx_compiler_flag("-mfpu=neon" CXX_HAS_MFPU_NEON)
|
||||
check_c_compiler_flag("-mfpu=neon" C_HAS_MFPU_NEON)
|
||||
if(${CXX_HAS_MFPU_NEON} AND ${C_HAS_MFPU_NEON} AND NOT "${CMAKE_CXX_FLAGS} " MATCHES "-mfpu=neon[^ ]*")
|
||||
get_target_property(old_flags "carotene_objs" COMPILE_FLAGS)
|
||||
if(old_flags)
|
||||
set_target_properties("carotene_objs" PROPERTIES COMPILE_FLAGS "${old_flags} -mfpu=neon")
|
||||
else()
|
||||
set_target_properties("carotene_objs" PROPERTIES COMPILE_FLAGS "-mfpu=neon")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
compile_carotene()
|
||||
@@ -88,11 +74,16 @@ set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS ${carotene_defs})
|
||||
# matchTemplate about 5-10%
|
||||
# goodFeaturesToTrack 10-20%
|
||||
# cornerHarris 30% for some cases
|
||||
set_source_files_properties(impl.cpp $<TARGET_OBJECTS:carotene_objs> COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0.0")
|
||||
set_source_files_properties(impl.cpp $<TARGET_OBJECTS:carotene_objs> COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
|
||||
else()
|
||||
set_source_files_properties(impl.cpp $<TARGET_OBJECTS:carotene_objs> COMPILE_FLAGS "--param ipa-cp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
|
||||
endif()
|
||||
# set_source_files_properties(impl.cpp $<TARGET_OBJECTS:carotene_objs> COMPILE_FLAGS "--param ipcp-unit-growth=100000 --param inline-unit-growth=100000 --param large-stack-frame-growth=5000")
|
||||
endif()
|
||||
|
||||
add_library(tegra_hal STATIC $<TARGET_OBJECTS:carotene_objs>)
|
||||
# we add dummy file to fix XCode build
|
||||
add_library(tegra_hal STATIC $<TARGET_OBJECTS:carotene_objs> "dummy.cpp")
|
||||
set_target_properties(tegra_hal PROPERTIES ARCHIVE_OUTPUT_DIRECTORY ${3P_LIBRARY_OUTPUT_PATH})
|
||||
set(OPENCV_SRC_DIR "${CMAKE_SOURCE_DIR}")
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
|
||||
2
3rdparty/carotene/hal/dummy.cpp
vendored
Normal file
2
3rdparty/carotene/hal/dummy.cpp
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
// This file is needed for compilation on some platforms e.g. with XCode generator
|
||||
// Related issue: https://gitlab.kitware.com/cmake/cmake/-/issues/17457
|
||||
47
3rdparty/carotene/hal/tegra_hal.hpp
vendored
47
3rdparty/carotene/hal/tegra_hal.hpp
vendored
@@ -1296,13 +1296,13 @@ struct MorphCtx
|
||||
CAROTENE_NS::BORDER_MODE border;
|
||||
uchar borderValues[4];
|
||||
};
|
||||
inline int TEGRA_MORPHINIT(cvhalFilter2D **context, int operation, int src_type, int dst_type, int, int,
|
||||
inline int TEGRA_MORPHINIT(cvhalFilter2D **context, int operation, int src_type, int dst_type, int width, int height,
|
||||
int kernel_type, uchar *kernel_data, size_t kernel_step, int kernel_width, int kernel_height, int anchor_x, int anchor_y,
|
||||
int borderType, const double borderValue[4], int iterations, bool allowSubmatrix, bool allowInplace)
|
||||
{
|
||||
if(!context || !kernel_data || src_type != dst_type ||
|
||||
CV_MAT_DEPTH(src_type) != CV_8U || src_type < 0 || (src_type >> CV_CN_SHIFT) > 3 ||
|
||||
|
||||
width < kernel_width || height < kernel_height ||
|
||||
allowSubmatrix || allowInplace || iterations != 1 ||
|
||||
!CAROTENE_NS::isSupportedConfiguration())
|
||||
return CV_HAL_ERROR_NOT_IMPLEMENTED;
|
||||
@@ -1778,30 +1778,30 @@ TegraCvtColor_Invoker(bgrx2hsvf, bgrx2hsv, src_data + static_cast<size_t>(range.
|
||||
: CV_HAL_ERROR_NOT_IMPLEMENTED \
|
||||
)
|
||||
|
||||
#define TEGRA_CVT2PYUVTOBGR(src_data, src_step, dst_data, dst_step, dst_width, dst_height, dcn, swapBlue, uIdx) \
|
||||
#define TEGRA_CVT2PYUVTOBGR_EX(y_data, y_step, uv_data, uv_step, dst_data, dst_step, dst_width, dst_height, dcn, swapBlue, uIdx) \
|
||||
( \
|
||||
CAROTENE_NS::isSupportedConfiguration() ? \
|
||||
dcn == 3 ? \
|
||||
uIdx == 0 ? \
|
||||
(swapBlue ? \
|
||||
CAROTENE_NS::yuv420i2rgb(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step) : \
|
||||
CAROTENE_NS::yuv420i2bgr(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step)), \
|
||||
CV_HAL_ERROR_OK : \
|
||||
uIdx == 1 ? \
|
||||
(swapBlue ? \
|
||||
CAROTENE_NS::yuv420sp2rgb(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step) : \
|
||||
CAROTENE_NS::yuv420sp2bgr(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step)), \
|
||||
CV_HAL_ERROR_OK : \
|
||||
CV_HAL_ERROR_NOT_IMPLEMENTED : \
|
||||
@@ -1809,29 +1809,32 @@ TegraCvtColor_Invoker(bgrx2hsvf, bgrx2hsv, src_data + static_cast<size_t>(range.
|
||||
uIdx == 0 ? \
|
||||
(swapBlue ? \
|
||||
CAROTENE_NS::yuv420i2rgbx(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step) : \
|
||||
CAROTENE_NS::yuv420i2bgrx(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step)), \
|
||||
CV_HAL_ERROR_OK : \
|
||||
uIdx == 1 ? \
|
||||
(swapBlue ? \
|
||||
CAROTENE_NS::yuv420sp2rgbx(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step) : \
|
||||
CAROTENE_NS::yuv420sp2bgrx(CAROTENE_NS::Size2D(dst_width, dst_height), \
|
||||
src_data, src_step, \
|
||||
src_data + src_step * dst_height, src_step, \
|
||||
y_data, y_step, \
|
||||
uv_data, uv_step, \
|
||||
dst_data, dst_step)), \
|
||||
CV_HAL_ERROR_OK : \
|
||||
CV_HAL_ERROR_NOT_IMPLEMENTED : \
|
||||
CV_HAL_ERROR_NOT_IMPLEMENTED \
|
||||
: CV_HAL_ERROR_NOT_IMPLEMENTED \
|
||||
)
|
||||
#define TEGRA_CVT2PYUVTOBGR(src_data, src_step, dst_data, dst_step, dst_width, dst_height, dcn, swapBlue, uIdx) \
|
||||
TEGRA_CVT2PYUVTOBGR_EX(src_data, src_step, src_data + src_step * dst_height, src_step, dst_data, dst_step, \
|
||||
dst_width, dst_height, dcn, swapBlue, uIdx);
|
||||
|
||||
#undef cv_hal_cvtBGRtoBGR
|
||||
#define cv_hal_cvtBGRtoBGR TEGRA_CVTBGRTOBGR
|
||||
@@ -1841,12 +1844,18 @@ TegraCvtColor_Invoker(bgrx2hsvf, bgrx2hsv, src_data + static_cast<size_t>(range.
|
||||
#define cv_hal_cvtBGRtoGray TEGRA_CVTBGRTOGRAY
|
||||
#undef cv_hal_cvtGraytoBGR
|
||||
#define cv_hal_cvtGraytoBGR TEGRA_CVTGRAYTOBGR
|
||||
#if 0 // bit-exact tests are failed
|
||||
#undef cv_hal_cvtBGRtoYUV
|
||||
#define cv_hal_cvtBGRtoYUV TEGRA_CVTBGRTOYUV
|
||||
#endif
|
||||
#undef cv_hal_cvtBGRtoHSV
|
||||
#define cv_hal_cvtBGRtoHSV TEGRA_CVTBGRTOHSV
|
||||
#if 0 // bit-exact tests are failed
|
||||
#undef cv_hal_cvtTwoPlaneYUVtoBGR
|
||||
#define cv_hal_cvtTwoPlaneYUVtoBGR TEGRA_CVT2PYUVTOBGR
|
||||
#undef cv_hal_cvtTwoPlaneYUVtoBGREx
|
||||
#define cv_hal_cvtTwoPlaneYUVtoBGREx TEGRA_CVT2PYUVTOBGR_EX
|
||||
#endif
|
||||
|
||||
#endif // OPENCV_IMGPROC_HAL_INTERFACE_H
|
||||
|
||||
|
||||
36
3rdparty/carotene/src/add_weighted.cpp
vendored
36
3rdparty/carotene/src/add_weighted.cpp
vendored
@@ -109,9 +109,9 @@ template <> struct wAdd<s32>
|
||||
vgamma = vdupq_n_f32(_gamma + 0.5);
|
||||
}
|
||||
|
||||
void operator() (const typename VecTraits<s32>::vec128 & v_src0,
|
||||
const typename VecTraits<s32>::vec128 & v_src1,
|
||||
typename VecTraits<s32>::vec128 & v_dst) const
|
||||
void operator() (const VecTraits<s32>::vec128 & v_src0,
|
||||
const VecTraits<s32>::vec128 & v_src1,
|
||||
VecTraits<s32>::vec128 & v_dst) const
|
||||
{
|
||||
float32x4_t vs1 = vcvtq_f32_s32(v_src0);
|
||||
float32x4_t vs2 = vcvtq_f32_s32(v_src1);
|
||||
@@ -121,9 +121,9 @@ template <> struct wAdd<s32>
|
||||
v_dst = vcvtq_s32_f32(vs1);
|
||||
}
|
||||
|
||||
void operator() (const typename VecTraits<s32>::vec64 & v_src0,
|
||||
const typename VecTraits<s32>::vec64 & v_src1,
|
||||
typename VecTraits<s32>::vec64 & v_dst) const
|
||||
void operator() (const VecTraits<s32>::vec64 & v_src0,
|
||||
const VecTraits<s32>::vec64 & v_src1,
|
||||
VecTraits<s32>::vec64 & v_dst) const
|
||||
{
|
||||
float32x2_t vs1 = vcvt_f32_s32(v_src0);
|
||||
float32x2_t vs2 = vcvt_f32_s32(v_src1);
|
||||
@@ -153,9 +153,9 @@ template <> struct wAdd<u32>
|
||||
vgamma = vdupq_n_f32(_gamma + 0.5);
|
||||
}
|
||||
|
||||
void operator() (const typename VecTraits<u32>::vec128 & v_src0,
|
||||
const typename VecTraits<u32>::vec128 & v_src1,
|
||||
typename VecTraits<u32>::vec128 & v_dst) const
|
||||
void operator() (const VecTraits<u32>::vec128 & v_src0,
|
||||
const VecTraits<u32>::vec128 & v_src1,
|
||||
VecTraits<u32>::vec128 & v_dst) const
|
||||
{
|
||||
float32x4_t vs1 = vcvtq_f32_u32(v_src0);
|
||||
float32x4_t vs2 = vcvtq_f32_u32(v_src1);
|
||||
@@ -165,9 +165,9 @@ template <> struct wAdd<u32>
|
||||
v_dst = vcvtq_u32_f32(vs1);
|
||||
}
|
||||
|
||||
void operator() (const typename VecTraits<u32>::vec64 & v_src0,
|
||||
const typename VecTraits<u32>::vec64 & v_src1,
|
||||
typename VecTraits<u32>::vec64 & v_dst) const
|
||||
void operator() (const VecTraits<u32>::vec64 & v_src0,
|
||||
const VecTraits<u32>::vec64 & v_src1,
|
||||
VecTraits<u32>::vec64 & v_dst) const
|
||||
{
|
||||
float32x2_t vs1 = vcvt_f32_u32(v_src0);
|
||||
float32x2_t vs2 = vcvt_f32_u32(v_src1);
|
||||
@@ -197,17 +197,17 @@ template <> struct wAdd<f32>
|
||||
vgamma = vdupq_n_f32(_gamma + 0.5);
|
||||
}
|
||||
|
||||
void operator() (const typename VecTraits<f32>::vec128 & v_src0,
|
||||
const typename VecTraits<f32>::vec128 & v_src1,
|
||||
typename VecTraits<f32>::vec128 & v_dst) const
|
||||
void operator() (const VecTraits<f32>::vec128 & v_src0,
|
||||
const VecTraits<f32>::vec128 & v_src1,
|
||||
VecTraits<f32>::vec128 & v_dst) const
|
||||
{
|
||||
float32x4_t vs1 = vmlaq_f32(vgamma, v_src0, valpha);
|
||||
v_dst = vmlaq_f32(vs1, v_src1, vbeta);
|
||||
}
|
||||
|
||||
void operator() (const typename VecTraits<f32>::vec64 & v_src0,
|
||||
const typename VecTraits<f32>::vec64 & v_src1,
|
||||
typename VecTraits<f32>::vec64 & v_dst) const
|
||||
void operator() (const VecTraits<f32>::vec64 & v_src0,
|
||||
const VecTraits<f32>::vec64 & v_src1,
|
||||
VecTraits<f32>::vec64 & v_dst) const
|
||||
{
|
||||
float32x2_t vs1 = vmla_f32(vget_low(vgamma), v_src0, vget_low(valpha));
|
||||
v_dst = vmla_f32(vs1, v_src1, vget_low(vbeta));
|
||||
|
||||
2
3rdparty/carotene/src/blur.cpp
vendored
2
3rdparty/carotene/src/blur.cpp
vendored
@@ -391,9 +391,9 @@ void blur3x3(const Size2D &size, s32 cn,
|
||||
}
|
||||
else if (borderType == BORDER_MODE_REFLECT101)
|
||||
{
|
||||
tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 3),tcurr, 5);
|
||||
tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 4),tcurr, 6);
|
||||
tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 5),tcurr, 7);
|
||||
tcurr = vsetq_lane_u16(vgetq_lane_u16(tcurr, 3),tcurr, 5);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
8
3rdparty/carotene/src/colorconvert.cpp
vendored
8
3rdparty/carotene/src/colorconvert.cpp
vendored
@@ -49,12 +49,12 @@ namespace {
|
||||
|
||||
enum
|
||||
{
|
||||
SHIFT = 14,
|
||||
SHIFT = 15,
|
||||
SHIFT_DELTA = 1 << (SHIFT - 1),
|
||||
|
||||
R2Y_BT601 = 4899,
|
||||
G2Y_BT601 = 9617,
|
||||
B2Y_BT601 = 1868,
|
||||
R2Y_BT601 = 9798,
|
||||
G2Y_BT601 = 19235,
|
||||
B2Y_BT601 = 3735,
|
||||
|
||||
R2Y_BT709 = 3483,
|
||||
G2Y_BT709 = 11718,
|
||||
|
||||
58
3rdparty/carotene/src/div.cpp
vendored
58
3rdparty/carotene/src/div.cpp
vendored
@@ -151,6 +151,10 @@ void div(const Size2D &size,
|
||||
typedef typename internal::VecTraits<T>::vec128 vec128;
|
||||
typedef typename internal::VecTraits<T>::vec64 vec64;
|
||||
|
||||
#if defined(__GNUC__) && (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||
static_assert(std::numeric_limits<T>::is_integer, "template implementation is for integer types only");
|
||||
#endif
|
||||
|
||||
if (scale == 0.0f ||
|
||||
(std::numeric_limits<T>::is_integer &&
|
||||
(scale * std::numeric_limits<T>::max()) < 1.0f &&
|
||||
@@ -311,6 +315,10 @@ void recip(const Size2D &size,
|
||||
typedef typename internal::VecTraits<T>::vec128 vec128;
|
||||
typedef typename internal::VecTraits<T>::vec64 vec64;
|
||||
|
||||
#if defined(__GNUC__) && (defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||
static_assert(std::numeric_limits<T>::is_integer, "template implementation is for integer types only");
|
||||
#endif
|
||||
|
||||
if (scale == 0.0f ||
|
||||
(std::numeric_limits<T>::is_integer &&
|
||||
scale < 1.0f &&
|
||||
@@ -463,8 +471,6 @@ void div(const Size2D &size,
|
||||
return;
|
||||
}
|
||||
|
||||
float32x4_t v_zero = vdupq_n_f32(0.0f);
|
||||
|
||||
size_t roiw128 = size.width >= 3 ? size.width - 3 : 0;
|
||||
size_t roiw64 = size.width >= 1 ? size.width - 1 : 0;
|
||||
|
||||
@@ -485,9 +491,7 @@ void div(const Size2D &size,
|
||||
float32x4_t v_src0 = vld1q_f32(src0 + j);
|
||||
float32x4_t v_src1 = vld1q_f32(src1 + j);
|
||||
|
||||
uint32x4_t v_mask = vceqq_f32(v_src1,v_zero);
|
||||
vst1q_f32(dst + j, vreinterpretq_f32_u32(vbicq_u32(
|
||||
vreinterpretq_u32_f32(vmulq_f32(v_src0, internal::vrecpq_f32(v_src1))), v_mask)));
|
||||
vst1q_f32(dst + j, vmulq_f32(v_src0, internal::vrecpq_f32(v_src1)));
|
||||
}
|
||||
|
||||
for (; j < roiw64; j += 2)
|
||||
@@ -495,14 +499,12 @@ void div(const Size2D &size,
|
||||
float32x2_t v_src0 = vld1_f32(src0 + j);
|
||||
float32x2_t v_src1 = vld1_f32(src1 + j);
|
||||
|
||||
uint32x2_t v_mask = vceq_f32(v_src1,vget_low_f32(v_zero));
|
||||
vst1_f32(dst + j, vreinterpret_f32_u32(vbic_u32(
|
||||
vreinterpret_u32_f32(vmul_f32(v_src0, internal::vrecp_f32(v_src1))), v_mask)));
|
||||
vst1_f32(dst + j, vmul_f32(v_src0, internal::vrecp_f32(v_src1)));
|
||||
}
|
||||
|
||||
for (; j < size.width; j++)
|
||||
{
|
||||
dst[j] = src1[j] ? src0[j] / src1[j] : 0.0f;
|
||||
dst[j] = src0[j] / src1[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -523,10 +525,8 @@ void div(const Size2D &size,
|
||||
float32x4_t v_src0 = vld1q_f32(src0 + j);
|
||||
float32x4_t v_src1 = vld1q_f32(src1 + j);
|
||||
|
||||
uint32x4_t v_mask = vceqq_f32(v_src1,v_zero);
|
||||
vst1q_f32(dst + j, vreinterpretq_f32_u32(vbicq_u32(
|
||||
vreinterpretq_u32_f32(vmulq_f32(vmulq_n_f32(v_src0, scale),
|
||||
internal::vrecpq_f32(v_src1))), v_mask)));
|
||||
vst1q_f32(dst + j, vmulq_f32(vmulq_n_f32(v_src0, scale),
|
||||
internal::vrecpq_f32(v_src1)));
|
||||
}
|
||||
|
||||
for (; j < roiw64; j += 2)
|
||||
@@ -534,15 +534,13 @@ void div(const Size2D &size,
|
||||
float32x2_t v_src0 = vld1_f32(src0 + j);
|
||||
float32x2_t v_src1 = vld1_f32(src1 + j);
|
||||
|
||||
uint32x2_t v_mask = vceq_f32(v_src1,vget_low_f32(v_zero));
|
||||
vst1_f32(dst + j, vreinterpret_f32_u32(vbic_u32(
|
||||
vreinterpret_u32_f32(vmul_f32(vmul_n_f32(v_src0, scale),
|
||||
internal::vrecp_f32(v_src1))), v_mask)));
|
||||
vst1_f32(dst + j, vmul_f32(vmul_n_f32(v_src0, scale),
|
||||
internal::vrecp_f32(v_src1)));
|
||||
}
|
||||
|
||||
for (; j < size.width; j++)
|
||||
{
|
||||
dst[j] = src1[j] ? src0[j] * scale / src1[j] : 0.0f;
|
||||
dst[j] = src0[j] * scale / src1[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -620,8 +618,6 @@ void reciprocal(const Size2D &size,
|
||||
return;
|
||||
}
|
||||
|
||||
float32x4_t v_zero = vdupq_n_f32(0.0f);
|
||||
|
||||
size_t roiw128 = size.width >= 3 ? size.width - 3 : 0;
|
||||
size_t roiw64 = size.width >= 1 ? size.width - 1 : 0;
|
||||
|
||||
@@ -639,23 +635,19 @@ void reciprocal(const Size2D &size,
|
||||
|
||||
float32x4_t v_src1 = vld1q_f32(src1 + j);
|
||||
|
||||
uint32x4_t v_mask = vceqq_f32(v_src1,v_zero);
|
||||
vst1q_f32(dst + j, vreinterpretq_f32_u32(vbicq_u32(
|
||||
vreinterpretq_u32_f32(internal::vrecpq_f32(v_src1)), v_mask)));
|
||||
vst1q_f32(dst + j, internal::vrecpq_f32(v_src1));
|
||||
}
|
||||
|
||||
for (; j < roiw64; j += 2)
|
||||
{
|
||||
float32x2_t v_src1 = vld1_f32(src1 + j);
|
||||
|
||||
uint32x2_t v_mask = vceq_f32(v_src1,vget_low_f32(v_zero));
|
||||
vst1_f32(dst + j, vreinterpret_f32_u32(vbic_u32(
|
||||
vreinterpret_u32_f32(internal::vrecp_f32(v_src1)), v_mask)));
|
||||
vst1_f32(dst + j, internal::vrecp_f32(v_src1));
|
||||
}
|
||||
|
||||
for (; j < size.width; j++)
|
||||
{
|
||||
dst[j] = src1[j] ? 1.0f / src1[j] : 0;
|
||||
dst[j] = 1.0f / src1[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -673,25 +665,19 @@ void reciprocal(const Size2D &size,
|
||||
|
||||
float32x4_t v_src1 = vld1q_f32(src1 + j);
|
||||
|
||||
uint32x4_t v_mask = vceqq_f32(v_src1,v_zero);
|
||||
vst1q_f32(dst + j, vreinterpretq_f32_u32(vbicq_u32(
|
||||
vreinterpretq_u32_f32(vmulq_n_f32(internal::vrecpq_f32(v_src1),
|
||||
scale)),v_mask)));
|
||||
vst1q_f32(dst + j, vmulq_n_f32(internal::vrecpq_f32(v_src1), scale));
|
||||
}
|
||||
|
||||
for (; j < roiw64; j += 2)
|
||||
{
|
||||
float32x2_t v_src1 = vld1_f32(src1 + j);
|
||||
|
||||
uint32x2_t v_mask = vceq_f32(v_src1,vget_low_f32(v_zero));
|
||||
vst1_f32(dst + j, vreinterpret_f32_u32(vbic_u32(
|
||||
vreinterpret_u32_f32(vmul_n_f32(internal::vrecp_f32(v_src1),
|
||||
scale)), v_mask)));
|
||||
vst1_f32(dst + j, vmul_n_f32(internal::vrecp_f32(v_src1), scale));
|
||||
}
|
||||
|
||||
for (; j < size.width; j++)
|
||||
{
|
||||
dst[j] = src1[j] ? scale / src1[j] : 0;
|
||||
dst[j] = scale / src1[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
2
3rdparty/carotene/src/dummy.cpp
vendored
Normal file
2
3rdparty/carotene/src/dummy.cpp
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
// This file is needed for compilation on some platforms e.g. with XCode generator
|
||||
// Related issue: https://gitlab.kitware.com/cmake/cmake/-/issues/17457
|
||||
2
3rdparty/carotene/src/resize.cpp
vendored
2
3rdparty/carotene/src/resize.cpp
vendored
@@ -758,7 +758,7 @@ inline void resizeAreaRounding(const Size2D &ssize, const Size2D &dsize,
|
||||
}
|
||||
else if (channels == 3)
|
||||
{
|
||||
if ((wr == 2.0f) && (wr == 2.0f))
|
||||
if ((wr == 2.0f) && (hr == 2.0f))
|
||||
{
|
||||
#ifndef __ANDROID__
|
||||
size_t roiw16 = dsize.width >= 15 ? (dsize.width - 15) * 3 : 0;
|
||||
|
||||
4
3rdparty/cpufeatures/CMakeLists.txt
vendored
4
3rdparty/cpufeatures/CMakeLists.txt
vendored
@@ -14,7 +14,7 @@ if(NOT DEFINED CPUFEATURES_SOURCES)
|
||||
endif()
|
||||
|
||||
include_directories(${CPUFEATURES_INCLUDE_DIRS})
|
||||
add_library(${OPENCV_CPUFEATURES_TARGET_NAME} STATIC ${CPUFEATURES_SOURCES})
|
||||
add_library(${OPENCV_CPUFEATURES_TARGET_NAME} STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} ${CPUFEATURES_SOURCES})
|
||||
|
||||
set_target_properties(${OPENCV_CPUFEATURES_TARGET_NAME}
|
||||
PROPERTIES OUTPUT_NAME cpufeatures
|
||||
@@ -29,7 +29,7 @@ if(ENABLE_SOLUTION_FOLDERS)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
ocv_install_target(${OPENCV_CPUFEATURES_TARGET_NAME} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
|
||||
ocv_install_target(${OPENCV_CPUFEATURES_TARGET_NAME} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev OPTIONAL)
|
||||
endif()
|
||||
|
||||
ocv_install_3rdparty_licenses(cpufeatures LICENSE README.md)
|
||||
|
||||
1
3rdparty/cpufeatures/cpu-features.h
vendored
1
3rdparty/cpufeatures/cpu-features.h
vendored
@@ -30,6 +30,7 @@
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
||||
4
3rdparty/ffmpeg/ffmpeg-download.ps1.in
vendored
4
3rdparty/ffmpeg/ffmpeg-download.ps1.in
vendored
@@ -1,6 +1,6 @@
|
||||
$url = "https://raw.githubusercontent.com/opencv/opencv_3rdparty/@FFMPEG_BINARIES_COMMIT@/ffmpeg/opencv_ffmpeg_64.dll"
|
||||
$url = "https://raw.githubusercontent.com/opencv/opencv_3rdparty/@FFMPEG_BINARIES_COMMIT@/ffmpeg/opencv_videoio_ffmpeg_64.dll"
|
||||
$expected_md5 = "@FFMPEG_FILE_HASH_BIN64@"
|
||||
$output = "$PSScriptRoot\@OPENCV_BIN_INSTALL_PATH@\opencv_ffmpeg@OPENCV_DLLVERSION@_64.dll"
|
||||
$output = "$PSScriptRoot\@OPENCV_BIN_INSTALL_PATH@\opencv_videoio_ffmpeg@OPENCV_DLLVERSION@_64.dll"
|
||||
|
||||
Write-Output ("=" * 120)
|
||||
try {
|
||||
|
||||
16
3rdparty/ffmpeg/ffmpeg.cmake
vendored
16
3rdparty/ffmpeg/ffmpeg.cmake
vendored
@@ -1,16 +1,16 @@
|
||||
# Binaries branch name: ffmpeg/3.4_20191118
|
||||
# Binaries were created for OpenCV: 3f431a16a38be35e52b4887a3591d23030d34fc5
|
||||
ocv_update(FFMPEG_BINARIES_COMMIT "548e3c997a80d65f710b9048f1d33371e3a203ac")
|
||||
ocv_update(FFMPEG_FILE_HASH_BIN32 "168635a192fc2d2ae7d7d40150f0b349")
|
||||
ocv_update(FFMPEG_FILE_HASH_BIN64 "cbc25f8f2954475b127c7558558c18e6")
|
||||
ocv_update(FFMPEG_FILE_HASH_CMAKE "3b90f67f4b429e77d3da36698cef700c")
|
||||
# Binaries branch name: ffmpeg/4.x_20221225
|
||||
# Binaries were created for OpenCV: 4abe6dc48d4ec6229f332cc6cf6c7e234ac8027e
|
||||
ocv_update(FFMPEG_BINARIES_COMMIT "7dd0d4f1d6fe75f05f3d3b5e38cbc96c1a2d2809")
|
||||
ocv_update(FFMPEG_FILE_HASH_BIN32 "e598ae2ece1ddf310bc49b58202fd87a")
|
||||
ocv_update(FFMPEG_FILE_HASH_BIN64 "b2a40c142c20aef9fd663fc8f85c2971")
|
||||
ocv_update(FFMPEG_FILE_HASH_CMAKE "8862c87496e2e8c375965e1277dee1c7")
|
||||
|
||||
function(download_win_ffmpeg script_var)
|
||||
set(${script_var} "" PARENT_SCOPE)
|
||||
|
||||
set(ids BIN32 BIN64 CMAKE)
|
||||
set(name_BIN32 "opencv_ffmpeg.dll")
|
||||
set(name_BIN64 "opencv_ffmpeg_64.dll")
|
||||
set(name_BIN32 "opencv_videoio_ffmpeg.dll")
|
||||
set(name_BIN64 "opencv_videoio_ffmpeg_64.dll")
|
||||
set(name_CMAKE "ffmpeg_version.cmake")
|
||||
|
||||
set(FFMPEG_DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/3rdparty/ffmpeg")
|
||||
|
||||
8
3rdparty/ffmpeg/readme.txt
vendored
8
3rdparty/ffmpeg/readme.txt
vendored
@@ -13,10 +13,10 @@
|
||||
|
||||
* On Windows OpenCV uses pre-built ffmpeg binaries, built with proper flags (without GPL components) and
|
||||
wrapped with simple, stable OpenCV-compatible API.
|
||||
The binaries are opencv_ffmpeg.dll (version for 32-bit Windows) and
|
||||
opencv_ffmpeg_64.dll (version for 64-bit Windows).
|
||||
The binaries are opencv_videoio_ffmpeg.dll (version for 32-bit Windows) and
|
||||
opencv_videoio_ffmpeg_64.dll (version for 64-bit Windows).
|
||||
|
||||
The pre-built opencv_ffmpeg*.dll is:
|
||||
The pre-built opencv_videoio_ffmpeg*.dll is:
|
||||
* LGPL library, not BSD libraries.
|
||||
* Loaded at runtime by opencv_videoio module.
|
||||
If it succeeds, ffmpeg can be used to decode/encode videos;
|
||||
@@ -30,7 +30,7 @@
|
||||
Or you can specify location of binary file via OPENH264_LIBRARY environment variable.
|
||||
|
||||
If LGPL/GPL software can not be supplied with your OpenCV-based product, simply exclude
|
||||
opencv_ffmpeg*.dll from your distribution; OpenCV will stay fully functional except for the ability to
|
||||
opencv_videoio_ffmpeg*.dll from your distribution; OpenCV will stay fully functional except for the ability to
|
||||
decode/encode videos using FFMPEG (though, it may still be able to do that using other API,
|
||||
such as Video for Windows, Windows Media Foundation or our self-contained motion jpeg codec).
|
||||
|
||||
|
||||
160
3rdparty/include/opencl/1.2/CL/cl_va_api_media_sharing_intel.h
vendored
Normal file
160
3rdparty/include/opencl/1.2/CL/cl_va_api_media_sharing_intel.h
vendored
Normal file
@@ -0,0 +1,160 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2008-2020 The Khronos Group Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
******************************************************************************/
|
||||
/*****************************************************************************\
|
||||
|
||||
Copyright (c) 2013-2019 Intel Corporation All Rights Reserved.
|
||||
|
||||
THESE MATERIALS ARE PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL OR ITS
|
||||
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
||||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
||||
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THESE
|
||||
MATERIALS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
File Name: cl_va_api_media_sharing_intel.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Notes:
|
||||
|
||||
\*****************************************************************************/
|
||||
|
||||
|
||||
#ifndef __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H
|
||||
#define __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H
|
||||
|
||||
#include <CL/cl.h>
|
||||
#include <CL/cl_platform.h>
|
||||
#include <va/va.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************
|
||||
* cl_intel_va_api_media_sharing extension *
|
||||
*******************************************/
|
||||
|
||||
#define cl_intel_va_api_media_sharing 1
|
||||
|
||||
/* error codes */
|
||||
#define CL_INVALID_VA_API_MEDIA_ADAPTER_INTEL -1098
|
||||
#define CL_INVALID_VA_API_MEDIA_SURFACE_INTEL -1099
|
||||
#define CL_VA_API_MEDIA_SURFACE_ALREADY_ACQUIRED_INTEL -1100
|
||||
#define CL_VA_API_MEDIA_SURFACE_NOT_ACQUIRED_INTEL -1101
|
||||
|
||||
/* cl_va_api_device_source_intel */
|
||||
#define CL_VA_API_DISPLAY_INTEL 0x4094
|
||||
|
||||
/* cl_va_api_device_set_intel */
|
||||
#define CL_PREFERRED_DEVICES_FOR_VA_API_INTEL 0x4095
|
||||
#define CL_ALL_DEVICES_FOR_VA_API_INTEL 0x4096
|
||||
|
||||
/* cl_context_info */
|
||||
#define CL_CONTEXT_VA_API_DISPLAY_INTEL 0x4097
|
||||
|
||||
/* cl_mem_info */
|
||||
#define CL_MEM_VA_API_MEDIA_SURFACE_INTEL 0x4098
|
||||
|
||||
/* cl_image_info */
|
||||
#define CL_IMAGE_VA_API_PLANE_INTEL 0x4099
|
||||
|
||||
/* cl_command_type */
|
||||
#define CL_COMMAND_ACQUIRE_VA_API_MEDIA_SURFACES_INTEL 0x409A
|
||||
#define CL_COMMAND_RELEASE_VA_API_MEDIA_SURFACES_INTEL 0x409B
|
||||
|
||||
typedef cl_uint cl_va_api_device_source_intel;
|
||||
typedef cl_uint cl_va_api_device_set_intel;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clGetDeviceIDsFromVA_APIMediaAdapterINTEL(
|
||||
cl_platform_id platform,
|
||||
cl_va_api_device_source_intel media_adapter_type,
|
||||
void* media_adapter,
|
||||
cl_va_api_device_set_intel media_adapter_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL * clGetDeviceIDsFromVA_APIMediaAdapterINTEL_fn)(
|
||||
cl_platform_id platform,
|
||||
cl_va_api_device_source_intel media_adapter_type,
|
||||
void* media_adapter,
|
||||
cl_va_api_device_set_intel media_adapter_set,
|
||||
cl_uint num_entries,
|
||||
cl_device_id* devices,
|
||||
cl_uint* num_devices) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL
|
||||
clCreateFromVA_APIMediaSurfaceINTEL(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
VASurfaceID* surface,
|
||||
cl_uint plane,
|
||||
cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL * clCreateFromVA_APIMediaSurfaceINTEL_fn)(
|
||||
cl_context context,
|
||||
cl_mem_flags flags,
|
||||
VASurfaceID* surface,
|
||||
cl_uint plane,
|
||||
cl_int* errcode_ret) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueAcquireVA_APIMediaSurfacesINTEL(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem* mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireVA_APIMediaSurfacesINTEL_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem* mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL
|
||||
clEnqueueReleaseVA_APIMediaSurfacesINTEL(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem* mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseVA_APIMediaSurfacesINTEL_fn)(
|
||||
cl_command_queue command_queue,
|
||||
cl_uint num_objects,
|
||||
const cl_mem* mem_objects,
|
||||
cl_uint num_events_in_wait_list,
|
||||
const cl_event* event_wait_list,
|
||||
cl_event* event) CL_EXT_SUFFIX__VERSION_1_2;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __OPENCL_CL_VA_API_MEDIA_SHARING_INTEL_H */
|
||||
|
||||
92
3rdparty/include/vulkan/vk_platform.h
vendored
Normal file
92
3rdparty/include/vulkan/vk_platform.h
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// File: vk_platform.h
|
||||
//
|
||||
/*
|
||||
** Copyright (c) 2014-2017 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef VK_PLATFORM_H_
|
||||
#define VK_PLATFORM_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif // __cplusplus
|
||||
|
||||
/*
|
||||
***************************************************************************************************
|
||||
* Platform-specific directives and type declarations
|
||||
***************************************************************************************************
|
||||
*/
|
||||
|
||||
/* Platform-specific calling convention macros.
|
||||
*
|
||||
* Platforms should define these so that Vulkan clients call Vulkan commands
|
||||
* with the same calling conventions that the Vulkan implementation expects.
|
||||
*
|
||||
* VKAPI_ATTR - Placed before the return type in function declarations.
|
||||
* Useful for C++11 and GCC/Clang-style function attribute syntax.
|
||||
* VKAPI_CALL - Placed after the return type in function declarations.
|
||||
* Useful for MSVC-style calling convention syntax.
|
||||
* VKAPI_PTR - Placed between the '(' and '*' in function pointer types.
|
||||
*
|
||||
* Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void);
|
||||
* Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void);
|
||||
*/
|
||||
#if defined(_WIN32)
|
||||
// On Windows, Vulkan commands use the stdcall convention
|
||||
#define VKAPI_ATTR
|
||||
#define VKAPI_CALL __stdcall
|
||||
#define VKAPI_PTR VKAPI_CALL
|
||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
|
||||
#error "Vulkan isn't supported for the 'armeabi' NDK ABI"
|
||||
#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
|
||||
// On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"
|
||||
// calling convention, i.e. float parameters are passed in registers. This
|
||||
// is true even if the rest of the application passes floats on the stack,
|
||||
// as it does by default when compiling for the armeabi-v7a NDK ABI.
|
||||
#define VKAPI_ATTR __attribute__((pcs("aapcs-vfp")))
|
||||
#define VKAPI_CALL
|
||||
#define VKAPI_PTR VKAPI_ATTR
|
||||
#else
|
||||
// On other platforms, use the default calling convention
|
||||
#define VKAPI_ATTR
|
||||
#define VKAPI_CALL
|
||||
#define VKAPI_PTR
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#if !defined(VK_NO_STDINT_H)
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
||||
typedef signed __int8 int8_t;
|
||||
typedef unsigned __int8 uint8_t;
|
||||
typedef signed __int16 int16_t;
|
||||
typedef unsigned __int16 uint16_t;
|
||||
typedef signed __int32 int32_t;
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef signed __int64 int64_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#endif // !defined(VK_NO_STDINT_H)
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif // __cplusplus
|
||||
|
||||
#endif
|
||||
83
3rdparty/include/vulkan/vulkan.h
vendored
Normal file
83
3rdparty/include/vulkan/vulkan.h
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
#ifndef VULKAN_H_
|
||||
#define VULKAN_H_ 1
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
#include "vk_platform.h"
|
||||
#include "vulkan_core.h"
|
||||
|
||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||
#include "vulkan_android.h"
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_FUCHSIA
|
||||
#include <zircon/types.h>
|
||||
#include "vulkan_fuchsia.h"
|
||||
#endif
|
||||
|
||||
#ifdef VK_USE_PLATFORM_IOS_MVK
|
||||
#include "vulkan_ios.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_MACOS_MVK
|
||||
#include "vulkan_macos.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_MIR_KHR
|
||||
#include <mir_toolkit/client_types.h>
|
||||
#include "vulkan_mir.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_VI_NN
|
||||
#include "vulkan_vi.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
||||
#include <wayland-client.h>
|
||||
#include "vulkan_wayland.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||
#include <windows.h>
|
||||
#include "vulkan_win32.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XCB_KHR
|
||||
#include <xcb/xcb.h>
|
||||
#include "vulkan_xcb.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
||||
#include <X11/Xlib.h>
|
||||
#include "vulkan_xlib.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/extensions/Xrandr.h>
|
||||
#include "vulkan_xlib_xrandr.h"
|
||||
#endif
|
||||
|
||||
#endif // VULKAN_H_
|
||||
126
3rdparty/include/vulkan/vulkan_android.h
vendored
Normal file
126
3rdparty/include/vulkan/vulkan_android.h
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
#ifndef VULKAN_ANDROID_H_
|
||||
#define VULKAN_ANDROID_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_android_surface 1
|
||||
struct ANativeWindow;
|
||||
|
||||
#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
|
||||
#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
|
||||
|
||||
typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkAndroidSurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkAndroidSurfaceCreateFlagsKHR flags;
|
||||
struct ANativeWindow* window;
|
||||
} VkAndroidSurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
#endif
|
||||
|
||||
#define VK_ANDROID_external_memory_android_hardware_buffer 1
|
||||
struct AHardwareBuffer;
|
||||
|
||||
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
|
||||
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
|
||||
|
||||
typedef struct VkAndroidHardwareBufferUsageANDROID {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint64_t androidHardwareBufferUsage;
|
||||
} VkAndroidHardwareBufferUsageANDROID;
|
||||
|
||||
typedef struct VkAndroidHardwareBufferPropertiesANDROID {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkDeviceSize allocationSize;
|
||||
uint32_t memoryTypeBits;
|
||||
} VkAndroidHardwareBufferPropertiesANDROID;
|
||||
|
||||
typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
VkFormat format;
|
||||
uint64_t externalFormat;
|
||||
VkFormatFeatureFlags formatFeatures;
|
||||
VkComponentMapping samplerYcbcrConversionComponents;
|
||||
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
|
||||
VkSamplerYcbcrRange suggestedYcbcrRange;
|
||||
VkChromaLocation suggestedXChromaOffset;
|
||||
VkChromaLocation suggestedYChromaOffset;
|
||||
} VkAndroidHardwareBufferFormatPropertiesANDROID;
|
||||
|
||||
typedef struct VkImportAndroidHardwareBufferInfoANDROID {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
struct AHardwareBuffer* buffer;
|
||||
} VkImportAndroidHardwareBufferInfoANDROID;
|
||||
|
||||
typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkDeviceMemory memory;
|
||||
} VkMemoryGetAndroidHardwareBufferInfoANDROID;
|
||||
|
||||
typedef struct VkExternalFormatANDROID {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint64_t externalFormat;
|
||||
} VkExternalFormatANDROID;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
|
||||
VkDevice device,
|
||||
const struct AHardwareBuffer* buffer,
|
||||
VkAndroidHardwareBufferPropertiesANDROID* pProperties);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
|
||||
VkDevice device,
|
||||
const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
|
||||
struct AHardwareBuffer** pBuffer);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
8524
3rdparty/include/vulkan/vulkan_core.h
vendored
Normal file
8524
3rdparty/include/vulkan/vulkan_core.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
58
3rdparty/include/vulkan/vulkan_fuchsia.h
vendored
Normal file
58
3rdparty/include/vulkan/vulkan_fuchsia.h
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
#ifndef VULKAN_FUCHSIA_H_
|
||||
#define VULKAN_FUCHSIA_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_FUCHSIA_imagepipe_surface 1
|
||||
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
|
||||
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
|
||||
|
||||
typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA;
|
||||
|
||||
typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkImagePipeSurfaceCreateFlagsFUCHSIA flags;
|
||||
zx_handle_t imagePipeHandle;
|
||||
} VkImagePipeSurfaceCreateInfoFUCHSIA;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA(
|
||||
VkInstance instance,
|
||||
const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
58
3rdparty/include/vulkan/vulkan_ios.h
vendored
Normal file
58
3rdparty/include/vulkan/vulkan_ios.h
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
#ifndef VULKAN_IOS_H_
|
||||
#define VULKAN_IOS_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_MVK_ios_surface 1
|
||||
#define VK_MVK_IOS_SURFACE_SPEC_VERSION 2
|
||||
#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
|
||||
|
||||
typedef VkFlags VkIOSSurfaceCreateFlagsMVK;
|
||||
|
||||
typedef struct VkIOSSurfaceCreateInfoMVK {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkIOSSurfaceCreateFlagsMVK flags;
|
||||
const void* pView;
|
||||
} VkIOSSurfaceCreateInfoMVK;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK(
|
||||
VkInstance instance,
|
||||
const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
58
3rdparty/include/vulkan/vulkan_macos.h
vendored
Normal file
58
3rdparty/include/vulkan/vulkan_macos.h
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
#ifndef VULKAN_MACOS_H_
|
||||
#define VULKAN_MACOS_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_MVK_macos_surface 1
|
||||
#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2
|
||||
#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
|
||||
|
||||
typedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
|
||||
|
||||
typedef struct VkMacOSSurfaceCreateInfoMVK {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkMacOSSurfaceCreateFlagsMVK flags;
|
||||
const void* pView;
|
||||
} VkMacOSSurfaceCreateInfoMVK;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK(
|
||||
VkInstance instance,
|
||||
const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
65
3rdparty/include/vulkan/vulkan_mir.h
vendored
Normal file
65
3rdparty/include/vulkan/vulkan_mir.h
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
#ifndef VULKAN_MIR_H_
|
||||
#define VULKAN_MIR_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_mir_surface 1
|
||||
#define VK_KHR_MIR_SURFACE_SPEC_VERSION 4
|
||||
#define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface"
|
||||
|
||||
typedef VkFlags VkMirSurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkMirSurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkMirSurfaceCreateFlagsKHR flags;
|
||||
MirConnection* connection;
|
||||
MirSurface* mirSurface;
|
||||
} VkMirSurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkMirSurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
|
||||
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
MirConnection* connection);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
58
3rdparty/include/vulkan/vulkan_vi.h
vendored
Normal file
58
3rdparty/include/vulkan/vulkan_vi.h
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
#ifndef VULKAN_VI_H_
|
||||
#define VULKAN_VI_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_NN_vi_surface 1
|
||||
#define VK_NN_VI_SURFACE_SPEC_VERSION 1
|
||||
#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
|
||||
|
||||
typedef VkFlags VkViSurfaceCreateFlagsNN;
|
||||
|
||||
typedef struct VkViSurfaceCreateInfoNN {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkViSurfaceCreateFlagsNN flags;
|
||||
void* window;
|
||||
} VkViSurfaceCreateInfoNN;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN(
|
||||
VkInstance instance,
|
||||
const VkViSurfaceCreateInfoNN* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
65
3rdparty/include/vulkan/vulkan_wayland.h
vendored
Normal file
65
3rdparty/include/vulkan/vulkan_wayland.h
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
#ifndef VULKAN_WAYLAND_H_
|
||||
#define VULKAN_WAYLAND_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_wayland_surface 1
|
||||
#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
|
||||
#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
|
||||
|
||||
typedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkWaylandSurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkWaylandSurfaceCreateFlagsKHR flags;
|
||||
struct wl_display* display;
|
||||
struct wl_surface* surface;
|
||||
} VkWaylandSurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
|
||||
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
struct wl_display* display);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
276
3rdparty/include/vulkan/vulkan_win32.h
vendored
Normal file
276
3rdparty/include/vulkan/vulkan_win32.h
vendored
Normal file
@@ -0,0 +1,276 @@
|
||||
#ifndef VULKAN_WIN32_H_
|
||||
#define VULKAN_WIN32_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_win32_surface 1
|
||||
#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
|
||||
#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
|
||||
|
||||
typedef VkFlags VkWin32SurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkWin32SurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkWin32SurfaceCreateFlagsKHR flags;
|
||||
HINSTANCE hinstance;
|
||||
HWND hwnd;
|
||||
} VkWin32SurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
|
||||
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_external_memory_win32 1
|
||||
#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
|
||||
#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
|
||||
|
||||
typedef struct VkImportMemoryWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkExternalMemoryHandleTypeFlagBits handleType;
|
||||
HANDLE handle;
|
||||
LPCWSTR name;
|
||||
} VkImportMemoryWin32HandleInfoKHR;
|
||||
|
||||
typedef struct VkExportMemoryWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const SECURITY_ATTRIBUTES* pAttributes;
|
||||
DWORD dwAccess;
|
||||
LPCWSTR name;
|
||||
} VkExportMemoryWin32HandleInfoKHR;
|
||||
|
||||
typedef struct VkMemoryWin32HandlePropertiesKHR {
|
||||
VkStructureType sType;
|
||||
void* pNext;
|
||||
uint32_t memoryTypeBits;
|
||||
} VkMemoryWin32HandlePropertiesKHR;
|
||||
|
||||
typedef struct VkMemoryGetWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkDeviceMemory memory;
|
||||
VkExternalMemoryHandleTypeFlagBits handleType;
|
||||
} VkMemoryGetWin32HandleInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR(
|
||||
VkDevice device,
|
||||
const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
||||
HANDLE* pHandle);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR(
|
||||
VkDevice device,
|
||||
VkExternalMemoryHandleTypeFlagBits handleType,
|
||||
HANDLE handle,
|
||||
VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_win32_keyed_mutex 1
|
||||
#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
|
||||
#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
|
||||
|
||||
typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t acquireCount;
|
||||
const VkDeviceMemory* pAcquireSyncs;
|
||||
const uint64_t* pAcquireKeys;
|
||||
const uint32_t* pAcquireTimeouts;
|
||||
uint32_t releaseCount;
|
||||
const VkDeviceMemory* pReleaseSyncs;
|
||||
const uint64_t* pReleaseKeys;
|
||||
} VkWin32KeyedMutexAcquireReleaseInfoKHR;
|
||||
|
||||
|
||||
|
||||
#define VK_KHR_external_semaphore_win32 1
|
||||
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
|
||||
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
|
||||
|
||||
typedef struct VkImportSemaphoreWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkSemaphore semaphore;
|
||||
VkSemaphoreImportFlags flags;
|
||||
VkExternalSemaphoreHandleTypeFlagBits handleType;
|
||||
HANDLE handle;
|
||||
LPCWSTR name;
|
||||
} VkImportSemaphoreWin32HandleInfoKHR;
|
||||
|
||||
typedef struct VkExportSemaphoreWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const SECURITY_ATTRIBUTES* pAttributes;
|
||||
DWORD dwAccess;
|
||||
LPCWSTR name;
|
||||
} VkExportSemaphoreWin32HandleInfoKHR;
|
||||
|
||||
typedef struct VkD3D12FenceSubmitInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t waitSemaphoreValuesCount;
|
||||
const uint64_t* pWaitSemaphoreValues;
|
||||
uint32_t signalSemaphoreValuesCount;
|
||||
const uint64_t* pSignalSemaphoreValues;
|
||||
} VkD3D12FenceSubmitInfoKHR;
|
||||
|
||||
typedef struct VkSemaphoreGetWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkSemaphore semaphore;
|
||||
VkExternalSemaphoreHandleTypeFlagBits handleType;
|
||||
} VkSemaphoreGetWin32HandleInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR(
|
||||
VkDevice device,
|
||||
const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR(
|
||||
VkDevice device,
|
||||
const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
||||
HANDLE* pHandle);
|
||||
#endif
|
||||
|
||||
#define VK_KHR_external_fence_win32 1
|
||||
#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
|
||||
#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
|
||||
|
||||
typedef struct VkImportFenceWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkFence fence;
|
||||
VkFenceImportFlags flags;
|
||||
VkExternalFenceHandleTypeFlagBits handleType;
|
||||
HANDLE handle;
|
||||
LPCWSTR name;
|
||||
} VkImportFenceWin32HandleInfoKHR;
|
||||
|
||||
typedef struct VkExportFenceWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const SECURITY_ATTRIBUTES* pAttributes;
|
||||
DWORD dwAccess;
|
||||
LPCWSTR name;
|
||||
} VkExportFenceWin32HandleInfoKHR;
|
||||
|
||||
typedef struct VkFenceGetWin32HandleInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkFence fence;
|
||||
VkExternalFenceHandleTypeFlagBits handleType;
|
||||
} VkFenceGetWin32HandleInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR(
|
||||
VkDevice device,
|
||||
const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR(
|
||||
VkDevice device,
|
||||
const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
||||
HANDLE* pHandle);
|
||||
#endif
|
||||
|
||||
#define VK_NV_external_memory_win32 1
|
||||
#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
|
||||
#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
|
||||
|
||||
typedef struct VkImportMemoryWin32HandleInfoNV {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkExternalMemoryHandleTypeFlagsNV handleType;
|
||||
HANDLE handle;
|
||||
} VkImportMemoryWin32HandleInfoNV;
|
||||
|
||||
typedef struct VkExportMemoryWin32HandleInfoNV {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
const SECURITY_ATTRIBUTES* pAttributes;
|
||||
DWORD dwAccess;
|
||||
} VkExportMemoryWin32HandleInfoNV;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV(
|
||||
VkDevice device,
|
||||
VkDeviceMemory memory,
|
||||
VkExternalMemoryHandleTypeFlagsNV handleType,
|
||||
HANDLE* pHandle);
|
||||
#endif
|
||||
|
||||
#define VK_NV_win32_keyed_mutex 1
|
||||
#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1
|
||||
#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
|
||||
|
||||
typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
uint32_t acquireCount;
|
||||
const VkDeviceMemory* pAcquireSyncs;
|
||||
const uint64_t* pAcquireKeys;
|
||||
const uint32_t* pAcquireTimeoutMilliseconds;
|
||||
uint32_t releaseCount;
|
||||
const VkDeviceMemory* pReleaseSyncs;
|
||||
const uint64_t* pReleaseKeys;
|
||||
} VkWin32KeyedMutexAcquireReleaseInfoNV;
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
66
3rdparty/include/vulkan/vulkan_xcb.h
vendored
Normal file
66
3rdparty/include/vulkan/vulkan_xcb.h
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
#ifndef VULKAN_XCB_H_
|
||||
#define VULKAN_XCB_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_xcb_surface 1
|
||||
#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
|
||||
#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
|
||||
|
||||
typedef VkFlags VkXcbSurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkXcbSurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkXcbSurfaceCreateFlagsKHR flags;
|
||||
xcb_connection_t* connection;
|
||||
xcb_window_t window;
|
||||
} VkXcbSurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
|
||||
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
xcb_connection_t* connection,
|
||||
xcb_visualid_t visual_id);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
66
3rdparty/include/vulkan/vulkan_xlib.h
vendored
Normal file
66
3rdparty/include/vulkan/vulkan_xlib.h
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
#ifndef VULKAN_XLIB_H_
|
||||
#define VULKAN_XLIB_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_KHR_xlib_surface 1
|
||||
#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
|
||||
#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
|
||||
|
||||
typedef VkFlags VkXlibSurfaceCreateFlagsKHR;
|
||||
|
||||
typedef struct VkXlibSurfaceCreateInfoKHR {
|
||||
VkStructureType sType;
|
||||
const void* pNext;
|
||||
VkXlibSurfaceCreateFlagsKHR flags;
|
||||
Display* dpy;
|
||||
Window window;
|
||||
} VkXlibSurfaceCreateInfoKHR;
|
||||
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
|
||||
VkInstance instance,
|
||||
const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
|
||||
const VkAllocationCallbacks* pAllocator,
|
||||
VkSurfaceKHR* pSurface);
|
||||
|
||||
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
uint32_t queueFamilyIndex,
|
||||
Display* dpy,
|
||||
VisualID visualID);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
54
3rdparty/include/vulkan/vulkan_xlib_xrandr.h
vendored
Normal file
54
3rdparty/include/vulkan/vulkan_xlib_xrandr.h
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
#ifndef VULKAN_XLIB_XRANDR_H_
|
||||
#define VULKAN_XLIB_XRANDR_H_ 1
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
** Copyright (c) 2015-2018 The Khronos Group Inc.
|
||||
**
|
||||
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||
** you may not use this file except in compliance with the License.
|
||||
** You may obtain a copy of the License at
|
||||
**
|
||||
** http://www.apache.org/licenses/LICENSE-2.0
|
||||
**
|
||||
** Unless required by applicable law or agreed to in writing, software
|
||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
** See the License for the specific language governing permissions and
|
||||
** limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||
**
|
||||
*/
|
||||
|
||||
|
||||
#define VK_EXT_acquire_xlib_display 1
|
||||
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
|
||||
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
|
||||
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display);
|
||||
typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay);
|
||||
|
||||
#ifndef VK_NO_PROTOTYPES
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
Display* dpy,
|
||||
VkDisplayKHR display);
|
||||
|
||||
VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT(
|
||||
VkPhysicalDevice physicalDevice,
|
||||
Display* dpy,
|
||||
RROutput rrOutput,
|
||||
VkDisplayKHR* pDisplay);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
4
3rdparty/ippicv/CMakeLists.txt
vendored
4
3rdparty/ippicv/CMakeLists.txt
vendored
@@ -17,7 +17,7 @@ file(GLOB lib_hdrs ${IPP_IW_PATH}/include/*.h ${IPP_IW_PATH}/include/iw/*.h ${IP
|
||||
# Define the library target:
|
||||
# ----------------------------------------------------------------------------------
|
||||
|
||||
add_library(${IPP_IW_LIBRARY} STATIC ${lib_srcs} ${lib_hdrs})
|
||||
add_library(${IPP_IW_LIBRARY} STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} ${lib_srcs} ${lib_hdrs})
|
||||
|
||||
if(UNIX)
|
||||
if(CV_GCC OR CV_CLANG OR CV_ICC)
|
||||
@@ -41,5 +41,5 @@ if(ENABLE_SOLUTION_FOLDERS)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
ocv_install_target(${IPP_IW_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
|
||||
ocv_install_target(${IPP_IW_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev OPTIONAL)
|
||||
endif()
|
||||
|
||||
27
3rdparty/ippicv/ippicv.cmake
vendored
27
3rdparty/ippicv/ippicv.cmake
vendored
@@ -2,37 +2,32 @@ function(download_ippicv root_var)
|
||||
set(${root_var} "" PARENT_SCOPE)
|
||||
|
||||
# Commit SHA in the opencv_3rdparty repo
|
||||
set(IPPICV_COMMIT "32e315a5b106a7b89dbed51c28f8120a48b368b4")
|
||||
set(IPPICV_COMMIT "a56b6ac6f030c312b2dce17430eef13aed9af274")
|
||||
# Define actual ICV versions
|
||||
if(APPLE)
|
||||
set(OPENCV_ICV_PLATFORM "macosx")
|
||||
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_mac")
|
||||
if(X86_64)
|
||||
set(OPENCV_ICV_NAME "ippicv_2019_mac_intel64_general_20180723.tgz")
|
||||
set(OPENCV_ICV_HASH "fe6b2bb75ae0e3f19ad3ae1a31dfa4a2")
|
||||
else()
|
||||
set(OPENCV_ICV_NAME "ippicv_2019_mac_ia32_general_20180723.tgz")
|
||||
set(OPENCV_ICV_HASH "b5dfa78c87eb75c64470cbe5ec876f4f")
|
||||
endif()
|
||||
set(OPENCV_ICV_NAME "ippicv_2020_mac_intel64_20191018_general.tgz")
|
||||
set(OPENCV_ICV_HASH "1c3d675c2a2395d094d523024896e01b")
|
||||
elseif((UNIX AND NOT ANDROID) OR (UNIX AND ANDROID_ABI MATCHES "x86"))
|
||||
set(OPENCV_ICV_PLATFORM "linux")
|
||||
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_lnx")
|
||||
if(X86_64)
|
||||
set(OPENCV_ICV_NAME "ippicv_2019_lnx_intel64_general_20180723.tgz")
|
||||
set(OPENCV_ICV_HASH "c0bd78adb4156bbf552c1dfe90599607")
|
||||
set(OPENCV_ICV_NAME "ippicv_2020_lnx_intel64_20191018_general.tgz")
|
||||
set(OPENCV_ICV_HASH "7421de0095c7a39162ae13a6098782f9")
|
||||
else()
|
||||
set(OPENCV_ICV_NAME "ippicv_2019_lnx_ia32_general_20180723.tgz")
|
||||
set(OPENCV_ICV_HASH "4f38432c30bfd6423164b7a24bbc98a0")
|
||||
set(OPENCV_ICV_NAME "ippicv_2020_lnx_ia32_20191018_general.tgz")
|
||||
set(OPENCV_ICV_HASH "ad189a940fb60eb71f291321322fe3e8")
|
||||
endif()
|
||||
elseif(WIN32 AND NOT ARM)
|
||||
set(OPENCV_ICV_PLATFORM "windows")
|
||||
set(OPENCV_ICV_PACKAGE_SUBDIR "ippicv_win")
|
||||
if(X86_64)
|
||||
set(OPENCV_ICV_NAME "ippicv_2019_win_intel64_20180723_general.zip")
|
||||
set(OPENCV_ICV_HASH "1d222685246896fe089f88b8858e4b2f")
|
||||
set(OPENCV_ICV_NAME "ippicv_2020_win_intel64_20191018_general.zip")
|
||||
set(OPENCV_ICV_HASH "879741a7946b814455eee6c6ffde2984")
|
||||
else()
|
||||
set(OPENCV_ICV_NAME "ippicv_2019_win_ia32_20180723_general.zip")
|
||||
set(OPENCV_ICV_HASH "0157251a2eb9cd63a3ebc7eed0f3e59e")
|
||||
set(OPENCV_ICV_NAME "ippicv_2020_win_ia32_20191018_general.zip")
|
||||
set(OPENCV_ICV_HASH "cd39bdf0c2e1cac9a61101dad7a2413e")
|
||||
endif()
|
||||
else()
|
||||
return()
|
||||
|
||||
5
3rdparty/ittnotify/CMakeLists.txt
vendored
5
3rdparty/ittnotify/CMakeLists.txt
vendored
@@ -37,7 +37,7 @@ set(ITT_SRCS
|
||||
src/ittnotify/jitprofiling.c
|
||||
)
|
||||
|
||||
add_library(${ITT_LIBRARY} STATIC ${ITT_SRCS} ${ITT_PUBLIC_HDRS} ${ITT_PRIVATE_HDRS})
|
||||
add_library(${ITT_LIBRARY} STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} ${ITT_SRCS} ${ITT_PUBLIC_HDRS} ${ITT_PRIVATE_HDRS})
|
||||
|
||||
if(NOT WIN32)
|
||||
if(HAVE_DL_LIBRARY)
|
||||
@@ -54,13 +54,14 @@ set_target_properties(${ITT_LIBRARY} PROPERTIES
|
||||
)
|
||||
|
||||
ocv_warnings_disable(CMAKE_C_FLAGS -Wundef -Wsign-compare)
|
||||
ocv_warnings_disable(CMAKE_C_FLAGS -Wstrict-prototypes) # clang15
|
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS)
|
||||
set_target_properties(${ITT_LIBRARY} PROPERTIES FOLDER "3rdparty")
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
ocv_install_target(${ITT_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
|
||||
ocv_install_target(${ITT_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev OPTIONAL)
|
||||
endif()
|
||||
|
||||
ocv_install_3rdparty_licenses(ittnotify src/ittnotify/LICENSE.BSD src/ittnotify/LICENSE.GPL)
|
||||
|
||||
4
3rdparty/libjasper/CMakeLists.txt
vendored
4
3rdparty/libjasper/CMakeLists.txt
vendored
@@ -17,7 +17,7 @@ file(GLOB lib_ext_hdrs jasper/*.h)
|
||||
# Define the library target:
|
||||
# ----------------------------------------------------------------------------------
|
||||
|
||||
add_library(${JASPER_LIBRARY} STATIC ${lib_srcs} ${lib_hdrs} ${lib_ext_hdrs})
|
||||
add_library(${JASPER_LIBRARY} STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} ${lib_srcs} ${lib_hdrs} ${lib_ext_hdrs})
|
||||
|
||||
if(WIN32 AND NOT MINGW)
|
||||
add_definitions(-DJAS_WIN_MSVC_BUILD)
|
||||
@@ -46,7 +46,7 @@ if(ENABLE_SOLUTION_FOLDERS)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
ocv_install_target(${JASPER_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
|
||||
ocv_install_target(${JASPER_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev OPTIONAL)
|
||||
endif()
|
||||
|
||||
ocv_install_3rdparty_licenses(jasper LICENSE README copyright)
|
||||
|
||||
122
3rdparty/libjpeg-turbo/CMakeLists.txt
vendored
122
3rdparty/libjpeg-turbo/CMakeLists.txt
vendored
@@ -3,10 +3,10 @@ project(${JPEG_LIBRARY} C)
|
||||
ocv_warnings_disable(CMAKE_C_FLAGS -Wunused-parameter -Wsign-compare -Wshorten-64-to-32 -Wimplicit-fallthrough)
|
||||
|
||||
set(VERSION_MAJOR 2)
|
||||
set(VERSION_MINOR 0)
|
||||
set(VERSION_REVISION 2)
|
||||
set(VERSION_MINOR 1)
|
||||
set(VERSION_REVISION 3)
|
||||
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION})
|
||||
set(LIBJPEG_TURBO_VERSION_NUMBER 2000002)
|
||||
set(LIBJPEG_TURBO_VERSION_NUMBER 2001003)
|
||||
|
||||
string(TIMESTAMP BUILD "opencv-${OPENCV_VERSION}-libjpeg-turbo")
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
@@ -15,8 +15,53 @@ endif()
|
||||
|
||||
message(STATUS "libjpeg-turbo: VERSION = ${VERSION}, BUILD = ${BUILD}")
|
||||
|
||||
math(EXPR BITS "${CMAKE_SIZEOF_VOID_P} * 8")
|
||||
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_LC)
|
||||
|
||||
if(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86_64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "amd64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "i[0-9]86" OR
|
||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "x86" OR
|
||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "ia32")
|
||||
if(BITS EQUAL 64 OR CMAKE_C_COMPILER_ABI MATCHES "ELF X32")
|
||||
set(CPU_TYPE x86_64)
|
||||
else()
|
||||
set(CPU_TYPE i386)
|
||||
endif()
|
||||
if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL ${CPU_TYPE})
|
||||
set(CMAKE_SYSTEM_PROCESSOR ${CPU_TYPE})
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR_LC STREQUAL "aarch64" OR
|
||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^arm")
|
||||
if(BITS EQUAL 64)
|
||||
set(CPU_TYPE arm64)
|
||||
else()
|
||||
set(CPU_TYPE arm)
|
||||
endif()
|
||||
elseif(CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^ppc" OR
|
||||
CMAKE_SYSTEM_PROCESSOR_LC MATCHES "^powerpc")
|
||||
set(CPU_TYPE powerpc)
|
||||
else()
|
||||
set(CPU_TYPE ${CMAKE_SYSTEM_PROCESSOR_LC})
|
||||
endif()
|
||||
if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64" OR
|
||||
CMAKE_OSX_ARCHITECTURES MATCHES "arm64" OR
|
||||
CMAKE_OSX_ARCHITECTURES MATCHES "i386")
|
||||
set(CPU_TYPE ${CMAKE_OSX_ARCHITECTURES})
|
||||
endif()
|
||||
if(CMAKE_OSX_ARCHITECTURES MATCHES "ppc")
|
||||
set(CPU_TYPE powerpc)
|
||||
endif()
|
||||
if(MSVC_IDE AND CMAKE_GENERATOR_PLATFORM MATCHES "arm64")
|
||||
set(CPU_TYPE arm64)
|
||||
endif()
|
||||
|
||||
OCV_OPTION(ENABLE_LIBJPEG_TURBO_SIMD "Include SIMD extensions for libjpeg-turbo, if available for this platform" (NOT CV_DISABLE_OPTIMIZATION)
|
||||
VISIBLE_IF BUILD_JPEG)
|
||||
option(WITH_ARITH_ENC "Include arithmetic encoding support when emulating the libjpeg v6b API/ABI" TRUE)
|
||||
option(WITH_ARITH_DEC "Include arithmetic decoding support when emulating the libjpeg v6b API/ABI" TRUE)
|
||||
set(WITH_SIMD 1)
|
||||
set(HAVE_LIBJPEG_TURBO_SIMD 0 PARENT_SCOPE)
|
||||
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckIncludeFiles)
|
||||
@@ -46,7 +91,6 @@ if(UNIX)
|
||||
ocv_update(HAVE_UNSIGNED_SHORT 1)
|
||||
# undef INCOMPLETE_TYPES_BROKEN
|
||||
ocv_update(RIGHT_SHIFT_IS_UNSIGNED 0)
|
||||
ocv_update(__CHAR_UNSIGNED__ 0)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -65,6 +109,8 @@ set(JPEG_LIB_VERSION 62)
|
||||
# OpenCV
|
||||
set(JPEG_LIB_VERSION "${VERSION}-${JPEG_LIB_VERSION}" PARENT_SCOPE)
|
||||
|
||||
set(THREAD_LOCAL "") # WITH_TURBOJPEG is not used
|
||||
|
||||
if(MSVC)
|
||||
add_definitions(-W3 -wd4996 -wd4018)
|
||||
endif()
|
||||
@@ -78,14 +124,13 @@ configure_file(jconfigint.h.in jconfigint.h)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
|
||||
set(JPEG_SOURCES
|
||||
jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c jcicc.c
|
||||
jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c jcphuff.c
|
||||
jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c jdatasrc.c
|
||||
jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdicc.c jdinput.c jdmainct.c jdmarker.c
|
||||
jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c jdtrans.c jerror.c
|
||||
jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c
|
||||
jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c)
|
||||
set(JPEG_SOURCES jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c
|
||||
jcicc.c jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c
|
||||
jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c jdatadst.c
|
||||
jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c jdicc.c jdinput.c
|
||||
jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c jdpostct.c jdsample.c
|
||||
jdtrans.c jerror.c jfdctflt.c jfdctfst.c jfdctint.c jidctflt.c jidctfst.c
|
||||
jidctint.c jidctred.c jquant1.c jquant2.c jutils.c jmemmgr.c jmemnobs.c)
|
||||
|
||||
if(WITH_ARITH_ENC OR WITH_ARITH_DEC)
|
||||
set(JPEG_SOURCES ${JPEG_SOURCES} jaricom.c)
|
||||
@@ -99,12 +144,57 @@ if(WITH_ARITH_DEC)
|
||||
set(JPEG_SOURCES ${JPEG_SOURCES} jdarith.c)
|
||||
endif()
|
||||
|
||||
# No SIMD
|
||||
set(JPEG_SOURCES ${JPEG_SOURCES} jsimd_none.c)
|
||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
|
||||
# Use the maximum optimization level for release builds
|
||||
foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO)
|
||||
if(${var} MATCHES "-O2")
|
||||
string(REGEX REPLACE "-O2" "-O3" ${var} "${${var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "SunPro")
|
||||
# Use the maximum optimization level for release builds
|
||||
foreach(var CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO)
|
||||
if(${var} MATCHES "-xO3")
|
||||
string(REGEX REPLACE "-xO3" "-xO5" ${var} "${${var}}")
|
||||
endif()
|
||||
if(${var} MATCHES "-xO2")
|
||||
string(REGEX REPLACE "-xO2" "-xO5" ${var} "${${var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ENABLE_LIBJPEG_TURBO_SIMD)
|
||||
add_subdirectory(src/simd)
|
||||
if(NEON_INTRINSICS)
|
||||
add_definitions(-DNEON_INTRINSICS)
|
||||
endif()
|
||||
else()
|
||||
set(WITH_SIMD 0)
|
||||
endif()
|
||||
|
||||
if(WITH_SIMD)
|
||||
message(STATUS "SIMD extensions: ${CPU_TYPE} (WITH_SIMD = ${WITH_SIMD})")
|
||||
set(HAVE_LIBJPEG_TURBO_SIMD 1 PARENT_SCOPE)
|
||||
if(MSVC_IDE OR XCODE)
|
||||
set_source_files_properties(${SIMD_OBJS} PROPERTIES GENERATED 1)
|
||||
endif()
|
||||
else()
|
||||
add_library(jsimd OBJECT src/jsimd_none.c)
|
||||
set_target_properties(jsimd PROPERTIES FOLDER "3rdparty")
|
||||
if(NOT WIN32 AND (CMAKE_POSITION_INDEPENDENT_CODE OR ENABLE_SHARED))
|
||||
set_target_properties(jsimd PROPERTIES POSITION_INDEPENDENT_CODE 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
ocv_list_add_prefix(JPEG_SOURCES src/)
|
||||
|
||||
add_library(${JPEG_LIBRARY} STATIC ${JPEG_SOURCES} ${SIMD_OBJS})
|
||||
set(JPEG_SOURCES ${JPEG_SOURCES} ${SIMD_OBJS})
|
||||
|
||||
add_library(${JPEG_LIBRARY} STATIC ${OPENCV_3RDPARTY_EXCLUDE_FROM_ALL} ${JPEG_SOURCES} $<TARGET_OBJECTS:jsimd> ${SIMD_OBJS})
|
||||
|
||||
set_target_properties(${JPEG_LIBRARY}
|
||||
PROPERTIES OUTPUT_NAME ${JPEG_LIBRARY}
|
||||
@@ -119,7 +209,7 @@ if(ENABLE_SOLUTION_FOLDERS)
|
||||
endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
ocv_install_target(${JPEG_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev)
|
||||
ocv_install_target(${JPEG_LIBRARY} EXPORT OpenCVModules ARCHIVE DESTINATION ${OPENCV_3P_LIB_INSTALL_PATH} COMPONENT dev OPTIONAL)
|
||||
endif()
|
||||
|
||||
ocv_install_3rdparty_licenses(libjpeg-turbo README.md LICENSE.md README.ijg)
|
||||
|
||||
2
3rdparty/libjpeg-turbo/LICENSE.md
vendored
2
3rdparty/libjpeg-turbo/LICENSE.md
vendored
@@ -91,7 +91,7 @@ best of our understanding.
|
||||
The Modified (3-clause) BSD License
|
||||
===================================
|
||||
|
||||
Copyright (C)2009-2019 D. R. Commander. All Rights Reserved.
|
||||
Copyright (C)2009-2022 D. R. Commander. All Rights Reserved.<br>
|
||||
Copyright (C)2015 Viktor Szathmáry. All Rights Reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
||||
37
3rdparty/libjpeg-turbo/README.ijg
vendored
37
3rdparty/libjpeg-turbo/README.ijg
vendored
@@ -128,7 +128,7 @@ with respect to this software, its quality, accuracy, merchantability, or
|
||||
fitness for a particular purpose. This software is provided "AS IS", and you,
|
||||
its user, assume the entire risk as to its quality and accuracy.
|
||||
|
||||
This software is copyright (C) 1991-2016, Thomas G. Lane, Guido Vollbeding.
|
||||
This software is copyright (C) 1991-2020, Thomas G. Lane, Guido Vollbeding.
|
||||
All Rights Reserved except as specified below.
|
||||
|
||||
Permission is hereby granted to use, copy, modify, and distribute this
|
||||
@@ -159,19 +159,6 @@ commercial products, provided that all warranty or liability claims are
|
||||
assumed by the product vendor.
|
||||
|
||||
|
||||
The IJG distribution formerly included code to read and write GIF files.
|
||||
To avoid entanglement with the Unisys LZW patent (now expired), GIF reading
|
||||
support has been removed altogether, and the GIF writer has been simplified
|
||||
to produce "uncompressed GIFs". This technique does not use the LZW
|
||||
algorithm; the resulting GIF files are larger than usual, but are readable
|
||||
by all standard GIF decoders.
|
||||
|
||||
We are required to state that
|
||||
"The Graphics Interchange Format(c) is the Copyright property of
|
||||
CompuServe Incorporated. GIF(sm) is a Service Mark property of
|
||||
CompuServe Incorporated."
|
||||
|
||||
|
||||
REFERENCES
|
||||
==========
|
||||
|
||||
@@ -223,12 +210,12 @@ https://www.iso.org/standard/54989.html and http://www.itu.int/rec/T-REC-T.871.
|
||||
A PDF file of the older JFIF 1.02 specification is available at
|
||||
http://www.w3.org/Graphics/JPEG/jfif3.pdf.
|
||||
|
||||
The TIFF 6.0 file format specification can be obtained by FTP from
|
||||
ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme
|
||||
found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
|
||||
IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
|
||||
Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
|
||||
(Compression tag 7). Copies of this Note can be obtained from
|
||||
The TIFF 6.0 file format specification can be obtained from
|
||||
http://mirrors.ctan.org/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation
|
||||
scheme found in the TIFF 6.0 spec of 3-June-92 has a number of serious
|
||||
problems. IJG does not recommend use of the TIFF 6.0 design (TIFF Compression
|
||||
tag 6). Instead, we recommend the JPEG design proposed by TIFF Technical Note
|
||||
#2 (Compression tag 7). Copies of this Note can be obtained from
|
||||
http://www.ijg.org/files/. It is expected that the next revision
|
||||
of the TIFF spec will replace the 6.0 JPEG design with the Note's design.
|
||||
Although IJG's own code does not support TIFF/JPEG, the free libtiff library
|
||||
@@ -243,14 +230,8 @@ The most recent released version can always be found there in
|
||||
directory "files".
|
||||
|
||||
The JPEG FAQ (Frequently Asked Questions) article is a source of some
|
||||
general information about JPEG.
|
||||
It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/
|
||||
and other news.answers archive sites, including the official news.answers
|
||||
archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.
|
||||
If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu
|
||||
with body
|
||||
send usenet/news.answers/jpeg-faq/part1
|
||||
send usenet/news.answers/jpeg-faq/part2
|
||||
general information about JPEG. It is available at
|
||||
http://www.faqs.org/faqs/jpeg-faq.
|
||||
|
||||
|
||||
FILE FORMAT COMPATIBILITY
|
||||
|
||||
81
3rdparty/libjpeg-turbo/README.md
vendored
81
3rdparty/libjpeg-turbo/README.md
vendored
@@ -1,14 +1,14 @@
|
||||
Background
|
||||
==========
|
||||
|
||||
libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2,
|
||||
AVX2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression
|
||||
on x86, x86-64, ARM, and PowerPC systems, as well as progressive JPEG
|
||||
compression on x86 and x86-64 systems. On such systems, libjpeg-turbo is
|
||||
generally 2-6x as fast as libjpeg, all else being equal. On other types of
|
||||
systems, libjpeg-turbo can still outperform libjpeg by a significant amount, by
|
||||
virtue of its highly-optimized Huffman coding routines. In many cases, the
|
||||
performance of libjpeg-turbo rivals that of proprietary high-speed JPEG codecs.
|
||||
libjpeg-turbo is a JPEG image codec that uses SIMD instructions to accelerate
|
||||
baseline JPEG compression and decompression on x86, x86-64, Arm, PowerPC, and
|
||||
MIPS systems, as well as progressive JPEG compression on x86, x86-64, and Arm
|
||||
systems. On such systems, libjpeg-turbo is generally 2-6x as fast as libjpeg,
|
||||
all else being equal. On other types of systems, libjpeg-turbo can still
|
||||
outperform libjpeg by a significant amount, by virtue of its highly-optimized
|
||||
Huffman coding routines. In many cases, the performance of libjpeg-turbo
|
||||
rivals that of proprietary high-speed JPEG codecs.
|
||||
|
||||
libjpeg-turbo implements both the traditional libjpeg API as well as the less
|
||||
powerful but more straightforward TurboJPEG API. libjpeg-turbo also features
|
||||
@@ -135,25 +135,24 @@ without recompiling. libjpeg-turbo does not claim to support all of the
|
||||
libjpeg v7+ features, nor to produce identical output to libjpeg v7+ in all
|
||||
cases (see below.)
|
||||
|
||||
By passing an argument of `--with-jpeg7` or `--with-jpeg8` to `configure`, or
|
||||
an argument of `-DWITH_JPEG7=1` or `-DWITH_JPEG8=1` to `cmake`, you can build a
|
||||
version of libjpeg-turbo that emulates the libjpeg v7 or v8 ABI, so that
|
||||
programs that are built against libjpeg v7 or v8 can be run with libjpeg-turbo.
|
||||
The following section describes which libjpeg v7+ features are supported and
|
||||
which aren't.
|
||||
By passing an argument of `-DWITH_JPEG7=1` or `-DWITH_JPEG8=1` to `cmake`, you
|
||||
can build a version of libjpeg-turbo that emulates the libjpeg v7 or v8 ABI, so
|
||||
that programs that are built against libjpeg v7 or v8 can be run with
|
||||
libjpeg-turbo. The following section describes which libjpeg v7+ features are
|
||||
supported and which aren't.
|
||||
|
||||
### Support for libjpeg v7 and v8 Features
|
||||
|
||||
#### Fully supported
|
||||
|
||||
- **libjpeg: IDCT scaling extensions in decompressor**<br>
|
||||
- **libjpeg API: IDCT scaling extensions in decompressor**<br>
|
||||
libjpeg-turbo supports IDCT scaling with scaling factors of 1/8, 1/4, 3/8,
|
||||
1/2, 5/8, 3/4, 7/8, 9/8, 5/4, 11/8, 3/2, 13/8, 7/4, 15/8, and 2/1 (only 1/4
|
||||
and 1/2 are SIMD-accelerated.)
|
||||
|
||||
- **libjpeg: Arithmetic coding**
|
||||
- **libjpeg API: Arithmetic coding**
|
||||
|
||||
- **libjpeg: In-memory source and destination managers**<br>
|
||||
- **libjpeg API: In-memory source and destination managers**<br>
|
||||
See notes below.
|
||||
|
||||
- **cjpeg: Separate quality settings for luminance and chrominance**<br>
|
||||
@@ -180,19 +179,19 @@ which aren't.
|
||||
|
||||
NOTE: As of this writing, extensive research has been conducted into the
|
||||
usefulness of DCT scaling as a means of data reduction and SmartScale as a
|
||||
means of quality improvement. The reader is invited to peruse the research at
|
||||
<http://www.libjpeg-turbo.org/About/SmartScale> and draw his/her own conclusions,
|
||||
means of quality improvement. Readers are invited to peruse the research at
|
||||
<http://www.libjpeg-turbo.org/About/SmartScale> and draw their own conclusions,
|
||||
but it is the general belief of our project that these features have not
|
||||
demonstrated sufficient usefulness to justify inclusion in libjpeg-turbo.
|
||||
|
||||
- **libjpeg: DCT scaling in compressor**<br>
|
||||
- **libjpeg API: DCT scaling in compressor**<br>
|
||||
`cinfo.scale_num` and `cinfo.scale_denom` are silently ignored.
|
||||
There is no technical reason why DCT scaling could not be supported when
|
||||
emulating the libjpeg v7+ API/ABI, but without the SmartScale extension (see
|
||||
below), only scaling factors of 1/2, 8/15, 4/7, 8/13, 2/3, 8/11, 4/5, and
|
||||
8/9 would be available, which is of limited usefulness.
|
||||
|
||||
- **libjpeg: SmartScale**<br>
|
||||
- **libjpeg API: SmartScale**<br>
|
||||
`cinfo.block_size` is silently ignored.
|
||||
SmartScale is an extension to the JPEG format that allows for DCT block
|
||||
sizes other than 8x8. Providing support for this new format would be
|
||||
@@ -205,7 +204,7 @@ demonstrated sufficient usefulness to justify inclusion in libjpeg-turbo.
|
||||
interest in providing this feature would be as a means of supporting
|
||||
additional DCT scaling factors.
|
||||
|
||||
- **libjpeg: Fancy downsampling in compressor**<br>
|
||||
- **libjpeg API: Fancy downsampling in compressor**<br>
|
||||
`cinfo.do_fancy_downsampling` is silently ignored.
|
||||
This requires the DCT scaling feature, which is not supported.
|
||||
|
||||
@@ -247,15 +246,14 @@ don't, and it allows those functions to be provided in the "official"
|
||||
libjpeg-turbo binaries.
|
||||
|
||||
Those who are concerned about maintaining strict conformance with the libjpeg
|
||||
v6b or v7 API can pass an argument of `--without-mem-srcdst` to `configure` or
|
||||
an argument of `-DWITH_MEM_SRCDST=0` to `cmake` prior to building
|
||||
libjpeg-turbo. This will restore the pre-1.3 behavior, in which
|
||||
v6b or v7 API can pass an argument of `-DWITH_MEM_SRCDST=0` to `cmake` prior to
|
||||
building libjpeg-turbo. This will restore the pre-1.3 behavior, in which
|
||||
`jpeg_mem_src()` and `jpeg_mem_dest()` are only included when emulating the
|
||||
libjpeg v8 API/ABI.
|
||||
|
||||
On Un*x systems, including the in-memory source/destination managers changes
|
||||
the dynamic library version from 62.1.0 to 62.2.0 if using libjpeg v6b API/ABI
|
||||
emulation and from 7.1.0 to 7.2.0 if using libjpeg v7 API/ABI emulation.
|
||||
the dynamic library version from 62.2.0 to 62.3.0 if using libjpeg v6b API/ABI
|
||||
emulation and from 7.2.0 to 7.3.0 if using libjpeg v7 API/ABI emulation.
|
||||
|
||||
Note that, on most Un*x systems, the dynamic linker will not look for a
|
||||
function in a library until that function is actually used. Thus, if a program
|
||||
@@ -289,12 +287,13 @@ following reasons:
|
||||
(and slightly faster) floating point IDCT algorithm introduced in libjpeg
|
||||
v8a as opposed to the algorithm used in libjpeg v6b. It should be noted,
|
||||
however, that this algorithm basically brings the accuracy of the floating
|
||||
point IDCT in line with the accuracy of the slow integer IDCT. The floating
|
||||
point DCT/IDCT algorithms are mainly a legacy feature, and they do not
|
||||
produce significantly more accuracy than the slow integer algorithms (to put
|
||||
numbers on this, the typical difference in PNSR between the two algorithms
|
||||
is less than 0.10 dB, whereas changing the quality level by 1 in the upper
|
||||
range of the quality scale is typically more like a 1.0 dB difference.)
|
||||
point IDCT in line with the accuracy of the accurate integer IDCT. The
|
||||
floating point DCT/IDCT algorithms are mainly a legacy feature, and they do
|
||||
not produce significantly more accuracy than the accurate integer algorithms
|
||||
(to put numbers on this, the typical difference in PNSR between the two
|
||||
algorithms is less than 0.10 dB, whereas changing the quality level by 1 in
|
||||
the upper range of the quality scale is typically more like a 1.0 dB
|
||||
difference.)
|
||||
|
||||
- If the floating point algorithms in libjpeg-turbo are not implemented using
|
||||
SIMD instructions on a particular platform, then the accuracy of the
|
||||
@@ -331,7 +330,7 @@ in a way that makes the rest of the libjpeg infrastructure happy, so it is
|
||||
necessary to use the slow Huffman decoder when decompressing a JPEG image that
|
||||
has restart markers. This can cause the decompression performance to drop by
|
||||
as much as 20%, but the performance will still be much greater than that of
|
||||
libjpeg. Many consumer packages, such as PhotoShop, use restart markers when
|
||||
libjpeg. Many consumer packages, such as Photoshop, use restart markers when
|
||||
generating JPEG images, so images generated by those programs will experience
|
||||
this issue.
|
||||
|
||||
@@ -342,5 +341,17 @@ The algorithm used by the SIMD-accelerated quantization function cannot produce
|
||||
correct results whenever the fast integer forward DCT is used along with a JPEG
|
||||
quality of 98-100. Thus, libjpeg-turbo must use the non-SIMD quantization
|
||||
function in those cases. This causes performance to drop by as much as 40%.
|
||||
It is therefore strongly advised that you use the slow integer forward DCT
|
||||
It is therefore strongly advised that you use the accurate integer forward DCT
|
||||
whenever encoding images with a JPEG quality of 98 or higher.
|
||||
|
||||
|
||||
Memory Debugger Pitfalls
|
||||
========================
|
||||
|
||||
Valgrind and Memory Sanitizer (MSan) can generate false positives
|
||||
(specifically, incorrect reports of uninitialized memory accesses) when used
|
||||
with libjpeg-turbo's SIMD extensions. It is generally recommended that the
|
||||
SIMD extensions be disabled, either by passing an argument of `-DWITH_SIMD=0`
|
||||
to `cmake` when configuring the build or by setting the environment variable
|
||||
`JSIMD_FORCENONE` to `1` at run time, when testing libjpeg-turbo with Valgrind,
|
||||
MSan, or other memory debuggers.
|
||||
|
||||
5
3rdparty/libjpeg-turbo/jconfig.h.in
vendored
5
3rdparty/libjpeg-turbo/jconfig.h.in
vendored
@@ -61,11 +61,6 @@
|
||||
unsigned. */
|
||||
#cmakedefine RIGHT_SHIFT_IS_UNSIGNED 1
|
||||
|
||||
/* Define to 1 if type `char' is unsigned and you are not using gcc. */
|
||||
#ifndef __CHAR_UNSIGNED__
|
||||
#cmakedefine __CHAR_UNSIGNED__ 1
|
||||
#endif
|
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */
|
||||
/* #undef const */
|
||||
|
||||
|
||||
1
3rdparty/libjpeg-turbo/jconfig.h.win.in
vendored
1
3rdparty/libjpeg-turbo/jconfig.h.win.in
vendored
@@ -18,7 +18,6 @@
|
||||
#define HAVE_UNSIGNED_SHORT
|
||||
#undef INCOMPLETE_TYPES_BROKEN
|
||||
#undef RIGHT_SHIFT_IS_UNSIGNED
|
||||
#undef __CHAR_UNSIGNED__
|
||||
|
||||
/* Define "boolean" as unsigned char, not int, per Windows custom */
|
||||
#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */
|
||||
|
||||
13
3rdparty/libjpeg-turbo/jconfigint.h.in
vendored
13
3rdparty/libjpeg-turbo/jconfigint.h.in
vendored
@@ -15,6 +15,9 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* How to obtain thread-local storage */
|
||||
#define THREAD_LOCAL @THREAD_LOCAL@
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "@CMAKE_PROJECT_NAME@"
|
||||
|
||||
@@ -37,3 +40,13 @@
|
||||
#define HAVE_BITSCANFORWARD
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__has_attribute)
|
||||
#if __has_attribute(fallthrough)
|
||||
#define FALLTHROUGH __attribute__((fallthrough));
|
||||
#else
|
||||
#define FALLTHROUGH
|
||||
#endif
|
||||
#else
|
||||
#define FALLTHROUGH
|
||||
#endif
|
||||
|
||||
6
3rdparty/libjpeg-turbo/src/jcapimin.c
vendored
6
3rdparty/libjpeg-turbo/src/jcapimin.c
vendored
@@ -4,8 +4,8 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1994-1998, Thomas G. Lane.
|
||||
* Modified 2003-2010 by Guido Vollbeding.
|
||||
* It was modified by The libjpeg-turbo Project to include only code relevant
|
||||
* to libjpeg-turbo.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -52,7 +52,7 @@ jpeg_CreateCompress(j_compress_ptr cinfo, int version, size_t structsize)
|
||||
{
|
||||
struct jpeg_error_mgr *err = cinfo->err;
|
||||
void *client_data = cinfo->client_data; /* ignore Purify complaint here */
|
||||
MEMZERO(cinfo, sizeof(struct jpeg_compress_struct));
|
||||
memset(cinfo, 0, sizeof(struct jpeg_compress_struct));
|
||||
cinfo->err = err;
|
||||
cinfo->client_data = client_data;
|
||||
}
|
||||
|
||||
12
3rdparty/libjpeg-turbo/src/jcarith.c
vendored
12
3rdparty/libjpeg-turbo/src/jcarith.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Developed 1997-2009 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2015, 2018, D. R. Commander.
|
||||
* Copyright (C) 2015, 2018, 2021-2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -338,14 +338,14 @@ emit_restart(j_compress_ptr cinfo, int restart_num)
|
||||
compptr = cinfo->cur_comp_info[ci];
|
||||
/* DC needs no table for refinement scan */
|
||||
if (cinfo->progressive_mode == 0 || (cinfo->Ss == 0 && cinfo->Ah == 0)) {
|
||||
MEMZERO(entropy->dc_stats[compptr->dc_tbl_no], DC_STAT_BINS);
|
||||
memset(entropy->dc_stats[compptr->dc_tbl_no], 0, DC_STAT_BINS);
|
||||
/* Reset DC predictions to 0 */
|
||||
entropy->last_dc_val[ci] = 0;
|
||||
entropy->dc_context[ci] = 0;
|
||||
}
|
||||
/* AC needs no table when not present */
|
||||
if (cinfo->progressive_mode == 0 || cinfo->Se) {
|
||||
MEMZERO(entropy->ac_stats[compptr->ac_tbl_no], AC_STAT_BINS);
|
||||
memset(entropy->ac_stats[compptr->ac_tbl_no], 0, AC_STAT_BINS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -836,7 +836,7 @@ start_pass(j_compress_ptr cinfo, boolean gather_statistics)
|
||||
* We are fully adaptive here and need no extra
|
||||
* statistics gathering pass!
|
||||
*/
|
||||
ERREXIT(cinfo, JERR_NOT_COMPILED);
|
||||
ERREXIT(cinfo, JERR_NOTIMPL);
|
||||
|
||||
/* We assume jcmaster.c already validated the progressive scan parameters. */
|
||||
|
||||
@@ -867,7 +867,7 @@ start_pass(j_compress_ptr cinfo, boolean gather_statistics)
|
||||
if (entropy->dc_stats[tbl] == NULL)
|
||||
entropy->dc_stats[tbl] = (unsigned char *)(*cinfo->mem->alloc_small)
|
||||
((j_common_ptr)cinfo, JPOOL_IMAGE, DC_STAT_BINS);
|
||||
MEMZERO(entropy->dc_stats[tbl], DC_STAT_BINS);
|
||||
memset(entropy->dc_stats[tbl], 0, DC_STAT_BINS);
|
||||
/* Initialize DC predictions to 0 */
|
||||
entropy->last_dc_val[ci] = 0;
|
||||
entropy->dc_context[ci] = 0;
|
||||
@@ -880,7 +880,7 @@ start_pass(j_compress_ptr cinfo, boolean gather_statistics)
|
||||
if (entropy->ac_stats[tbl] == NULL)
|
||||
entropy->ac_stats[tbl] = (unsigned char *)(*cinfo->mem->alloc_small)
|
||||
((j_common_ptr)cinfo, JPOOL_IMAGE, AC_STAT_BINS);
|
||||
MEMZERO(entropy->ac_stats[tbl], AC_STAT_BINS);
|
||||
memset(entropy->ac_stats[tbl], 0, AC_STAT_BINS);
|
||||
#ifdef CALCULATE_SPECTRAL_CONDITIONING
|
||||
if (cinfo->progressive_mode)
|
||||
/* Section G.1.3.2: Set appropriate arithmetic conditioning value Kx */
|
||||
|
||||
18
3rdparty/libjpeg-turbo/src/jccolext.c
vendored
18
3rdparty/libjpeg-turbo/src/jccolext.c
vendored
@@ -48,9 +48,9 @@ rgb_ycc_convert_internal(j_compress_ptr cinfo, JSAMPARRAY input_buf,
|
||||
outptr2 = output_buf[2][output_row];
|
||||
output_row++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
r = GETJSAMPLE(inptr[RGB_RED]);
|
||||
g = GETJSAMPLE(inptr[RGB_GREEN]);
|
||||
b = GETJSAMPLE(inptr[RGB_BLUE]);
|
||||
r = inptr[RGB_RED];
|
||||
g = inptr[RGB_GREEN];
|
||||
b = inptr[RGB_BLUE];
|
||||
inptr += RGB_PIXELSIZE;
|
||||
/* If the inputs are 0..MAXJSAMPLE, the outputs of these equations
|
||||
* must be too; we do not need an explicit range-limiting operation.
|
||||
@@ -100,9 +100,9 @@ rgb_gray_convert_internal(j_compress_ptr cinfo, JSAMPARRAY input_buf,
|
||||
outptr = output_buf[0][output_row];
|
||||
output_row++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
r = GETJSAMPLE(inptr[RGB_RED]);
|
||||
g = GETJSAMPLE(inptr[RGB_GREEN]);
|
||||
b = GETJSAMPLE(inptr[RGB_BLUE]);
|
||||
r = inptr[RGB_RED];
|
||||
g = inptr[RGB_GREEN];
|
||||
b = inptr[RGB_BLUE];
|
||||
inptr += RGB_PIXELSIZE;
|
||||
/* Y */
|
||||
outptr[col] = (JSAMPLE)((ctab[r + R_Y_OFF] + ctab[g + G_Y_OFF] +
|
||||
@@ -135,9 +135,9 @@ rgb_rgb_convert_internal(j_compress_ptr cinfo, JSAMPARRAY input_buf,
|
||||
outptr2 = output_buf[2][output_row];
|
||||
output_row++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
outptr0[col] = GETJSAMPLE(inptr[RGB_RED]);
|
||||
outptr1[col] = GETJSAMPLE(inptr[RGB_GREEN]);
|
||||
outptr2[col] = GETJSAMPLE(inptr[RGB_BLUE]);
|
||||
outptr0[col] = inptr[RGB_RED];
|
||||
outptr1[col] = inptr[RGB_GREEN];
|
||||
outptr2[col] = inptr[RGB_BLUE];
|
||||
inptr += RGB_PIXELSIZE;
|
||||
}
|
||||
}
|
||||
|
||||
12
3rdparty/libjpeg-turbo/src/jccolor.c
vendored
12
3rdparty/libjpeg-turbo/src/jccolor.c
vendored
@@ -392,11 +392,11 @@ cmyk_ycck_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf,
|
||||
outptr3 = output_buf[3][output_row];
|
||||
output_row++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
r = MAXJSAMPLE - GETJSAMPLE(inptr[0]);
|
||||
g = MAXJSAMPLE - GETJSAMPLE(inptr[1]);
|
||||
b = MAXJSAMPLE - GETJSAMPLE(inptr[2]);
|
||||
r = MAXJSAMPLE - inptr[0];
|
||||
g = MAXJSAMPLE - inptr[1];
|
||||
b = MAXJSAMPLE - inptr[2];
|
||||
/* K passes through as-is */
|
||||
outptr3[col] = inptr[3]; /* don't need GETJSAMPLE here */
|
||||
outptr3[col] = inptr[3];
|
||||
inptr += 4;
|
||||
/* If the inputs are 0..MAXJSAMPLE, the outputs of these equations
|
||||
* must be too; we do not need an explicit range-limiting operation.
|
||||
@@ -438,7 +438,7 @@ grayscale_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf,
|
||||
outptr = output_buf[0][output_row];
|
||||
output_row++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
outptr[col] = inptr[0]; /* don't need GETJSAMPLE() here */
|
||||
outptr[col] = inptr[0];
|
||||
inptr += instride;
|
||||
}
|
||||
}
|
||||
@@ -497,7 +497,7 @@ null_convert(j_compress_ptr cinfo, JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
|
||||
inptr = *input_buf;
|
||||
outptr = output_buf[ci][output_row];
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
outptr[col] = inptr[ci]; /* don't need GETJSAMPLE() here */
|
||||
outptr[col] = inptr[ci];
|
||||
inptr += nc;
|
||||
}
|
||||
}
|
||||
|
||||
37
3rdparty/libjpeg-turbo/src/jcdctmgr.c
vendored
37
3rdparty/libjpeg-turbo/src/jcdctmgr.c
vendored
@@ -381,19 +381,19 @@ convsamp(JSAMPARRAY sample_data, JDIMENSION start_col, DCTELEM *workspace)
|
||||
elemptr = sample_data[elemr] + start_col;
|
||||
|
||||
#if DCTSIZE == 8 /* unroll the inner loop */
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
#else
|
||||
{
|
||||
register int elemc;
|
||||
for (elemc = DCTSIZE; elemc > 0; elemc--)
|
||||
*workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE;
|
||||
*workspaceptr++ = (*elemptr++) - CENTERJSAMPLE;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@@ -533,20 +533,19 @@ convsamp_float(JSAMPARRAY sample_data, JDIMENSION start_col,
|
||||
for (elemr = 0; elemr < DCTSIZE; elemr++) {
|
||||
elemptr = sample_data[elemr] + start_col;
|
||||
#if DCTSIZE == 8 /* unroll the inner loop */
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
#else
|
||||
{
|
||||
register int elemc;
|
||||
for (elemc = DCTSIZE; elemc > 0; elemc--)
|
||||
*workspaceptr++ = (FAST_FLOAT)
|
||||
(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE);
|
||||
*workspaceptr++ = (FAST_FLOAT)((*elemptr++) - CENTERJSAMPLE);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
421
3rdparty/libjpeg-turbo/src/jchuff.c
vendored
421
3rdparty/libjpeg-turbo/src/jchuff.c
vendored
@@ -4,8 +4,10 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2009-2011, 2014-2016, 2018, D. R. Commander.
|
||||
* Copyright (C) 2009-2011, 2014-2016, 2018-2022, D. R. Commander.
|
||||
* Copyright (C) 2015, Matthieu Darbois.
|
||||
* Copyright (C) 2018, Matthias Räncker.
|
||||
* Copyright (C) 2020, Arm Limited.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -34,23 +36,28 @@
|
||||
* memory footprint by 64k, which is important for some mobile applications
|
||||
* that create many isolated instances of libjpeg-turbo (web browsers, for
|
||||
* instance.) This may improve performance on some mobile platforms as well.
|
||||
* This feature is enabled by default only on ARM processors, because some x86
|
||||
* This feature is enabled by default only on Arm processors, because some x86
|
||||
* chips have a slow implementation of bsr, and the use of clz/bsr cannot be
|
||||
* shown to have a significant performance impact even on the x86 chips that
|
||||
* have a fast implementation of it. When building for ARMv6, you can
|
||||
* have a fast implementation of it. When building for Armv6, you can
|
||||
* explicitly disable the use of clz/bsr by adding -mthumb to the compiler
|
||||
* flags (this defines __thumb__).
|
||||
*/
|
||||
|
||||
/* NOTE: Both GCC and Clang define __GNUC__ */
|
||||
#if defined __GNUC__ && (defined __arm__ || defined __aarch64__)
|
||||
#if !defined __thumb__ || defined __thumb2__
|
||||
#if (defined(__GNUC__) && (defined(__arm__) || defined(__aarch64__))) || \
|
||||
defined(_M_ARM) || defined(_M_ARM64)
|
||||
#if !defined(__thumb__) || defined(__thumb2__)
|
||||
#define USE_CLZ_INTRINSIC
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef USE_CLZ_INTRINSIC
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#define JPEG_NBITS_NONZERO(x) (32 - _CountLeadingZeros(x))
|
||||
#else
|
||||
#define JPEG_NBITS_NONZERO(x) (32 - __builtin_clz(x))
|
||||
#endif
|
||||
#define JPEG_NBITS(x) (x ? JPEG_NBITS_NONZERO(x) : 0)
|
||||
#else
|
||||
#include "jpeg_nbits_table.h"
|
||||
@@ -65,32 +72,43 @@
|
||||
* but must not be updated permanently until we complete the MCU.
|
||||
*/
|
||||
|
||||
#if defined(__x86_64__) && defined(__ILP32__)
|
||||
typedef unsigned long long bit_buf_type;
|
||||
#else
|
||||
typedef size_t bit_buf_type;
|
||||
#endif
|
||||
|
||||
/* NOTE: The more optimal Huffman encoding algorithm is only used by the
|
||||
* intrinsics implementation of the Arm Neon SIMD extensions, which is why we
|
||||
* retain the old Huffman encoder behavior when using the GAS implementation.
|
||||
*/
|
||||
#if defined(WITH_SIMD) && !(defined(__arm__) || defined(__aarch64__) || \
|
||||
defined(_M_ARM) || defined(_M_ARM64))
|
||||
typedef unsigned long long simd_bit_buf_type;
|
||||
#else
|
||||
typedef bit_buf_type simd_bit_buf_type;
|
||||
#endif
|
||||
|
||||
#if (defined(SIZEOF_SIZE_T) && SIZEOF_SIZE_T == 8) || defined(_WIN64) || \
|
||||
(defined(__x86_64__) && defined(__ILP32__))
|
||||
#define BIT_BUF_SIZE 64
|
||||
#elif (defined(SIZEOF_SIZE_T) && SIZEOF_SIZE_T == 4) || defined(_WIN32)
|
||||
#define BIT_BUF_SIZE 32
|
||||
#else
|
||||
#error Cannot determine word size
|
||||
#endif
|
||||
#define SIMD_BIT_BUF_SIZE (sizeof(simd_bit_buf_type) * 8)
|
||||
|
||||
typedef struct {
|
||||
size_t put_buffer; /* current bit-accumulation buffer */
|
||||
int put_bits; /* # of bits now in it */
|
||||
union {
|
||||
bit_buf_type c;
|
||||
simd_bit_buf_type simd;
|
||||
} put_buffer; /* current bit accumulation buffer */
|
||||
int free_bits; /* # of bits available in it */
|
||||
/* (Neon GAS: # of bits now in it) */
|
||||
int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */
|
||||
} savable_state;
|
||||
|
||||
/* This macro is to work around compilers with missing or broken
|
||||
* structure assignment. You'll need to fix this code if you have
|
||||
* such a compiler and you change MAX_COMPS_IN_SCAN.
|
||||
*/
|
||||
|
||||
#ifndef NO_STRUCT_ASSIGN
|
||||
#define ASSIGN_STATE(dest, src) ((dest) = (src))
|
||||
#else
|
||||
#if MAX_COMPS_IN_SCAN == 4
|
||||
#define ASSIGN_STATE(dest, src) \
|
||||
((dest).put_buffer = (src).put_buffer, \
|
||||
(dest).put_bits = (src).put_bits, \
|
||||
(dest).last_dc_val[0] = (src).last_dc_val[0], \
|
||||
(dest).last_dc_val[1] = (src).last_dc_val[1], \
|
||||
(dest).last_dc_val[2] = (src).last_dc_val[2], \
|
||||
(dest).last_dc_val[3] = (src).last_dc_val[3])
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct {
|
||||
struct jpeg_entropy_encoder pub; /* public fields */
|
||||
|
||||
@@ -123,6 +141,7 @@ typedef struct {
|
||||
size_t free_in_buffer; /* # of byte spaces remaining in buffer */
|
||||
savable_state cur; /* Current bit buffer & DC state */
|
||||
j_compress_ptr cinfo; /* dump_buffer needs access to this */
|
||||
int simd;
|
||||
} working_state;
|
||||
|
||||
|
||||
@@ -181,12 +200,12 @@ start_pass_huff(j_compress_ptr cinfo, boolean gather_statistics)
|
||||
entropy->dc_count_ptrs[dctbl] = (long *)
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
257 * sizeof(long));
|
||||
MEMZERO(entropy->dc_count_ptrs[dctbl], 257 * sizeof(long));
|
||||
memset(entropy->dc_count_ptrs[dctbl], 0, 257 * sizeof(long));
|
||||
if (entropy->ac_count_ptrs[actbl] == NULL)
|
||||
entropy->ac_count_ptrs[actbl] = (long *)
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
257 * sizeof(long));
|
||||
MEMZERO(entropy->ac_count_ptrs[actbl], 257 * sizeof(long));
|
||||
memset(entropy->ac_count_ptrs[actbl], 0, 257 * sizeof(long));
|
||||
#endif
|
||||
} else {
|
||||
/* Compute derived values for Huffman tables */
|
||||
@@ -201,8 +220,17 @@ start_pass_huff(j_compress_ptr cinfo, boolean gather_statistics)
|
||||
}
|
||||
|
||||
/* Initialize bit buffer to empty */
|
||||
entropy->saved.put_buffer = 0;
|
||||
entropy->saved.put_bits = 0;
|
||||
if (entropy->simd) {
|
||||
entropy->saved.put_buffer.simd = 0;
|
||||
#if defined(__aarch64__) && !defined(NEON_INTRINSICS)
|
||||
entropy->saved.free_bits = 0;
|
||||
#else
|
||||
entropy->saved.free_bits = SIMD_BIT_BUF_SIZE;
|
||||
#endif
|
||||
} else {
|
||||
entropy->saved.put_buffer.c = 0;
|
||||
entropy->saved.free_bits = BIT_BUF_SIZE;
|
||||
}
|
||||
|
||||
/* Initialize restart stuff */
|
||||
entropy->restarts_to_go = cinfo->restart_interval;
|
||||
@@ -287,7 +315,8 @@ jpeg_make_c_derived_tbl(j_compress_ptr cinfo, boolean isDC, int tblno,
|
||||
* this lets us detect duplicate VAL entries here, and later
|
||||
* allows emit_bits to detect any attempt to emit such symbols.
|
||||
*/
|
||||
MEMZERO(dtbl->ehufsi, sizeof(dtbl->ehufsi));
|
||||
memset(dtbl->ehufco, 0, sizeof(dtbl->ehufco));
|
||||
memset(dtbl->ehufsi, 0, sizeof(dtbl->ehufsi));
|
||||
|
||||
/* This is also a convenient place to check for out-of-range
|
||||
* and duplicated VAL entries. We allow 0..255 for AC symbols
|
||||
@@ -334,90 +363,94 @@ dump_buffer(working_state *state)
|
||||
|
||||
/* Outputting bits to the file */
|
||||
|
||||
/* These macros perform the same task as the emit_bits() function in the
|
||||
* original libjpeg code. In addition to reducing overhead by explicitly
|
||||
* inlining the code, additional performance is achieved by taking into
|
||||
* account the size of the bit buffer and waiting until it is almost full
|
||||
* before emptying it. This mostly benefits 64-bit platforms, since 6
|
||||
* bytes can be stored in a 64-bit bit buffer before it has to be emptied.
|
||||
/* Output byte b and, speculatively, an additional 0 byte. 0xFF must be
|
||||
* encoded as 0xFF 0x00, so the output buffer pointer is advanced by 2 if the
|
||||
* byte is 0xFF. Otherwise, the output buffer pointer is advanced by 1, and
|
||||
* the speculative 0 byte will be overwritten by the next byte.
|
||||
*/
|
||||
|
||||
#define EMIT_BYTE() { \
|
||||
JOCTET c; \
|
||||
put_bits -= 8; \
|
||||
c = (JOCTET)GETJOCTET(put_buffer >> put_bits); \
|
||||
*buffer++ = c; \
|
||||
if (c == 0xFF) /* need to stuff a zero byte? */ \
|
||||
*buffer++ = 0; \
|
||||
#define EMIT_BYTE(b) { \
|
||||
buffer[0] = (JOCTET)(b); \
|
||||
buffer[1] = 0; \
|
||||
buffer -= -2 + ((JOCTET)(b) < 0xFF); \
|
||||
}
|
||||
|
||||
#define PUT_BITS(code, size) { \
|
||||
put_bits += size; \
|
||||
put_buffer = (put_buffer << size) | code; \
|
||||
}
|
||||
/* Output the entire bit buffer. If there are no 0xFF bytes in it, then write
|
||||
* directly to the output buffer. Otherwise, use the EMIT_BYTE() macro to
|
||||
* encode 0xFF as 0xFF 0x00.
|
||||
*/
|
||||
#if BIT_BUF_SIZE == 64
|
||||
|
||||
#define CHECKBUF15() { \
|
||||
if (put_bits > 15) { \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
#define FLUSH() { \
|
||||
if (put_buffer & 0x8080808080808080 & ~(put_buffer + 0x0101010101010101)) { \
|
||||
EMIT_BYTE(put_buffer >> 56) \
|
||||
EMIT_BYTE(put_buffer >> 48) \
|
||||
EMIT_BYTE(put_buffer >> 40) \
|
||||
EMIT_BYTE(put_buffer >> 32) \
|
||||
EMIT_BYTE(put_buffer >> 24) \
|
||||
EMIT_BYTE(put_buffer >> 16) \
|
||||
EMIT_BYTE(put_buffer >> 8) \
|
||||
EMIT_BYTE(put_buffer ) \
|
||||
} else { \
|
||||
buffer[0] = (JOCTET)(put_buffer >> 56); \
|
||||
buffer[1] = (JOCTET)(put_buffer >> 48); \
|
||||
buffer[2] = (JOCTET)(put_buffer >> 40); \
|
||||
buffer[3] = (JOCTET)(put_buffer >> 32); \
|
||||
buffer[4] = (JOCTET)(put_buffer >> 24); \
|
||||
buffer[5] = (JOCTET)(put_buffer >> 16); \
|
||||
buffer[6] = (JOCTET)(put_buffer >> 8); \
|
||||
buffer[7] = (JOCTET)(put_buffer); \
|
||||
buffer += 8; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CHECKBUF31() { \
|
||||
if (put_bits > 31) { \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
} \
|
||||
}
|
||||
|
||||
#define CHECKBUF47() { \
|
||||
if (put_bits > 47) { \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
EMIT_BYTE() \
|
||||
} \
|
||||
}
|
||||
|
||||
#if !defined(_WIN32) && !defined(SIZEOF_SIZE_T)
|
||||
#error Cannot determine word size
|
||||
#endif
|
||||
|
||||
#if SIZEOF_SIZE_T == 8 || defined(_WIN64)
|
||||
|
||||
#define EMIT_BITS(code, size) { \
|
||||
CHECKBUF47() \
|
||||
PUT_BITS(code, size) \
|
||||
}
|
||||
|
||||
#define EMIT_CODE(code, size) { \
|
||||
temp2 &= (((JLONG)1) << nbits) - 1; \
|
||||
CHECKBUF31() \
|
||||
PUT_BITS(code, size) \
|
||||
PUT_BITS(temp2, nbits) \
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
#define EMIT_BITS(code, size) { \
|
||||
PUT_BITS(code, size) \
|
||||
CHECKBUF15() \
|
||||
}
|
||||
|
||||
#define EMIT_CODE(code, size) { \
|
||||
temp2 &= (((JLONG)1) << nbits) - 1; \
|
||||
PUT_BITS(code, size) \
|
||||
CHECKBUF15() \
|
||||
PUT_BITS(temp2, nbits) \
|
||||
CHECKBUF15() \
|
||||
#define FLUSH() { \
|
||||
if (put_buffer & 0x80808080 & ~(put_buffer + 0x01010101)) { \
|
||||
EMIT_BYTE(put_buffer >> 24) \
|
||||
EMIT_BYTE(put_buffer >> 16) \
|
||||
EMIT_BYTE(put_buffer >> 8) \
|
||||
EMIT_BYTE(put_buffer ) \
|
||||
} else { \
|
||||
buffer[0] = (JOCTET)(put_buffer >> 24); \
|
||||
buffer[1] = (JOCTET)(put_buffer >> 16); \
|
||||
buffer[2] = (JOCTET)(put_buffer >> 8); \
|
||||
buffer[3] = (JOCTET)(put_buffer); \
|
||||
buffer += 4; \
|
||||
} \
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* Fill the bit buffer to capacity with the leading bits from code, then output
|
||||
* the bit buffer and put the remaining bits from code into the bit buffer.
|
||||
*/
|
||||
#define PUT_AND_FLUSH(code, size) { \
|
||||
put_buffer = (put_buffer << (size + free_bits)) | (code >> -free_bits); \
|
||||
FLUSH() \
|
||||
free_bits += BIT_BUF_SIZE; \
|
||||
put_buffer = code; \
|
||||
}
|
||||
|
||||
/* Insert code into the bit buffer and output the bit buffer if needed.
|
||||
* NOTE: We can't flush with free_bits == 0, since the left shift in
|
||||
* PUT_AND_FLUSH() would have undefined behavior.
|
||||
*/
|
||||
#define PUT_BITS(code, size) { \
|
||||
free_bits -= size; \
|
||||
if (free_bits < 0) \
|
||||
PUT_AND_FLUSH(code, size) \
|
||||
else \
|
||||
put_buffer = (put_buffer << size) | code; \
|
||||
}
|
||||
|
||||
#define PUT_CODE(code, size) { \
|
||||
temp &= (((JLONG)1) << nbits) - 1; \
|
||||
temp |= code << nbits; \
|
||||
nbits += size; \
|
||||
PUT_BITS(temp, nbits) \
|
||||
}
|
||||
|
||||
|
||||
/* Although it is exceedingly rare, it is possible for a Huffman-encoded
|
||||
* coefficient block to be larger than the 128-byte unencoded block. For each
|
||||
@@ -428,7 +461,7 @@ dump_buffer(working_state *state)
|
||||
* scanning order-- 1, 8, 16, etc.), then this will produce an encoded block
|
||||
* larger than 200 bytes.
|
||||
*/
|
||||
#define BUFSIZE (DCTSIZE2 * 4)
|
||||
#define BUFSIZE (DCTSIZE2 * 8)
|
||||
|
||||
#define LOAD_BUFFER() { \
|
||||
if (state->free_in_buffer < BUFSIZE) { \
|
||||
@@ -440,11 +473,12 @@ dump_buffer(working_state *state)
|
||||
|
||||
#define STORE_BUFFER() { \
|
||||
if (localbuf) { \
|
||||
size_t bytes, bytestocopy; \
|
||||
bytes = buffer - _buffer; \
|
||||
buffer = _buffer; \
|
||||
while (bytes > 0) { \
|
||||
bytestocopy = MIN(bytes, state->free_in_buffer); \
|
||||
MEMCOPY(state->next_output_byte, buffer, bytestocopy); \
|
||||
memcpy(state->next_output_byte, buffer, bytestocopy); \
|
||||
state->next_output_byte += bytestocopy; \
|
||||
buffer += bytestocopy; \
|
||||
state->free_in_buffer -= bytestocopy; \
|
||||
@@ -462,20 +496,46 @@ dump_buffer(working_state *state)
|
||||
LOCAL(boolean)
|
||||
flush_bits(working_state *state)
|
||||
{
|
||||
JOCTET _buffer[BUFSIZE], *buffer;
|
||||
size_t put_buffer; int put_bits;
|
||||
size_t bytes, bytestocopy; int localbuf = 0;
|
||||
JOCTET _buffer[BUFSIZE], *buffer, temp;
|
||||
simd_bit_buf_type put_buffer; int put_bits;
|
||||
int localbuf = 0;
|
||||
|
||||
if (state->simd) {
|
||||
#if defined(__aarch64__) && !defined(NEON_INTRINSICS)
|
||||
put_bits = state->cur.free_bits;
|
||||
#else
|
||||
put_bits = SIMD_BIT_BUF_SIZE - state->cur.free_bits;
|
||||
#endif
|
||||
put_buffer = state->cur.put_buffer.simd;
|
||||
} else {
|
||||
put_bits = BIT_BUF_SIZE - state->cur.free_bits;
|
||||
put_buffer = state->cur.put_buffer.c;
|
||||
}
|
||||
|
||||
put_buffer = state->cur.put_buffer;
|
||||
put_bits = state->cur.put_bits;
|
||||
LOAD_BUFFER()
|
||||
|
||||
/* fill any partial byte with ones */
|
||||
PUT_BITS(0x7F, 7)
|
||||
while (put_bits >= 8) EMIT_BYTE()
|
||||
while (put_bits >= 8) {
|
||||
put_bits -= 8;
|
||||
temp = (JOCTET)(put_buffer >> put_bits);
|
||||
EMIT_BYTE(temp)
|
||||
}
|
||||
if (put_bits) {
|
||||
/* fill partial byte with ones */
|
||||
temp = (JOCTET)((put_buffer << (8 - put_bits)) | (0xFF >> put_bits));
|
||||
EMIT_BYTE(temp)
|
||||
}
|
||||
|
||||
state->cur.put_buffer = 0; /* and reset bit-buffer to empty */
|
||||
state->cur.put_bits = 0;
|
||||
if (state->simd) { /* and reset bit buffer to empty */
|
||||
state->cur.put_buffer.simd = 0;
|
||||
#if defined(__aarch64__) && !defined(NEON_INTRINSICS)
|
||||
state->cur.free_bits = 0;
|
||||
#else
|
||||
state->cur.free_bits = SIMD_BIT_BUF_SIZE;
|
||||
#endif
|
||||
} else {
|
||||
state->cur.put_buffer.c = 0;
|
||||
state->cur.free_bits = BIT_BUF_SIZE;
|
||||
}
|
||||
STORE_BUFFER()
|
||||
|
||||
return TRUE;
|
||||
@@ -489,7 +549,7 @@ encode_one_block_simd(working_state *state, JCOEFPTR block, int last_dc_val,
|
||||
c_derived_tbl *dctbl, c_derived_tbl *actbl)
|
||||
{
|
||||
JOCTET _buffer[BUFSIZE], *buffer;
|
||||
size_t bytes, bytestocopy; int localbuf = 0;
|
||||
int localbuf = 0;
|
||||
|
||||
LOAD_BUFFER()
|
||||
|
||||
@@ -505,53 +565,41 @@ LOCAL(boolean)
|
||||
encode_one_block(working_state *state, JCOEFPTR block, int last_dc_val,
|
||||
c_derived_tbl *dctbl, c_derived_tbl *actbl)
|
||||
{
|
||||
int temp, temp2, temp3;
|
||||
int nbits;
|
||||
int r, code, size;
|
||||
int temp, nbits, free_bits;
|
||||
bit_buf_type put_buffer;
|
||||
JOCTET _buffer[BUFSIZE], *buffer;
|
||||
size_t put_buffer; int put_bits;
|
||||
int code_0xf0 = actbl->ehufco[0xf0], size_0xf0 = actbl->ehufsi[0xf0];
|
||||
size_t bytes, bytestocopy; int localbuf = 0;
|
||||
int localbuf = 0;
|
||||
|
||||
put_buffer = state->cur.put_buffer;
|
||||
put_bits = state->cur.put_bits;
|
||||
free_bits = state->cur.free_bits;
|
||||
put_buffer = state->cur.put_buffer.c;
|
||||
LOAD_BUFFER()
|
||||
|
||||
/* Encode the DC coefficient difference per section F.1.2.1 */
|
||||
|
||||
temp = temp2 = block[0] - last_dc_val;
|
||||
temp = block[0] - last_dc_val;
|
||||
|
||||
/* This is a well-known technique for obtaining the absolute value without a
|
||||
* branch. It is derived from an assembly language technique presented in
|
||||
* "How to Optimize for the Pentium Processors", Copyright (c) 1996, 1997 by
|
||||
* Agner Fog.
|
||||
* Agner Fog. This code assumes we are on a two's complement machine.
|
||||
*/
|
||||
temp3 = temp >> (CHAR_BIT * sizeof(int) - 1);
|
||||
temp ^= temp3;
|
||||
temp -= temp3;
|
||||
|
||||
/* For a negative input, want temp2 = bitwise complement of abs(input) */
|
||||
/* This code assumes we are on a two's complement machine */
|
||||
temp2 += temp3;
|
||||
nbits = temp >> (CHAR_BIT * sizeof(int) - 1);
|
||||
temp += nbits;
|
||||
nbits ^= temp;
|
||||
|
||||
/* Find the number of bits needed for the magnitude of the coefficient */
|
||||
nbits = JPEG_NBITS(temp);
|
||||
nbits = JPEG_NBITS(nbits);
|
||||
|
||||
/* Emit the Huffman-coded symbol for the number of bits */
|
||||
code = dctbl->ehufco[nbits];
|
||||
size = dctbl->ehufsi[nbits];
|
||||
EMIT_BITS(code, size)
|
||||
|
||||
/* Mask off any extra bits in code */
|
||||
temp2 &= (((JLONG)1) << nbits) - 1;
|
||||
|
||||
/* Emit that number of bits of the value, if positive, */
|
||||
/* or the complement of its magnitude, if negative. */
|
||||
EMIT_BITS(temp2, nbits)
|
||||
/* Emit the Huffman-coded symbol for the number of bits.
|
||||
* Emit that number of bits of the value, if positive,
|
||||
* or the complement of its magnitude, if negative.
|
||||
*/
|
||||
PUT_CODE(dctbl->ehufco[nbits], dctbl->ehufsi[nbits])
|
||||
|
||||
/* Encode the AC coefficients per section F.1.2.2 */
|
||||
|
||||
r = 0; /* r = run length of zeros */
|
||||
{
|
||||
int r = 0; /* r = run length of zeros */
|
||||
|
||||
/* Manually unroll the k loop to eliminate the counter variable. This
|
||||
* improves performance greatly on systems with a limited number of
|
||||
@@ -559,51 +607,46 @@ encode_one_block(working_state *state, JCOEFPTR block, int last_dc_val,
|
||||
*/
|
||||
#define kloop(jpeg_natural_order_of_k) { \
|
||||
if ((temp = block[jpeg_natural_order_of_k]) == 0) { \
|
||||
r++; \
|
||||
r += 16; \
|
||||
} else { \
|
||||
temp2 = temp; \
|
||||
/* Branch-less absolute value, bitwise complement, etc., same as above */ \
|
||||
temp3 = temp >> (CHAR_BIT * sizeof(int) - 1); \
|
||||
temp ^= temp3; \
|
||||
temp -= temp3; \
|
||||
temp2 += temp3; \
|
||||
nbits = JPEG_NBITS_NONZERO(temp); \
|
||||
nbits = temp >> (CHAR_BIT * sizeof(int) - 1); \
|
||||
temp += nbits; \
|
||||
nbits ^= temp; \
|
||||
nbits = JPEG_NBITS_NONZERO(nbits); \
|
||||
/* if run length > 15, must emit special run-length-16 codes (0xF0) */ \
|
||||
while (r > 15) { \
|
||||
EMIT_BITS(code_0xf0, size_0xf0) \
|
||||
r -= 16; \
|
||||
while (r >= 16 * 16) { \
|
||||
r -= 16 * 16; \
|
||||
PUT_BITS(actbl->ehufco[0xf0], actbl->ehufsi[0xf0]) \
|
||||
} \
|
||||
/* Emit Huffman symbol for run length / number of bits */ \
|
||||
temp3 = (r << 4) + nbits; \
|
||||
code = actbl->ehufco[temp3]; \
|
||||
size = actbl->ehufsi[temp3]; \
|
||||
EMIT_CODE(code, size) \
|
||||
r += nbits; \
|
||||
PUT_CODE(actbl->ehufco[r], actbl->ehufsi[r]) \
|
||||
r = 0; \
|
||||
} \
|
||||
}
|
||||
|
||||
/* One iteration for each value in jpeg_natural_order[] */
|
||||
kloop(1); kloop(8); kloop(16); kloop(9); kloop(2); kloop(3);
|
||||
kloop(10); kloop(17); kloop(24); kloop(32); kloop(25); kloop(18);
|
||||
kloop(11); kloop(4); kloop(5); kloop(12); kloop(19); kloop(26);
|
||||
kloop(33); kloop(40); kloop(48); kloop(41); kloop(34); kloop(27);
|
||||
kloop(20); kloop(13); kloop(6); kloop(7); kloop(14); kloop(21);
|
||||
kloop(28); kloop(35); kloop(42); kloop(49); kloop(56); kloop(57);
|
||||
kloop(50); kloop(43); kloop(36); kloop(29); kloop(22); kloop(15);
|
||||
kloop(23); kloop(30); kloop(37); kloop(44); kloop(51); kloop(58);
|
||||
kloop(59); kloop(52); kloop(45); kloop(38); kloop(31); kloop(39);
|
||||
kloop(46); kloop(53); kloop(60); kloop(61); kloop(54); kloop(47);
|
||||
kloop(55); kloop(62); kloop(63);
|
||||
/* One iteration for each value in jpeg_natural_order[] */
|
||||
kloop(1); kloop(8); kloop(16); kloop(9); kloop(2); kloop(3);
|
||||
kloop(10); kloop(17); kloop(24); kloop(32); kloop(25); kloop(18);
|
||||
kloop(11); kloop(4); kloop(5); kloop(12); kloop(19); kloop(26);
|
||||
kloop(33); kloop(40); kloop(48); kloop(41); kloop(34); kloop(27);
|
||||
kloop(20); kloop(13); kloop(6); kloop(7); kloop(14); kloop(21);
|
||||
kloop(28); kloop(35); kloop(42); kloop(49); kloop(56); kloop(57);
|
||||
kloop(50); kloop(43); kloop(36); kloop(29); kloop(22); kloop(15);
|
||||
kloop(23); kloop(30); kloop(37); kloop(44); kloop(51); kloop(58);
|
||||
kloop(59); kloop(52); kloop(45); kloop(38); kloop(31); kloop(39);
|
||||
kloop(46); kloop(53); kloop(60); kloop(61); kloop(54); kloop(47);
|
||||
kloop(55); kloop(62); kloop(63);
|
||||
|
||||
/* If the last coef(s) were zero, emit an end-of-block code */
|
||||
if (r > 0) {
|
||||
code = actbl->ehufco[0];
|
||||
size = actbl->ehufsi[0];
|
||||
EMIT_BITS(code, size)
|
||||
/* If the last coef(s) were zero, emit an end-of-block code */
|
||||
if (r > 0) {
|
||||
PUT_BITS(actbl->ehufco[0], actbl->ehufsi[0])
|
||||
}
|
||||
}
|
||||
|
||||
state->cur.put_buffer = put_buffer;
|
||||
state->cur.put_bits = put_bits;
|
||||
state->cur.put_buffer.c = put_buffer;
|
||||
state->cur.free_bits = free_bits;
|
||||
STORE_BUFFER()
|
||||
|
||||
return TRUE;
|
||||
@@ -650,8 +693,9 @@ encode_mcu_huff(j_compress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
/* Load up working state */
|
||||
state.next_output_byte = cinfo->dest->next_output_byte;
|
||||
state.free_in_buffer = cinfo->dest->free_in_buffer;
|
||||
ASSIGN_STATE(state.cur, entropy->saved);
|
||||
state.cur = entropy->saved;
|
||||
state.cinfo = cinfo;
|
||||
state.simd = entropy->simd;
|
||||
|
||||
/* Emit restart marker if needed */
|
||||
if (cinfo->restart_interval) {
|
||||
@@ -690,7 +734,7 @@ encode_mcu_huff(j_compress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
/* Completed MCU, so update state */
|
||||
cinfo->dest->next_output_byte = state.next_output_byte;
|
||||
cinfo->dest->free_in_buffer = state.free_in_buffer;
|
||||
ASSIGN_STATE(entropy->saved, state.cur);
|
||||
entropy->saved = state.cur;
|
||||
|
||||
/* Update restart-interval state too */
|
||||
if (cinfo->restart_interval) {
|
||||
@@ -719,8 +763,9 @@ finish_pass_huff(j_compress_ptr cinfo)
|
||||
/* Load up working state ... flush_bits needs it */
|
||||
state.next_output_byte = cinfo->dest->next_output_byte;
|
||||
state.free_in_buffer = cinfo->dest->free_in_buffer;
|
||||
ASSIGN_STATE(state.cur, entropy->saved);
|
||||
state.cur = entropy->saved;
|
||||
state.cinfo = cinfo;
|
||||
state.simd = entropy->simd;
|
||||
|
||||
/* Flush out the last data */
|
||||
if (!flush_bits(&state))
|
||||
@@ -729,7 +774,7 @@ finish_pass_huff(j_compress_ptr cinfo)
|
||||
/* Update state */
|
||||
cinfo->dest->next_output_byte = state.next_output_byte;
|
||||
cinfo->dest->free_in_buffer = state.free_in_buffer;
|
||||
ASSIGN_STATE(entropy->saved, state.cur);
|
||||
entropy->saved = state.cur;
|
||||
}
|
||||
|
||||
|
||||
@@ -896,8 +941,8 @@ jpeg_gen_optimal_table(j_compress_ptr cinfo, JHUFF_TBL *htbl, long freq[])
|
||||
|
||||
/* This algorithm is explained in section K.2 of the JPEG standard */
|
||||
|
||||
MEMZERO(bits, sizeof(bits));
|
||||
MEMZERO(codesize, sizeof(codesize));
|
||||
memset(bits, 0, sizeof(bits));
|
||||
memset(codesize, 0, sizeof(codesize));
|
||||
for (i = 0; i < 257; i++)
|
||||
others[i] = -1; /* init links to empty */
|
||||
|
||||
@@ -999,7 +1044,7 @@ jpeg_gen_optimal_table(j_compress_ptr cinfo, JHUFF_TBL *htbl, long freq[])
|
||||
bits[i]--;
|
||||
|
||||
/* Return final symbol counts (only for lengths 0..16) */
|
||||
MEMCOPY(htbl->bits, bits, sizeof(htbl->bits));
|
||||
memcpy(htbl->bits, bits, sizeof(htbl->bits));
|
||||
|
||||
/* Return a list of the symbols sorted by code length */
|
||||
/* It's not real clear to me why we don't need to consider the codelength
|
||||
@@ -1038,8 +1083,8 @@ finish_pass_gather(j_compress_ptr cinfo)
|
||||
/* It's important not to apply jpeg_gen_optimal_table more than once
|
||||
* per table, because it clobbers the input frequency counts!
|
||||
*/
|
||||
MEMZERO(did_dc, sizeof(did_dc));
|
||||
MEMZERO(did_ac, sizeof(did_ac));
|
||||
memset(did_dc, 0, sizeof(did_dc));
|
||||
memset(did_ac, 0, sizeof(did_ac));
|
||||
|
||||
for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
|
||||
compptr = cinfo->cur_comp_info[ci];
|
||||
|
||||
5
3rdparty/libjpeg-turbo/src/jcinit.c
vendored
5
3rdparty/libjpeg-turbo/src/jcinit.c
vendored
@@ -1,8 +1,10 @@
|
||||
/*
|
||||
* jcinit.c
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* This file is part of the Independent JPEG Group's software.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -19,6 +21,7 @@
|
||||
#define JPEG_INTERNALS
|
||||
#include "jinclude.h"
|
||||
#include "jpeglib.h"
|
||||
#include "jpegcomp.h"
|
||||
|
||||
|
||||
/*
|
||||
|
||||
2
3rdparty/libjpeg-turbo/src/jcmaster.c
vendored
2
3rdparty/libjpeg-turbo/src/jcmaster.c
vendored
@@ -492,8 +492,8 @@ prepare_for_pass(j_compress_ptr cinfo)
|
||||
*/
|
||||
master->pass_type = output_pass;
|
||||
master->pass_number++;
|
||||
/*FALLTHROUGH*/
|
||||
#endif
|
||||
FALLTHROUGH /*FALLTHROUGH*/
|
||||
case output_pass:
|
||||
/* Do a data-output pass. */
|
||||
/* We need not repeat per-scan setup if prior optimization pass did it. */
|
||||
|
||||
43
3rdparty/libjpeg-turbo/src/jcphuff.c
vendored
43
3rdparty/libjpeg-turbo/src/jcphuff.c
vendored
@@ -4,8 +4,10 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1995-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2011, 2015, 2018, D. R. Commander.
|
||||
* Copyright (C) 2011, 2015, 2018, 2021-2022, D. R. Commander.
|
||||
* Copyright (C) 2016, 2018, Matthieu Darbois.
|
||||
* Copyright (C) 2020, Arm Limited.
|
||||
* Copyright (C) 2021, Alex Richardson.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -43,23 +45,28 @@
|
||||
* memory footprint by 64k, which is important for some mobile applications
|
||||
* that create many isolated instances of libjpeg-turbo (web browsers, for
|
||||
* instance.) This may improve performance on some mobile platforms as well.
|
||||
* This feature is enabled by default only on ARM processors, because some x86
|
||||
* This feature is enabled by default only on Arm processors, because some x86
|
||||
* chips have a slow implementation of bsr, and the use of clz/bsr cannot be
|
||||
* shown to have a significant performance impact even on the x86 chips that
|
||||
* have a fast implementation of it. When building for ARMv6, you can
|
||||
* have a fast implementation of it. When building for Armv6, you can
|
||||
* explicitly disable the use of clz/bsr by adding -mthumb to the compiler
|
||||
* flags (this defines __thumb__).
|
||||
*/
|
||||
|
||||
/* NOTE: Both GCC and Clang define __GNUC__ */
|
||||
#if defined __GNUC__ && (defined __arm__ || defined __aarch64__)
|
||||
#if !defined __thumb__ || defined __thumb2__
|
||||
#if (defined(__GNUC__) && (defined(__arm__) || defined(__aarch64__))) || \
|
||||
defined(_M_ARM) || defined(_M_ARM64)
|
||||
#if !defined(__thumb__) || defined(__thumb2__)
|
||||
#define USE_CLZ_INTRINSIC
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef USE_CLZ_INTRINSIC
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#define JPEG_NBITS_NONZERO(x) (32 - _CountLeadingZeros(x))
|
||||
#else
|
||||
#define JPEG_NBITS_NONZERO(x) (32 - __builtin_clz(x))
|
||||
#endif
|
||||
#define JPEG_NBITS(x) (x ? JPEG_NBITS_NONZERO(x) : 0)
|
||||
#else
|
||||
#include "jpeg_nbits_table.h"
|
||||
@@ -169,24 +176,26 @@ INLINE
|
||||
METHODDEF(int)
|
||||
count_zeroes(size_t *x)
|
||||
{
|
||||
int result;
|
||||
#if defined(HAVE_BUILTIN_CTZL)
|
||||
int result;
|
||||
result = __builtin_ctzl(*x);
|
||||
*x >>= result;
|
||||
#elif defined(HAVE_BITSCANFORWARD64)
|
||||
unsigned long result;
|
||||
_BitScanForward64(&result, *x);
|
||||
*x >>= result;
|
||||
#elif defined(HAVE_BITSCANFORWARD)
|
||||
unsigned long result;
|
||||
_BitScanForward(&result, *x);
|
||||
*x >>= result;
|
||||
#else
|
||||
result = 0;
|
||||
int result = 0;
|
||||
while ((*x & 1) == 0) {
|
||||
++result;
|
||||
*x >>= 1;
|
||||
}
|
||||
#endif
|
||||
return result;
|
||||
return (int)result;
|
||||
}
|
||||
|
||||
|
||||
@@ -266,7 +275,7 @@ start_pass_phuff(j_compress_ptr cinfo, boolean gather_statistics)
|
||||
entropy->count_ptrs[tbl] = (long *)
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
257 * sizeof(long));
|
||||
MEMZERO(entropy->count_ptrs[tbl], 257 * sizeof(long));
|
||||
memset(entropy->count_ptrs[tbl], 0, 257 * sizeof(long));
|
||||
} else {
|
||||
/* Compute derived values for Huffman table */
|
||||
/* We may do this more than once for a table, but it's not expensive */
|
||||
@@ -575,8 +584,8 @@ encode_mcu_DC_first(j_compress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
continue; \
|
||||
/* For a negative coef, want temp2 = bitwise complement of abs(coef) */ \
|
||||
temp2 ^= temp; \
|
||||
values[k] = temp; \
|
||||
values[k + DCTSIZE2] = temp2; \
|
||||
values[k] = (JCOEF)temp; \
|
||||
values[k + DCTSIZE2] = (JCOEF)temp2; \
|
||||
zerobits |= ((size_t)1U) << k; \
|
||||
} \
|
||||
}
|
||||
@@ -672,7 +681,7 @@ encode_mcu_AC_first(j_compress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
emit_restart(entropy, entropy->next_restart_num);
|
||||
|
||||
#ifdef WITH_SIMD
|
||||
cvalue = values = (JCOEF *)PAD((size_t)values_unaligned, 16);
|
||||
cvalue = values = (JCOEF *)PAD((JUINTPTR)values_unaligned, 16);
|
||||
#else
|
||||
/* Not using SIMD, so alignment is not needed */
|
||||
cvalue = values = values_unaligned;
|
||||
@@ -860,7 +869,7 @@ encode_mcu_AC_refine_prepare(const JCOEF *block,
|
||||
|
||||
#define ENCODE_COEFS_AC_REFINE(label) { \
|
||||
while (zerobits) { \
|
||||
int idx = count_zeroes(&zerobits); \
|
||||
idx = count_zeroes(&zerobits); \
|
||||
r += idx; \
|
||||
cabsvalue += idx; \
|
||||
signbits >>= idx; \
|
||||
@@ -917,7 +926,7 @@ METHODDEF(boolean)
|
||||
encode_mcu_AC_refine(j_compress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
{
|
||||
phuff_entropy_ptr entropy = (phuff_entropy_ptr)cinfo->entropy;
|
||||
register int temp, r;
|
||||
register int temp, r, idx;
|
||||
char *BR_buffer;
|
||||
unsigned int BR;
|
||||
int Sl = cinfo->Se - cinfo->Ss + 1;
|
||||
@@ -937,7 +946,7 @@ encode_mcu_AC_refine(j_compress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
emit_restart(entropy, entropy->next_restart_num);
|
||||
|
||||
#ifdef WITH_SIMD
|
||||
cabsvalue = absvalues = (JCOEF *)PAD((size_t)absvalues_unaligned, 16);
|
||||
cabsvalue = absvalues = (JCOEF *)PAD((JUINTPTR)absvalues_unaligned, 16);
|
||||
#else
|
||||
/* Not using SIMD, so alignment is not needed */
|
||||
cabsvalue = absvalues = absvalues_unaligned;
|
||||
@@ -968,7 +977,7 @@ encode_mcu_AC_refine(j_compress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
|
||||
if (zerobits) {
|
||||
int diff = ((absvalues + DCTSIZE2 / 2) - cabsvalue);
|
||||
int idx = count_zeroes(&zerobits);
|
||||
idx = count_zeroes(&zerobits);
|
||||
signbits >>= idx;
|
||||
idx += diff;
|
||||
r += idx;
|
||||
@@ -1053,7 +1062,7 @@ finish_pass_gather_phuff(j_compress_ptr cinfo)
|
||||
/* It's important not to apply jpeg_gen_optimal_table more than once
|
||||
* per table, because it clobbers the input frequency counts!
|
||||
*/
|
||||
MEMZERO(did, sizeof(did));
|
||||
memset(did, 0, sizeof(did));
|
||||
|
||||
for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
|
||||
compptr = cinfo->cur_comp_info[ci];
|
||||
|
||||
8
3rdparty/libjpeg-turbo/src/jcprepct.c
vendored
8
3rdparty/libjpeg-turbo/src/jcprepct.c
vendored
@@ -3,8 +3,8 @@
|
||||
*
|
||||
* This file is part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* It was modified by The libjpeg-turbo Project to include only code relevant
|
||||
* to libjpeg-turbo.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -289,8 +289,8 @@ create_context_buffer(j_compress_ptr cinfo)
|
||||
cinfo->max_h_samp_factor) / compptr->h_samp_factor),
|
||||
(JDIMENSION)(3 * rgroup_height));
|
||||
/* Copy true buffer row pointers into the middle of the fake row array */
|
||||
MEMCOPY(fake_buffer + rgroup_height, true_buffer,
|
||||
3 * rgroup_height * sizeof(JSAMPROW));
|
||||
memcpy(fake_buffer + rgroup_height, true_buffer,
|
||||
3 * rgroup_height * sizeof(JSAMPROW));
|
||||
/* Fill in the above and below wraparound pointers */
|
||||
for (i = 0; i < rgroup_height; i++) {
|
||||
fake_buffer[i] = true_buffer[2 * rgroup_height + i];
|
||||
|
||||
63
3rdparty/libjpeg-turbo/src/jcsample.c
vendored
63
3rdparty/libjpeg-turbo/src/jcsample.c
vendored
@@ -6,7 +6,7 @@
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
||||
* Copyright (C) 2014, MIPS Technologies, Inc., California.
|
||||
* Copyright (C) 2015, D. R. Commander.
|
||||
* Copyright (C) 2015, 2019, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -103,7 +103,7 @@ expand_right_edge(JSAMPARRAY image_data, int num_rows, JDIMENSION input_cols,
|
||||
if (numcols > 0) {
|
||||
for (row = 0; row < num_rows; row++) {
|
||||
ptr = image_data[row] + input_cols;
|
||||
pixval = ptr[-1]; /* don't need GETJSAMPLE() here */
|
||||
pixval = ptr[-1];
|
||||
for (count = numcols; count > 0; count--)
|
||||
*ptr++ = pixval;
|
||||
}
|
||||
@@ -174,7 +174,7 @@ int_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
|
||||
for (v = 0; v < v_expand; v++) {
|
||||
inptr = input_data[inrow + v] + outcol_h;
|
||||
for (h = 0; h < h_expand; h++) {
|
||||
outvalue += (JLONG)GETJSAMPLE(*inptr++);
|
||||
outvalue += (JLONG)(*inptr++);
|
||||
}
|
||||
}
|
||||
*outptr++ = (JSAMPLE)((outvalue + numpix2) / numpix);
|
||||
@@ -237,8 +237,7 @@ h2v1_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
|
||||
inptr = input_data[outrow];
|
||||
bias = 0; /* bias = 0,1,0,1,... for successive samples */
|
||||
for (outcol = 0; outcol < output_cols; outcol++) {
|
||||
*outptr++ =
|
||||
(JSAMPLE)((GETJSAMPLE(*inptr) + GETJSAMPLE(inptr[1]) + bias) >> 1);
|
||||
*outptr++ = (JSAMPLE)((inptr[0] + inptr[1] + bias) >> 1);
|
||||
bias ^= 1; /* 0=>1, 1=>0 */
|
||||
inptr += 2;
|
||||
}
|
||||
@@ -277,8 +276,7 @@ h2v2_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
|
||||
bias = 1; /* bias = 1,2,1,2,... for successive samples */
|
||||
for (outcol = 0; outcol < output_cols; outcol++) {
|
||||
*outptr++ =
|
||||
(JSAMPLE)((GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) +
|
||||
GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]) + bias) >> 2);
|
||||
(JSAMPLE)((inptr0[0] + inptr0[1] + inptr1[0] + inptr1[1] + bias) >> 2);
|
||||
bias ^= 3; /* 1=>2, 2=>1 */
|
||||
inptr0 += 2; inptr1 += 2;
|
||||
}
|
||||
@@ -337,33 +335,25 @@ h2v2_smooth_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
|
||||
below_ptr = input_data[inrow + 2];
|
||||
|
||||
/* Special case for first column: pretend column -1 is same as column 0 */
|
||||
membersum = GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) +
|
||||
GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]);
|
||||
neighsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[1]) +
|
||||
GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[1]) +
|
||||
GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[2]) +
|
||||
GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[2]);
|
||||
membersum = inptr0[0] + inptr0[1] + inptr1[0] + inptr1[1];
|
||||
neighsum = above_ptr[0] + above_ptr[1] + below_ptr[0] + below_ptr[1] +
|
||||
inptr0[0] + inptr0[2] + inptr1[0] + inptr1[2];
|
||||
neighsum += neighsum;
|
||||
neighsum += GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[2]) +
|
||||
GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[2]);
|
||||
neighsum += above_ptr[0] + above_ptr[2] + below_ptr[0] + below_ptr[2];
|
||||
membersum = membersum * memberscale + neighsum * neighscale;
|
||||
*outptr++ = (JSAMPLE)((membersum + 32768) >> 16);
|
||||
inptr0 += 2; inptr1 += 2; above_ptr += 2; below_ptr += 2;
|
||||
|
||||
for (colctr = output_cols - 2; colctr > 0; colctr--) {
|
||||
/* sum of pixels directly mapped to this output element */
|
||||
membersum = GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) +
|
||||
GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]);
|
||||
membersum = inptr0[0] + inptr0[1] + inptr1[0] + inptr1[1];
|
||||
/* sum of edge-neighbor pixels */
|
||||
neighsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[1]) +
|
||||
GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[1]) +
|
||||
GETJSAMPLE(inptr0[-1]) + GETJSAMPLE(inptr0[2]) +
|
||||
GETJSAMPLE(inptr1[-1]) + GETJSAMPLE(inptr1[2]);
|
||||
neighsum = above_ptr[0] + above_ptr[1] + below_ptr[0] + below_ptr[1] +
|
||||
inptr0[-1] + inptr0[2] + inptr1[-1] + inptr1[2];
|
||||
/* The edge-neighbors count twice as much as corner-neighbors */
|
||||
neighsum += neighsum;
|
||||
/* Add in the corner-neighbors */
|
||||
neighsum += GETJSAMPLE(above_ptr[-1]) + GETJSAMPLE(above_ptr[2]) +
|
||||
GETJSAMPLE(below_ptr[-1]) + GETJSAMPLE(below_ptr[2]);
|
||||
neighsum += above_ptr[-1] + above_ptr[2] + below_ptr[-1] + below_ptr[2];
|
||||
/* form final output scaled up by 2^16 */
|
||||
membersum = membersum * memberscale + neighsum * neighscale;
|
||||
/* round, descale and output it */
|
||||
@@ -372,15 +362,11 @@ h2v2_smooth_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
|
||||
}
|
||||
|
||||
/* Special case for last column */
|
||||
membersum = GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) +
|
||||
GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]);
|
||||
neighsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[1]) +
|
||||
GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[1]) +
|
||||
GETJSAMPLE(inptr0[-1]) + GETJSAMPLE(inptr0[1]) +
|
||||
GETJSAMPLE(inptr1[-1]) + GETJSAMPLE(inptr1[1]);
|
||||
membersum = inptr0[0] + inptr0[1] + inptr1[0] + inptr1[1];
|
||||
neighsum = above_ptr[0] + above_ptr[1] + below_ptr[0] + below_ptr[1] +
|
||||
inptr0[-1] + inptr0[1] + inptr1[-1] + inptr1[1];
|
||||
neighsum += neighsum;
|
||||
neighsum += GETJSAMPLE(above_ptr[-1]) + GETJSAMPLE(above_ptr[1]) +
|
||||
GETJSAMPLE(below_ptr[-1]) + GETJSAMPLE(below_ptr[1]);
|
||||
neighsum += above_ptr[-1] + above_ptr[1] + below_ptr[-1] + below_ptr[1];
|
||||
membersum = membersum * memberscale + neighsum * neighscale;
|
||||
*outptr = (JSAMPLE)((membersum + 32768) >> 16);
|
||||
|
||||
@@ -429,21 +415,18 @@ fullsize_smooth_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
|
||||
below_ptr = input_data[outrow + 1];
|
||||
|
||||
/* Special case for first column */
|
||||
colsum = GETJSAMPLE(*above_ptr++) + GETJSAMPLE(*below_ptr++) +
|
||||
GETJSAMPLE(*inptr);
|
||||
membersum = GETJSAMPLE(*inptr++);
|
||||
nextcolsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(*below_ptr) +
|
||||
GETJSAMPLE(*inptr);
|
||||
colsum = (*above_ptr++) + (*below_ptr++) + inptr[0];
|
||||
membersum = *inptr++;
|
||||
nextcolsum = above_ptr[0] + below_ptr[0] + inptr[0];
|
||||
neighsum = colsum + (colsum - membersum) + nextcolsum;
|
||||
membersum = membersum * memberscale + neighsum * neighscale;
|
||||
*outptr++ = (JSAMPLE)((membersum + 32768) >> 16);
|
||||
lastcolsum = colsum; colsum = nextcolsum;
|
||||
|
||||
for (colctr = output_cols - 2; colctr > 0; colctr--) {
|
||||
membersum = GETJSAMPLE(*inptr++);
|
||||
membersum = *inptr++;
|
||||
above_ptr++; below_ptr++;
|
||||
nextcolsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(*below_ptr) +
|
||||
GETJSAMPLE(*inptr);
|
||||
nextcolsum = above_ptr[0] + below_ptr[0] + inptr[0];
|
||||
neighsum = lastcolsum + (colsum - membersum) + nextcolsum;
|
||||
membersum = membersum * memberscale + neighsum * neighscale;
|
||||
*outptr++ = (JSAMPLE)((membersum + 32768) >> 16);
|
||||
@@ -451,7 +434,7 @@ fullsize_smooth_downsample(j_compress_ptr cinfo, jpeg_component_info *compptr,
|
||||
}
|
||||
|
||||
/* Special case for last column */
|
||||
membersum = GETJSAMPLE(*inptr);
|
||||
membersum = *inptr;
|
||||
neighsum = lastcolsum + (colsum - membersum) + colsum;
|
||||
membersum = membersum * memberscale + neighsum * neighscale;
|
||||
*outptr = (JSAMPLE)((membersum + 32768) >> 16);
|
||||
|
||||
9
3rdparty/libjpeg-turbo/src/jctrans.c
vendored
9
3rdparty/libjpeg-turbo/src/jctrans.c
vendored
@@ -4,8 +4,8 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1995-1998, Thomas G. Lane.
|
||||
* Modified 2000-2009 by Guido Vollbeding.
|
||||
* It was modified by The libjpeg-turbo Project to include only code relevant
|
||||
* to libjpeg-turbo.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2020, 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -17,6 +17,7 @@
|
||||
#define JPEG_INTERNALS
|
||||
#include "jinclude.h"
|
||||
#include "jpeglib.h"
|
||||
#include "jpegcomp.h"
|
||||
|
||||
|
||||
/* Forward declarations */
|
||||
@@ -99,8 +100,8 @@ jpeg_copy_critical_parameters(j_decompress_ptr srcinfo, j_compress_ptr dstinfo)
|
||||
qtblptr = &dstinfo->quant_tbl_ptrs[tblno];
|
||||
if (*qtblptr == NULL)
|
||||
*qtblptr = jpeg_alloc_quant_table((j_common_ptr)dstinfo);
|
||||
MEMCOPY((*qtblptr)->quantval, srcinfo->quant_tbl_ptrs[tblno]->quantval,
|
||||
sizeof((*qtblptr)->quantval));
|
||||
memcpy((*qtblptr)->quantval, srcinfo->quant_tbl_ptrs[tblno]->quantval,
|
||||
sizeof((*qtblptr)->quantval));
|
||||
(*qtblptr)->sent_table = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
9
3rdparty/libjpeg-turbo/src/jdapimin.c
vendored
9
3rdparty/libjpeg-turbo/src/jdapimin.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1994-1998, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2016, D. R. Commander.
|
||||
* Copyright (C) 2016, 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "jinclude.h"
|
||||
#include "jpeglib.h"
|
||||
#include "jdmaster.h"
|
||||
#include "jconfigint.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -52,7 +53,7 @@ jpeg_CreateDecompress(j_decompress_ptr cinfo, int version, size_t structsize)
|
||||
{
|
||||
struct jpeg_error_mgr *err = cinfo->err;
|
||||
void *client_data = cinfo->client_data; /* ignore Purify complaint here */
|
||||
MEMZERO(cinfo, sizeof(struct jpeg_decompress_struct));
|
||||
memset(cinfo, 0, sizeof(struct jpeg_decompress_struct));
|
||||
cinfo->err = err;
|
||||
cinfo->client_data = client_data;
|
||||
}
|
||||
@@ -91,7 +92,7 @@ jpeg_CreateDecompress(j_decompress_ptr cinfo, int version, size_t structsize)
|
||||
cinfo->master = (struct jpeg_decomp_master *)
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_PERMANENT,
|
||||
sizeof(my_decomp_master));
|
||||
MEMZERO(cinfo->master, sizeof(my_decomp_master));
|
||||
memset(cinfo->master, 0, sizeof(my_decomp_master));
|
||||
}
|
||||
|
||||
|
||||
@@ -308,7 +309,7 @@ jpeg_consume_input(j_decompress_ptr cinfo)
|
||||
/* Initialize application's data source module */
|
||||
(*cinfo->src->init_source) (cinfo);
|
||||
cinfo->global_state = DSTATE_INHEADER;
|
||||
/*FALLTHROUGH*/
|
||||
FALLTHROUGH /*FALLTHROUGH*/
|
||||
case DSTATE_INHEADER:
|
||||
retcode = (*cinfo->inputctl->consume_input) (cinfo);
|
||||
if (retcode == JPEG_REACHED_SOS) { /* Found SOS, prepare to decompress */
|
||||
|
||||
59
3rdparty/libjpeg-turbo/src/jdapistd.c
vendored
59
3rdparty/libjpeg-turbo/src/jdapistd.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2010, 2015-2018, D. R. Commander.
|
||||
* Copyright (C) 2010, 2015-2020, 2022, D. R. Commander.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
@@ -21,6 +21,8 @@
|
||||
#include "jinclude.h"
|
||||
#include "jdmainct.h"
|
||||
#include "jdcoefct.h"
|
||||
#include "jdmaster.h"
|
||||
#include "jdmerge.h"
|
||||
#include "jdsample.h"
|
||||
#include "jmemsys.h"
|
||||
|
||||
@@ -157,6 +159,7 @@ jpeg_crop_scanline(j_decompress_ptr cinfo, JDIMENSION *xoffset,
|
||||
JDIMENSION input_xoffset;
|
||||
boolean reinit_upsampler = FALSE;
|
||||
jpeg_component_info *compptr;
|
||||
my_master_ptr master = (my_master_ptr)cinfo->master;
|
||||
|
||||
if (cinfo->global_state != DSTATE_SCANNING || cinfo->output_scanline != 0)
|
||||
ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
|
||||
@@ -206,6 +209,11 @@ jpeg_crop_scanline(j_decompress_ptr cinfo, JDIMENSION *xoffset,
|
||||
*/
|
||||
*width = *width + input_xoffset - *xoffset;
|
||||
cinfo->output_width = *width;
|
||||
if (master->using_merged_upsample && cinfo->max_v_samp_factor == 2) {
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
upsample->out_row_width =
|
||||
cinfo->output_width * cinfo->out_color_components;
|
||||
}
|
||||
|
||||
/* Set the first and last iMCU columns that we must decompress. These values
|
||||
* will be used in single-scan decompressions.
|
||||
@@ -316,6 +324,10 @@ LOCAL(void)
|
||||
read_and_discard_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
{
|
||||
JDIMENSION n;
|
||||
my_master_ptr master = (my_master_ptr)cinfo->master;
|
||||
JSAMPLE dummy_sample[1] = { 0 };
|
||||
JSAMPROW dummy_row = dummy_sample;
|
||||
JSAMPARRAY scanlines = NULL;
|
||||
void (*color_convert) (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION input_row, JSAMPARRAY output_buf,
|
||||
int num_rows) = NULL;
|
||||
@@ -325,6 +337,10 @@ read_and_discard_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
if (cinfo->cconvert && cinfo->cconvert->color_convert) {
|
||||
color_convert = cinfo->cconvert->color_convert;
|
||||
cinfo->cconvert->color_convert = noop_convert;
|
||||
/* This just prevents UBSan from complaining about adding 0 to a NULL
|
||||
* pointer. The pointer isn't actually used.
|
||||
*/
|
||||
scanlines = &dummy_row;
|
||||
}
|
||||
|
||||
if (cinfo->cquantize && cinfo->cquantize->color_quantize) {
|
||||
@@ -332,8 +348,13 @@ read_and_discard_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
cinfo->cquantize->color_quantize = noop_quantize;
|
||||
}
|
||||
|
||||
if (master->using_merged_upsample && cinfo->max_v_samp_factor == 2) {
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
scanlines = &upsample->spare_row;
|
||||
}
|
||||
|
||||
for (n = 0; n < num_lines; n++)
|
||||
jpeg_read_scanlines(cinfo, NULL, 1);
|
||||
jpeg_read_scanlines(cinfo, scanlines, 1);
|
||||
|
||||
if (color_convert)
|
||||
cinfo->cconvert->color_convert = color_convert;
|
||||
@@ -353,6 +374,12 @@ increment_simple_rowgroup_ctr(j_decompress_ptr cinfo, JDIMENSION rows)
|
||||
{
|
||||
JDIMENSION rows_left;
|
||||
my_main_ptr main_ptr = (my_main_ptr)cinfo->main;
|
||||
my_master_ptr master = (my_master_ptr)cinfo->master;
|
||||
|
||||
if (master->using_merged_upsample && cinfo->max_v_samp_factor == 2) {
|
||||
read_and_discard_scanlines(cinfo, rows);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Increment the counter to the next row group after the skipped rows. */
|
||||
main_ptr->rowgroup_ctr += rows / cinfo->max_v_samp_factor;
|
||||
@@ -382,21 +409,27 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
{
|
||||
my_main_ptr main_ptr = (my_main_ptr)cinfo->main;
|
||||
my_coef_ptr coef = (my_coef_ptr)cinfo->coef;
|
||||
my_master_ptr master = (my_master_ptr)cinfo->master;
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
JDIMENSION i, x;
|
||||
int y;
|
||||
JDIMENSION lines_per_iMCU_row, lines_left_in_iMCU_row, lines_after_iMCU_row;
|
||||
JDIMENSION lines_to_skip, lines_to_read;
|
||||
|
||||
/* Two-pass color quantization is not supported. */
|
||||
if (cinfo->quantize_colors && cinfo->two_pass_quantize)
|
||||
ERREXIT(cinfo, JERR_NOTIMPL);
|
||||
|
||||
if (cinfo->global_state != DSTATE_SCANNING)
|
||||
ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);
|
||||
|
||||
/* Do not skip past the bottom of the image. */
|
||||
if (cinfo->output_scanline + num_lines >= cinfo->output_height) {
|
||||
num_lines = cinfo->output_height - cinfo->output_scanline;
|
||||
cinfo->output_scanline = cinfo->output_height;
|
||||
(*cinfo->inputctl->finish_input_pass) (cinfo);
|
||||
cinfo->inputctl->eoi_reached = TRUE;
|
||||
return cinfo->output_height - cinfo->output_scanline;
|
||||
return num_lines;
|
||||
}
|
||||
|
||||
if (num_lines == 0)
|
||||
@@ -445,8 +478,10 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
main_ptr->buffer_full = FALSE;
|
||||
main_ptr->rowgroup_ctr = 0;
|
||||
main_ptr->context_state = CTX_PREPARE_FOR_IMCU;
|
||||
upsample->next_row_out = cinfo->max_v_samp_factor;
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
if (!master->using_merged_upsample) {
|
||||
upsample->next_row_out = cinfo->max_v_samp_factor;
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
}
|
||||
}
|
||||
|
||||
/* Skipping is much simpler when context rows are not required. */
|
||||
@@ -458,8 +493,10 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
cinfo->output_scanline += lines_left_in_iMCU_row;
|
||||
main_ptr->buffer_full = FALSE;
|
||||
main_ptr->rowgroup_ctr = 0;
|
||||
upsample->next_row_out = cinfo->max_v_samp_factor;
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
if (!master->using_merged_upsample) {
|
||||
upsample->next_row_out = cinfo->max_v_samp_factor;
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -494,7 +531,8 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
cinfo->output_iMCU_row += lines_to_skip / lines_per_iMCU_row;
|
||||
increment_simple_rowgroup_ctr(cinfo, lines_to_read);
|
||||
}
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
if (!master->using_merged_upsample)
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
return num_lines;
|
||||
}
|
||||
|
||||
@@ -506,6 +544,8 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
* decoded coefficients. This is ~5% faster for large subsets, but
|
||||
* it's tough to tell a difference for smaller images.
|
||||
*/
|
||||
if (!cinfo->entropy->insufficient_data)
|
||||
cinfo->master->last_good_iMCU_row = cinfo->input_iMCU_row;
|
||||
(*cinfo->entropy->decode_mcu) (cinfo, NULL);
|
||||
}
|
||||
}
|
||||
@@ -535,7 +575,8 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
|
||||
* bit odd, since "rows_to_go" seems to be redundantly keeping track of
|
||||
* output_scanline.
|
||||
*/
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
if (!master->using_merged_upsample)
|
||||
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
|
||||
|
||||
/* Always skip the requested number of lines. */
|
||||
return num_lines;
|
||||
|
||||
35
3rdparty/libjpeg-turbo/src/jdarith.c
vendored
35
3rdparty/libjpeg-turbo/src/jdarith.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Developed 1997-2015 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2015-2018, D. R. Commander.
|
||||
* Copyright (C) 2015-2020, 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -80,7 +80,7 @@ get_byte(j_decompress_ptr cinfo)
|
||||
if (!(*src->fill_input_buffer) (cinfo))
|
||||
ERREXIT(cinfo, JERR_CANT_SUSPEND);
|
||||
src->bytes_in_buffer--;
|
||||
return GETJOCTET(*src->next_input_byte++);
|
||||
return *src->next_input_byte++;
|
||||
}
|
||||
|
||||
|
||||
@@ -210,13 +210,13 @@ process_restart(j_decompress_ptr cinfo)
|
||||
for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
|
||||
compptr = cinfo->cur_comp_info[ci];
|
||||
if (!cinfo->progressive_mode || (cinfo->Ss == 0 && cinfo->Ah == 0)) {
|
||||
MEMZERO(entropy->dc_stats[compptr->dc_tbl_no], DC_STAT_BINS);
|
||||
memset(entropy->dc_stats[compptr->dc_tbl_no], 0, DC_STAT_BINS);
|
||||
/* Reset DC predictions to 0 */
|
||||
entropy->last_dc_val[ci] = 0;
|
||||
entropy->dc_context[ci] = 0;
|
||||
}
|
||||
if (!cinfo->progressive_mode || cinfo->Ss) {
|
||||
MEMZERO(entropy->ac_stats[compptr->ac_tbl_no], AC_STAT_BINS);
|
||||
memset(entropy->ac_stats[compptr->ac_tbl_no], 0, AC_STAT_BINS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -471,17 +471,17 @@ decode_mcu_AC_refine(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
if (*thiscoef) { /* previously nonzero coef */
|
||||
if (arith_decode(cinfo, st + 2)) {
|
||||
if (*thiscoef < 0)
|
||||
*thiscoef += m1;
|
||||
*thiscoef += (JCOEF)m1;
|
||||
else
|
||||
*thiscoef += p1;
|
||||
*thiscoef += (JCOEF)p1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (arith_decode(cinfo, st + 1)) { /* newly nonzero coef */
|
||||
if (arith_decode(cinfo, entropy->fixed_bin))
|
||||
*thiscoef = m1;
|
||||
*thiscoef = (JCOEF)m1;
|
||||
else
|
||||
*thiscoef = p1;
|
||||
*thiscoef = (JCOEF)p1;
|
||||
break;
|
||||
}
|
||||
st += 3; k++;
|
||||
@@ -665,8 +665,16 @@ bad:
|
||||
for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
|
||||
int coefi, cindex = cinfo->cur_comp_info[ci]->component_index;
|
||||
int *coef_bit_ptr = &cinfo->coef_bits[cindex][0];
|
||||
int *prev_coef_bit_ptr =
|
||||
&cinfo->coef_bits[cindex + cinfo->num_components][0];
|
||||
if (cinfo->Ss && coef_bit_ptr[0] < 0) /* AC without prior DC scan */
|
||||
WARNMS2(cinfo, JWRN_BOGUS_PROGRESSION, cindex, 0);
|
||||
for (coefi = MIN(cinfo->Ss, 1); coefi <= MAX(cinfo->Se, 9); coefi++) {
|
||||
if (cinfo->input_scan_number > 1)
|
||||
prev_coef_bit_ptr[coefi] = coef_bit_ptr[coefi];
|
||||
else
|
||||
prev_coef_bit_ptr[coefi] = 0;
|
||||
}
|
||||
for (coefi = cinfo->Ss; coefi <= cinfo->Se; coefi++) {
|
||||
int expected = (coef_bit_ptr[coefi] < 0) ? 0 : coef_bit_ptr[coefi];
|
||||
if (cinfo->Ah != expected)
|
||||
@@ -690,8 +698,8 @@ bad:
|
||||
/* Check that the scan parameters Ss, Se, Ah/Al are OK for sequential JPEG.
|
||||
* This ought to be an error condition, but we make it a warning.
|
||||
*/
|
||||
if (cinfo->Ss != 0 || cinfo->Ah != 0 || cinfo->Al != 0 ||
|
||||
(cinfo->Se < DCTSIZE2 && cinfo->Se != DCTSIZE2 - 1))
|
||||
if (cinfo->Ss != 0 || cinfo->Se != DCTSIZE2 - 1 ||
|
||||
cinfo->Ah != 0 || cinfo->Al != 0)
|
||||
WARNMS(cinfo, JWRN_NOT_SEQUENTIAL);
|
||||
/* Select MCU decoding routine */
|
||||
entropy->pub.decode_mcu = decode_mcu;
|
||||
@@ -707,7 +715,7 @@ bad:
|
||||
if (entropy->dc_stats[tbl] == NULL)
|
||||
entropy->dc_stats[tbl] = (unsigned char *)(*cinfo->mem->alloc_small)
|
||||
((j_common_ptr)cinfo, JPOOL_IMAGE, DC_STAT_BINS);
|
||||
MEMZERO(entropy->dc_stats[tbl], DC_STAT_BINS);
|
||||
memset(entropy->dc_stats[tbl], 0, DC_STAT_BINS);
|
||||
/* Initialize DC predictions to 0 */
|
||||
entropy->last_dc_val[ci] = 0;
|
||||
entropy->dc_context[ci] = 0;
|
||||
@@ -719,7 +727,7 @@ bad:
|
||||
if (entropy->ac_stats[tbl] == NULL)
|
||||
entropy->ac_stats[tbl] = (unsigned char *)(*cinfo->mem->alloc_small)
|
||||
((j_common_ptr)cinfo, JPOOL_IMAGE, AC_STAT_BINS);
|
||||
MEMZERO(entropy->ac_stats[tbl], AC_STAT_BINS);
|
||||
memset(entropy->ac_stats[tbl], 0, AC_STAT_BINS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -727,6 +735,7 @@ bad:
|
||||
entropy->c = 0;
|
||||
entropy->a = 0;
|
||||
entropy->ct = -16; /* force reading 2 initial bytes to fill C */
|
||||
entropy->pub.insufficient_data = FALSE;
|
||||
|
||||
/* Initialize restart counter */
|
||||
entropy->restarts_to_go = cinfo->restart_interval;
|
||||
@@ -763,7 +772,7 @@ jinit_arith_decoder(j_decompress_ptr cinfo)
|
||||
int *coef_bit_ptr, ci;
|
||||
cinfo->coef_bits = (int (*)[DCTSIZE2])
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
cinfo->num_components * DCTSIZE2 *
|
||||
cinfo->num_components * 2 * DCTSIZE2 *
|
||||
sizeof(int));
|
||||
coef_bit_ptr = &cinfo->coef_bits[0][0];
|
||||
for (ci = 0; ci < cinfo->num_components; ci++)
|
||||
|
||||
16
3rdparty/libjpeg-turbo/src/jdatadst.c
vendored
16
3rdparty/libjpeg-turbo/src/jdatadst.c
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* Modified 2009-2012 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2013, 2016, D. R. Commander.
|
||||
* Copyright (C) 2013, 2016, 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -23,11 +23,6 @@
|
||||
#include "jpeglib.h"
|
||||
#include "jerror.h"
|
||||
|
||||
#ifndef HAVE_STDLIB_H /* <stdlib.h> should declare malloc(),free() */
|
||||
extern void *malloc(size_t size);
|
||||
extern void free(void *ptr);
|
||||
#endif
|
||||
|
||||
|
||||
/* Expanded data destination object for stdio output */
|
||||
|
||||
@@ -116,7 +111,7 @@ empty_output_buffer(j_compress_ptr cinfo)
|
||||
{
|
||||
my_dest_ptr dest = (my_dest_ptr)cinfo->dest;
|
||||
|
||||
if (JFWRITE(dest->outfile, dest->buffer, OUTPUT_BUF_SIZE) !=
|
||||
if (fwrite(dest->buffer, 1, OUTPUT_BUF_SIZE, dest->outfile) !=
|
||||
(size_t)OUTPUT_BUF_SIZE)
|
||||
ERREXIT(cinfo, JERR_FILE_WRITE);
|
||||
|
||||
@@ -141,10 +136,9 @@ empty_mem_output_buffer(j_compress_ptr cinfo)
|
||||
if (nextbuffer == NULL)
|
||||
ERREXIT1(cinfo, JERR_OUT_OF_MEMORY, 10);
|
||||
|
||||
MEMCOPY(nextbuffer, dest->buffer, dest->bufsize);
|
||||
memcpy(nextbuffer, dest->buffer, dest->bufsize);
|
||||
|
||||
if (dest->newbuffer != NULL)
|
||||
free(dest->newbuffer);
|
||||
free(dest->newbuffer);
|
||||
|
||||
dest->newbuffer = nextbuffer;
|
||||
|
||||
@@ -176,7 +170,7 @@ term_destination(j_compress_ptr cinfo)
|
||||
|
||||
/* Write any data remaining in the buffer */
|
||||
if (datacount > 0) {
|
||||
if (JFWRITE(dest->outfile, dest->buffer, datacount) != datacount)
|
||||
if (fwrite(dest->buffer, 1, datacount, dest->outfile) != datacount)
|
||||
ERREXIT(cinfo, JERR_FILE_WRITE);
|
||||
}
|
||||
fflush(dest->outfile);
|
||||
|
||||
4
3rdparty/libjpeg-turbo/src/jdatasrc.c
vendored
4
3rdparty/libjpeg-turbo/src/jdatasrc.c
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* Modified 2009-2011 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2013, 2016, D. R. Commander.
|
||||
* Copyright (C) 2013, 2016, 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -104,7 +104,7 @@ fill_input_buffer(j_decompress_ptr cinfo)
|
||||
my_src_ptr src = (my_src_ptr)cinfo->src;
|
||||
size_t nbytes;
|
||||
|
||||
nbytes = JFREAD(src->infile, src->buffer, INPUT_BUF_SIZE);
|
||||
nbytes = fread(src->buffer, 1, INPUT_BUF_SIZE, src->infile);
|
||||
|
||||
if (nbytes <= 0) {
|
||||
if (src->start_of_file) /* Treat empty input file as fatal error */
|
||||
|
||||
290
3rdparty/libjpeg-turbo/src/jdcoefct.c
vendored
290
3rdparty/libjpeg-turbo/src/jdcoefct.c
vendored
@@ -5,8 +5,8 @@
|
||||
* Copyright (C) 1994-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
||||
* Copyright (C) 2010, 2015-2016, D. R. Commander.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* Copyright (C) 2010, 2015-2016, 2019-2020, D. R. Commander.
|
||||
* Copyright (C) 2015, 2020, Google, Inc.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -102,6 +102,8 @@ decompress_onepass(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
/* Try to fetch an MCU. Entropy decoder expects buffer to be zeroed. */
|
||||
jzero_far((void *)coef->MCU_buffer[0],
|
||||
(size_t)(cinfo->blocks_in_MCU * sizeof(JBLOCK)));
|
||||
if (!cinfo->entropy->insufficient_data)
|
||||
cinfo->master->last_good_iMCU_row = cinfo->input_iMCU_row;
|
||||
if (!(*cinfo->entropy->decode_mcu) (cinfo, coef->MCU_buffer)) {
|
||||
/* Suspension forced; update state counters and exit */
|
||||
coef->MCU_vert_offset = yoffset;
|
||||
@@ -227,6 +229,8 @@ consume_data(j_decompress_ptr cinfo)
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!cinfo->entropy->insufficient_data)
|
||||
cinfo->master->last_good_iMCU_row = cinfo->input_iMCU_row;
|
||||
/* Try to fetch the MCU. */
|
||||
if (!(*cinfo->entropy->decode_mcu) (cinfo, coef->MCU_buffer)) {
|
||||
/* Suspension forced; update state counters and exit */
|
||||
@@ -326,19 +330,22 @@ decompress_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
#ifdef BLOCK_SMOOTHING_SUPPORTED
|
||||
|
||||
/*
|
||||
* This code applies interblock smoothing as described by section K.8
|
||||
* of the JPEG standard: the first 5 AC coefficients are estimated from
|
||||
* the DC values of a DCT block and its 8 neighboring blocks.
|
||||
* This code applies interblock smoothing; the first 9 AC coefficients are
|
||||
* estimated from the DC values of a DCT block and its 24 neighboring blocks.
|
||||
* We apply smoothing only for progressive JPEG decoding, and only if
|
||||
* the coefficients it can estimate are not yet known to full precision.
|
||||
*/
|
||||
|
||||
/* Natural-order array positions of the first 5 zigzag-order coefficients */
|
||||
/* Natural-order array positions of the first 9 zigzag-order coefficients */
|
||||
#define Q01_POS 1
|
||||
#define Q10_POS 8
|
||||
#define Q20_POS 16
|
||||
#define Q11_POS 9
|
||||
#define Q02_POS 2
|
||||
#define Q03_POS 3
|
||||
#define Q12_POS 10
|
||||
#define Q21_POS 17
|
||||
#define Q30_POS 24
|
||||
|
||||
/*
|
||||
* Determine whether block smoothing is applicable and safe.
|
||||
@@ -356,8 +363,8 @@ smoothing_ok(j_decompress_ptr cinfo)
|
||||
int ci, coefi;
|
||||
jpeg_component_info *compptr;
|
||||
JQUANT_TBL *qtable;
|
||||
int *coef_bits;
|
||||
int *coef_bits_latch;
|
||||
int *coef_bits, *prev_coef_bits;
|
||||
int *coef_bits_latch, *prev_coef_bits_latch;
|
||||
|
||||
if (!cinfo->progressive_mode || cinfo->coef_bits == NULL)
|
||||
return FALSE;
|
||||
@@ -366,34 +373,47 @@ smoothing_ok(j_decompress_ptr cinfo)
|
||||
if (coef->coef_bits_latch == NULL)
|
||||
coef->coef_bits_latch = (int *)
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
cinfo->num_components *
|
||||
cinfo->num_components * 2 *
|
||||
(SAVED_COEFS * sizeof(int)));
|
||||
coef_bits_latch = coef->coef_bits_latch;
|
||||
prev_coef_bits_latch =
|
||||
&coef->coef_bits_latch[cinfo->num_components * SAVED_COEFS];
|
||||
|
||||
for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components;
|
||||
ci++, compptr++) {
|
||||
/* All components' quantization values must already be latched. */
|
||||
if ((qtable = compptr->quant_table) == NULL)
|
||||
return FALSE;
|
||||
/* Verify DC & first 5 AC quantizers are nonzero to avoid zero-divide. */
|
||||
/* Verify DC & first 9 AC quantizers are nonzero to avoid zero-divide. */
|
||||
if (qtable->quantval[0] == 0 ||
|
||||
qtable->quantval[Q01_POS] == 0 ||
|
||||
qtable->quantval[Q10_POS] == 0 ||
|
||||
qtable->quantval[Q20_POS] == 0 ||
|
||||
qtable->quantval[Q11_POS] == 0 ||
|
||||
qtable->quantval[Q02_POS] == 0)
|
||||
qtable->quantval[Q02_POS] == 0 ||
|
||||
qtable->quantval[Q03_POS] == 0 ||
|
||||
qtable->quantval[Q12_POS] == 0 ||
|
||||
qtable->quantval[Q21_POS] == 0 ||
|
||||
qtable->quantval[Q30_POS] == 0)
|
||||
return FALSE;
|
||||
/* DC values must be at least partly known for all components. */
|
||||
coef_bits = cinfo->coef_bits[ci];
|
||||
prev_coef_bits = cinfo->coef_bits[ci + cinfo->num_components];
|
||||
if (coef_bits[0] < 0)
|
||||
return FALSE;
|
||||
coef_bits_latch[0] = coef_bits[0];
|
||||
/* Block smoothing is helpful if some AC coefficients remain inaccurate. */
|
||||
for (coefi = 1; coefi <= 5; coefi++) {
|
||||
for (coefi = 1; coefi < SAVED_COEFS; coefi++) {
|
||||
if (cinfo->input_scan_number > 1)
|
||||
prev_coef_bits_latch[coefi] = prev_coef_bits[coefi];
|
||||
else
|
||||
prev_coef_bits_latch[coefi] = -1;
|
||||
coef_bits_latch[coefi] = coef_bits[coefi];
|
||||
if (coef_bits[coefi] != 0)
|
||||
smoothing_useful = TRUE;
|
||||
}
|
||||
coef_bits_latch += SAVED_COEFS;
|
||||
prev_coef_bits_latch += SAVED_COEFS;
|
||||
}
|
||||
|
||||
return smoothing_useful;
|
||||
@@ -412,17 +432,20 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
JDIMENSION block_num, last_block_column;
|
||||
int ci, block_row, block_rows, access_rows;
|
||||
JBLOCKARRAY buffer;
|
||||
JBLOCKROW buffer_ptr, prev_block_row, next_block_row;
|
||||
JBLOCKROW buffer_ptr, prev_prev_block_row, prev_block_row;
|
||||
JBLOCKROW next_block_row, next_next_block_row;
|
||||
JSAMPARRAY output_ptr;
|
||||
JDIMENSION output_col;
|
||||
jpeg_component_info *compptr;
|
||||
inverse_DCT_method_ptr inverse_DCT;
|
||||
boolean first_row, last_row;
|
||||
boolean change_dc;
|
||||
JCOEF *workspace;
|
||||
int *coef_bits;
|
||||
JQUANT_TBL *quanttbl;
|
||||
JLONG Q00, Q01, Q02, Q10, Q11, Q20, num;
|
||||
int DC1, DC2, DC3, DC4, DC5, DC6, DC7, DC8, DC9;
|
||||
JLONG Q00, Q01, Q02, Q03 = 0, Q10, Q11, Q12 = 0, Q20, Q21 = 0, Q30 = 0, num;
|
||||
int DC01, DC02, DC03, DC04, DC05, DC06, DC07, DC08, DC09, DC10, DC11, DC12,
|
||||
DC13, DC14, DC15, DC16, DC17, DC18, DC19, DC20, DC21, DC22, DC23, DC24,
|
||||
DC25;
|
||||
int Al, pred;
|
||||
|
||||
/* Keep a local variable to avoid looking it up more than once */
|
||||
@@ -434,10 +457,10 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
if (cinfo->input_scan_number == cinfo->output_scan_number) {
|
||||
/* If input is working on current scan, we ordinarily want it to
|
||||
* have completed the current row. But if input scan is DC,
|
||||
* we want it to keep one row ahead so that next block row's DC
|
||||
* we want it to keep two rows ahead so that next two block rows' DC
|
||||
* values are up to date.
|
||||
*/
|
||||
JDIMENSION delta = (cinfo->Ss == 0) ? 1 : 0;
|
||||
JDIMENSION delta = (cinfo->Ss == 0) ? 2 : 0;
|
||||
if (cinfo->input_iMCU_row > cinfo->output_iMCU_row + delta)
|
||||
break;
|
||||
}
|
||||
@@ -452,34 +475,53 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
if (!compptr->component_needed)
|
||||
continue;
|
||||
/* Count non-dummy DCT block rows in this iMCU row. */
|
||||
if (cinfo->output_iMCU_row < last_iMCU_row) {
|
||||
if (cinfo->output_iMCU_row < last_iMCU_row - 1) {
|
||||
block_rows = compptr->v_samp_factor;
|
||||
access_rows = block_rows * 3; /* this and next two iMCU rows */
|
||||
} else if (cinfo->output_iMCU_row < last_iMCU_row) {
|
||||
block_rows = compptr->v_samp_factor;
|
||||
access_rows = block_rows * 2; /* this and next iMCU row */
|
||||
last_row = FALSE;
|
||||
} else {
|
||||
/* NB: can't use last_row_height here; it is input-side-dependent! */
|
||||
block_rows = (int)(compptr->height_in_blocks % compptr->v_samp_factor);
|
||||
if (block_rows == 0) block_rows = compptr->v_samp_factor;
|
||||
access_rows = block_rows; /* this iMCU row only */
|
||||
last_row = TRUE;
|
||||
}
|
||||
/* Align the virtual buffer for this component. */
|
||||
if (cinfo->output_iMCU_row > 0) {
|
||||
access_rows += compptr->v_samp_factor; /* prior iMCU row too */
|
||||
if (cinfo->output_iMCU_row > 1) {
|
||||
access_rows += 2 * compptr->v_samp_factor; /* prior two iMCU rows too */
|
||||
buffer = (*cinfo->mem->access_virt_barray)
|
||||
((j_common_ptr)cinfo, coef->whole_image[ci],
|
||||
(cinfo->output_iMCU_row - 2) * compptr->v_samp_factor,
|
||||
(JDIMENSION)access_rows, FALSE);
|
||||
buffer += 2 * compptr->v_samp_factor; /* point to current iMCU row */
|
||||
} else if (cinfo->output_iMCU_row > 0) {
|
||||
buffer = (*cinfo->mem->access_virt_barray)
|
||||
((j_common_ptr)cinfo, coef->whole_image[ci],
|
||||
(cinfo->output_iMCU_row - 1) * compptr->v_samp_factor,
|
||||
(JDIMENSION)access_rows, FALSE);
|
||||
buffer += compptr->v_samp_factor; /* point to current iMCU row */
|
||||
first_row = FALSE;
|
||||
} else {
|
||||
buffer = (*cinfo->mem->access_virt_barray)
|
||||
((j_common_ptr)cinfo, coef->whole_image[ci],
|
||||
(JDIMENSION)0, (JDIMENSION)access_rows, FALSE);
|
||||
first_row = TRUE;
|
||||
}
|
||||
/* Fetch component-dependent info */
|
||||
coef_bits = coef->coef_bits_latch + (ci * SAVED_COEFS);
|
||||
/* Fetch component-dependent info.
|
||||
* If the current scan is incomplete, then we use the component-dependent
|
||||
* info from the previous scan.
|
||||
*/
|
||||
if (cinfo->output_iMCU_row > cinfo->master->last_good_iMCU_row)
|
||||
coef_bits =
|
||||
coef->coef_bits_latch + ((ci + cinfo->num_components) * SAVED_COEFS);
|
||||
else
|
||||
coef_bits = coef->coef_bits_latch + (ci * SAVED_COEFS);
|
||||
|
||||
/* We only do DC interpolation if no AC coefficient data is available. */
|
||||
change_dc =
|
||||
coef_bits[1] == -1 && coef_bits[2] == -1 && coef_bits[3] == -1 &&
|
||||
coef_bits[4] == -1 && coef_bits[5] == -1 && coef_bits[6] == -1 &&
|
||||
coef_bits[7] == -1 && coef_bits[8] == -1 && coef_bits[9] == -1;
|
||||
|
||||
quanttbl = compptr->quant_table;
|
||||
Q00 = quanttbl->quantval[0];
|
||||
Q01 = quanttbl->quantval[Q01_POS];
|
||||
@@ -487,25 +529,51 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
Q20 = quanttbl->quantval[Q20_POS];
|
||||
Q11 = quanttbl->quantval[Q11_POS];
|
||||
Q02 = quanttbl->quantval[Q02_POS];
|
||||
if (change_dc) {
|
||||
Q03 = quanttbl->quantval[Q03_POS];
|
||||
Q12 = quanttbl->quantval[Q12_POS];
|
||||
Q21 = quanttbl->quantval[Q21_POS];
|
||||
Q30 = quanttbl->quantval[Q30_POS];
|
||||
}
|
||||
inverse_DCT = cinfo->idct->inverse_DCT[ci];
|
||||
output_ptr = output_buf[ci];
|
||||
/* Loop over all DCT blocks to be processed. */
|
||||
for (block_row = 0; block_row < block_rows; block_row++) {
|
||||
buffer_ptr = buffer[block_row] + cinfo->master->first_MCU_col[ci];
|
||||
if (first_row && block_row == 0)
|
||||
|
||||
if (block_row > 0 || cinfo->output_iMCU_row > 0)
|
||||
prev_block_row =
|
||||
buffer[block_row - 1] + cinfo->master->first_MCU_col[ci];
|
||||
else
|
||||
prev_block_row = buffer_ptr;
|
||||
|
||||
if (block_row > 1 || cinfo->output_iMCU_row > 1)
|
||||
prev_prev_block_row =
|
||||
buffer[block_row - 2] + cinfo->master->first_MCU_col[ci];
|
||||
else
|
||||
prev_prev_block_row = prev_block_row;
|
||||
|
||||
if (block_row < block_rows - 1 || cinfo->output_iMCU_row < last_iMCU_row)
|
||||
next_block_row =
|
||||
buffer[block_row + 1] + cinfo->master->first_MCU_col[ci];
|
||||
else
|
||||
prev_block_row = buffer[block_row - 1];
|
||||
if (last_row && block_row == block_rows - 1)
|
||||
next_block_row = buffer_ptr;
|
||||
|
||||
if (block_row < block_rows - 2 ||
|
||||
cinfo->output_iMCU_row < last_iMCU_row - 1)
|
||||
next_next_block_row =
|
||||
buffer[block_row + 2] + cinfo->master->first_MCU_col[ci];
|
||||
else
|
||||
next_block_row = buffer[block_row + 1];
|
||||
next_next_block_row = next_block_row;
|
||||
|
||||
/* We fetch the surrounding DC values using a sliding-register approach.
|
||||
* Initialize all nine here so as to do the right thing on narrow pics.
|
||||
* Initialize all 25 here so as to do the right thing on narrow pics.
|
||||
*/
|
||||
DC1 = DC2 = DC3 = (int)prev_block_row[0][0];
|
||||
DC4 = DC5 = DC6 = (int)buffer_ptr[0][0];
|
||||
DC7 = DC8 = DC9 = (int)next_block_row[0][0];
|
||||
DC01 = DC02 = DC03 = DC04 = DC05 = (int)prev_prev_block_row[0][0];
|
||||
DC06 = DC07 = DC08 = DC09 = DC10 = (int)prev_block_row[0][0];
|
||||
DC11 = DC12 = DC13 = DC14 = DC15 = (int)buffer_ptr[0][0];
|
||||
DC16 = DC17 = DC18 = DC19 = DC20 = (int)next_block_row[0][0];
|
||||
DC21 = DC22 = DC23 = DC24 = DC25 = (int)next_next_block_row[0][0];
|
||||
output_col = 0;
|
||||
last_block_column = compptr->width_in_blocks - 1;
|
||||
for (block_num = cinfo->master->first_MCU_col[ci];
|
||||
@@ -513,18 +581,39 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
/* Fetch current DCT block into workspace so we can modify it. */
|
||||
jcopy_block_row(buffer_ptr, (JBLOCKROW)workspace, (JDIMENSION)1);
|
||||
/* Update DC values */
|
||||
if (block_num < last_block_column) {
|
||||
DC3 = (int)prev_block_row[1][0];
|
||||
DC6 = (int)buffer_ptr[1][0];
|
||||
DC9 = (int)next_block_row[1][0];
|
||||
if (block_num == cinfo->master->first_MCU_col[ci] &&
|
||||
block_num < last_block_column) {
|
||||
DC04 = (int)prev_prev_block_row[1][0];
|
||||
DC09 = (int)prev_block_row[1][0];
|
||||
DC14 = (int)buffer_ptr[1][0];
|
||||
DC19 = (int)next_block_row[1][0];
|
||||
DC24 = (int)next_next_block_row[1][0];
|
||||
}
|
||||
/* Compute coefficient estimates per K.8.
|
||||
* An estimate is applied only if coefficient is still zero,
|
||||
* and is not known to be fully accurate.
|
||||
if (block_num + 1 < last_block_column) {
|
||||
DC05 = (int)prev_prev_block_row[2][0];
|
||||
DC10 = (int)prev_block_row[2][0];
|
||||
DC15 = (int)buffer_ptr[2][0];
|
||||
DC20 = (int)next_block_row[2][0];
|
||||
DC25 = (int)next_next_block_row[2][0];
|
||||
}
|
||||
/* If DC interpolation is enabled, compute coefficient estimates using
|
||||
* a Gaussian-like kernel, keeping the averages of the DC values.
|
||||
*
|
||||
* If DC interpolation is disabled, compute coefficient estimates using
|
||||
* an algorithm similar to the one described in Section K.8 of the JPEG
|
||||
* standard, except applied to a 5x5 window rather than a 3x3 window.
|
||||
*
|
||||
* An estimate is applied only if the coefficient is still zero and is
|
||||
* not known to be fully accurate.
|
||||
*/
|
||||
/* AC01 */
|
||||
if ((Al = coef_bits[1]) != 0 && workspace[1] == 0) {
|
||||
num = 36 * Q00 * (DC4 - DC6);
|
||||
num = Q00 * (change_dc ?
|
||||
(-DC01 - DC02 + DC04 + DC05 - 3 * DC06 + 13 * DC07 -
|
||||
13 * DC09 + 3 * DC10 - 3 * DC11 + 38 * DC12 - 38 * DC14 +
|
||||
3 * DC15 - 3 * DC16 + 13 * DC17 - 13 * DC19 + 3 * DC20 -
|
||||
DC21 - DC22 + DC24 + DC25) :
|
||||
(-7 * DC11 + 50 * DC12 - 50 * DC14 + 7 * DC15));
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q01 << 7) + num) / (Q01 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
@@ -539,7 +628,12 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
}
|
||||
/* AC10 */
|
||||
if ((Al = coef_bits[2]) != 0 && workspace[8] == 0) {
|
||||
num = 36 * Q00 * (DC2 - DC8);
|
||||
num = Q00 * (change_dc ?
|
||||
(-DC01 - 3 * DC02 - 3 * DC03 - 3 * DC04 - DC05 - DC06 +
|
||||
13 * DC07 + 38 * DC08 + 13 * DC09 - DC10 + DC16 -
|
||||
13 * DC17 - 38 * DC18 - 13 * DC19 + DC20 + DC21 +
|
||||
3 * DC22 + 3 * DC23 + 3 * DC24 + DC25) :
|
||||
(-7 * DC03 + 50 * DC08 - 50 * DC18 + 7 * DC23));
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q10 << 7) + num) / (Q10 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
@@ -554,7 +648,10 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
}
|
||||
/* AC20 */
|
||||
if ((Al = coef_bits[3]) != 0 && workspace[16] == 0) {
|
||||
num = 9 * Q00 * (DC2 + DC8 - 2 * DC5);
|
||||
num = Q00 * (change_dc ?
|
||||
(DC03 + 2 * DC07 + 7 * DC08 + 2 * DC09 - 5 * DC12 - 14 * DC13 -
|
||||
5 * DC14 + 2 * DC17 + 7 * DC18 + 2 * DC19 + DC23) :
|
||||
(-DC03 + 13 * DC08 - 24 * DC13 + 13 * DC18 - DC23));
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q20 << 7) + num) / (Q20 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
@@ -569,7 +666,11 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
}
|
||||
/* AC11 */
|
||||
if ((Al = coef_bits[4]) != 0 && workspace[9] == 0) {
|
||||
num = 5 * Q00 * (DC1 - DC3 - DC7 + DC9);
|
||||
num = Q00 * (change_dc ?
|
||||
(-DC01 + DC05 + 9 * DC07 - 9 * DC09 - 9 * DC17 +
|
||||
9 * DC19 + DC21 - DC25) :
|
||||
(DC10 + DC16 - 10 * DC17 + 10 * DC19 - DC02 - DC20 + DC22 -
|
||||
DC24 + DC04 - DC06 + 10 * DC07 - 10 * DC09));
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q11 << 7) + num) / (Q11 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
@@ -584,7 +685,10 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
}
|
||||
/* AC02 */
|
||||
if ((Al = coef_bits[5]) != 0 && workspace[2] == 0) {
|
||||
num = 9 * Q00 * (DC4 + DC6 - 2 * DC5);
|
||||
num = Q00 * (change_dc ?
|
||||
(2 * DC07 - 5 * DC08 + 2 * DC09 + DC11 + 7 * DC12 - 14 * DC13 +
|
||||
7 * DC14 + DC15 + 2 * DC17 - 5 * DC18 + 2 * DC19) :
|
||||
(-DC11 + 13 * DC12 - 24 * DC13 + 13 * DC14 - DC15));
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q02 << 7) + num) / (Q02 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
@@ -597,14 +701,96 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
|
||||
}
|
||||
workspace[2] = (JCOEF)pred;
|
||||
}
|
||||
if (change_dc) {
|
||||
/* AC03 */
|
||||
if ((Al = coef_bits[6]) != 0 && workspace[3] == 0) {
|
||||
num = Q00 * (DC07 - DC09 + 2 * DC12 - 2 * DC14 + DC17 - DC19);
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q03 << 7) + num) / (Q03 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
} else {
|
||||
pred = (int)(((Q03 << 7) - num) / (Q03 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
pred = -pred;
|
||||
}
|
||||
workspace[3] = (JCOEF)pred;
|
||||
}
|
||||
/* AC12 */
|
||||
if ((Al = coef_bits[7]) != 0 && workspace[10] == 0) {
|
||||
num = Q00 * (DC07 - 3 * DC08 + DC09 - DC17 + 3 * DC18 - DC19);
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q12 << 7) + num) / (Q12 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
} else {
|
||||
pred = (int)(((Q12 << 7) - num) / (Q12 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
pred = -pred;
|
||||
}
|
||||
workspace[10] = (JCOEF)pred;
|
||||
}
|
||||
/* AC21 */
|
||||
if ((Al = coef_bits[8]) != 0 && workspace[17] == 0) {
|
||||
num = Q00 * (DC07 - DC09 - 3 * DC12 + 3 * DC14 + DC17 - DC19);
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q21 << 7) + num) / (Q21 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
} else {
|
||||
pred = (int)(((Q21 << 7) - num) / (Q21 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
pred = -pred;
|
||||
}
|
||||
workspace[17] = (JCOEF)pred;
|
||||
}
|
||||
/* AC30 */
|
||||
if ((Al = coef_bits[9]) != 0 && workspace[24] == 0) {
|
||||
num = Q00 * (DC07 + 2 * DC08 + DC09 - DC17 - 2 * DC18 - DC19);
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q30 << 7) + num) / (Q30 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
} else {
|
||||
pred = (int)(((Q30 << 7) - num) / (Q30 << 8));
|
||||
if (Al > 0 && pred >= (1 << Al))
|
||||
pred = (1 << Al) - 1;
|
||||
pred = -pred;
|
||||
}
|
||||
workspace[24] = (JCOEF)pred;
|
||||
}
|
||||
/* coef_bits[0] is non-negative. Otherwise this function would not
|
||||
* be called.
|
||||
*/
|
||||
num = Q00 *
|
||||
(-2 * DC01 - 6 * DC02 - 8 * DC03 - 6 * DC04 - 2 * DC05 -
|
||||
6 * DC06 + 6 * DC07 + 42 * DC08 + 6 * DC09 - 6 * DC10 -
|
||||
8 * DC11 + 42 * DC12 + 152 * DC13 + 42 * DC14 - 8 * DC15 -
|
||||
6 * DC16 + 6 * DC17 + 42 * DC18 + 6 * DC19 - 6 * DC20 -
|
||||
2 * DC21 - 6 * DC22 - 8 * DC23 - 6 * DC24 - 2 * DC25);
|
||||
if (num >= 0) {
|
||||
pred = (int)(((Q00 << 7) + num) / (Q00 << 8));
|
||||
} else {
|
||||
pred = (int)(((Q00 << 7) - num) / (Q00 << 8));
|
||||
pred = -pred;
|
||||
}
|
||||
workspace[0] = (JCOEF)pred;
|
||||
} /* change_dc */
|
||||
|
||||
/* OK, do the IDCT */
|
||||
(*inverse_DCT) (cinfo, compptr, (JCOEFPTR)workspace, output_ptr,
|
||||
output_col);
|
||||
/* Advance for next column */
|
||||
DC1 = DC2; DC2 = DC3;
|
||||
DC4 = DC5; DC5 = DC6;
|
||||
DC7 = DC8; DC8 = DC9;
|
||||
buffer_ptr++, prev_block_row++, next_block_row++;
|
||||
DC01 = DC02; DC02 = DC03; DC03 = DC04; DC04 = DC05;
|
||||
DC06 = DC07; DC07 = DC08; DC08 = DC09; DC09 = DC10;
|
||||
DC11 = DC12; DC12 = DC13; DC13 = DC14; DC14 = DC15;
|
||||
DC16 = DC17; DC17 = DC18; DC18 = DC19; DC19 = DC20;
|
||||
DC21 = DC22; DC22 = DC23; DC23 = DC24; DC24 = DC25;
|
||||
buffer_ptr++, prev_block_row++, next_block_row++,
|
||||
prev_prev_block_row++, next_next_block_row++;
|
||||
output_col += compptr->_DCT_scaled_size;
|
||||
}
|
||||
output_ptr += compptr->_DCT_scaled_size;
|
||||
@@ -653,7 +839,7 @@ jinit_d_coef_controller(j_decompress_ptr cinfo, boolean need_full_buffer)
|
||||
#ifdef BLOCK_SMOOTHING_SUPPORTED
|
||||
/* If block smoothing could be used, need a bigger window */
|
||||
if (cinfo->progressive_mode)
|
||||
access_rows *= 3;
|
||||
access_rows *= 5;
|
||||
#endif
|
||||
coef->whole_image[ci] = (*cinfo->mem->request_virt_barray)
|
||||
((j_common_ptr)cinfo, JPOOL_IMAGE, TRUE,
|
||||
|
||||
3
3rdparty/libjpeg-turbo/src/jdcoefct.h
vendored
3
3rdparty/libjpeg-turbo/src/jdcoefct.h
vendored
@@ -5,6 +5,7 @@
|
||||
* Copyright (C) 1994-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
||||
* Copyright (C) 2020, Google, Inc.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*/
|
||||
@@ -51,7 +52,7 @@ typedef struct {
|
||||
#ifdef BLOCK_SMOOTHING_SUPPORTED
|
||||
/* When doing block smoothing, we latch coefficient Al values here */
|
||||
int *coef_bits_latch;
|
||||
#define SAVED_COEFS 6 /* we save coef_bits[0..5] */
|
||||
#define SAVED_COEFS 10 /* we save coef_bits[0..9] */
|
||||
#endif
|
||||
} my_coef_controller;
|
||||
|
||||
|
||||
96
3rdparty/libjpeg-turbo/src/jdcol565.c
vendored
96
3rdparty/libjpeg-turbo/src/jdcol565.c
vendored
@@ -45,9 +45,9 @@ ycc_rgb565_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr = *output_buf++;
|
||||
|
||||
if (PACK_NEED_ALIGNMENT(outptr)) {
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
y = *inptr0++;
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
r = range_limit[y + Crrtab[cr]];
|
||||
g = range_limit[y + ((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
SCALEBITS))];
|
||||
@@ -58,18 +58,18 @@ ycc_rgb565_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
num_cols--;
|
||||
}
|
||||
for (col = 0; col < (num_cols >> 1); col++) {
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
y = *inptr0++;
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
r = range_limit[y + Crrtab[cr]];
|
||||
g = range_limit[y + ((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
SCALEBITS))];
|
||||
b = range_limit[y + Cbbtab[cb]];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
y = *inptr0++;
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
r = range_limit[y + Crrtab[cr]];
|
||||
g = range_limit[y + ((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
SCALEBITS))];
|
||||
@@ -80,9 +80,9 @@ ycc_rgb565_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr += 4;
|
||||
}
|
||||
if (num_cols & 1) {
|
||||
y = GETJSAMPLE(*inptr0);
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
y = *inptr0;
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
r = range_limit[y + Crrtab[cr]];
|
||||
g = range_limit[y + ((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
SCALEBITS))];
|
||||
@@ -125,9 +125,9 @@ ycc_rgb565D_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
input_row++;
|
||||
outptr = *output_buf++;
|
||||
if (PACK_NEED_ALIGNMENT(outptr)) {
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
y = *inptr0++;
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
r = range_limit[DITHER_565_R(y + Crrtab[cr], d0)];
|
||||
g = range_limit[DITHER_565_G(y +
|
||||
((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
@@ -139,9 +139,9 @@ ycc_rgb565D_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
num_cols--;
|
||||
}
|
||||
for (col = 0; col < (num_cols >> 1); col++) {
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
y = *inptr0++;
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
r = range_limit[DITHER_565_R(y + Crrtab[cr], d0)];
|
||||
g = range_limit[DITHER_565_G(y +
|
||||
((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
@@ -150,9 +150,9 @@ ycc_rgb565D_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
d0 = DITHER_ROTATE(d0);
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
y = *inptr0++;
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
r = range_limit[DITHER_565_R(y + Crrtab[cr], d0)];
|
||||
g = range_limit[DITHER_565_G(y +
|
||||
((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
@@ -165,9 +165,9 @@ ycc_rgb565D_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr += 4;
|
||||
}
|
||||
if (num_cols & 1) {
|
||||
y = GETJSAMPLE(*inptr0);
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
y = *inptr0;
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
r = range_limit[DITHER_565_R(y + Crrtab[cr], d0)];
|
||||
g = range_limit[DITHER_565_G(y +
|
||||
((int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr],
|
||||
@@ -202,32 +202,32 @@ rgb_rgb565_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
input_row++;
|
||||
outptr = *output_buf++;
|
||||
if (PACK_NEED_ALIGNMENT(outptr)) {
|
||||
r = GETJSAMPLE(*inptr0++);
|
||||
g = GETJSAMPLE(*inptr1++);
|
||||
b = GETJSAMPLE(*inptr2++);
|
||||
r = *inptr0++;
|
||||
g = *inptr1++;
|
||||
b = *inptr2++;
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
*(INT16 *)outptr = (INT16)rgb;
|
||||
outptr += 2;
|
||||
num_cols--;
|
||||
}
|
||||
for (col = 0; col < (num_cols >> 1); col++) {
|
||||
r = GETJSAMPLE(*inptr0++);
|
||||
g = GETJSAMPLE(*inptr1++);
|
||||
b = GETJSAMPLE(*inptr2++);
|
||||
r = *inptr0++;
|
||||
g = *inptr1++;
|
||||
b = *inptr2++;
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
r = GETJSAMPLE(*inptr0++);
|
||||
g = GETJSAMPLE(*inptr1++);
|
||||
b = GETJSAMPLE(*inptr2++);
|
||||
r = *inptr0++;
|
||||
g = *inptr1++;
|
||||
b = *inptr2++;
|
||||
rgb = PACK_TWO_PIXELS(rgb, PACK_SHORT_565(r, g, b));
|
||||
|
||||
WRITE_TWO_ALIGNED_PIXELS(outptr, rgb);
|
||||
outptr += 4;
|
||||
}
|
||||
if (num_cols & 1) {
|
||||
r = GETJSAMPLE(*inptr0);
|
||||
g = GETJSAMPLE(*inptr1);
|
||||
b = GETJSAMPLE(*inptr2);
|
||||
r = *inptr0;
|
||||
g = *inptr1;
|
||||
b = *inptr2;
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
*(INT16 *)outptr = (INT16)rgb;
|
||||
}
|
||||
@@ -259,24 +259,24 @@ rgb_rgb565D_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
input_row++;
|
||||
outptr = *output_buf++;
|
||||
if (PACK_NEED_ALIGNMENT(outptr)) {
|
||||
r = range_limit[DITHER_565_R(GETJSAMPLE(*inptr0++), d0)];
|
||||
g = range_limit[DITHER_565_G(GETJSAMPLE(*inptr1++), d0)];
|
||||
b = range_limit[DITHER_565_B(GETJSAMPLE(*inptr2++), d0)];
|
||||
r = range_limit[DITHER_565_R(*inptr0++, d0)];
|
||||
g = range_limit[DITHER_565_G(*inptr1++, d0)];
|
||||
b = range_limit[DITHER_565_B(*inptr2++, d0)];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
*(INT16 *)outptr = (INT16)rgb;
|
||||
outptr += 2;
|
||||
num_cols--;
|
||||
}
|
||||
for (col = 0; col < (num_cols >> 1); col++) {
|
||||
r = range_limit[DITHER_565_R(GETJSAMPLE(*inptr0++), d0)];
|
||||
g = range_limit[DITHER_565_G(GETJSAMPLE(*inptr1++), d0)];
|
||||
b = range_limit[DITHER_565_B(GETJSAMPLE(*inptr2++), d0)];
|
||||
r = range_limit[DITHER_565_R(*inptr0++, d0)];
|
||||
g = range_limit[DITHER_565_G(*inptr1++, d0)];
|
||||
b = range_limit[DITHER_565_B(*inptr2++, d0)];
|
||||
d0 = DITHER_ROTATE(d0);
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
r = range_limit[DITHER_565_R(GETJSAMPLE(*inptr0++), d0)];
|
||||
g = range_limit[DITHER_565_G(GETJSAMPLE(*inptr1++), d0)];
|
||||
b = range_limit[DITHER_565_B(GETJSAMPLE(*inptr2++), d0)];
|
||||
r = range_limit[DITHER_565_R(*inptr0++, d0)];
|
||||
g = range_limit[DITHER_565_G(*inptr1++, d0)];
|
||||
b = range_limit[DITHER_565_B(*inptr2++, d0)];
|
||||
d0 = DITHER_ROTATE(d0);
|
||||
rgb = PACK_TWO_PIXELS(rgb, PACK_SHORT_565(r, g, b));
|
||||
|
||||
@@ -284,9 +284,9 @@ rgb_rgb565D_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr += 4;
|
||||
}
|
||||
if (num_cols & 1) {
|
||||
r = range_limit[DITHER_565_R(GETJSAMPLE(*inptr0), d0)];
|
||||
g = range_limit[DITHER_565_G(GETJSAMPLE(*inptr1), d0)];
|
||||
b = range_limit[DITHER_565_B(GETJSAMPLE(*inptr2), d0)];
|
||||
r = range_limit[DITHER_565_R(*inptr0, d0)];
|
||||
g = range_limit[DITHER_565_G(*inptr1, d0)];
|
||||
b = range_limit[DITHER_565_B(*inptr2, d0)];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
*(INT16 *)outptr = (INT16)rgb;
|
||||
}
|
||||
|
||||
8
3rdparty/libjpeg-turbo/src/jdcolext.c
vendored
8
3rdparty/libjpeg-turbo/src/jdcolext.c
vendored
@@ -53,9 +53,9 @@ ycc_rgb_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
input_row++;
|
||||
outptr = *output_buf++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
y = GETJSAMPLE(inptr0[col]);
|
||||
cb = GETJSAMPLE(inptr1[col]);
|
||||
cr = GETJSAMPLE(inptr2[col]);
|
||||
y = inptr0[col];
|
||||
cb = inptr1[col];
|
||||
cr = inptr2[col];
|
||||
/* Range-limiting is essential due to noise introduced by DCT losses. */
|
||||
outptr[RGB_RED] = range_limit[y + Crrtab[cr]];
|
||||
outptr[RGB_GREEN] = range_limit[y +
|
||||
@@ -93,7 +93,6 @@ gray_rgb_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
inptr = input_buf[0][input_row++];
|
||||
outptr = *output_buf++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
/* We can dispense with GETJSAMPLE() here */
|
||||
outptr[RGB_RED] = outptr[RGB_GREEN] = outptr[RGB_BLUE] = inptr[col];
|
||||
/* Set unused byte to 0xFF so it can be interpreted as an opaque */
|
||||
/* alpha channel value */
|
||||
@@ -128,7 +127,6 @@ rgb_rgb_convert_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
input_row++;
|
||||
outptr = *output_buf++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
/* We can dispense with GETJSAMPLE() here */
|
||||
outptr[RGB_RED] = inptr0[col];
|
||||
outptr[RGB_GREEN] = inptr1[col];
|
||||
outptr[RGB_BLUE] = inptr2[col];
|
||||
|
||||
23
3rdparty/libjpeg-turbo/src/jdcolor.c
vendored
23
3rdparty/libjpeg-turbo/src/jdcolor.c
vendored
@@ -341,9 +341,9 @@ rgb_gray_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
input_row++;
|
||||
outptr = *output_buf++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
r = GETJSAMPLE(inptr0[col]);
|
||||
g = GETJSAMPLE(inptr1[col]);
|
||||
b = GETJSAMPLE(inptr2[col]);
|
||||
r = inptr0[col];
|
||||
g = inptr1[col];
|
||||
b = inptr2[col];
|
||||
/* Y */
|
||||
outptr[col] = (JSAMPLE)((ctab[r + R_Y_OFF] + ctab[g + G_Y_OFF] +
|
||||
ctab[b + B_Y_OFF]) >> SCALEBITS);
|
||||
@@ -550,9 +550,9 @@ ycck_cmyk_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
input_row++;
|
||||
outptr = *output_buf++;
|
||||
for (col = 0; col < num_cols; col++) {
|
||||
y = GETJSAMPLE(inptr0[col]);
|
||||
cb = GETJSAMPLE(inptr1[col]);
|
||||
cr = GETJSAMPLE(inptr2[col]);
|
||||
y = inptr0[col];
|
||||
cb = inptr1[col];
|
||||
cr = inptr2[col];
|
||||
/* Range-limiting is essential due to noise introduced by DCT losses. */
|
||||
outptr[0] = range_limit[MAXJSAMPLE - (y + Crrtab[cr])]; /* red */
|
||||
outptr[1] = range_limit[MAXJSAMPLE - (y + /* green */
|
||||
@@ -560,7 +560,7 @@ ycck_cmyk_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
SCALEBITS)))];
|
||||
outptr[2] = range_limit[MAXJSAMPLE - (y + Cbbtab[cb])]; /* blue */
|
||||
/* K passes through unchanged */
|
||||
outptr[3] = inptr3[col]; /* don't need GETJSAMPLE here */
|
||||
outptr[3] = inptr3[col];
|
||||
outptr += 4;
|
||||
}
|
||||
}
|
||||
@@ -571,11 +571,10 @@ ycck_cmyk_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
* RGB565 conversion
|
||||
*/
|
||||
|
||||
#define PACK_SHORT_565_LE(r, g, b) ((((r) << 8) & 0xF800) | \
|
||||
(((g) << 3) & 0x7E0) | ((b) >> 3))
|
||||
#define PACK_SHORT_565_BE(r, g, b) (((r) & 0xF8) | ((g) >> 5) | \
|
||||
(((g) << 11) & 0xE000) | \
|
||||
(((b) << 5) & 0x1F00))
|
||||
#define PACK_SHORT_565_LE(r, g, b) \
|
||||
((((r) << 8) & 0xF800) | (((g) << 3) & 0x7E0) | ((b) >> 3))
|
||||
#define PACK_SHORT_565_BE(r, g, b) \
|
||||
(((r) & 0xF8) | ((g) >> 5) | (((g) << 11) & 0xE000) | (((b) << 5) & 0x1F00))
|
||||
|
||||
#define PACK_TWO_PIXELS_LE(l, r) ((r << 16) | l)
|
||||
#define PACK_TWO_PIXELS_BE(l, r) ((l << 16) | r)
|
||||
|
||||
4
3rdparty/libjpeg-turbo/src/jddctmgr.c
vendored
4
3rdparty/libjpeg-turbo/src/jddctmgr.c
vendored
@@ -6,7 +6,7 @@
|
||||
* Modified 2002-2010 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
||||
* Copyright (C) 2010, 2015, D. R. Commander.
|
||||
* Copyright (C) 2010, 2015, 2022, D. R. Commander.
|
||||
* Copyright (C) 2013, MIPS Technologies, Inc., California.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
@@ -345,7 +345,7 @@ jinit_inverse_dct(j_decompress_ptr cinfo)
|
||||
compptr->dct_table =
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
sizeof(multiplier_table));
|
||||
MEMZERO(compptr->dct_table, sizeof(multiplier_table));
|
||||
memset(compptr->dct_table, 0, sizeof(multiplier_table));
|
||||
/* Mark multiplier table not yet set up for any method */
|
||||
idct->cur_method[ci] = -1;
|
||||
}
|
||||
|
||||
65
3rdparty/libjpeg-turbo/src/jdhuff.c
vendored
65
3rdparty/libjpeg-turbo/src/jdhuff.c
vendored
@@ -4,7 +4,8 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2009-2011, 2016, 2018, D. R. Commander.
|
||||
* Copyright (C) 2009-2011, 2016, 2018-2019, D. R. Commander.
|
||||
* Copyright (C) 2018, Matthias Räncker.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -39,24 +40,6 @@ typedef struct {
|
||||
int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */
|
||||
} savable_state;
|
||||
|
||||
/* This macro is to work around compilers with missing or broken
|
||||
* structure assignment. You'll need to fix this code if you have
|
||||
* such a compiler and you change MAX_COMPS_IN_SCAN.
|
||||
*/
|
||||
|
||||
#ifndef NO_STRUCT_ASSIGN
|
||||
#define ASSIGN_STATE(dest, src) ((dest) = (src))
|
||||
#else
|
||||
#if MAX_COMPS_IN_SCAN == 4
|
||||
#define ASSIGN_STATE(dest, src) \
|
||||
((dest).last_dc_val[0] = (src).last_dc_val[0], \
|
||||
(dest).last_dc_val[1] = (src).last_dc_val[1], \
|
||||
(dest).last_dc_val[2] = (src).last_dc_val[2], \
|
||||
(dest).last_dc_val[3] = (src).last_dc_val[3])
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct {
|
||||
struct jpeg_entropy_decoder pub; /* public fields */
|
||||
|
||||
@@ -325,7 +308,7 @@ jpeg_fill_bit_buffer(bitread_working_state *state,
|
||||
bytes_in_buffer = cinfo->src->bytes_in_buffer;
|
||||
}
|
||||
bytes_in_buffer--;
|
||||
c = GETJOCTET(*next_input_byte++);
|
||||
c = *next_input_byte++;
|
||||
|
||||
/* If it's 0xFF, check and discard stuffed zero byte */
|
||||
if (c == 0xFF) {
|
||||
@@ -342,7 +325,7 @@ jpeg_fill_bit_buffer(bitread_working_state *state,
|
||||
bytes_in_buffer = cinfo->src->bytes_in_buffer;
|
||||
}
|
||||
bytes_in_buffer--;
|
||||
c = GETJOCTET(*next_input_byte++);
|
||||
c = *next_input_byte++;
|
||||
} while (c == 0xFF);
|
||||
|
||||
if (c == 0) {
|
||||
@@ -405,8 +388,8 @@ no_more_bytes:
|
||||
|
||||
#define GET_BYTE { \
|
||||
register int c0, c1; \
|
||||
c0 = GETJOCTET(*buffer++); \
|
||||
c1 = GETJOCTET(*buffer); \
|
||||
c0 = *buffer++; \
|
||||
c1 = *buffer; \
|
||||
/* Pre-execute most common case */ \
|
||||
get_buffer = (get_buffer << 8) | c0; \
|
||||
bits_left += 8; \
|
||||
@@ -423,7 +406,7 @@ no_more_bytes:
|
||||
} \
|
||||
}
|
||||
|
||||
#if SIZEOF_SIZE_T == 8 || defined(_WIN64)
|
||||
#if SIZEOF_SIZE_T == 8 || defined(_WIN64) || (defined(__x86_64__) && defined(__ILP32__))
|
||||
|
||||
/* Pre-fetch 48 bytes, because the holding register is 64-bit */
|
||||
#define FILL_BIT_BUFFER_FAST \
|
||||
@@ -557,6 +540,12 @@ process_restart(j_decompress_ptr cinfo)
|
||||
}
|
||||
|
||||
|
||||
#if defined(__has_feature)
|
||||
#if __has_feature(undefined_behavior_sanitizer)
|
||||
__attribute__((no_sanitize("signed-integer-overflow"),
|
||||
no_sanitize("unsigned-integer-overflow")))
|
||||
#endif
|
||||
#endif
|
||||
LOCAL(boolean)
|
||||
decode_mcu_slow(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
{
|
||||
@@ -568,7 +557,7 @@ decode_mcu_slow(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
|
||||
/* Load up working state */
|
||||
BITREAD_LOAD_STATE(cinfo, entropy->bitstate);
|
||||
ASSIGN_STATE(state, entropy->saved);
|
||||
state = entropy->saved;
|
||||
|
||||
for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) {
|
||||
JBLOCKROW block = MCU_data ? MCU_data[blkn] : NULL;
|
||||
@@ -589,6 +578,14 @@ decode_mcu_slow(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
if (entropy->dc_needed[blkn]) {
|
||||
/* Convert DC difference to actual value, update last_dc_val */
|
||||
int ci = cinfo->MCU_membership[blkn];
|
||||
/* Certain malformed JPEG images produce repeated DC coefficient
|
||||
* differences of 2047 or -2047, which causes state.last_dc_val[ci] to
|
||||
* grow until it overflows or underflows a 32-bit signed integer. This
|
||||
* behavior is, to the best of our understanding, innocuous, and it is
|
||||
* unclear how to work around it without potentially affecting
|
||||
* performance. Thus, we (hopefully temporarily) suppress UBSan integer
|
||||
* overflow errors for this function and decode_mcu_fast().
|
||||
*/
|
||||
s += state.last_dc_val[ci];
|
||||
state.last_dc_val[ci] = s;
|
||||
if (block) {
|
||||
@@ -649,11 +646,17 @@ decode_mcu_slow(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
|
||||
/* Completed MCU, so update state */
|
||||
BITREAD_SAVE_STATE(cinfo, entropy->bitstate);
|
||||
ASSIGN_STATE(entropy->saved, state);
|
||||
entropy->saved = state;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
#if defined(__has_feature)
|
||||
#if __has_feature(undefined_behavior_sanitizer)
|
||||
__attribute__((no_sanitize("signed-integer-overflow"),
|
||||
no_sanitize("unsigned-integer-overflow")))
|
||||
#endif
|
||||
#endif
|
||||
LOCAL(boolean)
|
||||
decode_mcu_fast(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
{
|
||||
@@ -667,7 +670,7 @@ decode_mcu_fast(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
/* Load up working state */
|
||||
BITREAD_LOAD_STATE(cinfo, entropy->bitstate);
|
||||
buffer = (JOCTET *)br_state.next_input_byte;
|
||||
ASSIGN_STATE(state, entropy->saved);
|
||||
state = entropy->saved;
|
||||
|
||||
for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) {
|
||||
JBLOCKROW block = MCU_data ? MCU_data[blkn] : NULL;
|
||||
@@ -684,6 +687,9 @@ decode_mcu_fast(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
|
||||
if (entropy->dc_needed[blkn]) {
|
||||
int ci = cinfo->MCU_membership[blkn];
|
||||
/* Refer to the comment in decode_mcu_slow() regarding the supression of
|
||||
* a UBSan integer overflow error in this line of code.
|
||||
*/
|
||||
s += state.last_dc_val[ci];
|
||||
state.last_dc_val[ci] = s;
|
||||
if (block)
|
||||
@@ -736,7 +742,7 @@ decode_mcu_fast(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
br_state.bytes_in_buffer -= (buffer - br_state.next_input_byte);
|
||||
br_state.next_input_byte = buffer;
|
||||
BITREAD_SAVE_STATE(cinfo, entropy->bitstate);
|
||||
ASSIGN_STATE(entropy->saved, state);
|
||||
entropy->saved = state;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -791,7 +797,8 @@ use_slow:
|
||||
}
|
||||
|
||||
/* Account for restart interval (no-op if not using restarts) */
|
||||
entropy->restarts_to_go--;
|
||||
if (cinfo->restart_interval)
|
||||
entropy->restarts_to_go--;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
13
3rdparty/libjpeg-turbo/src/jdhuff.h
vendored
13
3rdparty/libjpeg-turbo/src/jdhuff.h
vendored
@@ -4,7 +4,8 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2010-2011, 2015-2016, D. R. Commander.
|
||||
* Copyright (C) 2010-2011, 2015-2016, 2021, D. R. Commander.
|
||||
* Copyright (C) 2018, Matthias Räncker.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -78,6 +79,11 @@ EXTERN(void) jpeg_make_d_derived_tbl(j_decompress_ptr cinfo, boolean isDC,
|
||||
typedef size_t bit_buf_type; /* type of bit-extraction buffer */
|
||||
#define BIT_BUF_SIZE 64 /* size of buffer in bits */
|
||||
|
||||
#elif defined(__x86_64__) && defined(__ILP32__)
|
||||
|
||||
typedef unsigned long long bit_buf_type; /* type of bit-extraction buffer */
|
||||
#define BIT_BUF_SIZE 64 /* size of buffer in bits */
|
||||
|
||||
#else
|
||||
|
||||
typedef unsigned long bit_buf_type; /* type of bit-extraction buffer */
|
||||
@@ -228,7 +234,10 @@ slowlabel: \
|
||||
s |= GET_BITS(1); \
|
||||
nb++; \
|
||||
} \
|
||||
s = htbl->pub->huffval[(int)(s + htbl->valoffset[nb]) & 0xFF]; \
|
||||
if (nb > 16) \
|
||||
s = 0; \
|
||||
else \
|
||||
s = htbl->pub->huffval[(int)(s + htbl->valoffset[nb]) & 0xFF]; \
|
||||
}
|
||||
|
||||
/* Out-of-line case for Huffman code fetching */
|
||||
|
||||
36
3rdparty/libjpeg-turbo/src/jdicc.c
vendored
36
3rdparty/libjpeg-turbo/src/jdicc.c
vendored
@@ -18,10 +18,6 @@
|
||||
#include "jpeglib.h"
|
||||
#include "jerror.h"
|
||||
|
||||
#ifndef HAVE_STDLIB_H /* <stdlib.h> should declare malloc() */
|
||||
extern void *malloc(size_t size);
|
||||
#endif
|
||||
|
||||
|
||||
#define ICC_MARKER (JPEG_APP0 + 2) /* JPEG marker code for ICC */
|
||||
#define ICC_OVERHEAD_LEN 14 /* size of non-profile data in APP2 */
|
||||
@@ -38,18 +34,18 @@ marker_is_icc(jpeg_saved_marker_ptr marker)
|
||||
marker->marker == ICC_MARKER &&
|
||||
marker->data_length >= ICC_OVERHEAD_LEN &&
|
||||
/* verify the identifying string */
|
||||
GETJOCTET(marker->data[0]) == 0x49 &&
|
||||
GETJOCTET(marker->data[1]) == 0x43 &&
|
||||
GETJOCTET(marker->data[2]) == 0x43 &&
|
||||
GETJOCTET(marker->data[3]) == 0x5F &&
|
||||
GETJOCTET(marker->data[4]) == 0x50 &&
|
||||
GETJOCTET(marker->data[5]) == 0x52 &&
|
||||
GETJOCTET(marker->data[6]) == 0x4F &&
|
||||
GETJOCTET(marker->data[7]) == 0x46 &&
|
||||
GETJOCTET(marker->data[8]) == 0x49 &&
|
||||
GETJOCTET(marker->data[9]) == 0x4C &&
|
||||
GETJOCTET(marker->data[10]) == 0x45 &&
|
||||
GETJOCTET(marker->data[11]) == 0x0;
|
||||
marker->data[0] == 0x49 &&
|
||||
marker->data[1] == 0x43 &&
|
||||
marker->data[2] == 0x43 &&
|
||||
marker->data[3] == 0x5F &&
|
||||
marker->data[4] == 0x50 &&
|
||||
marker->data[5] == 0x52 &&
|
||||
marker->data[6] == 0x4F &&
|
||||
marker->data[7] == 0x46 &&
|
||||
marker->data[8] == 0x49 &&
|
||||
marker->data[9] == 0x4C &&
|
||||
marker->data[10] == 0x45 &&
|
||||
marker->data[11] == 0x0;
|
||||
}
|
||||
|
||||
|
||||
@@ -102,12 +98,12 @@ jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr,
|
||||
for (marker = cinfo->marker_list; marker != NULL; marker = marker->next) {
|
||||
if (marker_is_icc(marker)) {
|
||||
if (num_markers == 0)
|
||||
num_markers = GETJOCTET(marker->data[13]);
|
||||
else if (num_markers != GETJOCTET(marker->data[13])) {
|
||||
num_markers = marker->data[13];
|
||||
else if (num_markers != marker->data[13]) {
|
||||
WARNMS(cinfo, JWRN_BOGUS_ICC); /* inconsistent num_markers fields */
|
||||
return FALSE;
|
||||
}
|
||||
seq_no = GETJOCTET(marker->data[12]);
|
||||
seq_no = marker->data[12];
|
||||
if (seq_no <= 0 || seq_no > num_markers) {
|
||||
WARNMS(cinfo, JWRN_BOGUS_ICC); /* bogus sequence number */
|
||||
return FALSE;
|
||||
@@ -154,7 +150,7 @@ jpeg_read_icc_profile(j_decompress_ptr cinfo, JOCTET **icc_data_ptr,
|
||||
JOCTET FAR *src_ptr;
|
||||
JOCTET *dst_ptr;
|
||||
unsigned int length;
|
||||
seq_no = GETJOCTET(marker->data[12]);
|
||||
seq_no = marker->data[12];
|
||||
dst_ptr = icc_data + data_offset[seq_no];
|
||||
src_ptr = marker->data + ICC_OVERHEAD_LEN;
|
||||
length = data_length[seq_no];
|
||||
|
||||
4
3rdparty/libjpeg-turbo/src/jdinput.c
vendored
4
3rdparty/libjpeg-turbo/src/jdinput.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2010, 2016, 2018, D. R. Commander.
|
||||
* Copyright (C) 2010, 2016, 2018, 2022, D. R. Commander.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
@@ -264,7 +264,7 @@ latch_quant_tables(j_decompress_ptr cinfo)
|
||||
qtbl = (JQUANT_TBL *)
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
sizeof(JQUANT_TBL));
|
||||
MEMCOPY(qtbl, cinfo->quant_tbl_ptrs[qtblno], sizeof(JQUANT_TBL));
|
||||
memcpy(qtbl, cinfo->quant_tbl_ptrs[qtblno], sizeof(JQUANT_TBL));
|
||||
compptr->quant_table = qtbl;
|
||||
}
|
||||
}
|
||||
|
||||
5
3rdparty/libjpeg-turbo/src/jdmainct.c
vendored
5
3rdparty/libjpeg-turbo/src/jdmainct.c
vendored
@@ -18,6 +18,7 @@
|
||||
|
||||
#include "jinclude.h"
|
||||
#include "jdmainct.h"
|
||||
#include "jconfigint.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -360,7 +361,7 @@ process_data_context_main(j_decompress_ptr cinfo, JSAMPARRAY output_buf,
|
||||
main_ptr->context_state = CTX_PREPARE_FOR_IMCU;
|
||||
if (*out_row_ctr >= out_rows_avail)
|
||||
return; /* Postprocessor exactly filled output buf */
|
||||
/*FALLTHROUGH*/
|
||||
FALLTHROUGH /*FALLTHROUGH*/
|
||||
case CTX_PREPARE_FOR_IMCU:
|
||||
/* Prepare to process first M-1 row groups of this iMCU row */
|
||||
main_ptr->rowgroup_ctr = 0;
|
||||
@@ -371,7 +372,7 @@ process_data_context_main(j_decompress_ptr cinfo, JSAMPARRAY output_buf,
|
||||
if (main_ptr->iMCU_row_ctr == cinfo->total_iMCU_rows)
|
||||
set_bottom_pointers(cinfo);
|
||||
main_ptr->context_state = CTX_PROCESS_IMCU;
|
||||
/*FALLTHROUGH*/
|
||||
FALLTHROUGH /*FALLTHROUGH*/
|
||||
case CTX_PROCESS_IMCU:
|
||||
/* Call postprocessor using previously set pointers */
|
||||
(*cinfo->post->post_process_data) (cinfo,
|
||||
|
||||
75
3rdparty/libjpeg-turbo/src/jdmarker.c
vendored
75
3rdparty/libjpeg-turbo/src/jdmarker.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1998, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2012, 2015, D. R. Commander.
|
||||
* Copyright (C) 2012, 2015, 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -151,7 +151,7 @@ typedef my_marker_reader *my_marker_ptr;
|
||||
#define INPUT_BYTE(cinfo, V, action) \
|
||||
MAKESTMT( MAKE_BYTE_AVAIL(cinfo, action); \
|
||||
bytes_in_buffer--; \
|
||||
V = GETJOCTET(*next_input_byte++); )
|
||||
V = *next_input_byte++; )
|
||||
|
||||
/* As above, but read two bytes interpreted as an unsigned 16-bit integer.
|
||||
* V should be declared unsigned int or perhaps JLONG.
|
||||
@@ -159,10 +159,10 @@ typedef my_marker_reader *my_marker_ptr;
|
||||
#define INPUT_2BYTES(cinfo, V, action) \
|
||||
MAKESTMT( MAKE_BYTE_AVAIL(cinfo, action); \
|
||||
bytes_in_buffer--; \
|
||||
V = ((unsigned int)GETJOCTET(*next_input_byte++)) << 8; \
|
||||
V = ((unsigned int)(*next_input_byte++)) << 8; \
|
||||
MAKE_BYTE_AVAIL(cinfo, action); \
|
||||
bytes_in_buffer--; \
|
||||
V += GETJOCTET(*next_input_byte++); )
|
||||
V += *next_input_byte++; )
|
||||
|
||||
|
||||
/*
|
||||
@@ -473,7 +473,7 @@ get_dht(j_decompress_ptr cinfo)
|
||||
for (i = 0; i < count; i++)
|
||||
INPUT_BYTE(cinfo, huffval[i], return FALSE);
|
||||
|
||||
MEMZERO(&huffval[count], (256 - count) * sizeof(UINT8));
|
||||
memset(&huffval[count], 0, (256 - count) * sizeof(UINT8));
|
||||
|
||||
length -= count;
|
||||
|
||||
@@ -491,8 +491,8 @@ get_dht(j_decompress_ptr cinfo)
|
||||
if (*htblptr == NULL)
|
||||
*htblptr = jpeg_alloc_huff_table((j_common_ptr)cinfo);
|
||||
|
||||
MEMCOPY((*htblptr)->bits, bits, sizeof((*htblptr)->bits));
|
||||
MEMCOPY((*htblptr)->huffval, huffval, sizeof((*htblptr)->huffval));
|
||||
memcpy((*htblptr)->bits, bits, sizeof((*htblptr)->bits));
|
||||
memcpy((*htblptr)->huffval, huffval, sizeof((*htblptr)->huffval));
|
||||
}
|
||||
|
||||
if (length != 0)
|
||||
@@ -608,18 +608,18 @@ examine_app0(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
|
||||
JLONG totallen = (JLONG)datalen + remaining;
|
||||
|
||||
if (datalen >= APP0_DATA_LEN &&
|
||||
GETJOCTET(data[0]) == 0x4A &&
|
||||
GETJOCTET(data[1]) == 0x46 &&
|
||||
GETJOCTET(data[2]) == 0x49 &&
|
||||
GETJOCTET(data[3]) == 0x46 &&
|
||||
GETJOCTET(data[4]) == 0) {
|
||||
data[0] == 0x4A &&
|
||||
data[1] == 0x46 &&
|
||||
data[2] == 0x49 &&
|
||||
data[3] == 0x46 &&
|
||||
data[4] == 0) {
|
||||
/* Found JFIF APP0 marker: save info */
|
||||
cinfo->saw_JFIF_marker = TRUE;
|
||||
cinfo->JFIF_major_version = GETJOCTET(data[5]);
|
||||
cinfo->JFIF_minor_version = GETJOCTET(data[6]);
|
||||
cinfo->density_unit = GETJOCTET(data[7]);
|
||||
cinfo->X_density = (GETJOCTET(data[8]) << 8) + GETJOCTET(data[9]);
|
||||
cinfo->Y_density = (GETJOCTET(data[10]) << 8) + GETJOCTET(data[11]);
|
||||
cinfo->JFIF_major_version = data[5];
|
||||
cinfo->JFIF_minor_version = data[6];
|
||||
cinfo->density_unit = data[7];
|
||||
cinfo->X_density = (data[8] << 8) + data[9];
|
||||
cinfo->Y_density = (data[10] << 8) + data[11];
|
||||
/* Check version.
|
||||
* Major version must be 1, anything else signals an incompatible change.
|
||||
* (We used to treat this as an error, but now it's a nonfatal warning,
|
||||
@@ -634,24 +634,22 @@ examine_app0(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
|
||||
cinfo->JFIF_major_version, cinfo->JFIF_minor_version,
|
||||
cinfo->X_density, cinfo->Y_density, cinfo->density_unit);
|
||||
/* Validate thumbnail dimensions and issue appropriate messages */
|
||||
if (GETJOCTET(data[12]) | GETJOCTET(data[13]))
|
||||
TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL,
|
||||
GETJOCTET(data[12]), GETJOCTET(data[13]));
|
||||
if (data[12] | data[13])
|
||||
TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL, data[12], data[13]);
|
||||
totallen -= APP0_DATA_LEN;
|
||||
if (totallen !=
|
||||
((JLONG)GETJOCTET(data[12]) * (JLONG)GETJOCTET(data[13]) * (JLONG)3))
|
||||
if (totallen != ((JLONG)data[12] * (JLONG)data[13] * (JLONG)3))
|
||||
TRACEMS1(cinfo, 1, JTRC_JFIF_BADTHUMBNAILSIZE, (int)totallen);
|
||||
} else if (datalen >= 6 &&
|
||||
GETJOCTET(data[0]) == 0x4A &&
|
||||
GETJOCTET(data[1]) == 0x46 &&
|
||||
GETJOCTET(data[2]) == 0x58 &&
|
||||
GETJOCTET(data[3]) == 0x58 &&
|
||||
GETJOCTET(data[4]) == 0) {
|
||||
data[0] == 0x4A &&
|
||||
data[1] == 0x46 &&
|
||||
data[2] == 0x58 &&
|
||||
data[3] == 0x58 &&
|
||||
data[4] == 0) {
|
||||
/* Found JFIF "JFXX" extension APP0 marker */
|
||||
/* The library doesn't actually do anything with these,
|
||||
* but we try to produce a helpful trace message.
|
||||
*/
|
||||
switch (GETJOCTET(data[5])) {
|
||||
switch (data[5]) {
|
||||
case 0x10:
|
||||
TRACEMS1(cinfo, 1, JTRC_THUMB_JPEG, (int)totallen);
|
||||
break;
|
||||
@@ -662,8 +660,7 @@ examine_app0(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
|
||||
TRACEMS1(cinfo, 1, JTRC_THUMB_RGB, (int)totallen);
|
||||
break;
|
||||
default:
|
||||
TRACEMS2(cinfo, 1, JTRC_JFIF_EXTENSION,
|
||||
GETJOCTET(data[5]), (int)totallen);
|
||||
TRACEMS2(cinfo, 1, JTRC_JFIF_EXTENSION, data[5], (int)totallen);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
@@ -684,16 +681,16 @@ examine_app14(j_decompress_ptr cinfo, JOCTET *data, unsigned int datalen,
|
||||
unsigned int version, flags0, flags1, transform;
|
||||
|
||||
if (datalen >= APP14_DATA_LEN &&
|
||||
GETJOCTET(data[0]) == 0x41 &&
|
||||
GETJOCTET(data[1]) == 0x64 &&
|
||||
GETJOCTET(data[2]) == 0x6F &&
|
||||
GETJOCTET(data[3]) == 0x62 &&
|
||||
GETJOCTET(data[4]) == 0x65) {
|
||||
data[0] == 0x41 &&
|
||||
data[1] == 0x64 &&
|
||||
data[2] == 0x6F &&
|
||||
data[3] == 0x62 &&
|
||||
data[4] == 0x65) {
|
||||
/* Found Adobe APP14 marker */
|
||||
version = (GETJOCTET(data[5]) << 8) + GETJOCTET(data[6]);
|
||||
flags0 = (GETJOCTET(data[7]) << 8) + GETJOCTET(data[8]);
|
||||
flags1 = (GETJOCTET(data[9]) << 8) + GETJOCTET(data[10]);
|
||||
transform = GETJOCTET(data[11]);
|
||||
version = (data[5] << 8) + data[6];
|
||||
flags0 = (data[7] << 8) + data[8];
|
||||
flags1 = (data[9] << 8) + data[10];
|
||||
transform = data[11];
|
||||
TRACEMS4(cinfo, 1, JTRC_ADOBE, version, flags0, flags1, transform);
|
||||
cinfo->saw_Adobe_marker = TRUE;
|
||||
cinfo->Adobe_transform = (UINT8)transform;
|
||||
|
||||
25
3rdparty/libjpeg-turbo/src/jdmaster.c
vendored
25
3rdparty/libjpeg-turbo/src/jdmaster.c
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* Modified 2002-2009 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2009-2011, 2016, D. R. Commander.
|
||||
* Copyright (C) 2009-2011, 2016, 2019, 2022, D. R. Commander.
|
||||
* Copyright (C) 2013, Linaro Limited.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
@@ -22,7 +22,6 @@
|
||||
#include "jpeglib.h"
|
||||
#include "jpegcomp.h"
|
||||
#include "jdmaster.h"
|
||||
#include "jsimd.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -70,17 +69,6 @@ use_merged_upsample(j_decompress_ptr cinfo)
|
||||
cinfo->comp_info[1]._DCT_scaled_size != cinfo->_min_DCT_scaled_size ||
|
||||
cinfo->comp_info[2]._DCT_scaled_size != cinfo->_min_DCT_scaled_size)
|
||||
return FALSE;
|
||||
#ifdef WITH_SIMD
|
||||
/* If YCbCr-to-RGB color conversion is SIMD-accelerated but merged upsampling
|
||||
isn't, then disabling merged upsampling is likely to be faster when
|
||||
decompressing YCbCr JPEG images. */
|
||||
if (!jsimd_can_h2v2_merged_upsample() && !jsimd_can_h2v1_merged_upsample() &&
|
||||
jsimd_can_ycc_rgb() && cinfo->jpeg_color_space == JCS_YCbCr &&
|
||||
(cinfo->out_color_space == JCS_RGB ||
|
||||
(cinfo->out_color_space >= JCS_EXT_RGB &&
|
||||
cinfo->out_color_space <= JCS_EXT_ARGB)))
|
||||
return FALSE;
|
||||
#endif
|
||||
/* ??? also need to test for upsample-time rescaling, when & if supported */
|
||||
return TRUE; /* by golly, it'll work... */
|
||||
#else
|
||||
@@ -429,7 +417,7 @@ prepare_range_limit_table(j_decompress_ptr cinfo)
|
||||
table += (MAXJSAMPLE + 1); /* allow negative subscripts of simple table */
|
||||
cinfo->sample_range_limit = table;
|
||||
/* First segment of "simple" table: limit[x] = 0 for x < 0 */
|
||||
MEMZERO(table - (MAXJSAMPLE + 1), (MAXJSAMPLE + 1) * sizeof(JSAMPLE));
|
||||
memset(table - (MAXJSAMPLE + 1), 0, (MAXJSAMPLE + 1) * sizeof(JSAMPLE));
|
||||
/* Main part of "simple" table: limit[x] = x */
|
||||
for (i = 0; i <= MAXJSAMPLE; i++)
|
||||
table[i] = (JSAMPLE)i;
|
||||
@@ -438,10 +426,10 @@ prepare_range_limit_table(j_decompress_ptr cinfo)
|
||||
for (i = CENTERJSAMPLE; i < 2 * (MAXJSAMPLE + 1); i++)
|
||||
table[i] = MAXJSAMPLE;
|
||||
/* Second half of post-IDCT table */
|
||||
MEMZERO(table + (2 * (MAXJSAMPLE + 1)),
|
||||
(2 * (MAXJSAMPLE + 1) - CENTERJSAMPLE) * sizeof(JSAMPLE));
|
||||
MEMCOPY(table + (4 * (MAXJSAMPLE + 1) - CENTERJSAMPLE),
|
||||
cinfo->sample_range_limit, CENTERJSAMPLE * sizeof(JSAMPLE));
|
||||
memset(table + (2 * (MAXJSAMPLE + 1)), 0,
|
||||
(2 * (MAXJSAMPLE + 1) - CENTERJSAMPLE) * sizeof(JSAMPLE));
|
||||
memcpy(table + (4 * (MAXJSAMPLE + 1) - CENTERJSAMPLE),
|
||||
cinfo->sample_range_limit, CENTERJSAMPLE * sizeof(JSAMPLE));
|
||||
}
|
||||
|
||||
|
||||
@@ -580,6 +568,7 @@ master_selection(j_decompress_ptr cinfo)
|
||||
*/
|
||||
cinfo->master->first_iMCU_col = 0;
|
||||
cinfo->master->last_iMCU_col = cinfo->MCUs_per_row - 1;
|
||||
cinfo->master->last_good_iMCU_row = 0;
|
||||
|
||||
#ifdef D_MULTISCAN_FILES_SUPPORTED
|
||||
/* If jpeg_start_decompress will read the whole file, initialize
|
||||
|
||||
57
3rdparty/libjpeg-turbo/src/jdmerge.c
vendored
57
3rdparty/libjpeg-turbo/src/jdmerge.c
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
|
||||
* Copyright (C) 2009, 2011, 2014-2015, D. R. Commander.
|
||||
* Copyright (C) 2009, 2011, 2014-2015, 2020, D. R. Commander.
|
||||
* Copyright (C) 2013, Linaro Limited.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
@@ -40,41 +40,13 @@
|
||||
#define JPEG_INTERNALS
|
||||
#include "jinclude.h"
|
||||
#include "jpeglib.h"
|
||||
#include "jdmerge.h"
|
||||
#include "jsimd.h"
|
||||
#include "jconfigint.h"
|
||||
|
||||
#ifdef UPSAMPLE_MERGING_SUPPORTED
|
||||
|
||||
|
||||
/* Private subobject */
|
||||
|
||||
typedef struct {
|
||||
struct jpeg_upsampler pub; /* public fields */
|
||||
|
||||
/* Pointer to routine to do actual upsampling/conversion of one row group */
|
||||
void (*upmethod) (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
|
||||
|
||||
/* Private state for YCC->RGB conversion */
|
||||
int *Cr_r_tab; /* => table for Cr to R conversion */
|
||||
int *Cb_b_tab; /* => table for Cb to B conversion */
|
||||
JLONG *Cr_g_tab; /* => table for Cr to G conversion */
|
||||
JLONG *Cb_g_tab; /* => table for Cb to G conversion */
|
||||
|
||||
/* For 2:1 vertical sampling, we produce two output rows at a time.
|
||||
* We need a "spare" row buffer to hold the second output row if the
|
||||
* application provides just a one-row buffer; we also use the spare
|
||||
* to discard the dummy last row if the image height is odd.
|
||||
*/
|
||||
JSAMPROW spare_row;
|
||||
boolean spare_full; /* T if spare buffer is occupied */
|
||||
|
||||
JDIMENSION out_row_width; /* samples per output row */
|
||||
JDIMENSION rows_to_go; /* counts rows remaining in image */
|
||||
} my_upsampler;
|
||||
|
||||
typedef my_upsampler *my_upsample_ptr;
|
||||
|
||||
#define SCALEBITS 16 /* speediest right-shift on some machines */
|
||||
#define ONE_HALF ((JLONG)1 << (SCALEBITS - 1))
|
||||
#define FIX(x) ((JLONG)((x) * (1L << SCALEBITS) + 0.5))
|
||||
@@ -189,7 +161,7 @@ typedef my_upsampler *my_upsample_ptr;
|
||||
LOCAL(void)
|
||||
build_ycc_rgb_table(j_decompress_ptr cinfo)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
int i;
|
||||
JLONG x;
|
||||
SHIFT_TEMPS
|
||||
@@ -232,7 +204,7 @@ build_ycc_rgb_table(j_decompress_ptr cinfo)
|
||||
METHODDEF(void)
|
||||
start_pass_merged_upsample(j_decompress_ptr cinfo)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
|
||||
/* Mark the spare buffer empty */
|
||||
upsample->spare_full = FALSE;
|
||||
@@ -254,7 +226,7 @@ merged_2v_upsample(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)
|
||||
/* 2:1 vertical sampling case: may need a spare row. */
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
JSAMPROW work_ptrs[2];
|
||||
JDIMENSION num_rows; /* number of rows returned to caller */
|
||||
|
||||
@@ -305,7 +277,7 @@ merged_1v_upsample(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)
|
||||
/* 1:1 vertical sampling case: much easier, never need a spare row. */
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
|
||||
/* Just do the upsampling. */
|
||||
(*upsample->upmethod) (cinfo, input_buf, *in_row_group_ctr,
|
||||
@@ -420,17 +392,14 @@ h2v2_merged_upsample(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
* RGB565 conversion
|
||||
*/
|
||||
|
||||
#define PACK_SHORT_565_LE(r, g, b) ((((r) << 8) & 0xF800) | \
|
||||
(((g) << 3) & 0x7E0) | ((b) >> 3))
|
||||
#define PACK_SHORT_565_BE(r, g, b) (((r) & 0xF8) | ((g) >> 5) | \
|
||||
(((g) << 11) & 0xE000) | \
|
||||
(((b) << 5) & 0x1F00))
|
||||
#define PACK_SHORT_565_LE(r, g, b) \
|
||||
((((r) << 8) & 0xF800) | (((g) << 3) & 0x7E0) | ((b) >> 3))
|
||||
#define PACK_SHORT_565_BE(r, g, b) \
|
||||
(((r) & 0xF8) | ((g) >> 5) | (((g) << 11) & 0xE000) | (((b) << 5) & 0x1F00))
|
||||
|
||||
#define PACK_TWO_PIXELS_LE(l, r) ((r << 16) | l)
|
||||
#define PACK_TWO_PIXELS_BE(l, r) ((l << 16) | r)
|
||||
|
||||
#define PACK_NEED_ALIGNMENT(ptr) (((size_t)(ptr)) & 3)
|
||||
|
||||
#define WRITE_TWO_PIXELS_LE(addr, pixels) { \
|
||||
((INT16 *)(addr))[0] = (INT16)(pixels); \
|
||||
((INT16 *)(addr))[1] = (INT16)((pixels) >> 16); \
|
||||
@@ -568,11 +537,11 @@ h2v2_merged_upsample_565D(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
GLOBAL(void)
|
||||
jinit_merged_upsampler(j_decompress_ptr cinfo)
|
||||
{
|
||||
my_upsample_ptr upsample;
|
||||
my_merged_upsample_ptr upsample;
|
||||
|
||||
upsample = (my_upsample_ptr)
|
||||
upsample = (my_merged_upsample_ptr)
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
sizeof(my_upsampler));
|
||||
sizeof(my_merged_upsampler));
|
||||
cinfo->upsample = (struct jpeg_upsampler *)upsample;
|
||||
upsample->pub.start_pass = start_pass_merged_upsample;
|
||||
upsample->pub.need_context_rows = FALSE;
|
||||
|
||||
47
3rdparty/libjpeg-turbo/src/jdmerge.h
vendored
Normal file
47
3rdparty/libjpeg-turbo/src/jdmerge.h
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* jdmerge.h
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*/
|
||||
|
||||
#define JPEG_INTERNALS
|
||||
#include "jpeglib.h"
|
||||
|
||||
#ifdef UPSAMPLE_MERGING_SUPPORTED
|
||||
|
||||
|
||||
/* Private subobject */
|
||||
|
||||
typedef struct {
|
||||
struct jpeg_upsampler pub; /* public fields */
|
||||
|
||||
/* Pointer to routine to do actual upsampling/conversion of one row group */
|
||||
void (*upmethod) (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION in_row_group_ctr, JSAMPARRAY output_buf);
|
||||
|
||||
/* Private state for YCC->RGB conversion */
|
||||
int *Cr_r_tab; /* => table for Cr to R conversion */
|
||||
int *Cb_b_tab; /* => table for Cb to B conversion */
|
||||
JLONG *Cr_g_tab; /* => table for Cr to G conversion */
|
||||
JLONG *Cb_g_tab; /* => table for Cb to G conversion */
|
||||
|
||||
/* For 2:1 vertical sampling, we produce two output rows at a time.
|
||||
* We need a "spare" row buffer to hold the second output row if the
|
||||
* application provides just a one-row buffer; we also use the spare
|
||||
* to discard the dummy last row if the image height is odd.
|
||||
*/
|
||||
JSAMPROW spare_row;
|
||||
boolean spare_full; /* T if spare buffer is occupied */
|
||||
|
||||
JDIMENSION out_row_width; /* samples per output row */
|
||||
JDIMENSION rows_to_go; /* counts rows remaining in image */
|
||||
} my_merged_upsampler;
|
||||
|
||||
typedef my_merged_upsampler *my_merged_upsample_ptr;
|
||||
|
||||
#endif /* UPSAMPLE_MERGING_SUPPORTED */
|
||||
78
3rdparty/libjpeg-turbo/src/jdmrg565.c
vendored
78
3rdparty/libjpeg-turbo/src/jdmrg565.c
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2013, Linaro Limited.
|
||||
* Copyright (C) 2014-2015, 2018, D. R. Commander.
|
||||
* Copyright (C) 2014-2015, 2018, 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -19,7 +19,7 @@ h2v1_merged_upsample_565_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION in_row_group_ctr,
|
||||
JSAMPARRAY output_buf)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
register int y, cred, cgreen, cblue;
|
||||
int cb, cr;
|
||||
register JSAMPROW outptr;
|
||||
@@ -43,20 +43,20 @@ h2v1_merged_upsample_565_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
/* Loop for each pair of output pixels */
|
||||
for (col = cinfo->output_width >> 1; col > 0; col--) {
|
||||
/* Do the chroma part of the calculation */
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
|
||||
/* Fetch 2 Y values and emit 2 pixels */
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
y = *inptr0++;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
y = *inptr0++;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
@@ -68,12 +68,12 @@ h2v1_merged_upsample_565_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
|
||||
/* If image width is odd, do the last output column separately */
|
||||
if (cinfo->output_width & 1) {
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
y = GETJSAMPLE(*inptr0);
|
||||
y = *inptr0;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
@@ -90,7 +90,7 @@ h2v1_merged_upsample_565D_internal(j_decompress_ptr cinfo,
|
||||
JDIMENSION in_row_group_ctr,
|
||||
JSAMPARRAY output_buf)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
register int y, cred, cgreen, cblue;
|
||||
int cb, cr;
|
||||
register JSAMPROW outptr;
|
||||
@@ -115,21 +115,21 @@ h2v1_merged_upsample_565D_internal(j_decompress_ptr cinfo,
|
||||
/* Loop for each pair of output pixels */
|
||||
for (col = cinfo->output_width >> 1; col > 0; col--) {
|
||||
/* Do the chroma part of the calculation */
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
|
||||
/* Fetch 2 Y values and emit 2 pixels */
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
y = *inptr0++;
|
||||
r = range_limit[DITHER_565_R(y + cred, d0)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d0)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d0)];
|
||||
d0 = DITHER_ROTATE(d0);
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
y = *inptr0++;
|
||||
r = range_limit[DITHER_565_R(y + cred, d0)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d0)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d0)];
|
||||
@@ -142,12 +142,12 @@ h2v1_merged_upsample_565D_internal(j_decompress_ptr cinfo,
|
||||
|
||||
/* If image width is odd, do the last output column separately */
|
||||
if (cinfo->output_width & 1) {
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
y = GETJSAMPLE(*inptr0);
|
||||
y = *inptr0;
|
||||
r = range_limit[DITHER_565_R(y + cred, d0)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d0)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d0)];
|
||||
@@ -163,7 +163,7 @@ h2v2_merged_upsample_565_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION in_row_group_ctr,
|
||||
JSAMPARRAY output_buf)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
register int y, cred, cgreen, cblue;
|
||||
int cb, cr;
|
||||
register JSAMPROW outptr0, outptr1;
|
||||
@@ -189,20 +189,20 @@ h2v2_merged_upsample_565_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
/* Loop for each group of output pixels */
|
||||
for (col = cinfo->output_width >> 1; col > 0; col--) {
|
||||
/* Do the chroma part of the calculation */
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
|
||||
/* Fetch 4 Y values and emit 4 pixels */
|
||||
y = GETJSAMPLE(*inptr00++);
|
||||
y = *inptr00++;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr00++);
|
||||
y = *inptr00++;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
@@ -211,13 +211,13 @@ h2v2_merged_upsample_565_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
WRITE_TWO_PIXELS(outptr0, rgb);
|
||||
outptr0 += 4;
|
||||
|
||||
y = GETJSAMPLE(*inptr01++);
|
||||
y = *inptr01++;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr01++);
|
||||
y = *inptr01++;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
@@ -229,20 +229,20 @@ h2v2_merged_upsample_565_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
|
||||
/* If image width is odd, do the last output column separately */
|
||||
if (cinfo->output_width & 1) {
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
|
||||
y = GETJSAMPLE(*inptr00);
|
||||
y = *inptr00;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
*(INT16 *)outptr0 = (INT16)rgb;
|
||||
|
||||
y = GETJSAMPLE(*inptr01);
|
||||
y = *inptr01;
|
||||
r = range_limit[y + cred];
|
||||
g = range_limit[y + cgreen];
|
||||
b = range_limit[y + cblue];
|
||||
@@ -259,7 +259,7 @@ h2v2_merged_upsample_565D_internal(j_decompress_ptr cinfo,
|
||||
JDIMENSION in_row_group_ctr,
|
||||
JSAMPARRAY output_buf)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
register int y, cred, cgreen, cblue;
|
||||
int cb, cr;
|
||||
register JSAMPROW outptr0, outptr1;
|
||||
@@ -287,21 +287,21 @@ h2v2_merged_upsample_565D_internal(j_decompress_ptr cinfo,
|
||||
/* Loop for each group of output pixels */
|
||||
for (col = cinfo->output_width >> 1; col > 0; col--) {
|
||||
/* Do the chroma part of the calculation */
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
|
||||
/* Fetch 4 Y values and emit 4 pixels */
|
||||
y = GETJSAMPLE(*inptr00++);
|
||||
y = *inptr00++;
|
||||
r = range_limit[DITHER_565_R(y + cred, d0)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d0)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d0)];
|
||||
d0 = DITHER_ROTATE(d0);
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr00++);
|
||||
y = *inptr00++;
|
||||
r = range_limit[DITHER_565_R(y + cred, d0)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d0)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d0)];
|
||||
@@ -311,14 +311,14 @@ h2v2_merged_upsample_565D_internal(j_decompress_ptr cinfo,
|
||||
WRITE_TWO_PIXELS(outptr0, rgb);
|
||||
outptr0 += 4;
|
||||
|
||||
y = GETJSAMPLE(*inptr01++);
|
||||
y = *inptr01++;
|
||||
r = range_limit[DITHER_565_R(y + cred, d1)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d1)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d1)];
|
||||
d1 = DITHER_ROTATE(d1);
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
|
||||
y = GETJSAMPLE(*inptr01++);
|
||||
y = *inptr01++;
|
||||
r = range_limit[DITHER_565_R(y + cred, d1)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d1)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d1)];
|
||||
@@ -331,20 +331,20 @@ h2v2_merged_upsample_565D_internal(j_decompress_ptr cinfo,
|
||||
|
||||
/* If image width is odd, do the last output column separately */
|
||||
if (cinfo->output_width & 1) {
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
|
||||
y = GETJSAMPLE(*inptr00);
|
||||
y = *inptr00;
|
||||
r = range_limit[DITHER_565_R(y + cred, d0)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d0)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d0)];
|
||||
rgb = PACK_SHORT_565(r, g, b);
|
||||
*(INT16 *)outptr0 = (INT16)rgb;
|
||||
|
||||
y = GETJSAMPLE(*inptr01);
|
||||
y = *inptr01;
|
||||
r = range_limit[DITHER_565_R(y + cred, d1)];
|
||||
g = range_limit[DITHER_565_G(y + cgreen, d1)];
|
||||
b = range_limit[DITHER_565_B(y + cblue, d1)];
|
||||
|
||||
40
3rdparty/libjpeg-turbo/src/jdmrgext.c
vendored
40
3rdparty/libjpeg-turbo/src/jdmrgext.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1994-1996, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2011, 2015, D. R. Commander.
|
||||
* Copyright (C) 2011, 2015, 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -25,7 +25,7 @@ h2v1_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION in_row_group_ctr,
|
||||
JSAMPARRAY output_buf)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
register int y, cred, cgreen, cblue;
|
||||
int cb, cr;
|
||||
register JSAMPROW outptr;
|
||||
@@ -46,13 +46,13 @@ h2v1_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
/* Loop for each pair of output pixels */
|
||||
for (col = cinfo->output_width >> 1; col > 0; col--) {
|
||||
/* Do the chroma part of the calculation */
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
/* Fetch 2 Y values and emit 2 pixels */
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
y = *inptr0++;
|
||||
outptr[RGB_RED] = range_limit[y + cred];
|
||||
outptr[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr[RGB_BLUE] = range_limit[y + cblue];
|
||||
@@ -60,7 +60,7 @@ h2v1_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr[RGB_ALPHA] = 0xFF;
|
||||
#endif
|
||||
outptr += RGB_PIXELSIZE;
|
||||
y = GETJSAMPLE(*inptr0++);
|
||||
y = *inptr0++;
|
||||
outptr[RGB_RED] = range_limit[y + cred];
|
||||
outptr[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr[RGB_BLUE] = range_limit[y + cblue];
|
||||
@@ -71,12 +71,12 @@ h2v1_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
}
|
||||
/* If image width is odd, do the last output column separately */
|
||||
if (cinfo->output_width & 1) {
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
y = GETJSAMPLE(*inptr0);
|
||||
y = *inptr0;
|
||||
outptr[RGB_RED] = range_limit[y + cred];
|
||||
outptr[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr[RGB_BLUE] = range_limit[y + cblue];
|
||||
@@ -97,7 +97,7 @@ h2v2_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
JDIMENSION in_row_group_ctr,
|
||||
JSAMPARRAY output_buf)
|
||||
{
|
||||
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
|
||||
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
|
||||
register int y, cred, cgreen, cblue;
|
||||
int cb, cr;
|
||||
register JSAMPROW outptr0, outptr1;
|
||||
@@ -120,13 +120,13 @@ h2v2_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
/* Loop for each group of output pixels */
|
||||
for (col = cinfo->output_width >> 1; col > 0; col--) {
|
||||
/* Do the chroma part of the calculation */
|
||||
cb = GETJSAMPLE(*inptr1++);
|
||||
cr = GETJSAMPLE(*inptr2++);
|
||||
cb = *inptr1++;
|
||||
cr = *inptr2++;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
/* Fetch 4 Y values and emit 4 pixels */
|
||||
y = GETJSAMPLE(*inptr00++);
|
||||
y = *inptr00++;
|
||||
outptr0[RGB_RED] = range_limit[y + cred];
|
||||
outptr0[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr0[RGB_BLUE] = range_limit[y + cblue];
|
||||
@@ -134,7 +134,7 @@ h2v2_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr0[RGB_ALPHA] = 0xFF;
|
||||
#endif
|
||||
outptr0 += RGB_PIXELSIZE;
|
||||
y = GETJSAMPLE(*inptr00++);
|
||||
y = *inptr00++;
|
||||
outptr0[RGB_RED] = range_limit[y + cred];
|
||||
outptr0[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr0[RGB_BLUE] = range_limit[y + cblue];
|
||||
@@ -142,7 +142,7 @@ h2v2_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr0[RGB_ALPHA] = 0xFF;
|
||||
#endif
|
||||
outptr0 += RGB_PIXELSIZE;
|
||||
y = GETJSAMPLE(*inptr01++);
|
||||
y = *inptr01++;
|
||||
outptr1[RGB_RED] = range_limit[y + cred];
|
||||
outptr1[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr1[RGB_BLUE] = range_limit[y + cblue];
|
||||
@@ -150,7 +150,7 @@ h2v2_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
outptr1[RGB_ALPHA] = 0xFF;
|
||||
#endif
|
||||
outptr1 += RGB_PIXELSIZE;
|
||||
y = GETJSAMPLE(*inptr01++);
|
||||
y = *inptr01++;
|
||||
outptr1[RGB_RED] = range_limit[y + cred];
|
||||
outptr1[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr1[RGB_BLUE] = range_limit[y + cblue];
|
||||
@@ -161,19 +161,19 @@ h2v2_merged_upsample_internal(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
|
||||
}
|
||||
/* If image width is odd, do the last output column separately */
|
||||
if (cinfo->output_width & 1) {
|
||||
cb = GETJSAMPLE(*inptr1);
|
||||
cr = GETJSAMPLE(*inptr2);
|
||||
cb = *inptr1;
|
||||
cr = *inptr2;
|
||||
cred = Crrtab[cr];
|
||||
cgreen = (int)RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS);
|
||||
cblue = Cbbtab[cb];
|
||||
y = GETJSAMPLE(*inptr00);
|
||||
y = *inptr00;
|
||||
outptr0[RGB_RED] = range_limit[y + cred];
|
||||
outptr0[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr0[RGB_BLUE] = range_limit[y + cblue];
|
||||
#ifdef RGB_ALPHA
|
||||
outptr0[RGB_ALPHA] = 0xFF;
|
||||
#endif
|
||||
y = GETJSAMPLE(*inptr01);
|
||||
y = *inptr01;
|
||||
outptr1[RGB_RED] = range_limit[y + cred];
|
||||
outptr1[RGB_GREEN] = range_limit[y + cgreen];
|
||||
outptr1[RGB_BLUE] = range_limit[y + cblue];
|
||||
|
||||
56
3rdparty/libjpeg-turbo/src/jdphuff.c
vendored
56
3rdparty/libjpeg-turbo/src/jdphuff.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1995-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2015-2016, 2018, D. R. Commander.
|
||||
* Copyright (C) 2015-2016, 2018-2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -41,25 +41,6 @@ typedef struct {
|
||||
int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */
|
||||
} savable_state;
|
||||
|
||||
/* This macro is to work around compilers with missing or broken
|
||||
* structure assignment. You'll need to fix this code if you have
|
||||
* such a compiler and you change MAX_COMPS_IN_SCAN.
|
||||
*/
|
||||
|
||||
#ifndef NO_STRUCT_ASSIGN
|
||||
#define ASSIGN_STATE(dest, src) ((dest) = (src))
|
||||
#else
|
||||
#if MAX_COMPS_IN_SCAN == 4
|
||||
#define ASSIGN_STATE(dest, src) \
|
||||
((dest).EOBRUN = (src).EOBRUN, \
|
||||
(dest).last_dc_val[0] = (src).last_dc_val[0], \
|
||||
(dest).last_dc_val[1] = (src).last_dc_val[1], \
|
||||
(dest).last_dc_val[2] = (src).last_dc_val[2], \
|
||||
(dest).last_dc_val[3] = (src).last_dc_val[3])
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct {
|
||||
struct jpeg_entropy_decoder pub; /* public fields */
|
||||
|
||||
@@ -102,7 +83,7 @@ start_pass_phuff_decoder(j_decompress_ptr cinfo)
|
||||
boolean is_DC_band, bad;
|
||||
int ci, coefi, tbl;
|
||||
d_derived_tbl **pdtbl;
|
||||
int *coef_bit_ptr;
|
||||
int *coef_bit_ptr, *prev_coef_bit_ptr;
|
||||
jpeg_component_info *compptr;
|
||||
|
||||
is_DC_band = (cinfo->Ss == 0);
|
||||
@@ -143,8 +124,15 @@ start_pass_phuff_decoder(j_decompress_ptr cinfo)
|
||||
for (ci = 0; ci < cinfo->comps_in_scan; ci++) {
|
||||
int cindex = cinfo->cur_comp_info[ci]->component_index;
|
||||
coef_bit_ptr = &cinfo->coef_bits[cindex][0];
|
||||
prev_coef_bit_ptr = &cinfo->coef_bits[cindex + cinfo->num_components][0];
|
||||
if (!is_DC_band && coef_bit_ptr[0] < 0) /* AC without prior DC scan */
|
||||
WARNMS2(cinfo, JWRN_BOGUS_PROGRESSION, cindex, 0);
|
||||
for (coefi = MIN(cinfo->Ss, 1); coefi <= MAX(cinfo->Se, 9); coefi++) {
|
||||
if (cinfo->input_scan_number > 1)
|
||||
prev_coef_bit_ptr[coefi] = coef_bit_ptr[coefi];
|
||||
else
|
||||
prev_coef_bit_ptr[coefi] = 0;
|
||||
}
|
||||
for (coefi = cinfo->Ss; coefi <= cinfo->Se; coefi++) {
|
||||
int expected = (coef_bit_ptr[coefi] < 0) ? 0 : coef_bit_ptr[coefi];
|
||||
if (cinfo->Ah != expected)
|
||||
@@ -323,7 +311,7 @@ decode_mcu_DC_first(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
|
||||
/* Load up working state */
|
||||
BITREAD_LOAD_STATE(cinfo, entropy->bitstate);
|
||||
ASSIGN_STATE(state, entropy->saved);
|
||||
state = entropy->saved;
|
||||
|
||||
/* Outer loop handles each block in the MCU */
|
||||
|
||||
@@ -356,11 +344,12 @@ decode_mcu_DC_first(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
|
||||
/* Completed MCU, so update state */
|
||||
BITREAD_SAVE_STATE(cinfo, entropy->bitstate);
|
||||
ASSIGN_STATE(entropy->saved, state);
|
||||
entropy->saved = state;
|
||||
}
|
||||
|
||||
/* Account for restart interval (no-op if not using restarts) */
|
||||
entropy->restarts_to_go--;
|
||||
if (cinfo->restart_interval)
|
||||
entropy->restarts_to_go--;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -444,7 +433,8 @@ decode_mcu_AC_first(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
}
|
||||
|
||||
/* Account for restart interval (no-op if not using restarts) */
|
||||
entropy->restarts_to_go--;
|
||||
if (cinfo->restart_interval)
|
||||
entropy->restarts_to_go--;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -495,7 +485,8 @@ decode_mcu_DC_refine(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
BITREAD_SAVE_STATE(cinfo, entropy->bitstate);
|
||||
|
||||
/* Account for restart interval (no-op if not using restarts) */
|
||||
entropy->restarts_to_go--;
|
||||
if (cinfo->restart_interval)
|
||||
entropy->restarts_to_go--;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -587,9 +578,9 @@ decode_mcu_AC_refine(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
if (GET_BITS(1)) {
|
||||
if ((*thiscoef & p1) == 0) { /* do nothing if already set it */
|
||||
if (*thiscoef >= 0)
|
||||
*thiscoef += p1;
|
||||
*thiscoef += (JCOEF)p1;
|
||||
else
|
||||
*thiscoef += m1;
|
||||
*thiscoef += (JCOEF)m1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -621,9 +612,9 @@ decode_mcu_AC_refine(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
if (GET_BITS(1)) {
|
||||
if ((*thiscoef & p1) == 0) { /* do nothing if already changed it */
|
||||
if (*thiscoef >= 0)
|
||||
*thiscoef += p1;
|
||||
*thiscoef += (JCOEF)p1;
|
||||
else
|
||||
*thiscoef += m1;
|
||||
*thiscoef += (JCOEF)m1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -638,7 +629,8 @@ decode_mcu_AC_refine(j_decompress_ptr cinfo, JBLOCKROW *MCU_data)
|
||||
}
|
||||
|
||||
/* Account for restart interval (no-op if not using restarts) */
|
||||
entropy->restarts_to_go--;
|
||||
if (cinfo->restart_interval)
|
||||
entropy->restarts_to_go--;
|
||||
|
||||
return TRUE;
|
||||
|
||||
@@ -676,7 +668,7 @@ jinit_phuff_decoder(j_decompress_ptr cinfo)
|
||||
/* Create progression status table */
|
||||
cinfo->coef_bits = (int (*)[DCTSIZE2])
|
||||
(*cinfo->mem->alloc_small) ((j_common_ptr)cinfo, JPOOL_IMAGE,
|
||||
cinfo->num_components * DCTSIZE2 *
|
||||
cinfo->num_components * 2 * DCTSIZE2 *
|
||||
sizeof(int));
|
||||
coef_bit_ptr = &cinfo->coef_bits[0][0];
|
||||
for (ci = 0; ci < cinfo->num_components; ci++)
|
||||
|
||||
50
3rdparty/libjpeg-turbo/src/jdsample.c
vendored
50
3rdparty/libjpeg-turbo/src/jdsample.c
vendored
@@ -8,6 +8,7 @@
|
||||
* Copyright (C) 2010, 2015-2016, D. R. Commander.
|
||||
* Copyright (C) 2014, MIPS Technologies, Inc., California.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* Copyright (C) 2019-2020, Arm Limited.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -176,7 +177,7 @@ int_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
outptr = output_data[outrow];
|
||||
outend = outptr + cinfo->output_width;
|
||||
while (outptr < outend) {
|
||||
invalue = *inptr++; /* don't need GETJSAMPLE() here */
|
||||
invalue = *inptr++;
|
||||
for (h = h_expand; h > 0; h--) {
|
||||
*outptr++ = invalue;
|
||||
}
|
||||
@@ -212,7 +213,7 @@ h2v1_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
outptr = output_data[inrow];
|
||||
outend = outptr + cinfo->output_width;
|
||||
while (outptr < outend) {
|
||||
invalue = *inptr++; /* don't need GETJSAMPLE() here */
|
||||
invalue = *inptr++;
|
||||
*outptr++ = invalue;
|
||||
*outptr++ = invalue;
|
||||
}
|
||||
@@ -241,7 +242,7 @@ h2v2_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
outptr = output_data[outrow];
|
||||
outend = outptr + cinfo->output_width;
|
||||
while (outptr < outend) {
|
||||
invalue = *inptr++; /* don't need GETJSAMPLE() here */
|
||||
invalue = *inptr++;
|
||||
*outptr++ = invalue;
|
||||
*outptr++ = invalue;
|
||||
}
|
||||
@@ -282,20 +283,20 @@ h2v1_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
inptr = input_data[inrow];
|
||||
outptr = output_data[inrow];
|
||||
/* Special case for first column */
|
||||
invalue = GETJSAMPLE(*inptr++);
|
||||
invalue = *inptr++;
|
||||
*outptr++ = (JSAMPLE)invalue;
|
||||
*outptr++ = (JSAMPLE)((invalue * 3 + GETJSAMPLE(*inptr) + 2) >> 2);
|
||||
*outptr++ = (JSAMPLE)((invalue * 3 + inptr[0] + 2) >> 2);
|
||||
|
||||
for (colctr = compptr->downsampled_width - 2; colctr > 0; colctr--) {
|
||||
/* General case: 3/4 * nearer pixel + 1/4 * further pixel */
|
||||
invalue = GETJSAMPLE(*inptr++) * 3;
|
||||
*outptr++ = (JSAMPLE)((invalue + GETJSAMPLE(inptr[-2]) + 1) >> 2);
|
||||
*outptr++ = (JSAMPLE)((invalue + GETJSAMPLE(*inptr) + 2) >> 2);
|
||||
invalue = (*inptr++) * 3;
|
||||
*outptr++ = (JSAMPLE)((invalue + inptr[-2] + 1) >> 2);
|
||||
*outptr++ = (JSAMPLE)((invalue + inptr[0] + 2) >> 2);
|
||||
}
|
||||
|
||||
/* Special case for last column */
|
||||
invalue = GETJSAMPLE(*inptr);
|
||||
*outptr++ = (JSAMPLE)((invalue * 3 + GETJSAMPLE(inptr[-1]) + 1) >> 2);
|
||||
invalue = *inptr;
|
||||
*outptr++ = (JSAMPLE)((invalue * 3 + inptr[-1] + 1) >> 2);
|
||||
*outptr++ = (JSAMPLE)invalue;
|
||||
}
|
||||
}
|
||||
@@ -315,9 +316,9 @@ h1v2_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
JSAMPARRAY output_data = *output_data_ptr;
|
||||
JSAMPROW inptr0, inptr1, outptr;
|
||||
#if BITS_IN_JSAMPLE == 8
|
||||
int thiscolsum;
|
||||
int thiscolsum, bias;
|
||||
#else
|
||||
JLONG thiscolsum;
|
||||
JLONG thiscolsum, bias;
|
||||
#endif
|
||||
JDIMENSION colctr;
|
||||
int inrow, outrow, v;
|
||||
@@ -327,15 +328,18 @@ h1v2_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
for (v = 0; v < 2; v++) {
|
||||
/* inptr0 points to nearest input row, inptr1 points to next nearest */
|
||||
inptr0 = input_data[inrow];
|
||||
if (v == 0) /* next nearest is row above */
|
||||
if (v == 0) { /* next nearest is row above */
|
||||
inptr1 = input_data[inrow - 1];
|
||||
else /* next nearest is row below */
|
||||
bias = 1;
|
||||
} else { /* next nearest is row below */
|
||||
inptr1 = input_data[inrow + 1];
|
||||
bias = 2;
|
||||
}
|
||||
outptr = output_data[outrow++];
|
||||
|
||||
for (colctr = 0; colctr < compptr->downsampled_width; colctr++) {
|
||||
thiscolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum + 1) >> 2);
|
||||
thiscolsum = (*inptr0++) * 3 + (*inptr1++);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum + bias) >> 2);
|
||||
}
|
||||
}
|
||||
inrow++;
|
||||
@@ -377,8 +381,8 @@ h2v2_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
outptr = output_data[outrow++];
|
||||
|
||||
/* Special case for first column */
|
||||
thiscolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++);
|
||||
nextcolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++);
|
||||
thiscolsum = (*inptr0++) * 3 + (*inptr1++);
|
||||
nextcolsum = (*inptr0++) * 3 + (*inptr1++);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum * 4 + 8) >> 4);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum * 3 + nextcolsum + 7) >> 4);
|
||||
lastcolsum = thiscolsum; thiscolsum = nextcolsum;
|
||||
@@ -386,7 +390,7 @@ h2v2_fancy_upsample(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
for (colctr = compptr->downsampled_width - 2; colctr > 0; colctr--) {
|
||||
/* General case: 3/4 * nearer pixel + 1/4 * further pixel in each */
|
||||
/* dimension, thus 9/16, 3/16, 3/16, 1/16 overall */
|
||||
nextcolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++);
|
||||
nextcolsum = (*inptr0++) * 3 + (*inptr1++);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum * 3 + lastcolsum + 8) >> 4);
|
||||
*outptr++ = (JSAMPLE)((thiscolsum * 3 + nextcolsum + 7) >> 4);
|
||||
lastcolsum = thiscolsum; thiscolsum = nextcolsum;
|
||||
@@ -473,7 +477,13 @@ jinit_upsampler(j_decompress_ptr cinfo)
|
||||
} else if (h_in_group == h_out_group &&
|
||||
v_in_group * 2 == v_out_group && do_fancy) {
|
||||
/* Non-fancy upsampling is handled by the generic method */
|
||||
upsample->methods[ci] = h1v2_fancy_upsample;
|
||||
#if defined(__arm__) || defined(__aarch64__) || \
|
||||
defined(_M_ARM) || defined(_M_ARM64)
|
||||
if (jsimd_can_h1v2_fancy_upsample())
|
||||
upsample->methods[ci] = jsimd_h1v2_fancy_upsample;
|
||||
else
|
||||
#endif
|
||||
upsample->methods[ci] = h1v2_fancy_upsample;
|
||||
upsample->pub.need_context_rows = TRUE;
|
||||
} else if (h_in_group * 2 == h_out_group &&
|
||||
v_in_group * 2 == v_out_group) {
|
||||
|
||||
5
3rdparty/libjpeg-turbo/src/jdtrans.c
vendored
5
3rdparty/libjpeg-turbo/src/jdtrans.c
vendored
@@ -3,8 +3,8 @@
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1995-1997, Thomas G. Lane.
|
||||
* It was modified by The libjpeg-turbo Project to include only code relevant
|
||||
* to libjpeg-turbo.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -16,6 +16,7 @@
|
||||
#define JPEG_INTERNALS
|
||||
#include "jinclude.h"
|
||||
#include "jpeglib.h"
|
||||
#include "jpegcomp.h"
|
||||
|
||||
|
||||
/* Forward declarations */
|
||||
|
||||
16
3rdparty/libjpeg-turbo/src/jerror.c
vendored
16
3rdparty/libjpeg-turbo/src/jerror.c
vendored
@@ -3,8 +3,8 @@
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1998, Thomas G. Lane.
|
||||
* It was modified by The libjpeg-turbo Project to include only code relevant
|
||||
* to libjpeg-turbo.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -189,13 +189,13 @@ format_message(j_common_ptr cinfo, char *buffer)
|
||||
|
||||
/* Format the message into the passed buffer */
|
||||
if (isstring)
|
||||
sprintf(buffer, msgtext, err->msg_parm.s);
|
||||
snprintf(buffer, JMSG_LENGTH_MAX, msgtext, err->msg_parm.s);
|
||||
else
|
||||
sprintf(buffer, msgtext,
|
||||
err->msg_parm.i[0], err->msg_parm.i[1],
|
||||
err->msg_parm.i[2], err->msg_parm.i[3],
|
||||
err->msg_parm.i[4], err->msg_parm.i[5],
|
||||
err->msg_parm.i[6], err->msg_parm.i[7]);
|
||||
snprintf(buffer, JMSG_LENGTH_MAX, msgtext,
|
||||
err->msg_parm.i[0], err->msg_parm.i[1],
|
||||
err->msg_parm.i[2], err->msg_parm.i[3],
|
||||
err->msg_parm.i[4], err->msg_parm.i[5],
|
||||
err->msg_parm.i[6], err->msg_parm.i[7]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
19
3rdparty/libjpeg-turbo/src/jerror.h
vendored
19
3rdparty/libjpeg-turbo/src/jerror.h
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1994-1997, Thomas G. Lane.
|
||||
* Modified 1997-2009 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2014, 2017, D. R. Commander.
|
||||
* Copyright (C) 2014, 2017, 2021-2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -103,7 +103,7 @@ JMESSAGE(JERR_MISMATCHED_QUANT_TABLE,
|
||||
"Cannot transcode due to multiple use of quantization table %d")
|
||||
JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data")
|
||||
JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change")
|
||||
JMESSAGE(JERR_NOTIMPL, "Not implemented yet")
|
||||
JMESSAGE(JERR_NOTIMPL, "Requested features are incompatible")
|
||||
JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time")
|
||||
#if JPEG_LIB_VERSION >= 70
|
||||
JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined")
|
||||
@@ -207,6 +207,10 @@ JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code")
|
||||
#endif
|
||||
#endif
|
||||
JMESSAGE(JWRN_BOGUS_ICC, "Corrupt JPEG data: bad ICC marker")
|
||||
#if JPEG_LIB_VERSION < 70
|
||||
JMESSAGE(JERR_BAD_DROP_SAMPLING,
|
||||
"Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c")
|
||||
#endif
|
||||
|
||||
#ifdef JMAKE_ENUM_LIST
|
||||
|
||||
@@ -252,9 +256,19 @@ JMESSAGE(JWRN_BOGUS_ICC, "Corrupt JPEG data: bad ICC marker")
|
||||
(cinfo)->err->msg_parm.i[2] = (p3), \
|
||||
(cinfo)->err->msg_parm.i[3] = (p4), \
|
||||
(*(cinfo)->err->error_exit) ((j_common_ptr)(cinfo)))
|
||||
#define ERREXIT6(cinfo, code, p1, p2, p3, p4, p5, p6) \
|
||||
((cinfo)->err->msg_code = (code), \
|
||||
(cinfo)->err->msg_parm.i[0] = (p1), \
|
||||
(cinfo)->err->msg_parm.i[1] = (p2), \
|
||||
(cinfo)->err->msg_parm.i[2] = (p3), \
|
||||
(cinfo)->err->msg_parm.i[3] = (p4), \
|
||||
(cinfo)->err->msg_parm.i[4] = (p5), \
|
||||
(cinfo)->err->msg_parm.i[5] = (p6), \
|
||||
(*(cinfo)->err->error_exit) ((j_common_ptr)(cinfo)))
|
||||
#define ERREXITS(cinfo, code, str) \
|
||||
((cinfo)->err->msg_code = (code), \
|
||||
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
||||
(cinfo)->err->msg_parm.s[JMSG_STR_PARM_MAX - 1] = '\0', \
|
||||
(*(cinfo)->err->error_exit) ((j_common_ptr)(cinfo)))
|
||||
|
||||
#define MAKESTMT(stuff) do { stuff } while (0)
|
||||
@@ -311,6 +325,7 @@ JMESSAGE(JWRN_BOGUS_ICC, "Corrupt JPEG data: bad ICC marker")
|
||||
#define TRACEMSS(cinfo, lvl, code, str) \
|
||||
((cinfo)->err->msg_code = (code), \
|
||||
strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \
|
||||
(cinfo)->err->msg_parm.s[JMSG_STR_PARM_MAX - 1] = '\0', \
|
||||
(*(cinfo)->err->emit_message) ((j_common_ptr)(cinfo), (lvl)))
|
||||
|
||||
#endif /* JERROR_H */
|
||||
|
||||
6
3rdparty/libjpeg-turbo/src/jfdctint.c
vendored
6
3rdparty/libjpeg-turbo/src/jfdctint.c
vendored
@@ -1,14 +1,14 @@
|
||||
/*
|
||||
* jfdctint.c
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software.
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1996, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2015, D. R. Commander.
|
||||
* Copyright (C) 2015, 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
* This file contains a slow-but-accurate integer implementation of the
|
||||
* This file contains a slower but more accurate integer implementation of the
|
||||
* forward DCT (Discrete Cosine Transform).
|
||||
*
|
||||
* A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT
|
||||
|
||||
14
3rdparty/libjpeg-turbo/src/jidctint.c
vendored
14
3rdparty/libjpeg-turbo/src/jidctint.c
vendored
@@ -1,15 +1,15 @@
|
||||
/*
|
||||
* jidctint.c
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software.
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1998, Thomas G. Lane.
|
||||
* Modification developed 2002-2009 by Guido Vollbeding.
|
||||
* Modification developed 2002-2018 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2015, D. R. Commander.
|
||||
* Copyright (C) 2015, 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
* This file contains a slow-but-accurate integer implementation of the
|
||||
* This file contains a slower but more accurate integer implementation of the
|
||||
* inverse DCT (Discrete Cosine Transform). In the IJG code, this routine
|
||||
* must also perform dequantization of the input coefficients.
|
||||
*
|
||||
@@ -417,7 +417,7 @@ jpeg_idct_islow(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
|
||||
/*
|
||||
* Perform dequantization and inverse DCT on one block of coefficients,
|
||||
* producing a 7x7 output block.
|
||||
* producing a reduced-size 7x7 output block.
|
||||
*
|
||||
* Optimized algorithm with 12 multiplications in the 1-D kernel.
|
||||
* cK represents sqrt(2) * cos(K*pi/14).
|
||||
@@ -1258,7 +1258,7 @@ jpeg_idct_10x10(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
|
||||
/*
|
||||
* Perform dequantization and inverse DCT on one block of coefficients,
|
||||
* producing a 11x11 output block.
|
||||
* producing an 11x11 output block.
|
||||
*
|
||||
* Optimized algorithm with 24 multiplications in the 1-D kernel.
|
||||
* cK represents sqrt(2) * cos(K*pi/22).
|
||||
@@ -2398,7 +2398,7 @@ jpeg_idct_16x16(j_decompress_ptr cinfo, jpeg_component_info *compptr,
|
||||
tmp0 = DEQUANTIZE(inptr[DCTSIZE * 0], quantptr[DCTSIZE * 0]);
|
||||
tmp0 = LEFT_SHIFT(tmp0, CONST_BITS);
|
||||
/* Add fudge factor here for final descale. */
|
||||
tmp0 += 1 << (CONST_BITS - PASS1_BITS - 1);
|
||||
tmp0 += ONE << (CONST_BITS - PASS1_BITS - 1);
|
||||
|
||||
z1 = DEQUANTIZE(inptr[DCTSIZE * 4], quantptr[DCTSIZE * 4]);
|
||||
tmp1 = MULTIPLY(z1, FIX(1.306562965)); /* c4[16] = c2[8] */
|
||||
|
||||
2
3rdparty/libjpeg-turbo/src/jidctred.c
vendored
2
3rdparty/libjpeg-turbo/src/jidctred.c
vendored
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* jidctred.c
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software.
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1994-1998, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2015, D. R. Commander.
|
||||
|
||||
145
3rdparty/libjpeg-turbo/src/jinclude.h
vendored
145
3rdparty/libjpeg-turbo/src/jinclude.h
vendored
@@ -3,8 +3,8 @@
|
||||
*
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1994, Thomas G. Lane.
|
||||
* It was modified by The libjpeg-turbo Project to include only code relevant
|
||||
* to libjpeg-turbo.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -17,72 +17,117 @@
|
||||
* JPEG library. Most applications need only include jpeglib.h.
|
||||
*/
|
||||
|
||||
#ifndef __JINCLUDE_H__
|
||||
#define __JINCLUDE_H__
|
||||
|
||||
/* Include auto-config file to find out which system include files we need. */
|
||||
|
||||
#include "jconfig.h" /* auto configuration options */
|
||||
#include "jconfigint.h"
|
||||
#define JCONFIG_INCLUDED /* so that jpeglib.h doesn't do it again */
|
||||
|
||||
/*
|
||||
* We need the NULL macro and size_t typedef.
|
||||
* On an ANSI-conforming system it is sufficient to include <stddef.h>.
|
||||
* Otherwise, we get them from <stdlib.h> or <stdio.h>; we may have to
|
||||
* pull in <sys/types.h> as well.
|
||||
* Note that the core JPEG library does not require <stdio.h>;
|
||||
* only the default error handler and data source/destination modules do.
|
||||
* But we must pull it in because of the references to FILE in jpeglib.h.
|
||||
* You can remove those references if you want to compile without <stdio.h>.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_STDDEF_H
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifdef NEED_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
* We need memory copying and zeroing functions, plus strncpy().
|
||||
* ANSI and System V implementations declare these in <string.h>.
|
||||
* BSD doesn't have the mem() functions, but it does have bcopy()/bzero().
|
||||
* Some systems may declare memset and memcpy in <memory.h>.
|
||||
*
|
||||
* NOTE: we assume the size parameters to these functions are of type size_t.
|
||||
* Change the casts in these macros if not!
|
||||
*/
|
||||
|
||||
#ifdef NEED_BSD_STRINGS
|
||||
|
||||
#include <strings.h>
|
||||
#define MEMZERO(target, size) \
|
||||
bzero((void *)(target), (size_t)(size))
|
||||
#define MEMCOPY(dest, src, size) \
|
||||
bcopy((const void *)(src), (void *)(dest), (size_t)(size))
|
||||
|
||||
#else /* not BSD, assume ANSI/SysV string lib */
|
||||
|
||||
#include <string.h>
|
||||
#define MEMZERO(target, size) \
|
||||
memset((void *)(target), 0, (size_t)(size))
|
||||
#define MEMCOPY(dest, src, size) \
|
||||
memcpy((void *)(dest), (const void *)(src), (size_t)(size))
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The modules that use fread() and fwrite() always invoke them through
|
||||
* these macros. On some systems you may need to twiddle the argument casts.
|
||||
* CAUTION: argument order is different from underlying functions!
|
||||
* These macros/inline functions facilitate using Microsoft's "safe string"
|
||||
* functions with Visual Studio builds without the need to scatter #ifdefs
|
||||
* throughout the code base.
|
||||
*/
|
||||
|
||||
#define JFREAD(file, buf, sizeofbuf) \
|
||||
((size_t)fread((void *)(buf), (size_t)1, (size_t)(sizeofbuf), (file)))
|
||||
#define JFWRITE(file, buf, sizeofbuf) \
|
||||
((size_t)fwrite((const void *)(buf), (size_t)1, (size_t)(sizeofbuf), (file)))
|
||||
|
||||
#ifndef NO_GETENV
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
static INLINE int GETENV_S(char *buffer, size_t buffer_size, const char *name)
|
||||
{
|
||||
size_t required_size;
|
||||
|
||||
return (int)getenv_s(&required_size, buffer, buffer_size, name);
|
||||
}
|
||||
|
||||
#else /* _MSC_VER */
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
/* This provides a similar interface to the Microsoft/C11 getenv_s() function,
|
||||
* but other than parameter validation, it has no advantages over getenv().
|
||||
*/
|
||||
|
||||
static INLINE int GETENV_S(char *buffer, size_t buffer_size, const char *name)
|
||||
{
|
||||
char *env;
|
||||
|
||||
if (!buffer) {
|
||||
if (buffer_size == 0)
|
||||
return 0;
|
||||
else
|
||||
return (errno = EINVAL);
|
||||
}
|
||||
if (buffer_size == 0)
|
||||
return (errno = EINVAL);
|
||||
if (!name) {
|
||||
*buffer = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
env = getenv(name);
|
||||
if (!env)
|
||||
{
|
||||
*buffer = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strlen(env) + 1 > buffer_size) {
|
||||
*buffer = 0;
|
||||
return ERANGE;
|
||||
}
|
||||
|
||||
strncpy(buffer, env, buffer_size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#endif /* NO_GETENV */
|
||||
|
||||
|
||||
#ifndef NO_PUTENV
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
#define PUTENV_S(name, value) _putenv_s(name, value)
|
||||
|
||||
#else
|
||||
|
||||
/* This provides a similar interface to the Microsoft _putenv_s() function, but
|
||||
* other than parameter validation, it has no advantages over setenv().
|
||||
*/
|
||||
|
||||
static INLINE int PUTENV_S(const char *name, const char *value)
|
||||
{
|
||||
if (!name || !value)
|
||||
return (errno = EINVAL);
|
||||
|
||||
setenv(name, value, 1);
|
||||
|
||||
return errno;
|
||||
}
|
||||
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#endif /* NO_PUTENV */
|
||||
|
||||
|
||||
#endif /* JINCLUDE_H */
|
||||
|
||||
20
3rdparty/libjpeg-turbo/src/jmemmgr.c
vendored
20
3rdparty/libjpeg-turbo/src/jmemmgr.c
vendored
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2016, D. R. Commander.
|
||||
* Copyright (C) 2016, 2021-2022, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -37,12 +37,6 @@
|
||||
#endif
|
||||
#include <limits.h>
|
||||
|
||||
#ifndef NO_GETENV
|
||||
#ifndef HAVE_STDLIB_H /* <stdlib.h> should declare getenv() */
|
||||
extern char *getenv(const char *name);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
LOCAL(size_t)
|
||||
round_up_pow2(size_t a, size_t b)
|
||||
@@ -1032,7 +1026,7 @@ free_pool(j_common_ptr cinfo, int pool_id)
|
||||
large_pool_ptr next_lhdr_ptr = lhdr_ptr->next;
|
||||
space_freed = lhdr_ptr->bytes_used +
|
||||
lhdr_ptr->bytes_left +
|
||||
sizeof(large_pool_hdr);
|
||||
sizeof(large_pool_hdr) + ALIGN_SIZE - 1;
|
||||
jpeg_free_large(cinfo, (void *)lhdr_ptr, space_freed);
|
||||
mem->total_space_allocated -= space_freed;
|
||||
lhdr_ptr = next_lhdr_ptr;
|
||||
@@ -1045,7 +1039,7 @@ free_pool(j_common_ptr cinfo, int pool_id)
|
||||
while (shdr_ptr != NULL) {
|
||||
small_pool_ptr next_shdr_ptr = shdr_ptr->next;
|
||||
space_freed = shdr_ptr->bytes_used + shdr_ptr->bytes_left +
|
||||
sizeof(small_pool_hdr);
|
||||
sizeof(small_pool_hdr) + ALIGN_SIZE - 1;
|
||||
jpeg_free_small(cinfo, (void *)shdr_ptr, space_freed);
|
||||
mem->total_space_allocated -= space_freed;
|
||||
shdr_ptr = next_shdr_ptr;
|
||||
@@ -1162,12 +1156,16 @@ jinit_memory_mgr(j_common_ptr cinfo)
|
||||
*/
|
||||
#ifndef NO_GETENV
|
||||
{
|
||||
char *memenv;
|
||||
char memenv[30] = { 0 };
|
||||
|
||||
if ((memenv = getenv("JPEGMEM")) != NULL) {
|
||||
if (!GETENV_S(memenv, 30, "JPEGMEM") && strlen(memenv) > 0) {
|
||||
char ch = 'x';
|
||||
|
||||
#ifdef _MSC_VER
|
||||
if (sscanf_s(memenv, "%ld%c", &max_to_use, &ch, 1) > 0) {
|
||||
#else
|
||||
if (sscanf(memenv, "%ld%c", &max_to_use, &ch) > 0) {
|
||||
#endif
|
||||
if (ch == 'm' || ch == 'M')
|
||||
max_to_use *= 1000L;
|
||||
mem->pub.max_memory_to_use = max_to_use * 1000L;
|
||||
|
||||
5
3rdparty/libjpeg-turbo/src/jmemnobs.c
vendored
5
3rdparty/libjpeg-turbo/src/jmemnobs.c
vendored
@@ -22,11 +22,6 @@
|
||||
#include "jpeglib.h"
|
||||
#include "jmemsys.h" /* import the system-dependent declarations */
|
||||
|
||||
#ifndef HAVE_STDLIB_H /* <stdlib.h> should declare malloc(),free() */
|
||||
extern void *malloc(size_t size);
|
||||
extern void free(void *ptr);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Memory allocation and freeing are controlled by the regular library
|
||||
|
||||
47
3rdparty/libjpeg-turbo/src/jmorecfg.h
vendored
47
3rdparty/libjpeg-turbo/src/jmorecfg.h
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* Modified 1997-2009 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2009, 2011, 2014-2015, 2018, D. R. Commander.
|
||||
* Copyright (C) 2009, 2011, 2014-2015, 2018, 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -43,25 +43,11 @@
|
||||
|
||||
#if BITS_IN_JSAMPLE == 8
|
||||
/* JSAMPLE should be the smallest type that will hold the values 0..255.
|
||||
* You can use a signed char by having GETJSAMPLE mask it with 0xFF.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_UNSIGNED_CHAR
|
||||
|
||||
typedef unsigned char JSAMPLE;
|
||||
#define GETJSAMPLE(value) ((int)(value))
|
||||
|
||||
#else /* not HAVE_UNSIGNED_CHAR */
|
||||
|
||||
typedef char JSAMPLE;
|
||||
#ifdef __CHAR_UNSIGNED__
|
||||
#define GETJSAMPLE(value) ((int)(value))
|
||||
#else
|
||||
#define GETJSAMPLE(value) ((int)(value) & 0xFF)
|
||||
#endif /* __CHAR_UNSIGNED__ */
|
||||
|
||||
#endif /* HAVE_UNSIGNED_CHAR */
|
||||
|
||||
#define MAXJSAMPLE 255
|
||||
#define CENTERJSAMPLE 128
|
||||
|
||||
@@ -97,22 +83,9 @@ typedef short JCOEF;
|
||||
* managers, this is also the data type passed to fread/fwrite.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_UNSIGNED_CHAR
|
||||
|
||||
typedef unsigned char JOCTET;
|
||||
#define GETJOCTET(value) (value)
|
||||
|
||||
#else /* not HAVE_UNSIGNED_CHAR */
|
||||
|
||||
typedef char JOCTET;
|
||||
#ifdef __CHAR_UNSIGNED__
|
||||
#define GETJOCTET(value) (value)
|
||||
#else
|
||||
#define GETJOCTET(value) ((value) & 0xFF)
|
||||
#endif /* __CHAR_UNSIGNED__ */
|
||||
|
||||
#endif /* HAVE_UNSIGNED_CHAR */
|
||||
|
||||
|
||||
/* These typedefs are used for various table entries and so forth.
|
||||
* They must be at least as wide as specified; but making them too big
|
||||
@@ -123,23 +96,11 @@ typedef char JOCTET;
|
||||
|
||||
/* UINT8 must hold at least the values 0..255. */
|
||||
|
||||
#ifdef HAVE_UNSIGNED_CHAR
|
||||
typedef unsigned char UINT8;
|
||||
#else /* not HAVE_UNSIGNED_CHAR */
|
||||
#ifdef __CHAR_UNSIGNED__
|
||||
typedef char UINT8;
|
||||
#else /* not __CHAR_UNSIGNED__ */
|
||||
typedef short UINT8;
|
||||
#endif /* __CHAR_UNSIGNED__ */
|
||||
#endif /* HAVE_UNSIGNED_CHAR */
|
||||
|
||||
/* UINT16 must hold at least the values 0..65535. */
|
||||
|
||||
#ifdef HAVE_UNSIGNED_SHORT
|
||||
typedef unsigned short UINT16;
|
||||
#else /* not HAVE_UNSIGNED_SHORT */
|
||||
typedef unsigned int UINT16;
|
||||
#endif /* HAVE_UNSIGNED_SHORT */
|
||||
|
||||
/* INT16 must hold at least the values -32768..32767. */
|
||||
|
||||
@@ -273,9 +234,9 @@ typedef int boolean;
|
||||
|
||||
/* Capability options common to encoder and decoder: */
|
||||
|
||||
#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */
|
||||
#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */
|
||||
#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */
|
||||
#define DCT_ISLOW_SUPPORTED /* accurate integer method */
|
||||
#define DCT_IFAST_SUPPORTED /* less accurate int method [legacy feature] */
|
||||
#define DCT_FLOAT_SUPPORTED /* floating-point method [legacy feature] */
|
||||
|
||||
/* Encoder capability options: */
|
||||
|
||||
|
||||
3
3rdparty/libjpeg-turbo/src/jpegcomp.h
vendored
3
3rdparty/libjpeg-turbo/src/jpegcomp.h
vendored
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* jpegcomp.h
|
||||
*
|
||||
* Copyright (C) 2010, D. R. Commander.
|
||||
* Copyright (C) 2010, 2020, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -19,6 +19,7 @@
|
||||
#define _min_DCT_v_scaled_size min_DCT_v_scaled_size
|
||||
#define _jpeg_width jpeg_width
|
||||
#define _jpeg_height jpeg_height
|
||||
#define JERR_ARITH_NOTIMPL JERR_NOT_COMPILED
|
||||
#else
|
||||
#define _DCT_scaled_size DCT_scaled_size
|
||||
#define _DCT_h_scaled_size DCT_scaled_size
|
||||
|
||||
27
3rdparty/libjpeg-turbo/src/jpegint.h
vendored
27
3rdparty/libjpeg-turbo/src/jpegint.h
vendored
@@ -5,8 +5,9 @@
|
||||
* Copyright (C) 1991-1997, Thomas G. Lane.
|
||||
* Modified 1997-2009 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2015-2016, D. R. Commander.
|
||||
* Copyright (C) 2015-2016, 2019, 2021, D. R. Commander.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* Copyright (C) 2021, Alex Richardson.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -47,6 +48,18 @@ typedef enum { /* Operating modes for buffer controllers */
|
||||
/* JLONG must hold at least signed 32-bit values. */
|
||||
typedef long JLONG;
|
||||
|
||||
/* JUINTPTR must hold pointer values. */
|
||||
#ifdef __UINTPTR_TYPE__
|
||||
/*
|
||||
* __UINTPTR_TYPE__ is GNU-specific and available in GCC 4.6+ and Clang 3.0+.
|
||||
* Fortunately, that is sufficient to support the few architectures for which
|
||||
* sizeof(void *) != sizeof(size_t). The only other options would require C99
|
||||
* or Clang-specific builtins.
|
||||
*/
|
||||
typedef __UINTPTR_TYPE__ JUINTPTR;
|
||||
#else
|
||||
typedef size_t JUINTPTR;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Left shift macro that handles a negative operand without causing any
|
||||
@@ -158,6 +171,9 @@ struct jpeg_decomp_master {
|
||||
JDIMENSION first_MCU_col[MAX_COMPONENTS];
|
||||
JDIMENSION last_MCU_col[MAX_COMPONENTS];
|
||||
boolean jinit_upsampler_no_alloc;
|
||||
|
||||
/* Last iMCU row that was successfully decoded */
|
||||
JDIMENSION last_good_iMCU_row;
|
||||
};
|
||||
|
||||
/* Input control module */
|
||||
@@ -357,12 +373,3 @@ extern const int jpeg_natural_order[]; /* zigzag coef order to natural order */
|
||||
|
||||
/* Arithmetic coding probability estimation tables in jaricom.c */
|
||||
extern const JLONG jpeg_aritab[];
|
||||
|
||||
/* Suppress undefined-structure complaints if necessary. */
|
||||
|
||||
#ifdef INCOMPLETE_TYPES_BROKEN
|
||||
#ifndef AM_MEMORY_MANAGER /* only jmemmgr.c defines these */
|
||||
struct jvirt_sarray_control { long dummy; };
|
||||
struct jvirt_barray_control { long dummy; };
|
||||
#endif
|
||||
#endif /* INCOMPLETE_TYPES_BROKEN */
|
||||
|
||||
8
3rdparty/libjpeg-turbo/src/jpeglib.h
vendored
8
3rdparty/libjpeg-turbo/src/jpeglib.h
vendored
@@ -5,7 +5,7 @@
|
||||
* Copyright (C) 1991-1998, Thomas G. Lane.
|
||||
* Modified 2002-2009 by Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2009-2011, 2013-2014, 2016-2017, D. R. Commander.
|
||||
* Copyright (C) 2009-2011, 2013-2014, 2016-2017, 2020, D. R. Commander.
|
||||
* Copyright (C) 2015, Google, Inc.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
@@ -244,9 +244,9 @@ typedef enum {
|
||||
/* DCT/IDCT algorithm options. */
|
||||
|
||||
typedef enum {
|
||||
JDCT_ISLOW, /* slow but accurate integer algorithm */
|
||||
JDCT_IFAST, /* faster, less accurate integer method */
|
||||
JDCT_FLOAT /* floating-point: accurate, fast on fast HW */
|
||||
JDCT_ISLOW, /* accurate integer method */
|
||||
JDCT_IFAST, /* less accurate integer method [legacy feature] */
|
||||
JDCT_FLOAT /* floating-point method [legacy feature] */
|
||||
} J_DCT_METHOD;
|
||||
|
||||
#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user