mirror of
https://github.com/opencv/opencv.git
synced 2026-11-12 11:31:31 -06:00
Compare commits
672 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2154e6251f | ||
|
|
aea4486cde | ||
|
|
bd2185dbe8 | ||
|
|
98a8c2170d | ||
|
|
d040791dd9 | ||
|
|
57ce8ee687 | ||
|
|
e71745a390 | ||
|
|
8d6d592c0b | ||
|
|
280012472b | ||
|
|
94de7d3f3f | ||
|
|
14a35a8d7b | ||
|
|
f779a85a99 | ||
|
|
41a35c3c95 | ||
|
|
14c05d9bcf | ||
|
|
ed349fc3b5 | ||
|
|
d3b14b7111 | ||
|
|
567949e2c4 | ||
|
|
574a961cc1 | ||
|
|
b206f9c269 | ||
|
|
4e85c7dbda | ||
|
|
d37beb4074 | ||
|
|
50d70cf9c6 | ||
|
|
6b162ea211 | ||
|
|
6c767b281e | ||
|
|
02c98152d7 | ||
|
|
67a98bfd24 | ||
|
|
ea971df8bf | ||
|
|
d80a41a543 | ||
|
|
d7a2081230 | ||
|
|
9fba5e8d8c | ||
|
|
c65c67eff4 | ||
|
|
6942799669 | ||
|
|
1e6f1cc15c | ||
|
|
2fe3ed75c1 | ||
|
|
411f51367e | ||
|
|
907fafce5a | ||
|
|
2842d34611 | ||
|
|
04ebef1be2 | ||
|
|
8442dab01d | ||
|
|
d1588c0439 | ||
|
|
bd0d8429ee | ||
|
|
d58459ccdd | ||
|
|
d3350b50aa | ||
|
|
c3caaf3b88 | ||
|
|
a0a46b0d70 | ||
|
|
caec96a199 | ||
|
|
7c8a49b475 | ||
|
|
c0cd317284 | ||
|
|
bc64567d37 | ||
|
|
1863f58a67 | ||
|
|
ebb08bc015 | ||
|
|
04e4eaabaf | ||
|
|
aa78754720 | ||
|
|
92afe9e40a | ||
|
|
f9ef92d45a | ||
|
|
645bb0bfbc | ||
|
|
25261e6ebc | ||
|
|
d3f8b2eeb7 | ||
|
|
5678464f7d | ||
|
|
bad7dadb75 | ||
|
|
7f1995f19a | ||
|
|
1d69a3bc6a | ||
|
|
3569e18f0e | ||
|
|
8bb9e4302e | ||
|
|
24279c2c11 | ||
|
|
49fb4ecbc1 | ||
|
|
c9ed7fee34 | ||
|
|
edcfa64d99 | ||
|
|
50d1d711de | ||
|
|
6287c113c8 | ||
|
|
b535356ec7 | ||
|
|
81cb7b2c5e | ||
|
|
7f32e8131d | ||
|
|
86cd9fadf3 | ||
|
|
999481273e | ||
|
|
ff1fb9f7cc | ||
|
|
cfdf464052 | ||
|
|
1248775177 | ||
|
|
1d7877eeaf | ||
|
|
ec150c24e3 | ||
|
|
c5adaa717b | ||
|
|
b319e7f403 | ||
|
|
e553a37fe7 | ||
|
|
d9d74678a9 | ||
|
|
13e392763b | ||
|
|
abd12c052a | ||
|
|
0a78cdf264 | ||
|
|
fd27ba248b | ||
|
|
36bfa6ea1c | ||
|
|
b2b1d41da8 | ||
|
|
f4f38fcced | ||
|
|
a5f38806ab | ||
|
|
1f07209f6c | ||
|
|
4839bfb1a5 | ||
|
|
2ec815be89 | ||
|
|
fcd999ae6e | ||
|
|
a9fdc1bdff | ||
|
|
12b7090a6f | ||
|
|
dc14b45617 | ||
|
|
5c691907ed | ||
|
|
42ced17c2c | ||
|
|
7d82a14d1a | ||
|
|
767ac9aa10 | ||
|
|
0a2c7803b6 | ||
|
|
dfaa8af6ee | ||
|
|
ed801d3e65 | ||
|
|
b486a96601 | ||
|
|
93a0237b64 | ||
|
|
8ceda8372c | ||
|
|
e5c66b5ed4 | ||
|
|
99e3b5a24e | ||
|
|
e2e4ee2f53 | ||
|
|
3f40a1d8c3 | ||
|
|
dd1315b22a | ||
|
|
04a4e51920 | ||
|
|
cffd89f88f | ||
|
|
4b94d91955 | ||
|
|
fc4d64ae6b | ||
|
|
6aa1eafc27 | ||
|
|
c16f018afd | ||
|
|
7e2fffb194 | ||
|
|
6fdbf15aed | ||
|
|
1991440cf7 | ||
|
|
6d9075812f | ||
|
|
cb2b28636f | ||
|
|
ccc356829c | ||
|
|
7db3dd4f0a | ||
|
|
0d55ccac74 | ||
|
|
a46da86325 | ||
|
|
39c5eb2f66 | ||
|
|
a0590273e9 | ||
|
|
9b1cb7227a | ||
|
|
6d3e92517c | ||
|
|
10444f4e50 | ||
|
|
874196e384 | ||
|
|
16b0fcf083 | ||
|
|
70caece001 | ||
|
|
024482adac | ||
|
|
3f22bd6dff | ||
|
|
13185ad8f7 | ||
|
|
28732d4300 | ||
|
|
1523cb04d1 | ||
|
|
be5328178f | ||
|
|
ff9da914ec | ||
|
|
6944c0dba4 | ||
|
|
cc6b7edf95 | ||
|
|
c44cdef24c | ||
|
|
790ff8f42a | ||
|
|
e1cd84bb25 | ||
|
|
19c3cf45cc | ||
|
|
66e79167ee | ||
|
|
c57799a877 | ||
|
|
8b16dbe791 | ||
|
|
0595ca7454 | ||
|
|
7d513a6671 | ||
|
|
2a47ab6e08 | ||
|
|
2d820d2321 | ||
|
|
472820d889 | ||
|
|
3fac5d54ca | ||
|
|
5f03548530 | ||
|
|
3ab2728da1 | ||
|
|
fa0daa4809 | ||
|
|
6935e95c2a | ||
|
|
43628ab868 | ||
|
|
69588dfabf | ||
|
|
f81e6f82f5 | ||
|
|
25db453812 | ||
|
|
02d5d93c3a | ||
|
|
29bf7384dc | ||
|
|
217f345e66 | ||
|
|
c8378fa4c4 | ||
|
|
1890a0ae9a | ||
|
|
257c0bf413 | ||
|
|
f1d24e1868 | ||
|
|
2a6dd2e807 | ||
|
|
2c5e79507d | ||
|
|
99b8e2db14 | ||
|
|
bba4f9e5d6 | ||
|
|
d87f513b4f | ||
|
|
f4e28f87d8 | ||
|
|
ce2f4c6a4d | ||
|
|
f0b3cb1845 | ||
|
|
6be846aa52 | ||
|
|
4884c911fb | ||
|
|
d5d897b7cb | ||
|
|
d86605f6a7 | ||
|
|
6ff975af9e | ||
|
|
36a5b6e215 | ||
|
|
96ca253a00 | ||
|
|
d0176d69f2 | ||
|
|
d8b93b3569 | ||
|
|
10ea580fa8 | ||
|
|
33df5ea07b | ||
|
|
69352e5241 | ||
|
|
f85b9754e0 | ||
|
|
5868875ab9 | ||
|
|
e746b3e8ae | ||
|
|
cf42f3088d | ||
|
|
5041773f0d | ||
|
|
c697f6a3f8 | ||
|
|
a826a983d3 | ||
|
|
edead9a2c2 | ||
|
|
c11a7184c9 | ||
|
|
c55a37ad7c | ||
|
|
c0a0c881ee | ||
|
|
b99c5db124 | ||
|
|
418bc6dbe9 | ||
|
|
750c56cc0e | ||
|
|
dc13ec205d | ||
|
|
d87a56a639 | ||
|
|
680ec04b53 | ||
|
|
387e8c9ef5 | ||
|
|
f5008f9cdf | ||
|
|
b7fc94c251 | ||
|
|
db19eb1586 | ||
|
|
754a8c1b66 | ||
|
|
6b888ada8a | ||
|
|
8c328a9e3b | ||
|
|
0c096b3dc2 | ||
|
|
d2080a117e | ||
|
|
f278dd782d | ||
|
|
ec1023813f | ||
|
|
d2233f9de2 | ||
|
|
954f3c1eb9 | ||
|
|
3f5089411a | ||
|
|
7c54ebfe1b | ||
|
|
3636eec789 | ||
|
|
eebe4860da | ||
|
|
6b5ea5931d | ||
|
|
eb61a62dbc | ||
|
|
eff9eda9a6 | ||
|
|
e3ede92db6 | ||
|
|
9235a80109 | ||
|
|
20b4d0fae9 | ||
|
|
c966d077c0 | ||
|
|
5ba826d297 | ||
|
|
3b558508be | ||
|
|
eac0309324 | ||
|
|
039fd554f2 | ||
|
|
26bd6b3f5f | ||
|
|
f7ff65f5df | ||
|
|
55aab59e26 | ||
|
|
a69c29016c | ||
|
|
423ecfb42a | ||
|
|
e22045502d | ||
|
|
fc7219d1db | ||
|
|
a4af33758d | ||
|
|
d58a5b269d | ||
|
|
617bb92e8c | ||
|
|
3b59a51347 | ||
|
|
b5cfe6be32 | ||
|
|
55e71a5cd7 | ||
|
|
322b09fc12 | ||
|
|
e7642f66d9 | ||
|
|
ac7e16fdf6 | ||
|
|
4ddc1a6477 | ||
|
|
b542a38a01 | ||
|
|
8ab16f66a8 | ||
|
|
2d3606a58f | ||
|
|
d0cac8a93a | ||
|
|
ddf48c781a | ||
|
|
f25603112a | ||
|
|
f91aad326c | ||
|
|
0f6503d9a9 | ||
|
|
a17b693aa9 | ||
|
|
3aea74d408 | ||
|
|
221422467e | ||
|
|
d8417af086 | ||
|
|
df78bc04d6 | ||
|
|
98375e1d4b | ||
|
|
ffe7a658fb | ||
|
|
3d9cb082c9 | ||
|
|
8378ba7554 | ||
|
|
387334e991 | ||
|
|
e9cd8296af | ||
|
|
ebf9916242 | ||
|
|
cb9dd71f82 | ||
|
|
de204fe413 | ||
|
|
712ea05058 | ||
|
|
41df54e75f | ||
|
|
1098566a2f | ||
|
|
2bc9bca349 | ||
|
|
b700521b95 | ||
|
|
216fbc004a | ||
|
|
ed96af94cc | ||
|
|
83e2ecd5e1 | ||
|
|
e92ad9275d | ||
|
|
a89b4f019c | ||
|
|
e9458c1f6d | ||
|
|
bba5653bf0 | ||
|
|
078eae7154 | ||
|
|
0067c755dd | ||
|
|
0bf4d9ec2b | ||
|
|
6d288978ab | ||
|
|
eb5e22dd74 | ||
|
|
a28112472c | ||
|
|
84862ae5a1 | ||
|
|
8782914fc8 | ||
|
|
0d7a37c1e7 | ||
|
|
3a1beb1c01 | ||
|
|
c722128ddd | ||
|
|
bddcc6ffcc | ||
|
|
f6647085cd | ||
|
|
43e083f145 | ||
|
|
a23406ea6c | ||
|
|
5a2e493d12 | ||
|
|
27f060c707 | ||
|
|
22dcee47d3 | ||
|
|
a2975f337a | ||
|
|
f503b029a7 | ||
|
|
05ff8217e0 | ||
|
|
930b2995eb | ||
|
|
fd4fe3ef5a | ||
|
|
4df98f2c2c | ||
|
|
6b789dd2ea | ||
|
|
dfdb15be79 | ||
|
|
070579d9c3 | ||
|
|
84ec0d2881 | ||
|
|
f4f2340039 | ||
|
|
ff5e97c8e4 | ||
|
|
6bb1c07fd4 | ||
|
|
6932203349 | ||
|
|
1fc895ff42 | ||
|
|
e715894ffb | ||
|
|
d445903b31 | ||
|
|
9e00cc59af | ||
|
|
343bba93db | ||
|
|
5e3e283e30 | ||
|
|
d8ebf22444 | ||
|
|
ddc1267410 | ||
|
|
481256017e | ||
|
|
39ec7099e2 | ||
|
|
1badec0b2d | ||
|
|
72541721a1 | ||
|
|
3119af1c72 | ||
|
|
60d59aa9d2 | ||
|
|
d989b6c89a | ||
|
|
51922658b6 | ||
|
|
16ba62dcd5 | ||
|
|
86105b8727 | ||
|
|
cc3c034cf6 | ||
|
|
1e2880b7aa | ||
|
|
bcac8769b5 | ||
|
|
af99bee344 | ||
|
|
c071f5487e | ||
|
|
be2c4ddbdd | ||
|
|
ae5dd1d748 | ||
|
|
570041fed5 | ||
|
|
75bcb1bcfa | ||
|
|
3885772f3e | ||
|
|
bf40a3a5b8 | ||
|
|
e76ad5509c | ||
|
|
eafa837e34 | ||
|
|
f2e1a64c1b | ||
|
|
5a5fe40542 | ||
|
|
ecba099754 | ||
|
|
30f265a16a | ||
|
|
8f41b2b23b | ||
|
|
4cf1274327 | ||
|
|
8288cc108d | ||
|
|
b1ed277110 | ||
|
|
7c6fc6e18a | ||
|
|
39dab5e0cf | ||
|
|
4deec6f0f0 | ||
|
|
cc447448ff | ||
|
|
c3d40ca0dd | ||
|
|
8625b5689d | ||
|
|
c1dab7bf6e | ||
|
|
fae67e0b46 | ||
|
|
72a55a4139 | ||
|
|
c3e9d0dd7e | ||
|
|
a9508d2f67 | ||
|
|
c8a603d853 | ||
|
|
b16fb5d518 | ||
|
|
7702fa4d61 | ||
|
|
5f0c312087 | ||
|
|
12715c210d | ||
|
|
0db73575a6 | ||
|
|
e33bfb5ebf | ||
|
|
da64ba1bde | ||
|
|
2dea07f9f8 | ||
|
|
f97e5f7353 | ||
|
|
87ad9b1c3e | ||
|
|
14bc6e3e6c | ||
|
|
08f1f5769a | ||
|
|
36ba3d691e | ||
|
|
ca2433c212 | ||
|
|
c52ab82bbf | ||
|
|
85c8a69fdf | ||
|
|
20ec29f22e | ||
|
|
a70f354c0f | ||
|
|
510ca53687 | ||
|
|
ab1ff12a71 | ||
|
|
a99b80b1a9 | ||
|
|
0b57d904db | ||
|
|
87cfcc8ee2 | ||
|
|
562914e33b | ||
|
|
4e42bf6308 | ||
|
|
b64bb95860 | ||
|
|
4d8a261d99 | ||
|
|
0b6fed32e3 | ||
|
|
801079e2ba | ||
|
|
066039fd15 | ||
|
|
2c2d7d7bbd | ||
|
|
d60349b1fc | ||
|
|
a69bd80b99 | ||
|
|
6c668dd704 | ||
|
|
355f6d0a73 | ||
|
|
baa7a8ca7f | ||
|
|
5352684647 | ||
|
|
386f147597 | ||
|
|
f098d98908 | ||
|
|
bbba2a0608 | ||
|
|
fbfddbd3ea | ||
|
|
9aa5e5b000 | ||
|
|
c21b747733 | ||
|
|
edc1bd4c8c | ||
|
|
07eed8c489 | ||
|
|
ea8e27961e | ||
|
|
ecfc8e97db | ||
|
|
0ddc661882 | ||
|
|
bee4c347ba | ||
|
|
6623fe3b08 | ||
|
|
49c48aabff | ||
|
|
e59f530338 | ||
|
|
b58dc21074 | ||
|
|
63f8feb2a1 | ||
|
|
7ca50b2b3d | ||
|
|
bc9a9b714c | ||
|
|
7159845021 | ||
|
|
569b1ad582 | ||
|
|
9b464199d6 | ||
|
|
2dd965b7f5 | ||
|
|
7386269943 | ||
|
|
21409de176 | ||
|
|
442f6b4100 | ||
|
|
6c9f4d6423 | ||
|
|
e2da35dc6e | ||
|
|
4033d8324c | ||
|
|
d227079753 | ||
|
|
ec866c5acd | ||
|
|
dfe7708f17 | ||
|
|
eea62ca6fb | ||
|
|
3511bf81de | ||
|
|
c053532be1 | ||
|
|
0217ae3a70 | ||
|
|
b5d864f579 | ||
|
|
2a19db61e7 | ||
|
|
848fa23a07 | ||
|
|
c9d9d1ec92 | ||
|
|
b175348d93 | ||
|
|
b509cc2a4d | ||
|
|
514711af14 | ||
|
|
8a3d1937c3 | ||
|
|
4168b75edc | ||
|
|
6f6c1c75ba | ||
|
|
3f0c17b592 | ||
|
|
e1dd41d1e2 | ||
|
|
0b1575c485 | ||
|
|
fbed6d1d44 | ||
|
|
eff35f2341 | ||
|
|
7c43e7e7e0 | ||
|
|
4151a4590e | ||
|
|
086643f5a7 | ||
|
|
370130e464 | ||
|
|
c380dd579b | ||
|
|
abe34e3b33 | ||
|
|
e9837b0aa9 | ||
|
|
b50428bf65 | ||
|
|
3a8a729a52 | ||
|
|
4e099d2e5c | ||
|
|
2cf34c7f46 | ||
|
|
ddd57e7496 | ||
|
|
b0aae19fb4 | ||
|
|
af00cd5b75 | ||
|
|
c3ef6e866f | ||
|
|
db0dcaffeb | ||
|
|
5bb8076d7d | ||
|
|
38e0f84876 | ||
|
|
0940573e8b | ||
|
|
462d4a1dae | ||
|
|
1e691daab4 | ||
|
|
426c358352 | ||
|
|
fe86d25694 | ||
|
|
e22ad8050b | ||
|
|
9af213bf60 | ||
|
|
64de562db2 | ||
|
|
7432fc1d2d | ||
|
|
ed8a2af9b6 | ||
|
|
72cc69e431 | ||
|
|
5649f35757 | ||
|
|
a2287affb7 | ||
|
|
58b5256e05 | ||
|
|
741a689f65 | ||
|
|
edf0b40d42 | ||
|
|
136d5b534a | ||
|
|
ff326988a5 | ||
|
|
9f4df42e24 | ||
|
|
38afa582b0 | ||
|
|
89115f0fcc | ||
|
|
6aab128afe | ||
|
|
9c8aafba27 | ||
|
|
cf62a37f87 | ||
|
|
eac922ebd7 | ||
|
|
7a7011bd4f | ||
|
|
080c6e817d | ||
|
|
e18de3c6ab | ||
|
|
20dd7b70c0 | ||
|
|
3156f27d41 | ||
|
|
80f0901dee | ||
|
|
2ef146c2c6 | ||
|
|
2cce7a87b8 | ||
|
|
9a1ef7272d | ||
|
|
ec6fb0bee2 | ||
|
|
3fc879075b | ||
|
|
5688b014e9 | ||
|
|
ff8fe39e23 | ||
|
|
4f7a8f6fb0 | ||
|
|
cc2bfdec30 | ||
|
|
4ae5de7f1e | ||
|
|
5c23d3d96d | ||
|
|
b33224f0b6 | ||
|
|
55ba0af2bc | ||
|
|
85166360f1 | ||
|
|
f301cda780 | ||
|
|
730622178b | ||
|
|
53ff93f3f9 | ||
|
|
e9d63665b4 | ||
|
|
15de28b069 | ||
|
|
6be9fbfa6d | ||
|
|
43097c6afb | ||
|
|
1649c8f6d0 | ||
|
|
5596c792bc | ||
|
|
d96f533784 | ||
|
|
65cb53aa1e | ||
|
|
24b5be04cc | ||
|
|
6d549490fb | ||
|
|
08724393f4 | ||
|
|
d3da43c8e5 | ||
|
|
724cc5b481 | ||
|
|
1c96aac52e | ||
|
|
e1ad6b27cf | ||
|
|
afad87b5f2 | ||
|
|
f0a4185b1f | ||
|
|
84568cb18e | ||
|
|
ee10a38851 | ||
|
|
2b83d416b0 | ||
|
|
aa695abad2 | ||
|
|
f8e1e88ce2 | ||
|
|
e958383225 | ||
|
|
f8e42721d3 | ||
|
|
e005570719 | ||
|
|
7fed582d9f | ||
|
|
837b733a0a | ||
|
|
3cbe53c5d2 | ||
|
|
a5d53e3e2f | ||
|
|
c7a3fc5d4e | ||
|
|
3159bd1a74 | ||
|
|
6c8a2b8888 | ||
|
|
382e154cfd | ||
|
|
ad454d83b9 | ||
|
|
68f5a5a904 | ||
|
|
5f4ba8055f | ||
|
|
3e1b0186fe | ||
|
|
74cc1803c4 | ||
|
|
08d3dcc709 | ||
|
|
38b5d4ecc9 | ||
|
|
529f103456 | ||
|
|
ec90265a08 | ||
|
|
7f260a0f0b | ||
|
|
01b3266612 | ||
|
|
9fbd47ffb1 | ||
|
|
5d703abdc2 | ||
|
|
674b763395 | ||
|
|
a44d6aacc8 | ||
|
|
7f115db7a7 | ||
|
|
150c2215bb | ||
|
|
13bbc9ff71 | ||
|
|
092699783a | ||
|
|
995ce4bdcc | ||
|
|
daa31a0696 | ||
|
|
cc9a1bb62f | ||
|
|
f4894d57cd | ||
|
|
217a782d94 | ||
|
|
3ff8831ae9 | ||
|
|
56e26b9624 | ||
|
|
64c8d8f2a0 | ||
|
|
aa47802e88 | ||
|
|
5ee8293e7b | ||
|
|
762bc0f8af | ||
|
|
d8ea8ef98a | ||
|
|
d5d0a2f8e0 | ||
|
|
b204e73d9a | ||
|
|
dacd265424 | ||
|
|
04830e5dc0 | ||
|
|
7cd48accc2 | ||
|
|
0a14f76731 | ||
|
|
b5754550ab | ||
|
|
3df6548c4a | ||
|
|
359b76bdad | ||
|
|
d6b6734619 | ||
|
|
4b61683071 | ||
|
|
724a3c1473 | ||
|
|
52bdfbc7fc | ||
|
|
e8d2dd212c | ||
|
|
a4182b5da3 | ||
|
|
d1b4b5f0de | ||
|
|
6e3142f04b | ||
|
|
96d29621b7 | ||
|
|
334cb1dcd1 | ||
|
|
f27796e8cc | ||
|
|
d32a134b0f | ||
|
|
1d335bddfc | ||
|
|
8f01f2cc9f | ||
|
|
773654e11a | ||
|
|
4f89292aab | ||
|
|
6259c9ac6a | ||
|
|
d673197d01 | ||
|
|
820cecfa2d | ||
|
|
f60bdb2473 | ||
|
|
822b0bfe22 | ||
|
|
591cb1b3cf | ||
|
|
ba7ee71c20 | ||
|
|
2776b42a7b | ||
|
|
25887e693b | ||
|
|
832262e376 | ||
|
|
cf28846bce | ||
|
|
31fcd406e1 | ||
|
|
b43ae03328 | ||
|
|
20ab3d538b | ||
|
|
e1aa8eead3 | ||
|
|
f0227edd2c | ||
|
|
ae649e8c30 | ||
|
|
3a0d3ebdde | ||
|
|
0dbbb89e8d | ||
|
|
65575cef7e | ||
|
|
d195871904 | ||
|
|
7c2e74b649 | ||
|
|
c1940b4ec7 | ||
|
|
10065d3321 | ||
|
|
2c958b2598 | ||
|
|
2edf764eee | ||
|
|
69b79f89c1 | ||
|
|
2ee4f0de31 | ||
|
|
42bd52f046 | ||
|
|
9426249a88 | ||
|
|
ea70a5ffd6 | ||
|
|
b5d73111eb | ||
|
|
f0624c08dc | ||
|
|
6e613bca9b | ||
|
|
49467947ac | ||
|
|
d4fbb2c4fb | ||
|
|
b1bf1deed0 | ||
|
|
e60b8dfba0 | ||
|
|
725d771570 | ||
|
|
9600ebadf2 | ||
|
|
76bc9f8c20 | ||
|
|
3ac024ff6c | ||
|
|
22e59e933b | ||
|
|
9ce4e87507 | ||
|
|
5df9da1576 | ||
|
|
677d2e508f | ||
|
|
a8d37509fa | ||
|
|
2819438fe6 | ||
|
|
ae55138a49 | ||
|
|
3162b742a3 | ||
|
|
ea58cdc71d | ||
|
|
9c71134caf | ||
|
|
ee2aefc270 | ||
|
|
fce7ba4eaf | ||
|
|
233dfd252d | ||
|
|
3c7055b9ce |
2
3rdparty/ffmpeg/CMakeLists.txt
vendored
2
3rdparty/ffmpeg/CMakeLists.txt
vendored
@@ -7,7 +7,7 @@ endif()
|
||||
set(module_bare_name "opencv_ffmpeg${FFMPEG_SUFFIX}.dll")
|
||||
set(module_name "${CMAKE_CURRENT_SOURCE_DIR}/${module_bare_name}")
|
||||
|
||||
get_target_property(bin_dir opencv_core LOCATION)
|
||||
get_target_property(bin_dir opencv_traincascade LOCATION)
|
||||
get_filename_component(bin_dir ${bin_dir} PATH)
|
||||
|
||||
message(STATUS "ffmpeg output dir: ${bin_dir}")
|
||||
|
||||
4
3rdparty/ffmpeg/make.bat
vendored
4
3rdparty/ffmpeg/make.bat
vendored
@@ -1,2 +1,2 @@
|
||||
gcc -Wall -shared -o opencv_ffmpeg.dll -O2 -x c++ -I../include -I../include/ffmpeg_ -I../../modules/highgui/src ffopencv.c -L../lib -lavformat -lavcodec -lavdevice -lswscale -lavutil -lwsock32
|
||||
set path=c:\apps\mingw64\bin;%path% & gcc -Wall -shared -o opencv_ffmpeg_64.dll -O2 -x c++ -I../include -I../include/ffmpeg_ -I../../modules/highgui/src ffopencv.c -L../lib -lavformat64 -lavcodec64 -lavdevice64 -lswscale64 -lavutil64 -lavcore64 -lwsock32
|
||||
set path=c:\dev\msys32\bin;%path% & gcc -Wall -shared -o opencv_ffmpeg.dll -O2 -x c++ -I../include -I../include/ffmpeg_ -I../../modules/highgui/src ffopencv.c -L../lib -lavformat -lavcodec -lavdevice -lswscale -lavutil -lwsock32
|
||||
set path=c:\dev\msys64\bin;%path% & gcc -m64 -Wall -shared -o opencv_ffmpeg_64.dll -O2 -x c++ -I../include -I../include/ffmpeg_ -I../../modules/highgui/src ffopencv.c -L../lib -lavformat64 -lavcodec64 -lavdevice64 -lswscale64 -lavutil64 -lavcore64 -lwsock32 -lws2_32
|
||||
BIN
3rdparty/ffmpeg/opencv_ffmpeg.dll
vendored
BIN
3rdparty/ffmpeg/opencv_ffmpeg.dll
vendored
Binary file not shown.
BIN
3rdparty/ffmpeg/opencv_ffmpeg_64.dll
vendored
BIN
3rdparty/ffmpeg/opencv_ffmpeg_64.dll
vendored
Binary file not shown.
35
3rdparty/ffmpeg/readme.txt
vendored
35
3rdparty/ffmpeg/readme.txt
vendored
@@ -7,3 +7,38 @@ Otherwise the produced DLL will likely be dependent on libgcc_s_dw2-1.dll or sim
|
||||
While we want to make the DLLs with minimum dependencies: Win32 libraries + msvcrt.dll.
|
||||
|
||||
ffopencv.c is really a C++ source, hence -x c++ is used.
|
||||
|
||||
How to update opencv_ffmpeg.dll and opencv_ffmpeg_64.dll when a new version of FFMPEG is release?
|
||||
|
||||
1. Install 32-bit MinGW + MSYS from
|
||||
http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/
|
||||
Let's assume, it's installed in C:\MSYS32.
|
||||
2. Install 64-bit MinGW. http://mingw-w64.sourceforge.net/
|
||||
Let's assume, it's installed in C:\MSYS64
|
||||
3. Copy C:\MSYS32\msys to C:\MSYS64\msys. Edit C:\MSYS64\msys\etc\fstab, change C:\MSYS32 to C:\MSYS64.
|
||||
|
||||
4. Now you have working MSYS32 and MSYS64 environments.
|
||||
Launch, one by one, C:\MSYS32\msys\msys.bat and C:\MSYS64\msys\msys.bat to create your home directories.
|
||||
|
||||
4. Download ffmpeg-x.y.z.tar.gz (where x.y.z denotes the actual ffmpeg version).
|
||||
Copy it to C:\MSYS{32|64}\msys\home\<loginname> directory.
|
||||
|
||||
5. To build 32-bit ffmpeg libraries, run C:\MSYS32\msys\msys.bat and type the following commands:
|
||||
|
||||
5.1. tar -xzf ffmpeg-x.y.z.tar.gz
|
||||
5.2. mkdir build
|
||||
5.3. cd build
|
||||
5.4. ../ffmpeg-x.y.z/configure --enable-w32threads
|
||||
5.5. make
|
||||
5.6. make install
|
||||
5.7. cd /local/lib
|
||||
5.8. strip -g *.a
|
||||
|
||||
6. Then repeat the same for 64-bit case. The output libs: libavcodec.a etc. need to be renamed to libavcodec64.a etc.
|
||||
|
||||
7. Then, copy all those libs to <opencv>\3rdparty\lib\, copy the headers to <opencv>\3rdparty\include\ffmpeg_.
|
||||
|
||||
8. Then, go to <opencv>\3rdparty\ffmpeg, edit make.bat
|
||||
(change paths to the actual paths to your msys32 and msys64 distributions) and then run make.bat
|
||||
|
||||
|
||||
|
||||
1046
3rdparty/include/ffmpeg_/libavcodec/avcodec.h
vendored
1046
3rdparty/include/ffmpeg_/libavcodec/avcodec.h
vendored
File diff suppressed because it is too large
Load Diff
2
3rdparty/include/ffmpeg_/libavcodec/avfft.h
vendored
2
3rdparty/include/ffmpeg_/libavcodec/avfft.h
vendored
@@ -85,7 +85,7 @@ enum DCTTransformType {
|
||||
};
|
||||
|
||||
/**
|
||||
* Sets up DCT.
|
||||
* Set up DCT.
|
||||
* @param nbits size of the input array:
|
||||
* (1 << nbits) for DCT-II, DCT-III and DST-I
|
||||
* (1 << nbits) + 1 for DCT-I
|
||||
|
||||
2
3rdparty/include/ffmpeg_/libavcodec/dxva2.h
vendored
2
3rdparty/include/ffmpeg_/libavcodec/dxva2.h
vendored
@@ -23,7 +23,7 @@
|
||||
#ifndef AVCODEC_DXVA_H
|
||||
#define AVCODEC_DXVA_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <dxva2api.h>
|
||||
|
||||
|
||||
203
3rdparty/include/ffmpeg_/libavcodec/opt.h
vendored
203
3rdparty/include/ffmpeg_/libavcodec/opt.h
vendored
@@ -1,211 +1,34 @@
|
||||
/*
|
||||
* AVOptions
|
||||
* copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
|
||||
* This file is part of Libav.
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* Libav is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* Libav is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* License along with Libav; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* This header is provided for compatibility only and will be removed
|
||||
* on next major bump
|
||||
*/
|
||||
|
||||
#ifndef AVCODEC_OPT_H
|
||||
#define AVCODEC_OPT_H
|
||||
|
||||
/**
|
||||
* @file
|
||||
* AVOptions
|
||||
*/
|
||||
#include "libavcodec/version.h"
|
||||
|
||||
#include "libavutil/rational.h"
|
||||
#include "avcodec.h"
|
||||
|
||||
enum AVOptionType{
|
||||
FF_OPT_TYPE_FLAGS,
|
||||
FF_OPT_TYPE_INT,
|
||||
FF_OPT_TYPE_INT64,
|
||||
FF_OPT_TYPE_DOUBLE,
|
||||
FF_OPT_TYPE_FLOAT,
|
||||
FF_OPT_TYPE_STRING,
|
||||
FF_OPT_TYPE_RATIONAL,
|
||||
FF_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length
|
||||
FF_OPT_TYPE_CONST=128,
|
||||
};
|
||||
|
||||
/**
|
||||
* AVOption
|
||||
*/
|
||||
typedef struct AVOption {
|
||||
const char *name;
|
||||
|
||||
/**
|
||||
* short English help text
|
||||
* @todo What about other languages?
|
||||
*/
|
||||
const char *help;
|
||||
|
||||
/**
|
||||
* The offset relative to the context structure where the option
|
||||
* value is stored. It should be 0 for named constants.
|
||||
*/
|
||||
int offset;
|
||||
enum AVOptionType type;
|
||||
|
||||
/**
|
||||
* the default value for scalar options
|
||||
*/
|
||||
double default_val;
|
||||
double min; ///< minimum valid value for the option
|
||||
double max; ///< maximum valid value for the option
|
||||
|
||||
int flags;
|
||||
#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
|
||||
#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
|
||||
#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
|
||||
#define AV_OPT_FLAG_AUDIO_PARAM 8
|
||||
#define AV_OPT_FLAG_VIDEO_PARAM 16
|
||||
#define AV_OPT_FLAG_SUBTITLE_PARAM 32
|
||||
//FIXME think about enc-audio, ... style flags
|
||||
|
||||
/**
|
||||
* The logical unit to which the option belongs. Non-constant
|
||||
* options and corresponding named constants share the same
|
||||
* unit. May be NULL.
|
||||
*/
|
||||
const char *unit;
|
||||
} AVOption;
|
||||
|
||||
/**
|
||||
* AVOption2.
|
||||
* THIS IS NOT PART OF THE API/ABI YET!
|
||||
* This is identical to AVOption except that default_val was replaced by
|
||||
* an union, it should be compatible with AVOption on normal platforms.
|
||||
*/
|
||||
typedef struct AVOption2 {
|
||||
const char *name;
|
||||
|
||||
/**
|
||||
* short English help text
|
||||
* @todo What about other languages?
|
||||
*/
|
||||
const char *help;
|
||||
|
||||
/**
|
||||
* The offset relative to the context structure where the option
|
||||
* value is stored. It should be 0 for named constants.
|
||||
*/
|
||||
int offset;
|
||||
enum AVOptionType type;
|
||||
|
||||
/**
|
||||
* the default value for scalar options
|
||||
*/
|
||||
union {
|
||||
double dbl;
|
||||
const char *str;
|
||||
} default_val;
|
||||
|
||||
double min; ///< minimum valid value for the option
|
||||
double max; ///< maximum valid value for the option
|
||||
|
||||
int flags;
|
||||
/*
|
||||
#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
|
||||
#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
|
||||
#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
|
||||
#define AV_OPT_FLAG_AUDIO_PARAM 8
|
||||
#define AV_OPT_FLAG_VIDEO_PARAM 16
|
||||
#define AV_OPT_FLAG_SUBTITLE_PARAM 32
|
||||
*/
|
||||
//FIXME think about enc-audio, ... style flags
|
||||
|
||||
/**
|
||||
* The logical unit to which the option belongs. Non-constant
|
||||
* options and corresponding named constants share the same
|
||||
* unit. May be NULL.
|
||||
*/
|
||||
const char *unit;
|
||||
} AVOption2;
|
||||
|
||||
|
||||
/**
|
||||
* Looks for an option in obj. Looks only for the options which
|
||||
* have the flags set as specified in mask and flags (that is,
|
||||
* for which it is the case that opt->flags & mask == flags).
|
||||
*
|
||||
* @param[in] obj a pointer to a struct whose first element is a
|
||||
* pointer to an AVClass
|
||||
* @param[in] name the name of the option to look for
|
||||
* @param[in] unit the unit of the option to look for, or any if NULL
|
||||
* @return a pointer to the option found, or NULL if no option
|
||||
* has been found
|
||||
*/
|
||||
const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int mask, int flags);
|
||||
|
||||
#if LIBAVCODEC_VERSION_MAJOR < 53
|
||||
/**
|
||||
* @see av_set_string2()
|
||||
*/
|
||||
attribute_deprecated const AVOption *av_set_string(void *obj, const char *name, const char *val);
|
||||
|
||||
/**
|
||||
* @return a pointer to the AVOption corresponding to the field set or
|
||||
* NULL if no matching AVOption exists, or if the value val is not
|
||||
* valid
|
||||
* @see av_set_string3()
|
||||
*/
|
||||
attribute_deprecated const AVOption *av_set_string2(void *obj, const char *name, const char *val, int alloc);
|
||||
#if FF_API_OPT_H
|
||||
#include "libavutil/opt.h"
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Sets the field of obj with the given name to value.
|
||||
*
|
||||
* @param[in] obj A struct whose first element is a pointer to an
|
||||
* AVClass.
|
||||
* @param[in] name the name of the field to set
|
||||
* @param[in] val The value to set. If the field is not of a string
|
||||
* type, then the given string is parsed.
|
||||
* SI postfixes and some named scalars are supported.
|
||||
* If the field is of a numeric type, it has to be a numeric or named
|
||||
* scalar. Behavior with more than one scalar and +- infix operators
|
||||
* is undefined.
|
||||
* If the field is of a flags type, it has to be a sequence of numeric
|
||||
* scalars or named flags separated by '+' or '-'. Prefixing a flag
|
||||
* with '+' causes it to be set without affecting the other flags;
|
||||
* similarly, '-' unsets a flag.
|
||||
* @param[out] o_out if non-NULL put here a pointer to the AVOption
|
||||
* found
|
||||
* @param alloc when 1 then the old value will be av_freed() and the
|
||||
* new av_strduped()
|
||||
* when 0 then no av_free() nor av_strdup() will be used
|
||||
* @return 0 if the value has been set, or an AVERROR code in case of
|
||||
* error:
|
||||
* AVERROR(ENOENT) if no matching option exists
|
||||
* AVERROR(ERANGE) if the value is out of range
|
||||
* AVERROR(EINVAL) if the value is not valid
|
||||
*/
|
||||
int av_set_string3(void *obj, const char *name, const char *val, int alloc, const AVOption **o_out);
|
||||
|
||||
const AVOption *av_set_double(void *obj, const char *name, double n);
|
||||
const AVOption *av_set_q(void *obj, const char *name, AVRational n);
|
||||
const AVOption *av_set_int(void *obj, const char *name, int64_t n);
|
||||
double av_get_double(void *obj, const char *name, const AVOption **o_out);
|
||||
AVRational av_get_q(void *obj, const char *name, const AVOption **o_out);
|
||||
int64_t av_get_int(void *obj, const char *name, const AVOption **o_out);
|
||||
const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len);
|
||||
const AVOption *av_next_option(void *obj, const AVOption *last);
|
||||
int av_opt_show(void *obj, void *av_log_obj);
|
||||
void av_opt_set_defaults(void *s);
|
||||
void av_opt_set_defaults2(void *s, int mask, int flags);
|
||||
|
||||
#endif /* AVCODEC_OPT_H */
|
||||
|
||||
2
3rdparty/include/ffmpeg_/libavcodec/vaapi.h
vendored
2
3rdparty/include/ffmpeg_/libavcodec/vaapi.h
vendored
@@ -24,7 +24,7 @@
|
||||
#ifndef AVCODEC_VAAPI_H
|
||||
#define AVCODEC_VAAPI_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* \defgroup VAAPI_Decoding VA API Decoding
|
||||
|
||||
15
3rdparty/include/ffmpeg_/libavcodec/vdpau.h
vendored
15
3rdparty/include/ffmpeg_/libavcodec/vdpau.h
vendored
@@ -38,7 +38,6 @@
|
||||
* and rendering (API calls) are done as part of the VDPAU
|
||||
* presentation (vo_vdpau.c) module.
|
||||
*
|
||||
* @{
|
||||
* \defgroup VDPAU_Decoding VDPAU Decoding
|
||||
* \ingroup Decoder
|
||||
* @{
|
||||
@@ -68,6 +67,13 @@ struct vdpau_render_state {
|
||||
|
||||
int state; ///< Holds FF_VDPAU_STATE_* values.
|
||||
|
||||
/** Describe size/location of the compressed video data.
|
||||
Set to 0 when freeing bitstream_buffers. */
|
||||
int bitstream_buffers_allocated;
|
||||
int bitstream_buffers_used;
|
||||
/** The user is responsible for freeing this buffer using av_freep(). */
|
||||
VdpBitstreamBuffer *bitstream_buffers;
|
||||
|
||||
/** picture parameter information for all supported codecs */
|
||||
union VdpPictureInfo {
|
||||
VdpPictureInfoH264 h264;
|
||||
@@ -75,13 +81,6 @@ struct vdpau_render_state {
|
||||
VdpPictureInfoVC1 vc1;
|
||||
VdpPictureInfoMPEG4Part2 mpeg4;
|
||||
} info;
|
||||
|
||||
/** Describe size/location of the compressed video data.
|
||||
Set to 0 when freeing bitstream_buffers. */
|
||||
int bitstream_buffers_allocated;
|
||||
int bitstream_buffers_used;
|
||||
/** The user is responsible for freeing this buffer using av_freep(). */
|
||||
VdpBitstreamBuffer *bitstream_buffers;
|
||||
};
|
||||
|
||||
/* @}*/
|
||||
|
||||
72
3rdparty/include/ffmpeg_/libavcodec/version.h
vendored
Normal file
72
3rdparty/include/ffmpeg_/libavcodec/version.h
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVCODEC_VERSION_H
|
||||
#define AVCODEC_VERSION_H
|
||||
|
||||
#define LIBAVCODEC_VERSION_MAJOR 53
|
||||
#define LIBAVCODEC_VERSION_MINOR 7
|
||||
#define LIBAVCODEC_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
LIBAVCODEC_VERSION_MICRO)
|
||||
#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \
|
||||
LIBAVCODEC_VERSION_MINOR, \
|
||||
LIBAVCODEC_VERSION_MICRO)
|
||||
#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
|
||||
|
||||
#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
|
||||
|
||||
/**
|
||||
* Those FF_API_* defines are not part of public API.
|
||||
* They may change, break or disappear at any time.
|
||||
*/
|
||||
#ifndef FF_API_PALETTE_CONTROL
|
||||
#define FF_API_PALETTE_CONTROL (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_OLD_SAMPLE_FMT
|
||||
#define FF_API_OLD_SAMPLE_FMT (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_OLD_AUDIOCONVERT
|
||||
#define FF_API_OLD_AUDIOCONVERT (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_ANTIALIAS_ALGO
|
||||
#define FF_API_ANTIALIAS_ALGO (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_REQUEST_CHANNELS
|
||||
#define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_OPT_H
|
||||
#define FF_API_OPT_H (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_THREAD_INIT
|
||||
#define FF_API_THREAD_INIT (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_OLD_FF_PICT_TYPES
|
||||
#define FF_API_OLD_FF_PICT_TYPES (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_FLAC_GLOBAL_OPTS
|
||||
#define FF_API_FLAC_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_GET_PIX_FMT_NAME
|
||||
#define FF_API_GET_PIX_FMT_NAME (LIBAVCODEC_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
|
||||
#endif /* AVCODEC_VERSION_H */
|
||||
23
3rdparty/include/ffmpeg_/libavcodec/xvmc.h
vendored
23
3rdparty/include/ffmpeg_/libavcodec/xvmc.h
vendored
@@ -25,11 +25,6 @@
|
||||
|
||||
#include "avcodec.h"
|
||||
|
||||
#if LIBAVCODEC_VERSION_MAJOR < 53
|
||||
#define AV_XVMC_STATE_DISPLAY_PENDING 1 /** the surface should be shown, the video driver manipulates this */
|
||||
#define AV_XVMC_STATE_PREDICTION 2 /** the surface is needed for prediction, the codec manipulates this */
|
||||
#define AV_XVMC_STATE_OSD_SOURCE 4 /** the surface is needed for subpicture rendering */
|
||||
#endif
|
||||
#define AV_XVMC_ID 0x1DC711C0 /**< special value to ensure that regular pixel routines haven't corrupted the struct
|
||||
the number is 1337 speak for the letters IDCT MCo (motion compensation) */
|
||||
|
||||
@@ -71,7 +66,7 @@ struct xvmc_pix_fmt {
|
||||
*/
|
||||
int allocated_data_blocks;
|
||||
|
||||
/** Indicates that the hardware would interpret data_blocks as IDCT
|
||||
/** Indicate that the hardware would interpret data_blocks as IDCT
|
||||
coefficients and perform IDCT on them.
|
||||
- application - set during initialization
|
||||
- libavcodec - unchanged
|
||||
@@ -151,22 +146,6 @@ struct xvmc_pix_fmt {
|
||||
of coded blocks it contains.
|
||||
*/
|
||||
int next_free_data_block_num;
|
||||
|
||||
/** extensions may be placed here */
|
||||
#if LIBAVCODEC_VERSION_MAJOR < 53
|
||||
//@{
|
||||
/** State flags used to work around limitations in the MPlayer video system.
|
||||
0 - Surface is not used.
|
||||
1 - Surface is still held in application to be displayed or is
|
||||
still visible.
|
||||
2 - Surface is still held in libavcodec buffer for prediction.
|
||||
*/
|
||||
int state;
|
||||
|
||||
/** pointer to the surface where the subpicture is rendered */
|
||||
void* p_osd_target_surface_render;
|
||||
//}@
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* AVCODEC_XVMC_H */
|
||||
|
||||
17
3rdparty/include/ffmpeg_/libavdevice/avdevice.h
vendored
17
3rdparty/include/ffmpeg_/libavdevice/avdevice.h
vendored
@@ -20,10 +20,11 @@
|
||||
#define AVDEVICE_AVDEVICE_H
|
||||
|
||||
#include "libavutil/avutil.h"
|
||||
#include "libavformat/avformat.h"
|
||||
|
||||
#define LIBAVDEVICE_VERSION_MAJOR 52
|
||||
#define LIBAVDEVICE_VERSION_MINOR 2
|
||||
#define LIBAVDEVICE_VERSION_MICRO 0
|
||||
#define LIBAVDEVICE_VERSION_MAJOR 53
|
||||
#define LIBAVDEVICE_VERSION_MINOR 1
|
||||
#define LIBAVDEVICE_VERSION_MICRO 1
|
||||
|
||||
#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \
|
||||
LIBAVDEVICE_VERSION_MINOR, \
|
||||
@@ -33,18 +34,22 @@
|
||||
LIBAVDEVICE_VERSION_MICRO)
|
||||
#define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT
|
||||
|
||||
#ifndef FF_API_V4L
|
||||
#define FF_API_V4L (LIBAVDEVICE_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Returns the LIBAVDEVICE_VERSION_INT constant.
|
||||
* Return the LIBAVDEVICE_VERSION_INT constant.
|
||||
*/
|
||||
unsigned avdevice_version(void);
|
||||
|
||||
/**
|
||||
* Returns the libavdevice build-time configuration.
|
||||
* Return the libavdevice build-time configuration.
|
||||
*/
|
||||
const char *avdevice_configuration(void);
|
||||
|
||||
/**
|
||||
* Returns the libavdevice license.
|
||||
* Return the libavdevice license.
|
||||
*/
|
||||
const char *avdevice_license(void);
|
||||
|
||||
|
||||
1005
3rdparty/include/ffmpeg_/libavformat/avformat.h
vendored
1005
3rdparty/include/ffmpeg_/libavformat/avformat.h
vendored
File diff suppressed because it is too large
Load Diff
940
3rdparty/include/ffmpeg_/libavformat/avio.h
vendored
940
3rdparty/include/ffmpeg_/libavformat/avio.h
vendored
File diff suppressed because it is too large
Load Diff
81
3rdparty/include/ffmpeg_/libavformat/version.h
vendored
Normal file
81
3rdparty/include/ffmpeg_/libavformat/version.h
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Version macros.
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVFORMAT_VERSION_H
|
||||
#define AVFORMAT_VERSION_H
|
||||
|
||||
#include "libavutil/avutil.h"
|
||||
|
||||
#define LIBAVFORMAT_VERSION_MAJOR 53
|
||||
#define LIBAVFORMAT_VERSION_MINOR 4
|
||||
#define LIBAVFORMAT_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
LIBAVFORMAT_VERSION_MINOR, \
|
||||
LIBAVFORMAT_VERSION_MICRO)
|
||||
#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \
|
||||
LIBAVFORMAT_VERSION_MINOR, \
|
||||
LIBAVFORMAT_VERSION_MICRO)
|
||||
#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT
|
||||
|
||||
#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION)
|
||||
|
||||
/**
|
||||
* Those FF_API_* defines are not part of public API.
|
||||
* They may change, break or disappear at any time.
|
||||
*/
|
||||
#ifndef FF_API_OLD_METADATA2
|
||||
#define FF_API_OLD_METADATA2 (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_READ_SEEK
|
||||
#define FF_API_READ_SEEK (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_OLD_AVIO
|
||||
#define FF_API_OLD_AVIO (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_DUMP_FORMAT
|
||||
#define FF_API_DUMP_FORMAT (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_PARSE_DATE
|
||||
#define FF_API_PARSE_DATE (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_FIND_INFO_TAG
|
||||
#define FF_API_FIND_INFO_TAG (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_PKT_DUMP
|
||||
#define FF_API_PKT_DUMP (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_GUESS_IMG2_CODEC
|
||||
#define FF_API_GUESS_IMG2_CODEC (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_SDP_CREATE
|
||||
#define FF_API_SDP_CREATE (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_ALLOC_OUTPUT_CONTEXT
|
||||
#define FF_API_ALLOC_OUTPUT_CONTEXT (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_FORMAT_PARAMETERS
|
||||
#define FF_API_FORMAT_PARAMETERS (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
#ifndef FF_API_FLAG_RTP_HINT
|
||||
#define FF_API_FLAG_RTP_HINT (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||
#endif
|
||||
|
||||
#endif /* AVFORMAT_VERSION_H */
|
||||
14
3rdparty/include/ffmpeg_/libavutil/adler32.h
vendored
14
3rdparty/include/ffmpeg_/libavutil/adler32.h
vendored
@@ -21,9 +21,21 @@
|
||||
#ifndef AVUTIL_ADLER32_H
|
||||
#define AVUTIL_ADLER32_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
#include "attributes.h"
|
||||
|
||||
/**
|
||||
* Calculate the Adler32 checksum of a buffer.
|
||||
*
|
||||
* Passing the return value to a subsequent av_adler32_update() call
|
||||
* allows the checksum of multiple buffers to be calculated as though
|
||||
* they were concatenated.
|
||||
*
|
||||
* @param adler initial checksum value
|
||||
* @param buf pointer to input buffer
|
||||
* @param len size of input buffer
|
||||
* @return updated checksum
|
||||
*/
|
||||
unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf,
|
||||
unsigned int len) av_pure;
|
||||
|
||||
|
||||
47
3rdparty/include/ffmpeg_/libavutil/aes.h
vendored
Normal file
47
3rdparty/include/ffmpeg_/libavutil/aes.h
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* copyright (c) 2007 Michael Niedermayer <michaelni@gmx.at>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_AES_H
|
||||
#define AVUTIL_AES_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern const int av_aes_size;
|
||||
|
||||
struct AVAES;
|
||||
|
||||
/**
|
||||
* Initialize an AVAES context.
|
||||
* @param key_bits 128, 192 or 256
|
||||
* @param decrypt 0 for encryption, 1 for decryption
|
||||
*/
|
||||
int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt);
|
||||
|
||||
/**
|
||||
* Encrypt or decrypt a buffer using a previously initialized context.
|
||||
* @param count number of 16 byte blocks
|
||||
* @param dst destination array, can be equal to src
|
||||
* @param src source array, can be equal to dst
|
||||
* @param iv initialization vector for CBC mode, if NULL then ECB will be used
|
||||
* @param decrypt 0 for encryption, 1 for decryption
|
||||
*/
|
||||
void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt);
|
||||
|
||||
#endif /* AVUTIL_AES_H */
|
||||
27
3rdparty/include/ffmpeg_/libavutil/attributes.h
vendored
27
3rdparty/include/ffmpeg_/libavutil/attributes.h
vendored
@@ -65,7 +65,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef av_cold
|
||||
#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,3)
|
||||
#if AV_GCC_VERSION_AT_LEAST(4,3)
|
||||
# define av_cold __attribute__((cold))
|
||||
#else
|
||||
# define av_cold
|
||||
@@ -73,7 +73,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef av_flatten
|
||||
#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,1)
|
||||
#if AV_GCC_VERSION_AT_LEAST(4,1)
|
||||
# define av_flatten __attribute__((flatten))
|
||||
#else
|
||||
# define av_flatten
|
||||
@@ -96,8 +96,29 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Mark a variable as used and prevent the compiler from optimizing it
|
||||
* away. This is useful for variables accessed only from inline
|
||||
* assembler without the compiler being aware.
|
||||
*/
|
||||
#ifndef av_used
|
||||
#if AV_GCC_VERSION_AT_LEAST(3,1)
|
||||
# define av_used __attribute__((used))
|
||||
#else
|
||||
# define av_used
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef av_alias
|
||||
#if AV_GCC_VERSION_AT_LEAST(3,3)
|
||||
# define av_alias __attribute__((may_alias))
|
||||
#else
|
||||
# define av_alias
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef av_uninit
|
||||
#if defined(__GNUC__) && !defined(__ICC)
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
|
||||
# define av_uninit(x) x=x
|
||||
#else
|
||||
# define av_uninit(x) x
|
||||
|
||||
95
3rdparty/include/ffmpeg_/libavutil/audioconvert.h
vendored
Normal file
95
3rdparty/include/ffmpeg_/libavutil/audioconvert.h
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
||||
* Copyright (c) 2008 Peter Ross
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_AUDIOCONVERT_H
|
||||
#define AVUTIL_AUDIOCONVERT_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* @file
|
||||
* audio conversion routines
|
||||
*/
|
||||
|
||||
/* Audio channel masks */
|
||||
#define AV_CH_FRONT_LEFT 0x00000001
|
||||
#define AV_CH_FRONT_RIGHT 0x00000002
|
||||
#define AV_CH_FRONT_CENTER 0x00000004
|
||||
#define AV_CH_LOW_FREQUENCY 0x00000008
|
||||
#define AV_CH_BACK_LEFT 0x00000010
|
||||
#define AV_CH_BACK_RIGHT 0x00000020
|
||||
#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040
|
||||
#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080
|
||||
#define AV_CH_BACK_CENTER 0x00000100
|
||||
#define AV_CH_SIDE_LEFT 0x00000200
|
||||
#define AV_CH_SIDE_RIGHT 0x00000400
|
||||
#define AV_CH_TOP_CENTER 0x00000800
|
||||
#define AV_CH_TOP_FRONT_LEFT 0x00001000
|
||||
#define AV_CH_TOP_FRONT_CENTER 0x00002000
|
||||
#define AV_CH_TOP_FRONT_RIGHT 0x00004000
|
||||
#define AV_CH_TOP_BACK_LEFT 0x00008000
|
||||
#define AV_CH_TOP_BACK_CENTER 0x00010000
|
||||
#define AV_CH_TOP_BACK_RIGHT 0x00020000
|
||||
#define AV_CH_STEREO_LEFT 0x20000000 ///< Stereo downmix.
|
||||
#define AV_CH_STEREO_RIGHT 0x40000000 ///< See AV_CH_STEREO_LEFT.
|
||||
|
||||
/** Channel mask value used for AVCodecContext.request_channel_layout
|
||||
to indicate that the user requests the channel order of the decoder output
|
||||
to be the native codec channel order. */
|
||||
#define AV_CH_LAYOUT_NATIVE 0x8000000000000000LL
|
||||
|
||||
/* Audio channel convenience macros */
|
||||
#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER)
|
||||
#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT)
|
||||
#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER)
|
||||
#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER)
|
||||
#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER)
|
||||
#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
|
||||
#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
|
||||
#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT)
|
||||
#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY)
|
||||
#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
|
||||
#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY)
|
||||
#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
|
||||
#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT)
|
||||
#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER)
|
||||
#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT)
|
||||
|
||||
/**
|
||||
* Return a channel layout id that matches name, 0 if no match.
|
||||
*/
|
||||
int64_t av_get_channel_layout(const char *name);
|
||||
|
||||
/**
|
||||
* Return a description of a channel layout.
|
||||
* If nb_channels is <= 0, it is guessed from the channel_layout.
|
||||
*
|
||||
* @param buf put here the string containing the channel layout
|
||||
* @param buf_size size in bytes of the buffer
|
||||
*/
|
||||
void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, int64_t channel_layout);
|
||||
|
||||
/**
|
||||
* Return the number of channels in the channel layout.
|
||||
*/
|
||||
int av_get_channel_layout_nb_channels(int64_t channel_layout);
|
||||
|
||||
#endif /* AVUTIL_AUDIOCONVERT_H */
|
||||
66
3rdparty/include/ffmpeg_/libavutil/avassert.h
vendored
Normal file
66
3rdparty/include/ffmpeg_/libavutil/avassert.h
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* copyright (c) 2010 Michael Niedermayer <michaelni@gmx.at>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* simple assert() macros that are a bit more flexible than ISO C assert().
|
||||
* @author Michael Niedermayer <michaelni@gmx.at>
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_AVASSERT_H
|
||||
#define AVUTIL_AVASSERT_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "avutil.h"
|
||||
#include "log.h"
|
||||
|
||||
/**
|
||||
* assert() equivalent, that is always enabled.
|
||||
*/
|
||||
#define av_assert0(cond) do { \
|
||||
if (!(cond)) { \
|
||||
av_log(NULL, AV_LOG_FATAL, "Assertion %s failed at %s:%d\n", \
|
||||
AV_STRINGIFY(cond), __FILE__, __LINE__); \
|
||||
abort(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
/**
|
||||
* assert() equivalent, that does not lie in speed critical code.
|
||||
* These asserts() thus can be enabled without fearing speedloss.
|
||||
*/
|
||||
#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0
|
||||
#define av_assert1(cond) av_assert0(cond)
|
||||
#else
|
||||
#define av_assert1(cond) ((void)0)
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* assert() equivalent, that does lie in speed critical code.
|
||||
*/
|
||||
#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1
|
||||
#define av_assert2(cond) av_assert0(cond)
|
||||
#else
|
||||
#define av_assert2(cond) ((void)0)
|
||||
#endif
|
||||
|
||||
#endif /* AVUTIL_AVASSERT_H */
|
||||
@@ -2,4 +2,5 @@
|
||||
#ifndef AVUTIL_AVCONFIG_H
|
||||
#define AVUTIL_AVCONFIG_H
|
||||
#define AV_HAVE_BIGENDIAN 0
|
||||
#define AV_HAVE_FAST_UNALIGNED 1
|
||||
#endif /* AVUTIL_AVCONFIG_H */
|
||||
|
||||
16
3rdparty/include/ffmpeg_/libavutil/avstring.h
vendored
16
3rdparty/include/ffmpeg_/libavutil/avstring.h
vendored
@@ -114,4 +114,20 @@ size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...);
|
||||
*/
|
||||
char *av_d2str(double d);
|
||||
|
||||
/**
|
||||
* Unescape the given string until a non escaped terminating char,
|
||||
* and return the token corresponding to the unescaped string.
|
||||
*
|
||||
* The normal \ and ' escaping is supported. Leading and trailing
|
||||
* whitespaces are removed, unless they are escaped with '\' or are
|
||||
* enclosed between ''.
|
||||
*
|
||||
* @param buf the buffer to parse, buf will be updated to point to the
|
||||
* terminating char
|
||||
* @param term a 0-terminated list of terminating chars
|
||||
* @return the malloced unescaped string, which must be av_freed by
|
||||
* the user, NULL in case of allocation failure
|
||||
*/
|
||||
char *av_get_token(const char **buf, const char *term);
|
||||
|
||||
#endif /* AVUTIL_AVSTRING_H */
|
||||
|
||||
55
3rdparty/include/ffmpeg_/libavutil/avutil.h
vendored
55
3rdparty/include/ffmpeg_/libavutil/avutil.h
vendored
@@ -39,8 +39,8 @@
|
||||
#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c
|
||||
#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 50
|
||||
#define LIBAVUTIL_VERSION_MINOR 15
|
||||
#define LIBAVUTIL_VERSION_MAJOR 51
|
||||
#define LIBAVUTIL_VERSION_MINOR 9
|
||||
#define LIBAVUTIL_VERSION_MICRO 1
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
@@ -54,17 +54,31 @@
|
||||
#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION)
|
||||
|
||||
/**
|
||||
* Returns the LIBAVUTIL_VERSION_INT constant.
|
||||
* Those FF_API_* defines are not part of public API.
|
||||
* They may change, break or disappear at any time.
|
||||
*/
|
||||
#ifndef FF_API_OLD_EVAL_NAMES
|
||||
#define FF_API_OLD_EVAL_NAMES (LIBAVUTIL_VERSION_MAJOR < 52)
|
||||
#endif
|
||||
#ifndef FF_API_GET_BITS_PER_SAMPLE_FMT
|
||||
#define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52)
|
||||
#endif
|
||||
#ifndef FF_API_FIND_OPT
|
||||
#define FF_API_FIND_OPT (LIBAVUTIL_VERSION_MAJOR < 52)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Return the LIBAVUTIL_VERSION_INT constant.
|
||||
*/
|
||||
unsigned avutil_version(void);
|
||||
|
||||
/**
|
||||
* Returns the libavutil build-time configuration.
|
||||
* Return the libavutil build-time configuration.
|
||||
*/
|
||||
const char *avutil_configuration(void);
|
||||
|
||||
/**
|
||||
* Returns the libavutil license.
|
||||
* Return the libavutil license.
|
||||
*/
|
||||
const char *avutil_license(void);
|
||||
|
||||
@@ -78,6 +92,37 @@ enum AVMediaType {
|
||||
AVMEDIA_TYPE_NB
|
||||
};
|
||||
|
||||
#define FF_LAMBDA_SHIFT 7
|
||||
#define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
|
||||
#define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
|
||||
#define FF_LAMBDA_MAX (256*128-1)
|
||||
|
||||
#define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
|
||||
|
||||
#define AV_NOPTS_VALUE INT64_C(0x8000000000000000)
|
||||
#define AV_TIME_BASE 1000000
|
||||
#define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
|
||||
|
||||
enum AVPictureType {
|
||||
AV_PICTURE_TYPE_NONE = 0, ///< Undefined
|
||||
AV_PICTURE_TYPE_I, ///< Intra
|
||||
AV_PICTURE_TYPE_P, ///< Predicted
|
||||
AV_PICTURE_TYPE_B, ///< Bi-dir predicted
|
||||
AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG4
|
||||
AV_PICTURE_TYPE_SI, ///< Switching Intra
|
||||
AV_PICTURE_TYPE_SP, ///< Switching Predicted
|
||||
AV_PICTURE_TYPE_BI, ///< BI type
|
||||
};
|
||||
|
||||
/**
|
||||
* Return a single letter to describe the given picture type
|
||||
* pict_type.
|
||||
*
|
||||
* @param[in] pict_type the picture type @return a single character
|
||||
* representing the picture type, '?' if pict_type is unknown
|
||||
*/
|
||||
char av_get_picture_type_char(enum AVPictureType pict_type);
|
||||
|
||||
#include "common.h"
|
||||
#include "error.h"
|
||||
#include "mathematics.h"
|
||||
|
||||
33
3rdparty/include/ffmpeg_/libavutil/base64.h
vendored
33
3rdparty/include/ffmpeg_/libavutil/base64.h
vendored
@@ -21,29 +21,34 @@
|
||||
#ifndef AVUTIL_BASE64_H
|
||||
#define AVUTIL_BASE64_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* Decodes the base64-encoded string in in and puts the decoded
|
||||
* data in out.
|
||||
* Decode a base64-encoded string.
|
||||
*
|
||||
* @param out_size size in bytes of the out buffer, it should be at
|
||||
* least 3/4 of the length of in
|
||||
* @return the number of bytes written, or a negative value in case of
|
||||
* error
|
||||
* @param out buffer for decoded data
|
||||
* @param in null-terminated input string
|
||||
* @param out_size size in bytes of the out buffer, must be at
|
||||
* least 3/4 of the length of in
|
||||
* @return number of bytes written, or a negative value in case of
|
||||
* invalid input
|
||||
*/
|
||||
int av_base64_decode(uint8_t *out, const char *in, int out_size);
|
||||
|
||||
/**
|
||||
* Encodes in base64 the data in in and puts the resulting string
|
||||
* in out.
|
||||
* Encode data to base64 and null-terminate.
|
||||
*
|
||||
* @param out_size size in bytes of the out string, it should be at
|
||||
* least ((in_size + 2) / 3) * 4 + 1
|
||||
* @param in_size size in bytes of the in buffer
|
||||
* @return the string containing the encoded data, or NULL in case of
|
||||
* error
|
||||
* @param out buffer for encoded data
|
||||
* @param out_size size in bytes of the output buffer, must be at
|
||||
* least AV_BASE64_SIZE(in_size)
|
||||
* @param in_size size in bytes of the 'in' buffer
|
||||
* @return 'out' or NULL in case of error
|
||||
*/
|
||||
char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size);
|
||||
|
||||
/**
|
||||
* Calculate the output size needed to base64-encode x bytes.
|
||||
*/
|
||||
#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1)
|
||||
|
||||
#endif /* AVUTIL_BASE64_H */
|
||||
|
||||
124
3rdparty/include/ffmpeg_/libavutil/bswap.h
vendored
Normal file
124
3rdparty/include/ffmpeg_/libavutil/bswap.h
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
/*
|
||||
* copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* byte swapping routines
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_BSWAP_H
|
||||
#define AVUTIL_BSWAP_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "libavutil/avconfig.h"
|
||||
#include "attributes.h"
|
||||
|
||||
#ifdef HAVE_AV_CONFIG_H
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#if ARCH_ARM
|
||||
# include "arm/bswap.h"
|
||||
#elif ARCH_AVR32
|
||||
# include "avr32/bswap.h"
|
||||
#elif ARCH_BFIN
|
||||
# include "bfin/bswap.h"
|
||||
#elif ARCH_SH4
|
||||
# include "sh4/bswap.h"
|
||||
#elif ARCH_X86
|
||||
# include "x86/bswap.h"
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_AV_CONFIG_H */
|
||||
|
||||
#define AV_BSWAP16C(x) (((x) << 8 & 0xff00) | ((x) >> 8 & 0x00ff))
|
||||
#define AV_BSWAP32C(x) (AV_BSWAP16C(x) << 16 | AV_BSWAP16C((x) >> 16))
|
||||
#define AV_BSWAP64C(x) (AV_BSWAP32C(x) << 32 | AV_BSWAP32C((x) >> 32))
|
||||
|
||||
#define AV_BSWAPC(s, x) AV_BSWAP##s##C(x)
|
||||
|
||||
#ifndef av_bswap16
|
||||
static av_always_inline av_const uint16_t av_bswap16(uint16_t x)
|
||||
{
|
||||
x= (x>>8) | (x<<8);
|
||||
return x;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef av_bswap32
|
||||
static av_always_inline av_const uint32_t av_bswap32(uint32_t x)
|
||||
{
|
||||
x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
|
||||
x= (x>>16) | (x<<16);
|
||||
return x;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef av_bswap64
|
||||
static inline uint64_t av_const av_bswap64(uint64_t x)
|
||||
{
|
||||
#if 0
|
||||
x= ((x<< 8)&0xFF00FF00FF00FF00ULL) | ((x>> 8)&0x00FF00FF00FF00FFULL);
|
||||
x= ((x<<16)&0xFFFF0000FFFF0000ULL) | ((x>>16)&0x0000FFFF0000FFFFULL);
|
||||
return (x>>32) | (x<<32);
|
||||
#else
|
||||
union {
|
||||
uint64_t ll;
|
||||
uint32_t l[2];
|
||||
} w, r;
|
||||
w.ll = x;
|
||||
r.l[0] = av_bswap32 (w.l[1]);
|
||||
r.l[1] = av_bswap32 (w.l[0]);
|
||||
return r.ll;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
// be2ne ... big-endian to native-endian
|
||||
// le2ne ... little-endian to native-endian
|
||||
|
||||
#if AV_HAVE_BIGENDIAN
|
||||
#define av_be2ne16(x) (x)
|
||||
#define av_be2ne32(x) (x)
|
||||
#define av_be2ne64(x) (x)
|
||||
#define av_le2ne16(x) av_bswap16(x)
|
||||
#define av_le2ne32(x) av_bswap32(x)
|
||||
#define av_le2ne64(x) av_bswap64(x)
|
||||
#define AV_BE2NEC(s, x) (x)
|
||||
#define AV_LE2NEC(s, x) AV_BSWAPC(s, x)
|
||||
#else
|
||||
#define av_be2ne16(x) av_bswap16(x)
|
||||
#define av_be2ne32(x) av_bswap32(x)
|
||||
#define av_be2ne64(x) av_bswap64(x)
|
||||
#define av_le2ne16(x) (x)
|
||||
#define av_le2ne32(x) (x)
|
||||
#define av_le2ne64(x) (x)
|
||||
#define AV_BE2NEC(s, x) AV_BSWAPC(s, x)
|
||||
#define AV_LE2NEC(s, x) (x)
|
||||
#endif
|
||||
|
||||
#define AV_BE2NE16C(x) AV_BE2NEC(16, x)
|
||||
#define AV_BE2NE32C(x) AV_BE2NEC(32, x)
|
||||
#define AV_BE2NE64C(x) AV_BE2NEC(64, x)
|
||||
#define AV_LE2NE16C(x) AV_LE2NEC(16, x)
|
||||
#define AV_LE2NE32C(x) AV_LE2NEC(32, x)
|
||||
#define AV_LE2NE64C(x) AV_LE2NEC(64, x)
|
||||
|
||||
#endif /* AVUTIL_BSWAP_H */
|
||||
181
3rdparty/include/ffmpeg_/libavutil/common.h
vendored
181
3rdparty/include/ffmpeg_/libavutil/common.h
vendored
@@ -28,22 +28,27 @@
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#ifdef _MSC_VER
|
||||
#include <msc_inttypes.h>
|
||||
#else
|
||||
#include <inttypes.h>
|
||||
#endif
|
||||
#include <limits.h>
|
||||
#include <math.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "attributes.h"
|
||||
#include "libavutil/avconfig.h"
|
||||
|
||||
#if AV_HAVE_BIGENDIAN
|
||||
# define AV_NE(be, le) (be)
|
||||
#else
|
||||
# define AV_NE(be, le) (le)
|
||||
#endif
|
||||
|
||||
//rounded division & shift
|
||||
#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b))
|
||||
/* assume b>0 */
|
||||
#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b))
|
||||
#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b))
|
||||
#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b))
|
||||
#define FFABS(a) ((a) >= 0 ? (a) : (-(a)))
|
||||
#define FFSIGN(a) ((a) > 0 ? 1 : -1)
|
||||
|
||||
@@ -61,7 +66,7 @@ extern const uint8_t ff_log2_tab[256];
|
||||
|
||||
extern const uint8_t av_reverse[256];
|
||||
|
||||
static inline av_const int av_log2_c(unsigned int v)
|
||||
static av_always_inline av_const int av_log2_c(unsigned int v)
|
||||
{
|
||||
int n = 0;
|
||||
if (v & 0xffff0000) {
|
||||
@@ -77,7 +82,7 @@ static inline av_const int av_log2_c(unsigned int v)
|
||||
return n;
|
||||
}
|
||||
|
||||
static inline av_const int av_log2_16bit_c(unsigned int v)
|
||||
static av_always_inline av_const int av_log2_16bit_c(unsigned int v)
|
||||
{
|
||||
int n = 0;
|
||||
if (v & 0xff00) {
|
||||
@@ -94,21 +99,17 @@ static inline av_const int av_log2_16bit_c(unsigned int v)
|
||||
# include "intmath.h"
|
||||
#endif
|
||||
|
||||
#ifndef av_log2
|
||||
# define av_log2 av_log2_c
|
||||
#endif
|
||||
#ifndef av_log2_16bit
|
||||
# define av_log2_16bit av_log2_16bit_c
|
||||
#endif
|
||||
/* Pull in unguarded fallback defines at the end of this file. */
|
||||
#include "common.h"
|
||||
|
||||
/**
|
||||
* Clips a signed integer value into the amin-amax range.
|
||||
* Clip a signed integer value into the amin-amax range.
|
||||
* @param a value to clip
|
||||
* @param amin minimum value of the clip range
|
||||
* @param amax maximum value of the clip range
|
||||
* @return clipped value
|
||||
*/
|
||||
static inline av_const int av_clip(int a, int amin, int amax)
|
||||
static av_always_inline av_const int av_clip_c(int a, int amin, int amax)
|
||||
{
|
||||
if (a < amin) return amin;
|
||||
else if (a > amax) return amax;
|
||||
@@ -116,87 +117,122 @@ static inline av_const int av_clip(int a, int amin, int amax)
|
||||
}
|
||||
|
||||
/**
|
||||
* Clips a signed integer value into the 0-255 range.
|
||||
* Clip a signed integer value into the 0-255 range.
|
||||
* @param a value to clip
|
||||
* @return clipped value
|
||||
*/
|
||||
static inline av_const uint8_t av_clip_uint8(int a)
|
||||
static av_always_inline av_const uint8_t av_clip_uint8_c(int a)
|
||||
{
|
||||
if (a&(~0xFF)) return (-a)>>31;
|
||||
else return a;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clips a signed integer value into the 0-65535 range.
|
||||
* Clip a signed integer value into the -128,127 range.
|
||||
* @param a value to clip
|
||||
* @return clipped value
|
||||
*/
|
||||
static inline av_const uint16_t av_clip_uint16(int a)
|
||||
static av_always_inline av_const int8_t av_clip_int8_c(int a)
|
||||
{
|
||||
if ((a+0x80) & ~0xFF) return (a>>31) ^ 0x7F;
|
||||
else return a;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clip a signed integer value into the 0-65535 range.
|
||||
* @param a value to clip
|
||||
* @return clipped value
|
||||
*/
|
||||
static av_always_inline av_const uint16_t av_clip_uint16_c(int a)
|
||||
{
|
||||
if (a&(~0xFFFF)) return (-a)>>31;
|
||||
else return a;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clips a signed integer value into the -32768,32767 range.
|
||||
* Clip a signed integer value into the -32768,32767 range.
|
||||
* @param a value to clip
|
||||
* @return clipped value
|
||||
*/
|
||||
static inline av_const int16_t av_clip_int16(int a)
|
||||
static av_always_inline av_const int16_t av_clip_int16_c(int a)
|
||||
{
|
||||
if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF;
|
||||
else return a;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clips a signed 64-bit integer value into the -2147483648,2147483647 range.
|
||||
* Clip a signed 64-bit integer value into the -2147483648,2147483647 range.
|
||||
* @param a value to clip
|
||||
* @return clipped value
|
||||
*/
|
||||
static inline av_const int32_t av_clipl_int32(int64_t a)
|
||||
static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a)
|
||||
{
|
||||
if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF;
|
||||
else return a;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clips a float value into the amin-amax range.
|
||||
* Clip a signed integer to an unsigned power of two range.
|
||||
* @param a value to clip
|
||||
* @param p bit position to clip at
|
||||
* @return clipped value
|
||||
*/
|
||||
static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p)
|
||||
{
|
||||
if (a & ~((1<<p) - 1)) return -a >> 31 & ((1<<p) - 1);
|
||||
else return a;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clip a float value into the amin-amax range.
|
||||
* @param a value to clip
|
||||
* @param amin minimum value of the clip range
|
||||
* @param amax maximum value of the clip range
|
||||
* @return clipped value
|
||||
*/
|
||||
static inline av_const float av_clipf(float a, float amin, float amax)
|
||||
static av_always_inline av_const float av_clipf_c(float a, float amin, float amax)
|
||||
{
|
||||
if (a < amin) return amin;
|
||||
else if (a > amax) return amax;
|
||||
else return a;
|
||||
}
|
||||
|
||||
/** Computes ceil(log2(x)).
|
||||
/** Compute ceil(log2(x)).
|
||||
* @param x value used to compute ceil(log2(x))
|
||||
* @return computed ceiling of log2(x)
|
||||
*/
|
||||
static inline av_const int av_ceil_log2(int x)
|
||||
static av_always_inline av_const int av_ceil_log2_c(int x)
|
||||
{
|
||||
return av_log2((x - 1) << 1);
|
||||
}
|
||||
|
||||
#define MKTAG(a,b,c,d) (a | (b << 8) | (c << 16) | (d << 24))
|
||||
#define MKBETAG(a,b,c,d) (d | (c << 8) | (b << 16) | (a << 24))
|
||||
/**
|
||||
* Count number of bits set to one in x
|
||||
* @param x value to count bits of
|
||||
* @return the number of bits set to one in x
|
||||
*/
|
||||
static av_always_inline av_const int av_popcount_c(uint32_t x)
|
||||
{
|
||||
x -= (x >> 1) & 0x55555555;
|
||||
x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
|
||||
x = (x + (x >> 4)) & 0x0F0F0F0F;
|
||||
x += x >> 8;
|
||||
return (x + (x >> 16)) & 0x3F;
|
||||
}
|
||||
|
||||
/*!
|
||||
* \def GET_UTF8(val, GET_BYTE, ERROR)
|
||||
* Converts a UTF-8 character (up to 4 bytes long) to its 32-bit UCS-4 encoded form
|
||||
* \param val is the output and should be of type uint32_t. It holds the converted
|
||||
* UCS-4 character and should be a left value.
|
||||
* \param GET_BYTE gets UTF-8 encoded bytes from any proper source. It can be
|
||||
* a function or a statement whose return value or evaluated value is of type
|
||||
* uint8_t. It will be executed up to 4 times for values in the valid UTF-8 range,
|
||||
* and up to 7 times in the general case.
|
||||
* \param ERROR action that should be taken when an invalid UTF-8 byte is returned
|
||||
* from GET_BYTE. It should be a statement that jumps out of the macro,
|
||||
* like exit(), goto, return, break, or continue.
|
||||
#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((d) << 24))
|
||||
#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((a) << 24))
|
||||
|
||||
/**
|
||||
* Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form.
|
||||
*
|
||||
* @param val Output value, must be an lvalue of type uint32_t.
|
||||
* @param GET_BYTE Expression reading one byte from the input.
|
||||
* Evaluated up to 7 times (4 for the currently
|
||||
* assigned Unicode range). With a memory buffer
|
||||
* input, this could be *ptr++.
|
||||
* @param ERROR Expression to be evaluated on invalid input,
|
||||
* typically a goto statement.
|
||||
*/
|
||||
#define GET_UTF8(val, GET_BYTE, ERROR)\
|
||||
val= GET_BYTE;\
|
||||
@@ -213,17 +249,14 @@ static inline av_const int av_ceil_log2(int x)
|
||||
}\
|
||||
}
|
||||
|
||||
/*!
|
||||
* \def GET_UTF16(val, GET_16BIT, ERROR)
|
||||
* Converts a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form
|
||||
* \param val is the output and should be of type uint32_t. It holds the converted
|
||||
* UCS-4 character and should be a left value.
|
||||
* \param GET_16BIT gets two bytes of UTF-16 encoded data converted to native endianness.
|
||||
* It can be a function or a statement whose return value or evaluated value is of type
|
||||
* uint16_t. It will be executed up to 2 times.
|
||||
* \param ERROR action that should be taken when an invalid UTF-16 surrogate is
|
||||
* returned from GET_BYTE. It should be a statement that jumps out of the macro,
|
||||
* like exit(), goto, return, break, or continue.
|
||||
/**
|
||||
* Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form.
|
||||
*
|
||||
* @param val Output value, must be an lvalue of type uint32_t.
|
||||
* @param GET_16BIT Expression returning two bytes of UTF-16 data converted
|
||||
* to native byte order. Evaluated one or two times.
|
||||
* @param ERROR Expression to be evaluated on invalid input,
|
||||
* typically a goto statement.
|
||||
*/
|
||||
#define GET_UTF16(val, GET_16BIT, ERROR)\
|
||||
val = GET_16BIT;\
|
||||
@@ -239,7 +272,7 @@ static inline av_const int av_ceil_log2(int x)
|
||||
|
||||
/*!
|
||||
* \def PUT_UTF8(val, tmp, PUT_BYTE)
|
||||
* Converts a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
|
||||
* Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long).
|
||||
* \param val is an input-only argument and should be of type uint32_t. It holds
|
||||
* a UCS-4 encoded Unicode character that is to be converted to UTF-8. If
|
||||
* val is given as a function it is executed only once.
|
||||
@@ -275,7 +308,7 @@ static inline av_const int av_ceil_log2(int x)
|
||||
|
||||
/*!
|
||||
* \def PUT_UTF16(val, tmp, PUT_16BIT)
|
||||
* Converts a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
|
||||
* Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes).
|
||||
* \param val is an input-only argument and should be of type uint32_t. It holds
|
||||
* a UCS-4 encoded Unicode character that is to be converted to UTF-16. If
|
||||
* val is given as a function it is executed only once.
|
||||
@@ -310,3 +343,45 @@ static inline av_const int av_ceil_log2(int x)
|
||||
#endif /* HAVE_AV_CONFIG_H */
|
||||
|
||||
#endif /* AVUTIL_COMMON_H */
|
||||
|
||||
/*
|
||||
* The following definitions are outside the multiple inclusion guard
|
||||
* to ensure they are immediately available in intmath.h.
|
||||
*/
|
||||
|
||||
#ifndef av_log2
|
||||
# define av_log2 av_log2_c
|
||||
#endif
|
||||
#ifndef av_log2_16bit
|
||||
# define av_log2_16bit av_log2_16bit_c
|
||||
#endif
|
||||
#ifndef av_ceil_log2
|
||||
# define av_ceil_log2 av_ceil_log2_c
|
||||
#endif
|
||||
#ifndef av_clip
|
||||
# define av_clip av_clip_c
|
||||
#endif
|
||||
#ifndef av_clip_uint8
|
||||
# define av_clip_uint8 av_clip_uint8_c
|
||||
#endif
|
||||
#ifndef av_clip_int8
|
||||
# define av_clip_int8 av_clip_int8_c
|
||||
#endif
|
||||
#ifndef av_clip_uint16
|
||||
# define av_clip_uint16 av_clip_uint16_c
|
||||
#endif
|
||||
#ifndef av_clip_int16
|
||||
# define av_clip_int16 av_clip_int16_c
|
||||
#endif
|
||||
#ifndef av_clipl_int32
|
||||
# define av_clipl_int32 av_clipl_int32_c
|
||||
#endif
|
||||
#ifndef av_clip_uintp2
|
||||
# define av_clip_uintp2 av_clip_uintp2_c
|
||||
#endif
|
||||
#ifndef av_clipf
|
||||
# define av_clipf av_clipf_c
|
||||
#endif
|
||||
#ifndef av_popcount
|
||||
# define av_popcount av_popcount_c
|
||||
#endif
|
||||
|
||||
61
3rdparty/include/ffmpeg_/libavutil/cpu.h
vendored
Normal file
61
3rdparty/include/ffmpeg_/libavutil/cpu.h
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2001, 2002 Fabrice Bellard
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_CPU_H
|
||||
#define AVUTIL_CPU_H
|
||||
|
||||
#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */
|
||||
|
||||
/* lower 16 bits - CPU features */
|
||||
#define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX
|
||||
#define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext
|
||||
#define AV_CPU_FLAG_3DNOW 0x0004 ///< AMD 3DNOW
|
||||
#define AV_CPU_FLAG_SSE 0x0008 ///< SSE functions
|
||||
#define AV_CPU_FLAG_SSE2 0x0010 ///< PIV SSE2 functions
|
||||
#define AV_CPU_FLAG_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster
|
||||
#define AV_CPU_FLAG_3DNOWEXT 0x0020 ///< AMD 3DNowExt
|
||||
#define AV_CPU_FLAG_SSE3 0x0040 ///< Prescott SSE3 functions
|
||||
#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster
|
||||
#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions
|
||||
#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower
|
||||
#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions
|
||||
#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions
|
||||
#define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used
|
||||
#define AV_CPU_FLAG_IWMMXT 0x0100 ///< XScale IWMMXT
|
||||
#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard
|
||||
|
||||
/**
|
||||
* Return the flags which specify extensions supported by the CPU.
|
||||
*/
|
||||
int av_get_cpu_flags(void);
|
||||
|
||||
|
||||
/**
|
||||
* Disables cpu detection and forces the specified flags.
|
||||
*/
|
||||
void av_force_cpu_flags(int flags);
|
||||
|
||||
|
||||
/* The following CPU-specific functions shall not be called directly. */
|
||||
int ff_get_cpu_flags_arm(void);
|
||||
int ff_get_cpu_flags_ppc(void);
|
||||
int ff_get_cpu_flags_x86(void);
|
||||
|
||||
#endif /* AVUTIL_CPU_H */
|
||||
2
3rdparty/include/ffmpeg_/libavutil/crc.h
vendored
2
3rdparty/include/ffmpeg_/libavutil/crc.h
vendored
@@ -21,7 +21,7 @@
|
||||
#ifndef AVUTIL_CRC_H
|
||||
#define AVUTIL_CRC_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
#include "attributes.h"
|
||||
|
||||
|
||||
81
3rdparty/include/ffmpeg_/libavutil/dict.h
vendored
Normal file
81
3rdparty/include/ffmpeg_/libavutil/dict.h
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Public dictionary API.
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_DICT_H
|
||||
#define AVUTIL_DICT_H
|
||||
|
||||
#define AV_DICT_MATCH_CASE 1
|
||||
#define AV_DICT_IGNORE_SUFFIX 2
|
||||
#define AV_DICT_DONT_STRDUP_KEY 4
|
||||
#define AV_DICT_DONT_STRDUP_VAL 8
|
||||
#define AV_DICT_DONT_OVERWRITE 16 ///< Don't overwrite existing entries.
|
||||
#define AV_DICT_APPEND 32 /**< If the entry already exists, append to it. Note that no
|
||||
delimiter is added, the strings are simply concatenated. */
|
||||
|
||||
typedef struct {
|
||||
char *key;
|
||||
char *value;
|
||||
} AVDictionaryEntry;
|
||||
|
||||
typedef struct AVDictionary AVDictionary;
|
||||
|
||||
/**
|
||||
* Get a dictionary entry with matching key.
|
||||
*
|
||||
* @param prev Set to the previous matching element to find the next.
|
||||
* If set to NULL the first matching element is returned.
|
||||
* @param flags Allows case as well as suffix-insensitive comparisons.
|
||||
* @return Found entry or NULL, changing key or value leads to undefined behavior.
|
||||
*/
|
||||
AVDictionaryEntry *
|
||||
av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags);
|
||||
|
||||
/**
|
||||
* Set the given entry in *pm, overwriting an existing entry.
|
||||
*
|
||||
* @param pm pointer to a pointer to a dictionary struct. If *pm is NULL
|
||||
* a dictionary struct is allocated and put in *pm.
|
||||
* @param key entry key to add to *pm (will be av_strduped depending on flags)
|
||||
* @param value entry value to add to *pm (will be av_strduped depending on flags).
|
||||
* Passing a NULL value will cause an existing tag to be deleted.
|
||||
* @return >= 0 on success otherwise an error code <0
|
||||
*/
|
||||
int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags);
|
||||
|
||||
/**
|
||||
* Copy entries from one AVDictionary struct into another.
|
||||
* @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL,
|
||||
* this function will allocate a struct for you and put it in *dst
|
||||
* @param src pointer to source AVDictionary struct
|
||||
* @param flags flags to use when setting entries in *dst
|
||||
* @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag
|
||||
*/
|
||||
void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags);
|
||||
|
||||
/**
|
||||
* Free all the memory allocated for an AVDictionary struct.
|
||||
*/
|
||||
void av_dict_free(AVDictionary **m);
|
||||
|
||||
#endif // AVUTIL_DICT_H
|
||||
36
3rdparty/include/ffmpeg_/libavutil/error.h
vendored
36
3rdparty/include/ffmpeg_/libavutil/error.h
vendored
@@ -37,32 +37,28 @@
|
||||
#define AVUNERROR(e) (e)
|
||||
#endif
|
||||
|
||||
#if LIBAVUTIL_VERSION_MAJOR < 51
|
||||
#define AVERROR_INVALIDDATA AVERROR(EINVAL) ///< Invalid data found when processing input
|
||||
#define AVERROR_IO AVERROR(EIO) ///< I/O error
|
||||
#define AVERROR_NOENT AVERROR(ENOENT) ///< No such file or directory
|
||||
#define AVERROR_NOFMT AVERROR(EILSEQ) ///< Unknown format
|
||||
#define AVERROR_NOMEM AVERROR(ENOMEM) ///< Not enough memory
|
||||
#define AVERROR_NOTSUPP AVERROR(ENOSYS) ///< Operation not supported
|
||||
#define AVERROR_NUMEXPECTED AVERROR(EDOM) ///< Number syntax expected in filename
|
||||
#define AVERROR_UNKNOWN AVERROR(EINVAL) ///< Unknown error
|
||||
#endif
|
||||
|
||||
#define AVERROR_EOF AVERROR(EPIPE) ///< End of file
|
||||
|
||||
#define AVERROR_PATCHWELCOME (-MKTAG('P','A','W','E')) ///< Not yet implemented in FFmpeg, patches welcome
|
||||
|
||||
#if LIBAVUTIL_VERSION_MAJOR > 50
|
||||
#define AVERROR_INVALIDDATA (-MKTAG('I','N','D','A')) ///< Invalid data found when processing input
|
||||
#define AVERROR_NUMEXPECTED (-MKTAG('N','U','E','X')) ///< Number syntax expected in filename
|
||||
#endif
|
||||
#define AVERROR_BSF_NOT_FOUND (-MKTAG(0xF8,'B','S','F')) ///< Bitstream filter not found
|
||||
#define AVERROR_DECODER_NOT_FOUND (-MKTAG(0xF8,'D','E','C')) ///< Decoder not found
|
||||
#define AVERROR_DEMUXER_NOT_FOUND (-MKTAG(0xF8,'D','E','M')) ///< Demuxer not found
|
||||
#define AVERROR_ENCODER_NOT_FOUND (-MKTAG(0xF8,'E','N','C')) ///< Encoder not found
|
||||
#define AVERROR_EOF (-MKTAG( 'E','O','F',' ')) ///< End of file
|
||||
#define AVERROR_EXIT (-MKTAG( 'E','X','I','T')) ///< Immediate exit was requested; the called function should not be restarted
|
||||
#define AVERROR_FILTER_NOT_FOUND (-MKTAG(0xF8,'F','I','L')) ///< Filter not found
|
||||
#define AVERROR_INVALIDDATA (-MKTAG( 'I','N','D','A')) ///< Invalid data found when processing input
|
||||
#define AVERROR_MUXER_NOT_FOUND (-MKTAG(0xF8,'M','U','X')) ///< Muxer not found
|
||||
#define AVERROR_OPTION_NOT_FOUND (-MKTAG(0xF8,'O','P','T')) ///< Option not found
|
||||
#define AVERROR_PATCHWELCOME (-MKTAG( 'P','A','W','E')) ///< Not yet implemented in FFmpeg, patches welcome
|
||||
#define AVERROR_PROTOCOL_NOT_FOUND (-MKTAG(0xF8,'P','R','O')) ///< Protocol not found
|
||||
#define AVERROR_STREAM_NOT_FOUND (-MKTAG(0xF8,'S','T','R')) ///< Stream not found
|
||||
|
||||
/**
|
||||
* Puts a description of the AVERROR code errnum in errbuf.
|
||||
* Put a description of the AVERROR code errnum in errbuf.
|
||||
* In case of failure the global variable errno is set to indicate the
|
||||
* error. Even in case of failure av_strerror() will print a generic
|
||||
* error message indicating the errnum provided to errbuf.
|
||||
*
|
||||
* @param errnum error code to describe
|
||||
* @param errbuf buffer to which description is written
|
||||
* @param errbuf_size the size in bytes of errbuf
|
||||
* @return 0 on success, a negative value if a description for errnum
|
||||
* cannot be found
|
||||
|
||||
146
3rdparty/include/ffmpeg_/libavutil/eval.h
vendored
Normal file
146
3rdparty/include/ffmpeg_/libavutil/eval.h
vendored
Normal file
@@ -0,0 +1,146 @@
|
||||
/*
|
||||
* Copyright (c) 2002 Michael Niedermayer <michaelni@gmx.at>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/**
|
||||
* @file
|
||||
* simple arithmetic expression evaluator
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_EVAL_H
|
||||
#define AVUTIL_EVAL_H
|
||||
|
||||
#include "avutil.h"
|
||||
|
||||
typedef struct AVExpr AVExpr;
|
||||
|
||||
/**
|
||||
* Parse and evaluate an expression.
|
||||
* Note, this is significantly slower than av_expr_eval().
|
||||
*
|
||||
* @param res a pointer to a double where is put the result value of
|
||||
* the expression, or NAN in case of error
|
||||
* @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)"
|
||||
* @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0}
|
||||
* @param const_values a zero terminated array of values for the identifiers from const_names
|
||||
* @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers
|
||||
* @param funcs1 NULL terminated array of function pointers for functions which take 1 argument
|
||||
* @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers
|
||||
* @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments
|
||||
* @param opaque a pointer which will be passed to all functions from funcs1 and funcs2
|
||||
* @param log_ctx parent logging context
|
||||
* @return 0 in case of success, a negative value corresponding to an
|
||||
* AVERROR code otherwise
|
||||
*/
|
||||
int av_expr_parse_and_eval(double *res, const char *s,
|
||||
const char * const *const_names, const double *const_values,
|
||||
const char * const *func1_names, double (* const *funcs1)(void *, double),
|
||||
const char * const *func2_names, double (* const *funcs2)(void *, double, double),
|
||||
void *opaque, int log_offset, void *log_ctx);
|
||||
|
||||
/**
|
||||
* Parse an expression.
|
||||
*
|
||||
* @param expr a pointer where is put an AVExpr containing the parsed
|
||||
* value in case of successfull parsing, or NULL otherwise.
|
||||
* The pointed to AVExpr must be freed with av_expr_free() by the user
|
||||
* when it is not needed anymore.
|
||||
* @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)"
|
||||
* @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0}
|
||||
* @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers
|
||||
* @param funcs1 NULL terminated array of function pointers for functions which take 1 argument
|
||||
* @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers
|
||||
* @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments
|
||||
* @param log_ctx parent logging context
|
||||
* @return 0 in case of success, a negative value corresponding to an
|
||||
* AVERROR code otherwise
|
||||
*/
|
||||
int av_expr_parse(AVExpr **expr, const char *s,
|
||||
const char * const *const_names,
|
||||
const char * const *func1_names, double (* const *funcs1)(void *, double),
|
||||
const char * const *func2_names, double (* const *funcs2)(void *, double, double),
|
||||
int log_offset, void *log_ctx);
|
||||
|
||||
/**
|
||||
* Evaluate a previously parsed expression.
|
||||
*
|
||||
* @param const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names
|
||||
* @param opaque a pointer which will be passed to all functions from funcs1 and funcs2
|
||||
* @return the value of the expression
|
||||
*/
|
||||
double av_expr_eval(AVExpr *e, const double *const_values, void *opaque);
|
||||
|
||||
/**
|
||||
* Free a parsed expression previously created with av_expr_parse().
|
||||
*/
|
||||
void av_expr_free(AVExpr *e);
|
||||
|
||||
#if FF_API_OLD_EVAL_NAMES
|
||||
/**
|
||||
* @deprecated Deprecated in favor of av_expr_parse_and_eval().
|
||||
*/
|
||||
attribute_deprecated
|
||||
int av_parse_and_eval_expr(double *res, const char *s,
|
||||
const char * const *const_names, const double *const_values,
|
||||
const char * const *func1_names, double (* const *funcs1)(void *, double),
|
||||
const char * const *func2_names, double (* const *funcs2)(void *, double, double),
|
||||
void *opaque, int log_offset, void *log_ctx);
|
||||
|
||||
/**
|
||||
* @deprecated Deprecated in favor of av_expr_parse().
|
||||
*/
|
||||
attribute_deprecated
|
||||
int av_parse_expr(AVExpr **expr, const char *s,
|
||||
const char * const *const_names,
|
||||
const char * const *func1_names, double (* const *funcs1)(void *, double),
|
||||
const char * const *func2_names, double (* const *funcs2)(void *, double, double),
|
||||
int log_offset, void *log_ctx);
|
||||
/**
|
||||
* @deprecated Deprecated in favor of av_expr_eval().
|
||||
*/
|
||||
attribute_deprecated
|
||||
double av_eval_expr(AVExpr *e, const double *const_values, void *opaque);
|
||||
|
||||
/**
|
||||
* @deprecated Deprecated in favor of av_expr_free().
|
||||
*/
|
||||
attribute_deprecated
|
||||
void av_free_expr(AVExpr *e);
|
||||
#endif /* FF_API_OLD_EVAL_NAMES */
|
||||
|
||||
/**
|
||||
* Parse the string in numstr and return its value as a double. If
|
||||
* the string is empty, contains only whitespaces, or does not contain
|
||||
* an initial substring that has the expected syntax for a
|
||||
* floating-point number, no conversion is performed. In this case,
|
||||
* returns a value of zero and the value returned in tail is the value
|
||||
* of numstr.
|
||||
*
|
||||
* @param numstr a string representing a number, may contain one of
|
||||
* the International System number postfixes, for example 'K', 'M',
|
||||
* 'G'. If 'i' is appended after the postfix, powers of 2 are used
|
||||
* instead of powers of 10. The 'B' postfix multiplies the value for
|
||||
* 8, and can be appended after another postfix or used alone. This
|
||||
* allows using for example 'KB', 'MiB', 'G' and 'B' as postfix.
|
||||
* @param tail if non-NULL puts here the pointer to the char next
|
||||
* after the last parsed character
|
||||
*/
|
||||
double av_strtod(const char *numstr, char **tail);
|
||||
|
||||
#endif /* AVUTIL_EVAL_H */
|
||||
20
3rdparty/include/ffmpeg_/libavutil/fifo.h
vendored
20
3rdparty/include/ffmpeg_/libavutil/fifo.h
vendored
@@ -24,7 +24,7 @@
|
||||
#ifndef AVUTIL_FIFO_H
|
||||
#define AVUTIL_FIFO_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
|
||||
typedef struct AVFifoBuffer {
|
||||
uint8_t *buffer;
|
||||
@@ -33,26 +33,26 @@ typedef struct AVFifoBuffer {
|
||||
} AVFifoBuffer;
|
||||
|
||||
/**
|
||||
* Initializes an AVFifoBuffer.
|
||||
* Initialize an AVFifoBuffer.
|
||||
* @param size of FIFO
|
||||
* @return AVFifoBuffer or NULL in case of memory allocation failure
|
||||
*/
|
||||
AVFifoBuffer *av_fifo_alloc(unsigned int size);
|
||||
|
||||
/**
|
||||
* Frees an AVFifoBuffer.
|
||||
* Free an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to free
|
||||
*/
|
||||
void av_fifo_free(AVFifoBuffer *f);
|
||||
|
||||
/**
|
||||
* Resets the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied.
|
||||
* Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied.
|
||||
* @param *f AVFifoBuffer to reset
|
||||
*/
|
||||
void av_fifo_reset(AVFifoBuffer *f);
|
||||
|
||||
/**
|
||||
* Returns the amount of data in bytes in the AVFifoBuffer, that is the
|
||||
* Return the amount of data in bytes in the AVFifoBuffer, that is the
|
||||
* amount of data you can read from it.
|
||||
* @param *f AVFifoBuffer to read from
|
||||
* @return size
|
||||
@@ -60,7 +60,7 @@ void av_fifo_reset(AVFifoBuffer *f);
|
||||
int av_fifo_size(AVFifoBuffer *f);
|
||||
|
||||
/**
|
||||
* Returns the amount of space in bytes in the AVFifoBuffer, that is the
|
||||
* Return the amount of space in bytes in the AVFifoBuffer, that is the
|
||||
* amount of data you can write into it.
|
||||
* @param *f AVFifoBuffer to write into
|
||||
* @return size
|
||||
@@ -68,7 +68,7 @@ int av_fifo_size(AVFifoBuffer *f);
|
||||
int av_fifo_space(AVFifoBuffer *f);
|
||||
|
||||
/**
|
||||
* Feeds data from an AVFifoBuffer to a user-supplied callback.
|
||||
* Feed data from an AVFifoBuffer to a user-supplied callback.
|
||||
* @param *f AVFifoBuffer to read from
|
||||
* @param buf_size number of bytes to read
|
||||
* @param *func generic read function
|
||||
@@ -77,7 +77,7 @@ int av_fifo_space(AVFifoBuffer *f);
|
||||
int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int));
|
||||
|
||||
/**
|
||||
* Feeds data from a user-supplied callback to an AVFifoBuffer.
|
||||
* Feed data from a user-supplied callback to an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to write to
|
||||
* @param *src data source; non-const since it may be used as a
|
||||
* modifiable context by the function defined in func
|
||||
@@ -92,7 +92,7 @@ int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)
|
||||
int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int));
|
||||
|
||||
/**
|
||||
* Resizes an AVFifoBuffer.
|
||||
* Resize an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to resize
|
||||
* @param size new AVFifoBuffer size in bytes
|
||||
* @return <0 for failure, >=0 otherwise
|
||||
@@ -100,7 +100,7 @@ int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void
|
||||
int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size);
|
||||
|
||||
/**
|
||||
* Reads and discards the specified amount of data from an AVFifoBuffer.
|
||||
* Read and discard the specified amount of data from an AVFifoBuffer.
|
||||
* @param *f AVFifoBuffer to read from
|
||||
* @param size amount of data to read in bytes
|
||||
*/
|
||||
|
||||
52
3rdparty/include/ffmpeg_/libavutil/file.h
vendored
Normal file
52
3rdparty/include/ffmpeg_/libavutil/file.h
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_FILE_H
|
||||
#define AVUTIL_FILE_H
|
||||
|
||||
#include "avutil.h"
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Misc file utilities.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Read the file with name filename, and put its content in a newly
|
||||
* allocated buffer or map it with mmap() when available.
|
||||
* In case of success set *bufptr to the read or mmapped buffer, and
|
||||
* *size to the size in bytes of the buffer in *bufptr.
|
||||
* The returned buffer must be released with av_file_unmap().
|
||||
*
|
||||
* @param log_offset loglevel offset used for logging
|
||||
* @param log_ctx context used for logging
|
||||
* @return a non negative number in case of success, a negative value
|
||||
* corresponding to an AVERROR error code in case of failure
|
||||
*/
|
||||
int av_file_map(const char *filename, uint8_t **bufptr, size_t *size,
|
||||
int log_offset, void *log_ctx);
|
||||
|
||||
/**
|
||||
* Unmap or free the buffer bufptr created by av_file_map().
|
||||
*
|
||||
* @param size size in bytes of bufptr, must be the same as returned
|
||||
* by av_file_map()
|
||||
*/
|
||||
void av_file_unmap(uint8_t *bufptr, size_t size);
|
||||
|
||||
#endif /* AVUTIL_FILE_H */
|
||||
130
3rdparty/include/ffmpeg_/libavutil/imgutils.h
vendored
Normal file
130
3rdparty/include/ffmpeg_/libavutil/imgutils.h
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_IMGUTILS_H
|
||||
#define AVUTIL_IMGUTILS_H
|
||||
|
||||
/**
|
||||
* @file
|
||||
* misc image utilities
|
||||
*/
|
||||
|
||||
#include "avutil.h"
|
||||
#include "pixdesc.h"
|
||||
|
||||
/**
|
||||
* Compute the max pixel step for each plane of an image with a
|
||||
* format described by pixdesc.
|
||||
*
|
||||
* The pixel step is the distance in bytes between the first byte of
|
||||
* the group of bytes which describe a pixel component and the first
|
||||
* byte of the successive group in the same plane for the same
|
||||
* component.
|
||||
*
|
||||
* @param max_pixsteps an array which is filled with the max pixel step
|
||||
* for each plane. Since a plane may contain different pixel
|
||||
* components, the computed max_pixsteps[plane] is relative to the
|
||||
* component in the plane with the max pixel step.
|
||||
* @param max_pixstep_comps an array which is filled with the component
|
||||
* for each plane which has the max pixel step. May be NULL.
|
||||
*/
|
||||
void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4],
|
||||
const AVPixFmtDescriptor *pixdesc);
|
||||
|
||||
/**
|
||||
* Compute the size of an image line with format pix_fmt and width
|
||||
* width for the plane plane.
|
||||
*
|
||||
* @return the computed size in bytes
|
||||
*/
|
||||
int av_image_get_linesize(enum PixelFormat pix_fmt, int width, int plane);
|
||||
|
||||
/**
|
||||
* Fill plane linesizes for an image with pixel format pix_fmt and
|
||||
* width width.
|
||||
*
|
||||
* @param linesizes array to be filled with the linesize for each plane
|
||||
* @return >= 0 in case of success, a negative error code otherwise
|
||||
*/
|
||||
int av_image_fill_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width);
|
||||
|
||||
/**
|
||||
* Fill plane data pointers for an image with pixel format pix_fmt and
|
||||
* height height.
|
||||
*
|
||||
* @param data pointers array to be filled with the pointer for each image plane
|
||||
* @param ptr the pointer to a buffer which will contain the image
|
||||
* @param linesizes the array containing the linesize for each
|
||||
* plane, should be filled by av_image_fill_linesizes()
|
||||
* @return the size in bytes required for the image buffer, a negative
|
||||
* error code in case of failure
|
||||
*/
|
||||
int av_image_fill_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height,
|
||||
uint8_t *ptr, const int linesizes[4]);
|
||||
|
||||
/**
|
||||
* Allocate an image with size w and h and pixel format pix_fmt, and
|
||||
* fill pointers and linesizes accordingly.
|
||||
* The allocated image buffer has to be freed by using
|
||||
* av_freep(&pointers[0]).
|
||||
*
|
||||
* @param align the value to use for buffer size alignment
|
||||
* @return the size in bytes required for the image buffer, a negative
|
||||
* error code in case of failure
|
||||
*/
|
||||
int av_image_alloc(uint8_t *pointers[4], int linesizes[4],
|
||||
int w, int h, enum PixelFormat pix_fmt, int align);
|
||||
|
||||
/**
|
||||
* Copy image plane from src to dst.
|
||||
* That is, copy "height" number of lines of "bytewidth" bytes each.
|
||||
* The first byte of each successive line is separated by *_linesize
|
||||
* bytes.
|
||||
*
|
||||
* @param dst_linesize linesize for the image plane in dst
|
||||
* @param src_linesize linesize for the image plane in src
|
||||
*/
|
||||
void av_image_copy_plane(uint8_t *dst, int dst_linesize,
|
||||
const uint8_t *src, int src_linesize,
|
||||
int bytewidth, int height);
|
||||
|
||||
/**
|
||||
* Copy image in src_data to dst_data.
|
||||
*
|
||||
* @param dst_linesize linesizes for the image in dst_data
|
||||
* @param src_linesize linesizes for the image in src_data
|
||||
*/
|
||||
void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4],
|
||||
const uint8_t *src_data[4], const int src_linesizes[4],
|
||||
enum PixelFormat pix_fmt, int width, int height);
|
||||
|
||||
/**
|
||||
* Check if the given dimension of an image is valid, meaning that all
|
||||
* bytes of the image can be addressed with a signed int.
|
||||
*
|
||||
* @param w the width of the picture
|
||||
* @param h the height of the picture
|
||||
* @param log_offset the offset to sum to the log level for logging with log_ctx
|
||||
* @param log_ctx the parent logging context, it may be NULL
|
||||
* @return >= 0 if valid, a negative error code otherwise
|
||||
*/
|
||||
int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx);
|
||||
|
||||
int ff_set_systematic_pal2(uint32_t pal[256], enum PixelFormat pix_fmt);
|
||||
|
||||
#endif /* AVUTIL_IMGUTILS_H */
|
||||
@@ -21,7 +21,7 @@
|
||||
#ifndef AVUTIL_INTFLOAT_READWRITE_H
|
||||
#define AVUTIL_INTFLOAT_READWRITE_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
#include "attributes.h"
|
||||
|
||||
/* IEEE 80 bits extended float */
|
||||
|
||||
522
3rdparty/include/ffmpeg_/libavutil/intreadwrite.h
vendored
Normal file
522
3rdparty/include/ffmpeg_/libavutil/intreadwrite.h
vendored
Normal file
@@ -0,0 +1,522 @@
|
||||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_INTREADWRITE_H
|
||||
#define AVUTIL_INTREADWRITE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "libavutil/avconfig.h"
|
||||
#include "attributes.h"
|
||||
#include "bswap.h"
|
||||
|
||||
typedef union {
|
||||
uint64_t u64;
|
||||
uint32_t u32[2];
|
||||
uint16_t u16[4];
|
||||
uint8_t u8 [8];
|
||||
double f64;
|
||||
float f32[2];
|
||||
} av_alias av_alias64;
|
||||
|
||||
typedef union {
|
||||
uint32_t u32;
|
||||
uint16_t u16[2];
|
||||
uint8_t u8 [4];
|
||||
float f32;
|
||||
} av_alias av_alias32;
|
||||
|
||||
typedef union {
|
||||
uint16_t u16;
|
||||
uint8_t u8 [2];
|
||||
} av_alias av_alias16;
|
||||
|
||||
/*
|
||||
* Arch-specific headers can provide any combination of
|
||||
* AV_[RW][BLN](16|24|32|64) and AV_(COPY|SWAP|ZERO)(64|128) macros.
|
||||
* Preprocessor symbols must be defined, even if these are implemented
|
||||
* as inline functions.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_AV_CONFIG_H
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#if ARCH_ARM
|
||||
# include "arm/intreadwrite.h"
|
||||
#elif ARCH_AVR32
|
||||
# include "avr32/intreadwrite.h"
|
||||
#elif ARCH_MIPS
|
||||
# include "mips/intreadwrite.h"
|
||||
#elif ARCH_PPC
|
||||
# include "ppc/intreadwrite.h"
|
||||
#elif ARCH_TOMI
|
||||
# include "tomi/intreadwrite.h"
|
||||
#elif ARCH_X86
|
||||
# include "x86/intreadwrite.h"
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_AV_CONFIG_H */
|
||||
|
||||
/*
|
||||
* Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers.
|
||||
*/
|
||||
|
||||
#if AV_HAVE_BIGENDIAN
|
||||
|
||||
# if defined(AV_RN16) && !defined(AV_RB16)
|
||||
# define AV_RB16(p) AV_RN16(p)
|
||||
# elif !defined(AV_RN16) && defined(AV_RB16)
|
||||
# define AV_RN16(p) AV_RB16(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN16) && !defined(AV_WB16)
|
||||
# define AV_WB16(p, v) AV_WN16(p, v)
|
||||
# elif !defined(AV_WN16) && defined(AV_WB16)
|
||||
# define AV_WN16(p, v) AV_WB16(p, v)
|
||||
# endif
|
||||
|
||||
# if defined(AV_RN24) && !defined(AV_RB24)
|
||||
# define AV_RB24(p) AV_RN24(p)
|
||||
# elif !defined(AV_RN24) && defined(AV_RB24)
|
||||
# define AV_RN24(p) AV_RB24(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN24) && !defined(AV_WB24)
|
||||
# define AV_WB24(p, v) AV_WN24(p, v)
|
||||
# elif !defined(AV_WN24) && defined(AV_WB24)
|
||||
# define AV_WN24(p, v) AV_WB24(p, v)
|
||||
# endif
|
||||
|
||||
# if defined(AV_RN32) && !defined(AV_RB32)
|
||||
# define AV_RB32(p) AV_RN32(p)
|
||||
# elif !defined(AV_RN32) && defined(AV_RB32)
|
||||
# define AV_RN32(p) AV_RB32(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN32) && !defined(AV_WB32)
|
||||
# define AV_WB32(p, v) AV_WN32(p, v)
|
||||
# elif !defined(AV_WN32) && defined(AV_WB32)
|
||||
# define AV_WN32(p, v) AV_WB32(p, v)
|
||||
# endif
|
||||
|
||||
# if defined(AV_RN64) && !defined(AV_RB64)
|
||||
# define AV_RB64(p) AV_RN64(p)
|
||||
# elif !defined(AV_RN64) && defined(AV_RB64)
|
||||
# define AV_RN64(p) AV_RB64(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN64) && !defined(AV_WB64)
|
||||
# define AV_WB64(p, v) AV_WN64(p, v)
|
||||
# elif !defined(AV_WN64) && defined(AV_WB64)
|
||||
# define AV_WN64(p, v) AV_WB64(p, v)
|
||||
# endif
|
||||
|
||||
#else /* AV_HAVE_BIGENDIAN */
|
||||
|
||||
# if defined(AV_RN16) && !defined(AV_RL16)
|
||||
# define AV_RL16(p) AV_RN16(p)
|
||||
# elif !defined(AV_RN16) && defined(AV_RL16)
|
||||
# define AV_RN16(p) AV_RL16(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN16) && !defined(AV_WL16)
|
||||
# define AV_WL16(p, v) AV_WN16(p, v)
|
||||
# elif !defined(AV_WN16) && defined(AV_WL16)
|
||||
# define AV_WN16(p, v) AV_WL16(p, v)
|
||||
# endif
|
||||
|
||||
# if defined(AV_RN24) && !defined(AV_RL24)
|
||||
# define AV_RL24(p) AV_RN24(p)
|
||||
# elif !defined(AV_RN24) && defined(AV_RL24)
|
||||
# define AV_RN24(p) AV_RL24(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN24) && !defined(AV_WL24)
|
||||
# define AV_WL24(p, v) AV_WN24(p, v)
|
||||
# elif !defined(AV_WN24) && defined(AV_WL24)
|
||||
# define AV_WN24(p, v) AV_WL24(p, v)
|
||||
# endif
|
||||
|
||||
# if defined(AV_RN32) && !defined(AV_RL32)
|
||||
# define AV_RL32(p) AV_RN32(p)
|
||||
# elif !defined(AV_RN32) && defined(AV_RL32)
|
||||
# define AV_RN32(p) AV_RL32(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN32) && !defined(AV_WL32)
|
||||
# define AV_WL32(p, v) AV_WN32(p, v)
|
||||
# elif !defined(AV_WN32) && defined(AV_WL32)
|
||||
# define AV_WN32(p, v) AV_WL32(p, v)
|
||||
# endif
|
||||
|
||||
# if defined(AV_RN64) && !defined(AV_RL64)
|
||||
# define AV_RL64(p) AV_RN64(p)
|
||||
# elif !defined(AV_RN64) && defined(AV_RL64)
|
||||
# define AV_RN64(p) AV_RL64(p)
|
||||
# endif
|
||||
|
||||
# if defined(AV_WN64) && !defined(AV_WL64)
|
||||
# define AV_WL64(p, v) AV_WN64(p, v)
|
||||
# elif !defined(AV_WN64) && defined(AV_WL64)
|
||||
# define AV_WN64(p, v) AV_WL64(p, v)
|
||||
# endif
|
||||
|
||||
#endif /* !AV_HAVE_BIGENDIAN */
|
||||
|
||||
/*
|
||||
* Define AV_[RW]N helper macros to simplify definitions not provided
|
||||
* by per-arch headers.
|
||||
*/
|
||||
|
||||
#if defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__)
|
||||
|
||||
union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias;
|
||||
union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias;
|
||||
union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
|
||||
|
||||
# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l)
|
||||
# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v))
|
||||
|
||||
#elif defined(__DECC)
|
||||
|
||||
# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p)))
|
||||
# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v))
|
||||
|
||||
#elif AV_HAVE_FAST_UNALIGNED
|
||||
|
||||
# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s)
|
||||
# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v))
|
||||
|
||||
#else
|
||||
|
||||
#ifndef AV_RB16
|
||||
# define AV_RB16(x) \
|
||||
((((const uint8_t*)(x))[0] << 8) | \
|
||||
((const uint8_t*)(x))[1])
|
||||
#endif
|
||||
#ifndef AV_WB16
|
||||
# define AV_WB16(p, d) do { \
|
||||
((uint8_t*)(p))[1] = (d); \
|
||||
((uint8_t*)(p))[0] = (d)>>8; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RL16
|
||||
# define AV_RL16(x) \
|
||||
((((const uint8_t*)(x))[1] << 8) | \
|
||||
((const uint8_t*)(x))[0])
|
||||
#endif
|
||||
#ifndef AV_WL16
|
||||
# define AV_WL16(p, d) do { \
|
||||
((uint8_t*)(p))[0] = (d); \
|
||||
((uint8_t*)(p))[1] = (d)>>8; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RB32
|
||||
# define AV_RB32(x) \
|
||||
(((uint32_t)((const uint8_t*)(x))[0] << 24) | \
|
||||
(((const uint8_t*)(x))[1] << 16) | \
|
||||
(((const uint8_t*)(x))[2] << 8) | \
|
||||
((const uint8_t*)(x))[3])
|
||||
#endif
|
||||
#ifndef AV_WB32
|
||||
# define AV_WB32(p, d) do { \
|
||||
((uint8_t*)(p))[3] = (d); \
|
||||
((uint8_t*)(p))[2] = (d)>>8; \
|
||||
((uint8_t*)(p))[1] = (d)>>16; \
|
||||
((uint8_t*)(p))[0] = (d)>>24; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RL32
|
||||
# define AV_RL32(x) \
|
||||
(((uint32_t)((const uint8_t*)(x))[3] << 24) | \
|
||||
(((const uint8_t*)(x))[2] << 16) | \
|
||||
(((const uint8_t*)(x))[1] << 8) | \
|
||||
((const uint8_t*)(x))[0])
|
||||
#endif
|
||||
#ifndef AV_WL32
|
||||
# define AV_WL32(p, d) do { \
|
||||
((uint8_t*)(p))[0] = (d); \
|
||||
((uint8_t*)(p))[1] = (d)>>8; \
|
||||
((uint8_t*)(p))[2] = (d)>>16; \
|
||||
((uint8_t*)(p))[3] = (d)>>24; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RB64
|
||||
# define AV_RB64(x) \
|
||||
(((uint64_t)((const uint8_t*)(x))[0] << 56) | \
|
||||
((uint64_t)((const uint8_t*)(x))[1] << 48) | \
|
||||
((uint64_t)((const uint8_t*)(x))[2] << 40) | \
|
||||
((uint64_t)((const uint8_t*)(x))[3] << 32) | \
|
||||
((uint64_t)((const uint8_t*)(x))[4] << 24) | \
|
||||
((uint64_t)((const uint8_t*)(x))[5] << 16) | \
|
||||
((uint64_t)((const uint8_t*)(x))[6] << 8) | \
|
||||
(uint64_t)((const uint8_t*)(x))[7])
|
||||
#endif
|
||||
#ifndef AV_WB64
|
||||
# define AV_WB64(p, d) do { \
|
||||
((uint8_t*)(p))[7] = (d); \
|
||||
((uint8_t*)(p))[6] = (d)>>8; \
|
||||
((uint8_t*)(p))[5] = (d)>>16; \
|
||||
((uint8_t*)(p))[4] = (d)>>24; \
|
||||
((uint8_t*)(p))[3] = (d)>>32; \
|
||||
((uint8_t*)(p))[2] = (d)>>40; \
|
||||
((uint8_t*)(p))[1] = (d)>>48; \
|
||||
((uint8_t*)(p))[0] = (d)>>56; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RL64
|
||||
# define AV_RL64(x) \
|
||||
(((uint64_t)((const uint8_t*)(x))[7] << 56) | \
|
||||
((uint64_t)((const uint8_t*)(x))[6] << 48) | \
|
||||
((uint64_t)((const uint8_t*)(x))[5] << 40) | \
|
||||
((uint64_t)((const uint8_t*)(x))[4] << 32) | \
|
||||
((uint64_t)((const uint8_t*)(x))[3] << 24) | \
|
||||
((uint64_t)((const uint8_t*)(x))[2] << 16) | \
|
||||
((uint64_t)((const uint8_t*)(x))[1] << 8) | \
|
||||
(uint64_t)((const uint8_t*)(x))[0])
|
||||
#endif
|
||||
#ifndef AV_WL64
|
||||
# define AV_WL64(p, d) do { \
|
||||
((uint8_t*)(p))[0] = (d); \
|
||||
((uint8_t*)(p))[1] = (d)>>8; \
|
||||
((uint8_t*)(p))[2] = (d)>>16; \
|
||||
((uint8_t*)(p))[3] = (d)>>24; \
|
||||
((uint8_t*)(p))[4] = (d)>>32; \
|
||||
((uint8_t*)(p))[5] = (d)>>40; \
|
||||
((uint8_t*)(p))[6] = (d)>>48; \
|
||||
((uint8_t*)(p))[7] = (d)>>56; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#if AV_HAVE_BIGENDIAN
|
||||
# define AV_RN(s, p) AV_RB##s(p)
|
||||
# define AV_WN(s, p, v) AV_WB##s(p, v)
|
||||
#else
|
||||
# define AV_RN(s, p) AV_RL##s(p)
|
||||
# define AV_WN(s, p, v) AV_WL##s(p, v)
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_FAST_UNALIGNED */
|
||||
|
||||
#ifndef AV_RN16
|
||||
# define AV_RN16(p) AV_RN(16, p)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RN32
|
||||
# define AV_RN32(p) AV_RN(32, p)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RN64
|
||||
# define AV_RN64(p) AV_RN(64, p)
|
||||
#endif
|
||||
|
||||
#ifndef AV_WN16
|
||||
# define AV_WN16(p, v) AV_WN(16, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_WN32
|
||||
# define AV_WN32(p, v) AV_WN(32, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_WN64
|
||||
# define AV_WN64(p, v) AV_WN(64, p, v)
|
||||
#endif
|
||||
|
||||
#if AV_HAVE_BIGENDIAN
|
||||
# define AV_RB(s, p) AV_RN##s(p)
|
||||
# define AV_WB(s, p, v) AV_WN##s(p, v)
|
||||
# define AV_RL(s, p) av_bswap##s(AV_RN##s(p))
|
||||
# define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v))
|
||||
#else
|
||||
# define AV_RB(s, p) av_bswap##s(AV_RN##s(p))
|
||||
# define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v))
|
||||
# define AV_RL(s, p) AV_RN##s(p)
|
||||
# define AV_WL(s, p, v) AV_WN##s(p, v)
|
||||
#endif
|
||||
|
||||
#define AV_RB8(x) (((const uint8_t*)(x))[0])
|
||||
#define AV_WB8(p, d) do { ((uint8_t*)(p))[0] = (d); } while(0)
|
||||
|
||||
#define AV_RL8(x) AV_RB8(x)
|
||||
#define AV_WL8(p, d) AV_WB8(p, d)
|
||||
|
||||
#ifndef AV_RB16
|
||||
# define AV_RB16(p) AV_RB(16, p)
|
||||
#endif
|
||||
#ifndef AV_WB16
|
||||
# define AV_WB16(p, v) AV_WB(16, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RL16
|
||||
# define AV_RL16(p) AV_RL(16, p)
|
||||
#endif
|
||||
#ifndef AV_WL16
|
||||
# define AV_WL16(p, v) AV_WL(16, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RB32
|
||||
# define AV_RB32(p) AV_RB(32, p)
|
||||
#endif
|
||||
#ifndef AV_WB32
|
||||
# define AV_WB32(p, v) AV_WB(32, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RL32
|
||||
# define AV_RL32(p) AV_RL(32, p)
|
||||
#endif
|
||||
#ifndef AV_WL32
|
||||
# define AV_WL32(p, v) AV_WL(32, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RB64
|
||||
# define AV_RB64(p) AV_RB(64, p)
|
||||
#endif
|
||||
#ifndef AV_WB64
|
||||
# define AV_WB64(p, v) AV_WB(64, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RL64
|
||||
# define AV_RL64(p) AV_RL(64, p)
|
||||
#endif
|
||||
#ifndef AV_WL64
|
||||
# define AV_WL64(p, v) AV_WL(64, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RB24
|
||||
# define AV_RB24(x) \
|
||||
((((const uint8_t*)(x))[0] << 16) | \
|
||||
(((const uint8_t*)(x))[1] << 8) | \
|
||||
((const uint8_t*)(x))[2])
|
||||
#endif
|
||||
#ifndef AV_WB24
|
||||
# define AV_WB24(p, d) do { \
|
||||
((uint8_t*)(p))[2] = (d); \
|
||||
((uint8_t*)(p))[1] = (d)>>8; \
|
||||
((uint8_t*)(p))[0] = (d)>>16; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RL24
|
||||
# define AV_RL24(x) \
|
||||
((((const uint8_t*)(x))[2] << 16) | \
|
||||
(((const uint8_t*)(x))[1] << 8) | \
|
||||
((const uint8_t*)(x))[0])
|
||||
#endif
|
||||
#ifndef AV_WL24
|
||||
# define AV_WL24(p, d) do { \
|
||||
((uint8_t*)(p))[0] = (d); \
|
||||
((uint8_t*)(p))[1] = (d)>>8; \
|
||||
((uint8_t*)(p))[2] = (d)>>16; \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The AV_[RW]NA macros access naturally aligned data
|
||||
* in a type-safe way.
|
||||
*/
|
||||
|
||||
#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s)
|
||||
#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v))
|
||||
|
||||
#ifndef AV_RN16A
|
||||
# define AV_RN16A(p) AV_RNA(16, p)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RN32A
|
||||
# define AV_RN32A(p) AV_RNA(32, p)
|
||||
#endif
|
||||
|
||||
#ifndef AV_RN64A
|
||||
# define AV_RN64A(p) AV_RNA(64, p)
|
||||
#endif
|
||||
|
||||
#ifndef AV_WN16A
|
||||
# define AV_WN16A(p, v) AV_WNA(16, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_WN32A
|
||||
# define AV_WN32A(p, v) AV_WNA(32, p, v)
|
||||
#endif
|
||||
|
||||
#ifndef AV_WN64A
|
||||
# define AV_WN64A(p, v) AV_WNA(64, p, v)
|
||||
#endif
|
||||
|
||||
/* Parameters for AV_COPY*, AV_SWAP*, AV_ZERO* must be
|
||||
* naturally aligned. They may be implemented using MMX,
|
||||
* so emms_c() must be called before using any float code
|
||||
* afterwards.
|
||||
*/
|
||||
|
||||
#define AV_COPY(n, d, s) \
|
||||
(((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n)
|
||||
|
||||
#ifndef AV_COPY16
|
||||
# define AV_COPY16(d, s) AV_COPY(16, d, s)
|
||||
#endif
|
||||
|
||||
#ifndef AV_COPY32
|
||||
# define AV_COPY32(d, s) AV_COPY(32, d, s)
|
||||
#endif
|
||||
|
||||
#ifndef AV_COPY64
|
||||
# define AV_COPY64(d, s) AV_COPY(64, d, s)
|
||||
#endif
|
||||
|
||||
#ifndef AV_COPY128
|
||||
# define AV_COPY128(d, s) \
|
||||
do { \
|
||||
AV_COPY64(d, s); \
|
||||
AV_COPY64((char*)(d)+8, (char*)(s)+8); \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#define AV_SWAP(n, a, b) FFSWAP(av_alias##n, *(av_alias##n*)(a), *(av_alias##n*)(b))
|
||||
|
||||
#ifndef AV_SWAP64
|
||||
# define AV_SWAP64(a, b) AV_SWAP(64, a, b)
|
||||
#endif
|
||||
|
||||
#define AV_ZERO(n, d) (((av_alias##n*)(d))->u##n = 0)
|
||||
|
||||
#ifndef AV_ZERO16
|
||||
# define AV_ZERO16(d) AV_ZERO(16, d)
|
||||
#endif
|
||||
|
||||
#ifndef AV_ZERO32
|
||||
# define AV_ZERO32(d) AV_ZERO(32, d)
|
||||
#endif
|
||||
|
||||
#ifndef AV_ZERO64
|
||||
# define AV_ZERO64(d) AV_ZERO(64, d)
|
||||
#endif
|
||||
|
||||
#ifndef AV_ZERO128
|
||||
# define AV_ZERO128(d) \
|
||||
do { \
|
||||
AV_ZERO64(d); \
|
||||
AV_ZERO64((char*)(d)+8); \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#endif /* AVUTIL_INTREADWRITE_H */
|
||||
62
3rdparty/include/ffmpeg_/libavutil/lfg.h
vendored
Normal file
62
3rdparty/include/ffmpeg_/libavutil/lfg.h
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Lagged Fibonacci PRNG
|
||||
* Copyright (c) 2008 Michael Niedermayer
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_LFG_H
|
||||
#define AVUTIL_LFG_H
|
||||
|
||||
typedef struct {
|
||||
unsigned int state[64];
|
||||
int index;
|
||||
} AVLFG;
|
||||
|
||||
void av_lfg_init(AVLFG *c, unsigned int seed);
|
||||
|
||||
/**
|
||||
* Get the next random unsigned 32-bit number using an ALFG.
|
||||
*
|
||||
* Please also consider a simple LCG like state= state*1664525+1013904223,
|
||||
* it may be good enough and faster for your specific use case.
|
||||
*/
|
||||
static inline unsigned int av_lfg_get(AVLFG *c){
|
||||
c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63];
|
||||
return c->state[c->index++ & 63];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the next random unsigned 32-bit number using a MLFG.
|
||||
*
|
||||
* Please also consider av_lfg_get() above, it is faster.
|
||||
*/
|
||||
static inline unsigned int av_mlfg_get(AVLFG *c){
|
||||
unsigned int a= c->state[(c->index-55) & 63];
|
||||
unsigned int b= c->state[(c->index-24) & 63];
|
||||
return c->state[c->index++ & 63] = 2*a*b+a+b;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the next two numbers generated by a Box-Muller Gaussian
|
||||
* generator using the random numbers issued by lfg.
|
||||
*
|
||||
* @param out array where the two generated numbers are placed
|
||||
*/
|
||||
void av_bmg_get(AVLFG *lfg, double out[2]);
|
||||
|
||||
#endif /* AVUTIL_LFG_H */
|
||||
54
3rdparty/include/ffmpeg_/libavutil/log.h
vendored
54
3rdparty/include/ffmpeg_/libavutil/log.h
vendored
@@ -25,7 +25,7 @@
|
||||
#include "avutil.h"
|
||||
|
||||
/**
|
||||
* Describes the class of an AVClass context structure. That is an
|
||||
* Describe the class of an AVClass context structure. That is an
|
||||
* arbitrary struct of which the first field is a pointer to an
|
||||
* AVClass struct (e.g. AVCodecContext, AVFormatContext etc.).
|
||||
*/
|
||||
@@ -56,6 +56,27 @@ typedef struct {
|
||||
*/
|
||||
|
||||
int version;
|
||||
|
||||
/**
|
||||
* Offset in the structure where log_level_offset is stored.
|
||||
* 0 means there is no such variable
|
||||
*/
|
||||
int log_level_offset_offset;
|
||||
|
||||
/**
|
||||
* Offset in the structure where a pointer to the parent context for loging is stored.
|
||||
* for example a decoder that uses eval.c could pass its AVCodecContext to eval as such
|
||||
* parent context. And a av_log() implementation could then display the parent context
|
||||
* can be NULL of course
|
||||
*/
|
||||
int parent_log_context_offset;
|
||||
|
||||
/**
|
||||
* A function for extended searching, e.g. in possible
|
||||
* children objects.
|
||||
*/
|
||||
const struct AVOption* (*opt_find)(void *obj, const char *name, const char *unit,
|
||||
int opt_flags, int search_flags);
|
||||
} AVClass;
|
||||
|
||||
/* av_log API */
|
||||
@@ -95,7 +116,7 @@ typedef struct {
|
||||
#define AV_LOG_DEBUG 48
|
||||
|
||||
/**
|
||||
* Sends the specified message to the log if the level is less than or equal
|
||||
* Send the specified message to the log if the level is less than or equal
|
||||
* to the current av_log_level. By default, all logging messages are sent to
|
||||
* stderr. This behavior can be altered by setting a different av_vlog callback
|
||||
* function.
|
||||
@@ -109,15 +130,38 @@ typedef struct {
|
||||
* @see av_vlog
|
||||
*/
|
||||
#ifdef __GNUC__
|
||||
void av_log(void*, int level, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4)));
|
||||
void av_log(void *avcl, int level, const char *fmt, ...) __attribute__ ((__format__ (__printf__, 3, 4)));
|
||||
#else
|
||||
void av_log(void*, int level, const char *fmt, ...);
|
||||
void av_log(void *avcl, int level, const char *fmt, ...);
|
||||
#endif
|
||||
|
||||
void av_vlog(void*, int level, const char *fmt, va_list);
|
||||
void av_vlog(void *avcl, int level, const char *fmt, va_list);
|
||||
int av_log_get_level(void);
|
||||
void av_log_set_level(int);
|
||||
void av_log_set_callback(void (*)(void*, int, const char*, va_list));
|
||||
void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl);
|
||||
const char* av_default_item_name(void* ctx);
|
||||
|
||||
/**
|
||||
* av_dlog macros
|
||||
* Useful to print debug messages that shouldn't get compiled in normally.
|
||||
*/
|
||||
|
||||
#ifdef DEBUG
|
||||
# define av_dlog(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__)
|
||||
#else
|
||||
# define av_dlog(pctx, ...) do { if (0) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Skip repeated messages, this requires the user app to use av_log() instead of
|
||||
* (f)printf as the 2 would otherwise interfere and lead to
|
||||
* "Last message repeated x times" messages below (f)printf messages with some
|
||||
* bad luck.
|
||||
* Also to receive the last, "last repeated" line if any, the user app must
|
||||
* call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end
|
||||
*/
|
||||
#define AV_LOG_SKIP_REPEATED 1
|
||||
void av_log_set_flags(int arg);
|
||||
|
||||
#endif /* AVUTIL_LOG_H */
|
||||
|
||||
4
3rdparty/include/ffmpeg_/libavutil/lzo.h
vendored
4
3rdparty/include/ffmpeg_/libavutil/lzo.h
vendored
@@ -22,9 +22,9 @@
|
||||
#ifndef AVUTIL_LZO_H
|
||||
#define AVUTIL_LZO_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/** \defgroup errflags Error flags returned by av_lzo1x_decode
|
||||
/** @name Error flags returned by av_lzo1x_decode
|
||||
* \{ */
|
||||
//! end of the input buffer reached before decoding finished
|
||||
#define AV_LZO_INPUT_DEPLETED 1
|
||||
|
||||
26
3rdparty/include/ffmpeg_/libavutil/mathematics.h
vendored
26
3rdparty/include/ffmpeg_/libavutil/mathematics.h
vendored
@@ -21,7 +21,7 @@
|
||||
#ifndef AVUTIL_MATHEMATICS_H
|
||||
#define AVUTIL_MATHEMATICS_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
#include <math.h>
|
||||
#include "attributes.h"
|
||||
#include "rational.h"
|
||||
@@ -38,6 +38,9 @@
|
||||
#ifndef M_LOG2_10
|
||||
#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */
|
||||
#endif
|
||||
#ifndef M_PHI
|
||||
#define M_PHI 1.61803398874989484820 /* phi / golden ratio */
|
||||
#endif
|
||||
#ifndef M_PI
|
||||
#define M_PI 3.14159265358979323846 /* pi */
|
||||
#endif
|
||||
@@ -63,36 +66,47 @@ enum AVRounding {
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the greatest common divisor of a and b.
|
||||
* Return the greatest common divisor of a and b.
|
||||
* If both a and b are 0 or either or both are <0 then behavior is
|
||||
* undefined.
|
||||
*/
|
||||
int64_t av_const av_gcd(int64_t a, int64_t b);
|
||||
|
||||
/**
|
||||
* Rescales a 64-bit integer with rounding to nearest.
|
||||
* Rescale a 64-bit integer with rounding to nearest.
|
||||
* A simple a*b/c isn't possible as it can overflow.
|
||||
*/
|
||||
int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const;
|
||||
|
||||
/**
|
||||
* Rescales a 64-bit integer with specified rounding.
|
||||
* Rescale a 64-bit integer with specified rounding.
|
||||
* A simple a*b/c isn't possible as it can overflow.
|
||||
*/
|
||||
int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const;
|
||||
|
||||
/**
|
||||
* Rescales a 64-bit integer by 2 rational numbers.
|
||||
* Rescale a 64-bit integer by 2 rational numbers.
|
||||
*/
|
||||
int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const;
|
||||
|
||||
/**
|
||||
* Compares 2 timestamps each in its own timebases.
|
||||
* Compare 2 timestamps each in its own timebases.
|
||||
* The result of the function is undefined if one of the timestamps
|
||||
* is outside the int64_t range when represented in the others timebase.
|
||||
* @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position
|
||||
*/
|
||||
int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b);
|
||||
|
||||
/**
|
||||
* Compare 2 integers modulo mod.
|
||||
* That is we compare integers a and b for which only the least
|
||||
* significant log2(mod) bits are known.
|
||||
*
|
||||
* @param mod must be a power of 2
|
||||
* @return a negative value if a is smaller than b
|
||||
* a positive value if a is greater than b
|
||||
* 0 if a equals b
|
||||
*/
|
||||
int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod);
|
||||
|
||||
#endif /* AVUTIL_MATHEMATICS_H */
|
||||
|
||||
2
3rdparty/include/ffmpeg_/libavutil/md5.h
vendored
2
3rdparty/include/ffmpeg_/libavutil/md5.h
vendored
@@ -21,7 +21,7 @@
|
||||
#ifndef AVUTIL_MD5_H
|
||||
#define AVUTIL_MD5_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
|
||||
extern const int av_md5_size;
|
||||
|
||||
|
||||
40
3rdparty/include/ffmpeg_/libavutil/mem.h
vendored
40
3rdparty/include/ffmpeg_/libavutil/mem.h
vendored
@@ -27,8 +27,9 @@
|
||||
#define AVUTIL_MEM_H
|
||||
|
||||
#include "attributes.h"
|
||||
#include "avutil.h"
|
||||
|
||||
#if defined(__ICC) || defined(__SUNPRO_C)
|
||||
#if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C)
|
||||
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
|
||||
#define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
@@ -40,7 +41,7 @@
|
||||
static const t __attribute__((aligned(n))) v
|
||||
#elif defined(__GNUC__)
|
||||
#define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v
|
||||
#define DECLARE_ASM_CONST(n,t,v) static const t attribute_used __attribute__ ((aligned (n))) v
|
||||
#define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v
|
||||
#elif defined(_MSC_VER)
|
||||
#define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v
|
||||
#define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v
|
||||
@@ -55,26 +56,26 @@
|
||||
#define av_malloc_attrib
|
||||
#endif
|
||||
|
||||
#if (!defined(__ICC) || __ICC > 1110) && AV_GCC_VERSION_AT_LEAST(4,3)
|
||||
#if AV_GCC_VERSION_AT_LEAST(4,3)
|
||||
#define av_alloc_size(n) __attribute__((alloc_size(n)))
|
||||
#else
|
||||
#define av_alloc_size(n)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Allocates a block of size bytes with alignment suitable for all
|
||||
* Allocate a block of size bytes with alignment suitable for all
|
||||
* memory accesses (including vectors if available on the CPU).
|
||||
* @param size Size in bytes for the memory block to be allocated.
|
||||
* @return Pointer to the allocated block, NULL if the block cannot
|
||||
* be allocated.
|
||||
* @see av_mallocz()
|
||||
*/
|
||||
void *av_malloc(unsigned int size) av_malloc_attrib av_alloc_size(1);
|
||||
void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1);
|
||||
|
||||
/**
|
||||
* Allocates or reallocates a block of memory.
|
||||
* If ptr is NULL and size > 0, allocates a new block. If
|
||||
* size is zero, frees the memory block pointed to by ptr.
|
||||
* Allocate or reallocate a block of memory.
|
||||
* If ptr is NULL and size > 0, allocate a new block. If
|
||||
* size is zero, free the memory block pointed to by ptr.
|
||||
* @param size Size in bytes for the memory block to be allocated or
|
||||
* reallocated.
|
||||
* @param ptr Pointer to a memory block already allocated with
|
||||
@@ -83,10 +84,10 @@ void *av_malloc(unsigned int size) av_malloc_attrib av_alloc_size(1);
|
||||
* cannot be reallocated or the function is used to free the memory block.
|
||||
* @see av_fast_realloc()
|
||||
*/
|
||||
void *av_realloc(void *ptr, unsigned int size) av_alloc_size(2);
|
||||
void *av_realloc(void *ptr, size_t size) av_alloc_size(2);
|
||||
|
||||
/**
|
||||
* Frees a memory block which has been allocated with av_malloc(z)() or
|
||||
* Free a memory block which has been allocated with av_malloc(z)() or
|
||||
* av_realloc().
|
||||
* @param ptr Pointer to the memory block which should be freed.
|
||||
* @note ptr = NULL is explicitly allowed.
|
||||
@@ -96,17 +97,17 @@ void *av_realloc(void *ptr, unsigned int size) av_alloc_size(2);
|
||||
void av_free(void *ptr);
|
||||
|
||||
/**
|
||||
* Allocates a block of size bytes with alignment suitable for all
|
||||
* Allocate a block of size bytes with alignment suitable for all
|
||||
* memory accesses (including vectors if available on the CPU) and
|
||||
* zeroes all the bytes of the block.
|
||||
* zero all the bytes of the block.
|
||||
* @param size Size in bytes for the memory block to be allocated.
|
||||
* @return Pointer to the allocated block, NULL if it cannot be allocated.
|
||||
* @see av_malloc()
|
||||
*/
|
||||
void *av_mallocz(unsigned int size) av_malloc_attrib av_alloc_size(1);
|
||||
void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1);
|
||||
|
||||
/**
|
||||
* Duplicates the string s.
|
||||
* Duplicate the string s.
|
||||
* @param s string to be duplicated
|
||||
* @return Pointer to a newly allocated string containing a
|
||||
* copy of s or NULL if the string cannot be allocated.
|
||||
@@ -114,7 +115,7 @@ void *av_mallocz(unsigned int size) av_malloc_attrib av_alloc_size(1);
|
||||
char *av_strdup(const char *s) av_malloc_attrib;
|
||||
|
||||
/**
|
||||
* Frees a memory block which has been allocated with av_malloc(z)() or
|
||||
* Free a memory block which has been allocated with av_malloc(z)() or
|
||||
* av_realloc() and set the pointer pointing to it to NULL.
|
||||
* @param ptr Pointer to the pointer to the memory block which should
|
||||
* be freed.
|
||||
@@ -122,4 +123,13 @@ char *av_strdup(const char *s) av_malloc_attrib;
|
||||
*/
|
||||
void av_freep(void *ptr);
|
||||
|
||||
/**
|
||||
* Add an element to a dynamic array.
|
||||
*
|
||||
* @param tab_ptr Pointer to the array.
|
||||
* @param nb_ptr Pointer to the number of elements in the array.
|
||||
* @param elem Element to be added.
|
||||
*/
|
||||
void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem);
|
||||
|
||||
#endif /* AVUTIL_MEM_H */
|
||||
|
||||
243
3rdparty/include/ffmpeg_/libavutil/opt.h
vendored
Normal file
243
3rdparty/include/ffmpeg_/libavutil/opt.h
vendored
Normal file
@@ -0,0 +1,243 @@
|
||||
/*
|
||||
* AVOptions
|
||||
* copyright (c) 2005 Michael Niedermayer <michaelni@gmx.at>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_OPT_H
|
||||
#define AVUTIL_OPT_H
|
||||
|
||||
/**
|
||||
* @file
|
||||
* AVOptions
|
||||
*/
|
||||
|
||||
#include "rational.h"
|
||||
#include "avutil.h"
|
||||
#include "dict.h"
|
||||
|
||||
enum AVOptionType{
|
||||
FF_OPT_TYPE_FLAGS,
|
||||
FF_OPT_TYPE_INT,
|
||||
FF_OPT_TYPE_INT64,
|
||||
FF_OPT_TYPE_DOUBLE,
|
||||
FF_OPT_TYPE_FLOAT,
|
||||
FF_OPT_TYPE_STRING,
|
||||
FF_OPT_TYPE_RATIONAL,
|
||||
FF_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length
|
||||
FF_OPT_TYPE_CONST=128,
|
||||
};
|
||||
|
||||
/**
|
||||
* AVOption
|
||||
*/
|
||||
typedef struct AVOption {
|
||||
const char *name;
|
||||
|
||||
/**
|
||||
* short English help text
|
||||
* @todo What about other languages?
|
||||
*/
|
||||
const char *help;
|
||||
|
||||
/**
|
||||
* The offset relative to the context structure where the option
|
||||
* value is stored. It should be 0 for named constants.
|
||||
*/
|
||||
int offset;
|
||||
enum AVOptionType type;
|
||||
|
||||
/**
|
||||
* the default value for scalar options
|
||||
*/
|
||||
union {
|
||||
double dbl;
|
||||
const char *str;
|
||||
/* TODO those are unused now */
|
||||
int64_t i64;
|
||||
AVRational q;
|
||||
} default_val;
|
||||
double min; ///< minimum valid value for the option
|
||||
double max; ///< maximum valid value for the option
|
||||
|
||||
int flags;
|
||||
#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding
|
||||
#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding
|
||||
#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ...
|
||||
#define AV_OPT_FLAG_AUDIO_PARAM 8
|
||||
#define AV_OPT_FLAG_VIDEO_PARAM 16
|
||||
#define AV_OPT_FLAG_SUBTITLE_PARAM 32
|
||||
//FIXME think about enc-audio, ... style flags
|
||||
|
||||
/**
|
||||
* The logical unit to which the option belongs. Non-constant
|
||||
* options and corresponding named constants share the same
|
||||
* unit. May be NULL.
|
||||
*/
|
||||
const char *unit;
|
||||
} AVOption;
|
||||
|
||||
#if FF_API_FIND_OPT
|
||||
/**
|
||||
* Look for an option in obj. Look only for the options which
|
||||
* have the flags set as specified in mask and flags (that is,
|
||||
* for which it is the case that opt->flags & mask == flags).
|
||||
*
|
||||
* @param[in] obj a pointer to a struct whose first element is a
|
||||
* pointer to an AVClass
|
||||
* @param[in] name the name of the option to look for
|
||||
* @param[in] unit the unit of the option to look for, or any if NULL
|
||||
* @return a pointer to the option found, or NULL if no option
|
||||
* has been found
|
||||
*
|
||||
* @deprecated use av_opt_find.
|
||||
*/
|
||||
attribute_deprecated
|
||||
const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int mask, int flags);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Set the field of obj with the given name to value.
|
||||
*
|
||||
* @param[in] obj A struct whose first element is a pointer to an
|
||||
* AVClass.
|
||||
* @param[in] name the name of the field to set
|
||||
* @param[in] val The value to set. If the field is not of a string
|
||||
* type, then the given string is parsed.
|
||||
* SI postfixes and some named scalars are supported.
|
||||
* If the field is of a numeric type, it has to be a numeric or named
|
||||
* scalar. Behavior with more than one scalar and +- infix operators
|
||||
* is undefined.
|
||||
* If the field is of a flags type, it has to be a sequence of numeric
|
||||
* scalars or named flags separated by '+' or '-'. Prefixing a flag
|
||||
* with '+' causes it to be set without affecting the other flags;
|
||||
* similarly, '-' unsets a flag.
|
||||
* @param[out] o_out if non-NULL put here a pointer to the AVOption
|
||||
* found
|
||||
* @param alloc when 1 then the old value will be av_freed() and the
|
||||
* new av_strduped()
|
||||
* when 0 then no av_free() nor av_strdup() will be used
|
||||
* @return 0 if the value has been set, or an AVERROR code in case of
|
||||
* error:
|
||||
* AVERROR(ENOENT) if no matching option exists
|
||||
* AVERROR(ERANGE) if the value is out of range
|
||||
* AVERROR(EINVAL) if the value is not valid
|
||||
*/
|
||||
int av_set_string3(void *obj, const char *name, const char *val, int alloc, const AVOption **o_out);
|
||||
|
||||
const AVOption *av_set_double(void *obj, const char *name, double n);
|
||||
const AVOption *av_set_q(void *obj, const char *name, AVRational n);
|
||||
const AVOption *av_set_int(void *obj, const char *name, int64_t n);
|
||||
double av_get_double(void *obj, const char *name, const AVOption **o_out);
|
||||
AVRational av_get_q(void *obj, const char *name, const AVOption **o_out);
|
||||
int64_t av_get_int(void *obj, const char *name, const AVOption **o_out);
|
||||
const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len);
|
||||
const AVOption *av_next_option(void *obj, const AVOption *last);
|
||||
|
||||
/**
|
||||
* Show the obj options.
|
||||
*
|
||||
* @param req_flags requested flags for the options to show. Show only the
|
||||
* options for which it is opt->flags & req_flags.
|
||||
* @param rej_flags rejected flags for the options to show. Show only the
|
||||
* options for which it is !(opt->flags & req_flags).
|
||||
* @param av_log_obj log context to use for showing the options
|
||||
*/
|
||||
int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags);
|
||||
|
||||
void av_opt_set_defaults(void *s);
|
||||
void av_opt_set_defaults2(void *s, int mask, int flags);
|
||||
|
||||
/**
|
||||
* Parse the key/value pairs list in opts. For each key/value pair
|
||||
* found, stores the value in the field in ctx that is named like the
|
||||
* key. ctx must be an AVClass context, storing is done using
|
||||
* AVOptions.
|
||||
*
|
||||
* @param opts options string to parse, may be NULL
|
||||
* @param key_val_sep a 0-terminated list of characters used to
|
||||
* separate key from value
|
||||
* @param pairs_sep a 0-terminated list of characters used to separate
|
||||
* two pairs from each other
|
||||
* @return the number of successfully set key/value pairs, or a negative
|
||||
* value corresponding to an AVERROR code in case of error:
|
||||
* AVERROR(EINVAL) if opts cannot be parsed,
|
||||
* the error code issued by av_set_string3() if a key/value pair
|
||||
* cannot be set
|
||||
*/
|
||||
int av_set_options_string(void *ctx, const char *opts,
|
||||
const char *key_val_sep, const char *pairs_sep);
|
||||
|
||||
/**
|
||||
* Free all string and binary options in obj.
|
||||
*/
|
||||
void av_opt_free(void *obj);
|
||||
|
||||
/**
|
||||
* Check whether a particular flag is set in a flags field.
|
||||
*
|
||||
* @param field_name the name of the flag field option
|
||||
* @param flag_name the name of the flag to check
|
||||
* @return non-zero if the flag is set, zero if the flag isn't set,
|
||||
* isn't of the right type, or the flags field doesn't exist.
|
||||
*/
|
||||
int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name);
|
||||
|
||||
/*
|
||||
* Set all the options from a given dictionary on an object.
|
||||
*
|
||||
* @param obj a struct whose first element is a pointer to AVClass
|
||||
* @param options options to process. This dictionary will be freed and replaced
|
||||
* by a new one containing all options not found in obj.
|
||||
* Of course this new dictionary needs to be freed by caller
|
||||
* with av_dict_free().
|
||||
*
|
||||
* @return 0 on success, a negative AVERROR if some option was found in obj,
|
||||
* but could not be set.
|
||||
*
|
||||
* @see av_dict_copy()
|
||||
*/
|
||||
int av_opt_set_dict(void *obj, struct AVDictionary **options);
|
||||
|
||||
#define AV_OPT_SEARCH_CHILDREN 0x0001 /**< Search in possible children of the
|
||||
given object first. */
|
||||
|
||||
/**
|
||||
* Look for an option in an object. Consider only options which
|
||||
* have all the specified flags set.
|
||||
*
|
||||
* @param[in] obj A pointer to a struct whose first element is a
|
||||
* pointer to an AVClass.
|
||||
* @param[in] name The name of the option to look for.
|
||||
* @param[in] unit When searching for named constants, name of the unit
|
||||
* it belongs to.
|
||||
* @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG).
|
||||
* @param search_flags A combination of AV_OPT_SEARCH_*.
|
||||
*
|
||||
* @return A pointer to the option found, or NULL if no option
|
||||
* was found.
|
||||
*
|
||||
* @note Options found with AV_OPT_SEARCH_CHILDREN flag may not be settable
|
||||
* directly with av_set_string3(). Use special calls which take an options
|
||||
* AVDictionary (e.g. avformat_open_input()) to set options found with this
|
||||
* flag.
|
||||
*/
|
||||
const AVOption *av_opt_find(void *obj, const char *name, const char *unit,
|
||||
int opt_flags, int search_flags);
|
||||
|
||||
#endif /* AVUTIL_OPT_H */
|
||||
117
3rdparty/include/ffmpeg_/libavutil/parseutils.h
vendored
Normal file
117
3rdparty/include/ffmpeg_/libavutil/parseutils.h
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_PARSEUTILS_H
|
||||
#define AVUTIL_PARSEUTILS_H
|
||||
|
||||
#include "rational.h"
|
||||
|
||||
/**
|
||||
* @file
|
||||
* misc parsing utilities
|
||||
*/
|
||||
|
||||
/**
|
||||
* Parse str and put in width_ptr and height_ptr the detected values.
|
||||
*
|
||||
* @param[in,out] width_ptr pointer to the variable which will contain the detected
|
||||
* width value
|
||||
* @param[in,out] height_ptr pointer to the variable which will contain the detected
|
||||
* height value
|
||||
* @param[in] str the string to parse: it has to be a string in the format
|
||||
* width x height or a valid video size abbreviation.
|
||||
* @return >= 0 on success, a negative error code otherwise
|
||||
*/
|
||||
int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str);
|
||||
|
||||
/**
|
||||
* Parse str and store the detected values in *rate.
|
||||
*
|
||||
* @param[in,out] rate pointer to the AVRational which will contain the detected
|
||||
* frame rate
|
||||
* @param[in] str the string to parse: it has to be a string in the format
|
||||
* rate_num / rate_den, a float number or a valid video rate abbreviation
|
||||
* @return >= 0 on success, a negative error code otherwise
|
||||
*/
|
||||
int av_parse_video_rate(AVRational *rate, const char *str);
|
||||
|
||||
/**
|
||||
* Put the RGBA values that correspond to color_string in rgba_color.
|
||||
*
|
||||
* @param color_string a string specifying a color. It can be the name of
|
||||
* a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence,
|
||||
* possibly followed by "@" and a string representing the alpha
|
||||
* component.
|
||||
* The alpha component may be a string composed by "0x" followed by an
|
||||
* hexadecimal number or a decimal number between 0.0 and 1.0, which
|
||||
* represents the opacity value (0x00/0.0 means completely transparent,
|
||||
* 0xff/1.0 completely opaque).
|
||||
* If the alpha component is not specified then 0xff is assumed.
|
||||
* The string "random" will result in a random color.
|
||||
* @param slen length of the initial part of color_string containing the
|
||||
* color. It can be set to -1 if color_string is a null terminated string
|
||||
* containing nothing else than the color.
|
||||
* @return >= 0 in case of success, a negative value in case of
|
||||
* failure (for example if color_string cannot be parsed).
|
||||
*/
|
||||
int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen,
|
||||
void *log_ctx);
|
||||
|
||||
/**
|
||||
* Parses timestr and returns in *time a corresponding number of
|
||||
* microseconds.
|
||||
*
|
||||
* @param timeval puts here the number of microseconds corresponding
|
||||
* to the string in timestr. If the string represents a duration, it
|
||||
* is the number of microseconds contained in the time interval. If
|
||||
* the string is a date, is the number of microseconds since 1st of
|
||||
* January, 1970 up to the time of the parsed date. If timestr cannot
|
||||
* be successfully parsed, set *time to INT64_MIN.
|
||||
|
||||
* @param datestr a string representing a date or a duration.
|
||||
* - If a date the syntax is:
|
||||
* @code
|
||||
* [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH[:MM[:SS[.m...]]]}|{HH[MM[SS[.m...]]]}}[Z]
|
||||
* now
|
||||
* @endcode
|
||||
* If the value is "now" it takes the current time.
|
||||
* Time is local time unless Z is appended, in which case it is
|
||||
* interpreted as UTC.
|
||||
* If the year-month-day part is not specified it takes the current
|
||||
* year-month-day.
|
||||
* - If a duration the syntax is:
|
||||
* @code
|
||||
* [-]HH[:MM[:SS[.m...]]]
|
||||
* [-]S+[.m...]
|
||||
* @endcode
|
||||
* @param duration flag which tells how to interpret timestr, if not
|
||||
* zero timestr is interpreted as a duration, otherwise as a date
|
||||
* @return 0 in case of success, a negative value corresponding to an
|
||||
* AVERROR code otherwise
|
||||
*/
|
||||
int av_parse_time(int64_t *timeval, const char *timestr, int duration);
|
||||
|
||||
/**
|
||||
* Attempt to find a specific tag in a URL.
|
||||
*
|
||||
* syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done.
|
||||
* Return 1 if found.
|
||||
*/
|
||||
int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info);
|
||||
|
||||
#endif /* AVUTIL_PARSEUTILS_H */
|
||||
41
3rdparty/include/ffmpeg_/libavutil/pixdesc.h
vendored
41
3rdparty/include/ffmpeg_/libavutil/pixdesc.h
vendored
@@ -23,6 +23,7 @@
|
||||
#define AVUTIL_PIXDESC_H
|
||||
|
||||
#include <inttypes.h>
|
||||
#include "pixfmt.h"
|
||||
|
||||
typedef struct AVComponentDescriptor{
|
||||
uint16_t plane :2; ///< which of the 4 planes contains the component
|
||||
@@ -93,11 +94,11 @@ typedef struct AVPixFmtDescriptor{
|
||||
extern const AVPixFmtDescriptor av_pix_fmt_descriptors[];
|
||||
|
||||
/**
|
||||
* Reads a line from an image, and writes the values of the
|
||||
* Read a line from an image, and write the values of the
|
||||
* pixel format component c to dst.
|
||||
*
|
||||
* @param data the array containing the pointers to the planes of the image
|
||||
* @param linesizes the array containing the linesizes of the image
|
||||
* @param linesize the array containing the linesizes of the image
|
||||
* @param desc the pixel format descriptor for the image
|
||||
* @param x the horizontal coordinate of the first pixel to read
|
||||
* @param y the vertical coordinate of the first pixel to read
|
||||
@@ -108,28 +109,28 @@ extern const AVPixFmtDescriptor av_pix_fmt_descriptors[];
|
||||
* component c in data[1] to dst, rather than the palette indexes in
|
||||
* data[0]. The behavior is undefined if the format is not paletted.
|
||||
*/
|
||||
void read_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4],
|
||||
const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component);
|
||||
void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4],
|
||||
const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component);
|
||||
|
||||
/**
|
||||
* Writes the values from src to the pixel format component c of an
|
||||
* Write the values from src to the pixel format component c of an
|
||||
* image line.
|
||||
*
|
||||
* @param src array containing the values to write
|
||||
* @param data the array containing the pointers to the planes of the
|
||||
* image to write into. It is supposed to be zeroed.
|
||||
* @param linesizes the array containing the linesizes of the image
|
||||
* @param linesize the array containing the linesizes of the image
|
||||
* @param desc the pixel format descriptor for the image
|
||||
* @param x the horizontal coordinate of the first pixel to write
|
||||
* @param y the vertical coordinate of the first pixel to write
|
||||
* @param w the width of the line to write, that is the number of
|
||||
* values to write to the image line
|
||||
*/
|
||||
void write_line(const uint16_t *src, uint8_t *data[4], const int linesize[4],
|
||||
const AVPixFmtDescriptor *desc, int x, int y, int c, int w);
|
||||
void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesize[4],
|
||||
const AVPixFmtDescriptor *desc, int x, int y, int c, int w);
|
||||
|
||||
/**
|
||||
* Returns the pixel format corresponding to name.
|
||||
* Return the pixel format corresponding to name.
|
||||
*
|
||||
* If there is no pixel format with name name, then looks for a
|
||||
* pixel format with the name corresponding to the native endian
|
||||
@@ -142,7 +143,27 @@ void write_line(const uint16_t *src, uint8_t *data[4], const int linesize[4],
|
||||
enum PixelFormat av_get_pix_fmt(const char *name);
|
||||
|
||||
/**
|
||||
* Returns the number of bits per pixel used by the pixel format
|
||||
* Return the short name for a pixel format, NULL in case pix_fmt is
|
||||
* unknown.
|
||||
*
|
||||
* @see av_get_pix_fmt(), av_get_pix_fmt_string()
|
||||
*/
|
||||
const char *av_get_pix_fmt_name(enum PixelFormat pix_fmt);
|
||||
|
||||
/**
|
||||
* Print in buf the string corresponding to the pixel format with
|
||||
* number pix_fmt, or an header if pix_fmt is negative.
|
||||
*
|
||||
* @param buf the buffer where to write the string
|
||||
* @param buf_size the size of buf
|
||||
* @param pix_fmt the number of the pixel format to print the
|
||||
* corresponding info string, or a negative value to print the
|
||||
* corresponding header.
|
||||
*/
|
||||
char *av_get_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt);
|
||||
|
||||
/**
|
||||
* Return the number of bits per pixel used by the pixel format
|
||||
* described by pixdesc.
|
||||
*
|
||||
* The returned number of bits refers to the number of bits actually
|
||||
|
||||
39
3rdparty/include/ffmpeg_/libavutil/pixfmt.h
vendored
39
3rdparty/include/ffmpeg_/libavutil/pixfmt.h
vendored
@@ -71,9 +71,9 @@ enum PixelFormat {
|
||||
PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb
|
||||
PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb
|
||||
PIX_FMT_PAL8, ///< 8 bit with PIX_FMT_RGB32 palette
|
||||
PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG)
|
||||
PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG)
|
||||
PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG)
|
||||
PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV420P and setting color_range
|
||||
PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV422P and setting color_range
|
||||
PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV444P and setting color_range
|
||||
PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing
|
||||
PIX_FMT_XVMC_MPEG2_IDCT,
|
||||
PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1
|
||||
@@ -95,7 +95,7 @@ enum PixelFormat {
|
||||
PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian
|
||||
PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian
|
||||
PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples)
|
||||
PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG)
|
||||
PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of PIX_FMT_YUV440P and setting color_range
|
||||
PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples)
|
||||
PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
|
||||
PIX_FMT_VDPAU_MPEG1,///< MPEG-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
|
||||
@@ -128,14 +128,33 @@ enum PixelFormat {
|
||||
PIX_FMT_VDPAU_MPEG4, ///< MPEG4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers
|
||||
PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer
|
||||
|
||||
PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0
|
||||
PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), little-endian, most significant bits to 0
|
||||
PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1
|
||||
PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0
|
||||
PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1
|
||||
PIX_FMT_Y400A, ///< 8bit gray, 8bit alpha
|
||||
PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1
|
||||
PIX_FMT_GRAY8A, ///< 8bit gray, 8bit alpha
|
||||
PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian
|
||||
PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian
|
||||
|
||||
//the following 10 formats have the disadvantage of needing 1 format for each bit depth, thus
|
||||
//If you want to support multiple bit depths, then using PIX_FMT_YUV420P16* with the bpp stored seperately
|
||||
//is better
|
||||
PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
|
||||
PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
|
||||
PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian
|
||||
PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian
|
||||
PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian
|
||||
PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian
|
||||
PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
|
||||
PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
|
||||
PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian
|
||||
PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian
|
||||
|
||||
PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
|
||||
};
|
||||
|
||||
#define PIX_FMT_Y400A PIX_FMT_GRAY8A
|
||||
|
||||
#if AV_HAVE_BIGENDIAN
|
||||
# define PIX_FMT_NE(be, le) PIX_FMT_##be
|
||||
#else
|
||||
@@ -152,10 +171,16 @@ enum PixelFormat {
|
||||
#define PIX_FMT_RGB565 PIX_FMT_NE(RGB565BE, RGB565LE)
|
||||
#define PIX_FMT_RGB555 PIX_FMT_NE(RGB555BE, RGB555LE)
|
||||
#define PIX_FMT_RGB444 PIX_FMT_NE(RGB444BE, RGB444LE)
|
||||
#define PIX_FMT_BGR48 PIX_FMT_NE(BGR48BE, BGR48LE)
|
||||
#define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE)
|
||||
#define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE)
|
||||
#define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE)
|
||||
|
||||
#define PIX_FMT_YUV420P9 PIX_FMT_NE(YUV420P9BE , YUV420P9LE)
|
||||
#define PIX_FMT_YUV444P9 PIX_FMT_NE(YUV444P9BE , YUV444P9LE)
|
||||
#define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE)
|
||||
#define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE)
|
||||
#define PIX_FMT_YUV444P10 PIX_FMT_NE(YUV444P10BE, YUV444P10LE)
|
||||
#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
|
||||
#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
|
||||
#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
|
||||
|
||||
31
3rdparty/include/ffmpeg_/libavutil/random_seed.h
vendored
Normal file
31
3rdparty/include/ffmpeg_/libavutil/random_seed.h
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Baptiste Coudurier <baptiste.coudurier@gmail.com>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_RANDOM_SEED_H
|
||||
#define AVUTIL_RANDOM_SEED_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* Get a seed to use in conjunction with random functions.
|
||||
*/
|
||||
uint32_t av_get_random_seed(void);
|
||||
|
||||
#endif /* AVUTIL_RANDOM_SEED_H */
|
||||
32
3rdparty/include/ffmpeg_/libavutil/rational.h
vendored
32
3rdparty/include/ffmpeg_/libavutil/rational.h
vendored
@@ -28,7 +28,8 @@
|
||||
#ifndef AVUTIL_RATIONAL_H
|
||||
#define AVUTIL_RATIONAL_H
|
||||
|
||||
#include <msc_stdint.h>
|
||||
#include <stdint.h>
|
||||
#include <limits.h>
|
||||
#include "attributes.h"
|
||||
|
||||
/**
|
||||
@@ -40,20 +41,23 @@ typedef struct AVRational{
|
||||
} AVRational;
|
||||
|
||||
/**
|
||||
* Compares two rationals.
|
||||
* Compare two rationals.
|
||||
* @param a first rational
|
||||
* @param b second rational
|
||||
* @return 0 if a==b, 1 if a>b and -1 if a<b
|
||||
* @return 0 if a==b, 1 if a>b, -1 if a<b, and INT_MIN if one of the
|
||||
* values is of the form 0/0
|
||||
*/
|
||||
static inline int av_cmp_q(AVRational a, AVRational b){
|
||||
const int64_t tmp= a.num * (int64_t)b.den - b.num * (int64_t)a.den;
|
||||
|
||||
if(tmp) return (tmp>>63)|1;
|
||||
else return 0;
|
||||
if(tmp) return ((tmp ^ a.den ^ b.den)>>63)|1;
|
||||
else if(b.den && a.den) return 0;
|
||||
else if(a.num && b.num) return (a.num>>31) - (b.num>>31);
|
||||
else return INT_MIN;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts rational to double.
|
||||
* Convert rational to double.
|
||||
* @param a rational to convert
|
||||
* @return (double) a
|
||||
*/
|
||||
@@ -62,7 +66,7 @@ static inline double av_q2d(AVRational a){
|
||||
}
|
||||
|
||||
/**
|
||||
* Reduces a fraction.
|
||||
* Reduce a fraction.
|
||||
* This is useful for framerate calculations.
|
||||
* @param dst_num destination numerator
|
||||
* @param dst_den destination denominator
|
||||
@@ -74,7 +78,7 @@ static inline double av_q2d(AVRational a){
|
||||
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max);
|
||||
|
||||
/**
|
||||
* Multiplies two rationals.
|
||||
* Multiply two rationals.
|
||||
* @param b first rational
|
||||
* @param c second rational
|
||||
* @return b*c
|
||||
@@ -82,7 +86,7 @@ int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
|
||||
AVRational av_mul_q(AVRational b, AVRational c) av_const;
|
||||
|
||||
/**
|
||||
* Divides one rational by another.
|
||||
* Divide one rational by another.
|
||||
* @param b first rational
|
||||
* @param c second rational
|
||||
* @return b/c
|
||||
@@ -90,7 +94,7 @@ AVRational av_mul_q(AVRational b, AVRational c) av_const;
|
||||
AVRational av_div_q(AVRational b, AVRational c) av_const;
|
||||
|
||||
/**
|
||||
* Adds two rationals.
|
||||
* Add two rationals.
|
||||
* @param b first rational
|
||||
* @param c second rational
|
||||
* @return b+c
|
||||
@@ -98,7 +102,7 @@ AVRational av_div_q(AVRational b, AVRational c) av_const;
|
||||
AVRational av_add_q(AVRational b, AVRational c) av_const;
|
||||
|
||||
/**
|
||||
* Subtracts one rational from another.
|
||||
* Subtract one rational from another.
|
||||
* @param b first rational
|
||||
* @param c second rational
|
||||
* @return b-c
|
||||
@@ -106,7 +110,9 @@ AVRational av_add_q(AVRational b, AVRational c) av_const;
|
||||
AVRational av_sub_q(AVRational b, AVRational c) av_const;
|
||||
|
||||
/**
|
||||
* Converts a double precision floating point number to a rational.
|
||||
* Convert a double precision floating point number to a rational.
|
||||
* inf is expressed as {1,0} or {-1,0} depending on the sign.
|
||||
*
|
||||
* @param d double to convert
|
||||
* @param max the maximum allowed numerator and denominator
|
||||
* @return (AVRational) d
|
||||
@@ -120,7 +126,7 @@ AVRational av_d2q(double d, int max) av_const;
|
||||
int av_nearer_q(AVRational q, AVRational q1, AVRational q2);
|
||||
|
||||
/**
|
||||
* Finds the nearest value in q_list to q.
|
||||
* Find the nearest value in q_list to q.
|
||||
* @param q_list an array of rationals terminated by {0, 0}
|
||||
* @return the index of the nearest value found in the array
|
||||
*/
|
||||
|
||||
125
3rdparty/include/ffmpeg_/libavutil/samplefmt.h
vendored
Normal file
125
3rdparty/include/ffmpeg_/libavutil/samplefmt.h
vendored
Normal file
@@ -0,0 +1,125 @@
|
||||
/*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_SAMPLEFMT_H
|
||||
#define AVUTIL_SAMPLEFMT_H
|
||||
|
||||
#include "avutil.h"
|
||||
|
||||
/**
|
||||
* all in native-endian format
|
||||
*/
|
||||
enum AVSampleFormat {
|
||||
AV_SAMPLE_FMT_NONE = -1,
|
||||
AV_SAMPLE_FMT_U8, ///< unsigned 8 bits
|
||||
AV_SAMPLE_FMT_S16, ///< signed 16 bits
|
||||
AV_SAMPLE_FMT_S32, ///< signed 32 bits
|
||||
AV_SAMPLE_FMT_FLT, ///< float
|
||||
AV_SAMPLE_FMT_DBL, ///< double
|
||||
AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically
|
||||
};
|
||||
|
||||
/**
|
||||
* Return the name of sample_fmt, or NULL if sample_fmt is not
|
||||
* recognized.
|
||||
*/
|
||||
const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt);
|
||||
|
||||
/**
|
||||
* Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE
|
||||
* on error.
|
||||
*/
|
||||
enum AVSampleFormat av_get_sample_fmt(const char *name);
|
||||
|
||||
/**
|
||||
* Generate a string corresponding to the sample format with
|
||||
* sample_fmt, or a header if sample_fmt is negative.
|
||||
*
|
||||
* @param buf the buffer where to write the string
|
||||
* @param buf_size the size of buf
|
||||
* @param sample_fmt the number of the sample format to print the
|
||||
* corresponding info string, or a negative value to print the
|
||||
* corresponding header.
|
||||
* @return the pointer to the filled buffer or NULL if sample_fmt is
|
||||
* unknown or in case of other errors
|
||||
*/
|
||||
char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt);
|
||||
|
||||
#if FF_API_GET_BITS_PER_SAMPLE_FMT
|
||||
/**
|
||||
* @deprecated Use av_get_bytes_per_sample() instead.
|
||||
*/
|
||||
attribute_deprecated
|
||||
int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Return number of bytes per sample.
|
||||
*
|
||||
* @param sample_fmt the sample format
|
||||
* @return number of bytes per sample or zero if unknown for the given
|
||||
* sample format
|
||||
*/
|
||||
int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt);
|
||||
|
||||
/**
|
||||
* Fill channel data pointers and linesizes for samples with sample
|
||||
* format sample_fmt.
|
||||
*
|
||||
* The pointers array is filled with the pointers to the samples data:
|
||||
* for planar, set the start point of each plane's data within the buffer,
|
||||
* for packed, set the start point of the entire buffer only.
|
||||
*
|
||||
* The linesize array is filled with the aligned size of each samples
|
||||
* plane, that is linesize[i] will contain the linesize of the plane i,
|
||||
* and will be zero for all the unused planes. All linesize values are
|
||||
* equal.
|
||||
*
|
||||
* @param pointers array to be filled with the pointer for each plane, may be NULL
|
||||
* @param linesizes array to be filled with the linesize, may be NULL
|
||||
* @param buf the pointer to a buffer containing the samples
|
||||
* @param nb_samples the number of samples in a single channel
|
||||
* @param planar 1 if the samples layout is planar, 0 if it is packed
|
||||
* @param nb_channels the number of channels
|
||||
* @return the total size of the buffer, a negative
|
||||
* error code in case of failure
|
||||
*/
|
||||
int av_samples_fill_arrays(uint8_t *pointers[8], int linesizes[8],
|
||||
uint8_t *buf, int nb_channels, int nb_samples,
|
||||
enum AVSampleFormat sample_fmt, int planar, int align);
|
||||
|
||||
/**
|
||||
* Allocate a samples buffer for nb_samples samples, and
|
||||
* fill pointers and linesizes accordingly.
|
||||
* The allocated samples buffer has to be freed by using
|
||||
* av_freep(&pointers[0]).
|
||||
*
|
||||
* @param nb_channels number of audio channels
|
||||
* @param nb_samples number of samples per channel
|
||||
* @param planar 1 if the samples layout is planar, 0 if packed,
|
||||
* @param align the value to use for buffer size alignment
|
||||
* @return the size in bytes required for the samples buffer, a negative
|
||||
* error code in case of failure
|
||||
* @see av_samples_fill_arrays()
|
||||
*/
|
||||
int av_samples_alloc(uint8_t *pointers[8], int linesizes[8],
|
||||
int nb_channels, int nb_samples,
|
||||
enum AVSampleFormat sample_fmt, int planar,
|
||||
int align);
|
||||
|
||||
#endif /* AVCORE_SAMPLEFMT_H */
|
||||
56
3rdparty/include/ffmpeg_/libavutil/sha.h
vendored
Normal file
56
3rdparty/include/ffmpeg_/libavutil/sha.h
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (C) 2007 Michael Niedermayer <michaelni@gmx.at>
|
||||
*
|
||||
* This file is part of FFmpeg.
|
||||
*
|
||||
* FFmpeg is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* FFmpeg is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with FFmpeg; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef AVUTIL_SHA_H
|
||||
#define AVUTIL_SHA_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
extern const int av_sha_size;
|
||||
|
||||
struct AVSHA;
|
||||
|
||||
/**
|
||||
* Initialize SHA-1 or SHA-2 hashing.
|
||||
*
|
||||
* @param context pointer to the function context (of size av_sha_size)
|
||||
* @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits)
|
||||
* @return zero if initialization succeeded, -1 otherwise
|
||||
*/
|
||||
int av_sha_init(struct AVSHA* context, int bits);
|
||||
|
||||
/**
|
||||
* Update hash value.
|
||||
*
|
||||
* @param context hash function context
|
||||
* @param data input data to update hash with
|
||||
* @param len input data length
|
||||
*/
|
||||
void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len);
|
||||
|
||||
/**
|
||||
* Finish hashing and output digest value.
|
||||
*
|
||||
* @param context hash function context
|
||||
* @param digest buffer where output digest value is stored
|
||||
*/
|
||||
void av_sha_final(struct AVSHA* context, uint8_t *digest);
|
||||
|
||||
#endif /* AVUTIL_SHA_H */
|
||||
51
3rdparty/include/ffmpeg_/libswscale/swscale.h
vendored
51
3rdparty/include/ffmpeg_/libswscale/swscale.h
vendored
@@ -29,8 +29,8 @@
|
||||
|
||||
#include "libavutil/avutil.h"
|
||||
|
||||
#define LIBSWSCALE_VERSION_MAJOR 0
|
||||
#define LIBSWSCALE_VERSION_MINOR 11
|
||||
#define LIBSWSCALE_VERSION_MAJOR 2
|
||||
#define LIBSWSCALE_VERSION_MINOR 0
|
||||
#define LIBSWSCALE_VERSION_MICRO 0
|
||||
|
||||
#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \
|
||||
@@ -43,6 +43,20 @@
|
||||
|
||||
#define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION)
|
||||
|
||||
/**
|
||||
* Those FF_API_* defines are not part of public API.
|
||||
* They may change, break or disappear at any time.
|
||||
*/
|
||||
#ifndef FF_API_SWS_GETCONTEXT
|
||||
#define FF_API_SWS_GETCONTEXT (LIBSWSCALE_VERSION_MAJOR < 3)
|
||||
#endif
|
||||
#ifndef FF_API_SWS_CPU_CAPS
|
||||
#define FF_API_SWS_CPU_CAPS (LIBSWSCALE_VERSION_MAJOR < 3)
|
||||
#endif
|
||||
#ifndef FF_API_SWS_FORMAT_NAME
|
||||
#define FF_API_SWS_FORMAT_NAME (LIBSWSCALE_VERSION_MAJOR < 3)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Returns the LIBSWSCALE_VERSION_INT constant.
|
||||
*/
|
||||
@@ -87,11 +101,18 @@ const char *swscale_license(void);
|
||||
#define SWS_ACCURATE_RND 0x40000
|
||||
#define SWS_BITEXACT 0x80000
|
||||
|
||||
#if FF_API_SWS_CPU_CAPS
|
||||
/**
|
||||
* CPU caps are autodetected now, those flags
|
||||
* are only provided for API compatibility.
|
||||
*/
|
||||
#define SWS_CPU_CAPS_MMX 0x80000000
|
||||
#define SWS_CPU_CAPS_MMX2 0x20000000
|
||||
#define SWS_CPU_CAPS_3DNOW 0x40000000
|
||||
#define SWS_CPU_CAPS_ALTIVEC 0x10000000
|
||||
#define SWS_CPU_CAPS_BFIN 0x01000000
|
||||
#define SWS_CPU_CAPS_SSE2 0x02000000
|
||||
#endif
|
||||
|
||||
#define SWS_MAX_REDUCE_CUTOFF 0.002
|
||||
|
||||
@@ -142,12 +163,28 @@ int sws_isSupportedInput(enum PixelFormat pix_fmt);
|
||||
*/
|
||||
int sws_isSupportedOutput(enum PixelFormat pix_fmt);
|
||||
|
||||
/**
|
||||
* Allocates an empty SwsContext. This must be filled and passed to
|
||||
* sws_init_context(). For filling see AVOptions, options.c and
|
||||
* sws_setColorspaceDetails().
|
||||
*/
|
||||
struct SwsContext *sws_alloc_context(void);
|
||||
|
||||
/**
|
||||
* Initializes the swscaler context sws_context.
|
||||
*
|
||||
* @return zero or positive value on success, a negative value on
|
||||
* error
|
||||
*/
|
||||
int sws_init_context(struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter);
|
||||
|
||||
/**
|
||||
* Frees the swscaler context swsContext.
|
||||
* If swsContext is NULL, then does nothing.
|
||||
*/
|
||||
void sws_freeContext(struct SwsContext *swsContext);
|
||||
|
||||
#if FF_API_SWS_GETCONTEXT
|
||||
/**
|
||||
* Allocates and returns a SwsContext. You need it to perform
|
||||
* scaling/conversion operations using sws_scale().
|
||||
@@ -160,11 +197,15 @@ void sws_freeContext(struct SwsContext *swsContext);
|
||||
* @param dstFormat the destination image format
|
||||
* @param flags specify which algorithm and options to use for rescaling
|
||||
* @return a pointer to an allocated context, or NULL in case of error
|
||||
* @note this function is to be removed after a saner alternative is
|
||||
* written
|
||||
* @deprecated Use sws_getCachedContext() instead.
|
||||
*/
|
||||
struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat,
|
||||
int dstW, int dstH, enum PixelFormat dstFormat,
|
||||
int flags, SwsFilter *srcFilter,
|
||||
SwsFilter *dstFilter, const double *param);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Scales the image slice in srcSlice and puts the resulting scaled
|
||||
@@ -194,6 +235,7 @@ struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat
|
||||
*/
|
||||
int sws_scale(struct SwsContext *context, const uint8_t* const srcSlice[], const int srcStride[],
|
||||
int srcSliceY, int srcSliceH, uint8_t* const dst[], const int dstStride[]);
|
||||
|
||||
#if LIBSWSCALE_VERSION_MAJOR < 1
|
||||
/**
|
||||
* @deprecated Use sws_scale() instead.
|
||||
@@ -205,7 +247,6 @@ int sws_scale_ordered(struct SwsContext *context, const uint8_t* const src[],
|
||||
|
||||
/**
|
||||
* @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x]
|
||||
* @param fullRange if 1 then the luma range is 0..255 if 0 it is 16..235
|
||||
* @return -1 if not supported
|
||||
*/
|
||||
int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4],
|
||||
@@ -312,7 +353,7 @@ struct SwsContext *sws_getCachedContext(struct SwsContext *context,
|
||||
* @param num_pixels number of pixels to convert
|
||||
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
|
||||
*/
|
||||
void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
|
||||
void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette);
|
||||
|
||||
/**
|
||||
* Converts an 8bit paletted frame into a frame with a color depth of 24 bits.
|
||||
@@ -324,7 +365,7 @@ void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, long num_pi
|
||||
* @param num_pixels number of pixels to convert
|
||||
* @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src
|
||||
*/
|
||||
void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, long num_pixels, const uint8_t *palette);
|
||||
void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette);
|
||||
|
||||
|
||||
#endif /* SWSCALE_SWSCALE_H */
|
||||
|
||||
BIN
3rdparty/lib/armeabi-v7a/libnative_camera_r2.2.2.so
vendored
Normal file
BIN
3rdparty/lib/armeabi-v7a/libnative_camera_r2.2.2.so
vendored
Normal file
Binary file not shown.
BIN
3rdparty/lib/armeabi-v7a/libnative_camera_r2.3.3.so
vendored
Normal file
BIN
3rdparty/lib/armeabi-v7a/libnative_camera_r2.3.3.so
vendored
Normal file
Binary file not shown.
BIN
3rdparty/lib/armeabi/libnative_camera_r2.2.2.so
vendored
Executable file
BIN
3rdparty/lib/armeabi/libnative_camera_r2.2.2.so
vendored
Executable file
Binary file not shown.
BIN
3rdparty/lib/armeabi/libnative_camera_r2.3.3.so
vendored
Executable file
BIN
3rdparty/lib/armeabi/libnative_camera_r2.3.3.so
vendored
Executable file
Binary file not shown.
BIN
3rdparty/lib/libavcodec.a
vendored
BIN
3rdparty/lib/libavcodec.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavcodec64.a
vendored
BIN
3rdparty/lib/libavcodec64.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavcore64.a
vendored
BIN
3rdparty/lib/libavcore64.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavdevice.a
vendored
BIN
3rdparty/lib/libavdevice.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavdevice64.a
vendored
BIN
3rdparty/lib/libavdevice64.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavformat.a
vendored
BIN
3rdparty/lib/libavformat.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavformat64.a
vendored
BIN
3rdparty/lib/libavformat64.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavutil.a
vendored
BIN
3rdparty/lib/libavutil.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libavutil64.a
vendored
BIN
3rdparty/lib/libavutil64.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libnative_camera_r2.2.2.so
vendored
BIN
3rdparty/lib/libnative_camera_r2.2.2.so
vendored
Binary file not shown.
BIN
3rdparty/lib/libnative_camera_r2.3.3.so
vendored
BIN
3rdparty/lib/libnative_camera_r2.3.3.so
vendored
Binary file not shown.
BIN
3rdparty/lib/libswscale.a
vendored
BIN
3rdparty/lib/libswscale.a
vendored
Binary file not shown.
BIN
3rdparty/lib/libswscale64.a
vendored
BIN
3rdparty/lib/libswscale64.a
vendored
Binary file not shown.
4
3rdparty/libjasper/CMakeLists.txt
vendored
4
3rdparty/libjasper/CMakeLists.txt
vendored
@@ -45,7 +45,7 @@ set_target_properties(${the_target}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME "${the_target}"
|
||||
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/lib"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/${OPENCV_LIB_INSTALL_PATH}"
|
||||
)
|
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS)
|
||||
@@ -54,5 +54,5 @@ endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
install(TARGETS ${the_target}
|
||||
ARCHIVE DESTINATION share/opencv/3rdparty/lib COMPONENT main)
|
||||
ARCHIVE DESTINATION share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
|
||||
endif()
|
||||
|
||||
4
3rdparty/libjpeg/CMakeLists.txt
vendored
4
3rdparty/libjpeg/CMakeLists.txt
vendored
@@ -37,7 +37,7 @@ endif()
|
||||
set_target_properties(${the_target}
|
||||
PROPERTIES OUTPUT_NAME "${the_target}"
|
||||
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty/lib
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/3rdparty/${OPENCV_LIB_INSTALL_PATH}
|
||||
)
|
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS)
|
||||
@@ -46,5 +46,5 @@ endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
install(TARGETS ${the_target}
|
||||
ARCHIVE DESTINATION share/opencv/3rdparty/lib COMPONENT main)
|
||||
ARCHIVE DESTINATION share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
|
||||
endif()
|
||||
|
||||
4
3rdparty/libpng/CMakeLists.txt
vendored
4
3rdparty/libpng/CMakeLists.txt
vendored
@@ -38,7 +38,7 @@ endif()
|
||||
set_target_properties(${the_target}
|
||||
PROPERTIES OUTPUT_NAME "${the_target}"
|
||||
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/lib"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/${OPENCV_LIB_INSTALL_PATH}"
|
||||
)
|
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS)
|
||||
@@ -47,5 +47,5 @@ endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
install(TARGETS ${the_target}
|
||||
ARCHIVE DESTINATION share/opencv/3rdparty/lib COMPONENT main)
|
||||
ARCHIVE DESTINATION share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
|
||||
endif()
|
||||
|
||||
4
3rdparty/libtiff/CMakeLists.txt
vendored
4
3rdparty/libtiff/CMakeLists.txt
vendored
@@ -92,7 +92,7 @@ set_target_properties(${the_target}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME "${the_target}"
|
||||
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/lib/"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/${OPENCV_LIB_INSTALL_PATH}"
|
||||
)
|
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS)
|
||||
@@ -101,5 +101,5 @@ endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
install(TARGETS ${the_target}
|
||||
ARCHIVE DESTINATION share/opencv/3rdparty/lib COMPONENT main)
|
||||
ARCHIVE DESTINATION share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
|
||||
endif()
|
||||
|
||||
15
3rdparty/libtiff/tif_color.c
vendored
15
3rdparty/libtiff/tif_color.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_color.c,v 1.12.2.1 2010-06-08 18:50:41 bfriesen Exp $ */
|
||||
/* $Id: tif_color.c,v 1.12.2.2 2010-12-14 02:23:09 faxguy Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -183,13 +183,18 @@ void
|
||||
TIFFYCbCrtoRGB(TIFFYCbCrToRGB *ycbcr, uint32 Y, int32 Cb, int32 Cr,
|
||||
uint32 *r, uint32 *g, uint32 *b)
|
||||
{
|
||||
int32 i;
|
||||
|
||||
/* XXX: Only 8-bit YCbCr input supported for now */
|
||||
Y = HICLAMP(Y, 255), Cb = CLAMP(Cb, 0, 255), Cr = CLAMP(Cr, 0, 255);
|
||||
|
||||
*r = ycbcr->clamptab[ycbcr->Y_tab[Y] + ycbcr->Cr_r_tab[Cr]];
|
||||
*g = ycbcr->clamptab[ycbcr->Y_tab[Y]
|
||||
+ (int)((ycbcr->Cb_g_tab[Cb] + ycbcr->Cr_g_tab[Cr]) >> SHIFT)];
|
||||
*b = ycbcr->clamptab[ycbcr->Y_tab[Y] + ycbcr->Cb_b_tab[Cb]];
|
||||
i = ycbcr->Y_tab[Y] + ycbcr->Cr_r_tab[Cr];
|
||||
*r = CLAMP(i, 0, 255);
|
||||
i = ycbcr->Y_tab[Y]
|
||||
+ (int)((ycbcr->Cb_g_tab[Cb] + ycbcr->Cr_g_tab[Cr]) >> SHIFT);
|
||||
*g = CLAMP(i, 0, 255);
|
||||
i = ycbcr->Y_tab[Y] + ycbcr->Cb_b_tab[Cb];
|
||||
*b = CLAMP(i, 0, 255);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
6
3rdparty/libtiff/tif_dir.c
vendored
6
3rdparty/libtiff/tif_dir.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_dir.c,v 1.75.2.5 2010-06-09 21:15:27 bfriesen Exp $ */
|
||||
/* $Id: tif_dir.c,v 1.75.2.6 2010-07-02 09:49:23 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -163,7 +163,9 @@ _TIFFVSetField(TIFF* tif, ttag_t tag, va_list ap)
|
||||
* work in with its normal work.
|
||||
*/
|
||||
if (tif->tif_flags & TIFF_SWAB) {
|
||||
if (td->td_bitspersample == 16)
|
||||
if (td->td_bitspersample == 8)
|
||||
tif->tif_postdecode = _TIFFNoPostDecode;
|
||||
else if (td->td_bitspersample == 16)
|
||||
tif->tif_postdecode = _TIFFSwab16BitData;
|
||||
else if (td->td_bitspersample == 24)
|
||||
tif->tif_postdecode = _TIFFSwab24BitData;
|
||||
|
||||
96
3rdparty/libtiff/tif_dirread.c
vendored
96
3rdparty/libtiff/tif_dirread.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_dirread.c,v 1.92.2.9 2010-06-14 00:21:46 fwarmerdam Exp $ */
|
||||
/* $Id: tif_dirread.c,v 1.92.2.15 2010-12-31 16:12:40 olivier Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -54,7 +54,7 @@ static float TIFFFetchRational(TIFF*, TIFFDirEntry*);
|
||||
static int TIFFFetchNormalTag(TIFF*, TIFFDirEntry*);
|
||||
static int TIFFFetchPerSampleShorts(TIFF*, TIFFDirEntry*, uint16*);
|
||||
static int TIFFFetchPerSampleLongs(TIFF*, TIFFDirEntry*, uint32*);
|
||||
static int TIFFFetchPerSampleAnys(TIFF*, TIFFDirEntry*, double*);
|
||||
static int TIFFFetchPerSampleAnys(TIFF*, TIFFDirEntry*, double*, double*);
|
||||
static int TIFFFetchShortArray(TIFF*, TIFFDirEntry*, uint16*);
|
||||
static int TIFFFetchStripThing(TIFF*, TIFFDirEntry*, long, uint32**);
|
||||
static int TIFFFetchRefBlackWhite(TIFF*, TIFFDirEntry*);
|
||||
@@ -83,6 +83,7 @@ TIFFReadDirectory(TIFF* tif)
|
||||
const TIFFFieldInfo* fip;
|
||||
size_t fix;
|
||||
uint16 dircount;
|
||||
uint16 previous_tag = 0;
|
||||
int diroutoforderwarning = 0, compressionknown = 0;
|
||||
int haveunknowntags = 0;
|
||||
|
||||
@@ -105,7 +106,20 @@ TIFFReadDirectory(TIFF* tif)
|
||||
tif->tif_name, tif->tif_nextdiroff);
|
||||
return 0;
|
||||
}
|
||||
|
||||
{
|
||||
TIFFDirEntry* ma;
|
||||
uint16 mb;
|
||||
for (ma=dir, mb=0; mb<dircount; ma++, mb++)
|
||||
{
|
||||
TIFFDirEntry* na;
|
||||
uint16 nb;
|
||||
for (na=ma+1, nb=mb+1; nb<dircount; na++, nb++)
|
||||
{
|
||||
if (ma->tdir_tag==na->tdir_tag)
|
||||
na->tdir_tag=IGNORE;
|
||||
}
|
||||
}
|
||||
}
|
||||
tif->tif_flags &= ~TIFF_BEENWRITING; /* reset before new dir */
|
||||
/*
|
||||
* Setup default value and then make a pass over
|
||||
@@ -163,23 +177,24 @@ TIFFReadDirectory(TIFF* tif)
|
||||
|
||||
if (dp->tdir_tag == IGNORE)
|
||||
continue;
|
||||
if (fix >= tif->tif_nfields)
|
||||
fix = 0;
|
||||
|
||||
/*
|
||||
* Silicon Beach (at least) writes unordered
|
||||
* directory tags (violating the spec). Handle
|
||||
* it here, but be obnoxious (maybe they'll fix it?).
|
||||
*/
|
||||
if (dp->tdir_tag < tif->tif_fieldinfo[fix]->field_tag) {
|
||||
if (dp->tdir_tag < previous_tag) {
|
||||
if (!diroutoforderwarning) {
|
||||
TIFFWarningExt(tif->tif_clientdata, module,
|
||||
"%s: invalid TIFF directory; tags are not sorted in ascending order",
|
||||
tif->tif_name);
|
||||
diroutoforderwarning = 1;
|
||||
}
|
||||
fix = 0; /* O(n^2) */
|
||||
}
|
||||
previous_tag = dp->tdir_tag;
|
||||
if (fix >= tif->tif_nfields ||
|
||||
dp->tdir_tag < tif->tif_fieldinfo[fix]->field_tag)
|
||||
fix = 0; /* O(n^2) */
|
||||
while (fix < tif->tif_nfields &&
|
||||
tif->tif_fieldinfo[fix]->field_tag < dp->tdir_tag)
|
||||
fix++;
|
||||
@@ -465,11 +480,18 @@ TIFFReadDirectory(TIFF* tif)
|
||||
}
|
||||
break;
|
||||
case TIFFTAG_SMINSAMPLEVALUE:
|
||||
{
|
||||
double minv = 0.0, maxv = 0.0;
|
||||
if (!TIFFFetchPerSampleAnys(tif, dp, &minv, &maxv) ||
|
||||
!TIFFSetField(tif, dp->tdir_tag, minv))
|
||||
goto bad;
|
||||
}
|
||||
break;
|
||||
case TIFFTAG_SMAXSAMPLEVALUE:
|
||||
{
|
||||
double dv = 0.0;
|
||||
if (!TIFFFetchPerSampleAnys(tif, dp, &dv) ||
|
||||
!TIFFSetField(tif, dp->tdir_tag, dv))
|
||||
double minv = 0.0, maxv = 0.0;
|
||||
if (!TIFFFetchPerSampleAnys(tif, dp, &minv, &maxv) ||
|
||||
!TIFFSetField(tif, dp->tdir_tag, maxv))
|
||||
goto bad;
|
||||
}
|
||||
break;
|
||||
@@ -593,8 +615,7 @@ TIFFReadDirectory(TIFF* tif)
|
||||
}
|
||||
if (!TIFFFieldSet(tif,FIELD_SAMPLESPERPIXEL))
|
||||
{
|
||||
if ((td->td_photometric==PHOTOMETRIC_RGB)
|
||||
|| (td->td_photometric==PHOTOMETRIC_YCBCR))
|
||||
if (td->td_photometric==PHOTOMETRIC_RGB)
|
||||
{
|
||||
TIFFWarningExt(tif->tif_clientdata,
|
||||
"TIFFReadDirectory",
|
||||
@@ -603,13 +624,22 @@ TIFFReadDirectory(TIFF* tif)
|
||||
if (!TIFFSetField(tif,TIFFTAG_SAMPLESPERPIXEL,3))
|
||||
goto bad;
|
||||
}
|
||||
else if ((td->td_photometric==PHOTOMETRIC_MINISWHITE)
|
||||
|| (td->td_photometric==PHOTOMETRIC_MINISBLACK))
|
||||
if (td->td_photometric==PHOTOMETRIC_YCBCR)
|
||||
{
|
||||
TIFFWarningExt(tif->tif_clientdata,
|
||||
"TIFFReadDirectory",
|
||||
"SamplesPerPixel tag is missing, "
|
||||
"assuming correct SamplesPerPixel value is 1");
|
||||
"applying correct SamplesPerPixel value of 3");
|
||||
if (!TIFFSetField(tif,TIFFTAG_SAMPLESPERPIXEL,3))
|
||||
goto bad;
|
||||
}
|
||||
else if ((td->td_photometric==PHOTOMETRIC_MINISWHITE)
|
||||
|| (td->td_photometric==PHOTOMETRIC_MINISBLACK))
|
||||
{
|
||||
/*
|
||||
* SamplesPerPixel tag is missing, but is not required
|
||||
* by spec. Assume correct SamplesPerPixel value of 1.
|
||||
*/
|
||||
if (!TIFFSetField(tif,TIFFTAG_SAMPLESPERPIXEL,1))
|
||||
goto bad;
|
||||
}
|
||||
@@ -620,8 +650,14 @@ TIFFReadDirectory(TIFF* tif)
|
||||
*/
|
||||
if (td->td_photometric == PHOTOMETRIC_PALETTE &&
|
||||
!TIFFFieldSet(tif, FIELD_COLORMAP)) {
|
||||
MissingRequired(tif, "Colormap");
|
||||
goto bad;
|
||||
if ( tif->tif_dir.td_bitspersample>=8 && tif->tif_dir.td_samplesperpixel==3)
|
||||
tif->tif_dir.td_photometric = PHOTOMETRIC_RGB;
|
||||
else if (tif->tif_dir.td_bitspersample>=8)
|
||||
tif->tif_dir.td_photometric = PHOTOMETRIC_MINISBLACK;
|
||||
else {
|
||||
MissingRequired(tif, "Colormap");
|
||||
goto bad;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* OJPEG hack:
|
||||
@@ -1086,6 +1122,7 @@ CheckDirCount(TIFF* tif, TIFFDirEntry* dir, uint32 count)
|
||||
"incorrect count for field \"%s\" (%u, expecting %u); tag trimmed",
|
||||
_TIFFFieldWithTag(tif, dir->tdir_tag)->field_name,
|
||||
dir->tdir_count, count);
|
||||
dir->tdir_count = count;
|
||||
return (1);
|
||||
}
|
||||
return (1);
|
||||
@@ -1413,14 +1450,14 @@ TIFFFetchShortPair(TIFF* tif, TIFFDirEntry* dir)
|
||||
case TIFF_BYTE:
|
||||
case TIFF_SBYTE:
|
||||
{
|
||||
uint8 v[4];
|
||||
uint8 v[4]={0,0,0,0};
|
||||
return TIFFFetchByteArray(tif, dir, v)
|
||||
&& TIFFSetField(tif, dir->tdir_tag, v[0], v[1]);
|
||||
}
|
||||
case TIFF_SHORT:
|
||||
case TIFF_SSHORT:
|
||||
{
|
||||
uint16 v[2]={0,0};
|
||||
uint16 v[2]={0,0};
|
||||
return TIFFFetchShortArray(tif, dir, v)
|
||||
&& TIFFSetField(tif, dir->tdir_tag, v[0], v[1]);
|
||||
}
|
||||
@@ -1822,11 +1859,11 @@ TIFFFetchPerSampleLongs(TIFF* tif, TIFFDirEntry* dir, uint32* pl)
|
||||
}
|
||||
|
||||
/*
|
||||
* Fetch samples/pixel ANY values for the specified tag and verify that all
|
||||
* values are the same.
|
||||
* Fetch samples/pixel ANY values for the specified tag and returns their min
|
||||
* and max.
|
||||
*/
|
||||
static int
|
||||
TIFFFetchPerSampleAnys(TIFF* tif, TIFFDirEntry* dir, double* pl)
|
||||
TIFFFetchPerSampleAnys(TIFF* tif, TIFFDirEntry* dir, double* minv, double* maxv)
|
||||
{
|
||||
uint16 samples = tif->tif_dir.td_samplesperpixel;
|
||||
int status = 0;
|
||||
@@ -1844,17 +1881,16 @@ TIFFFetchPerSampleAnys(TIFF* tif, TIFFDirEntry* dir, double* pl)
|
||||
if( samples < check_count )
|
||||
check_count = samples;
|
||||
|
||||
*minv = *maxv = v[0];
|
||||
for (i = 1; i < check_count; i++)
|
||||
if (v[i] != v[0]) {
|
||||
TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
|
||||
"Cannot handle different per-sample values for field \"%s\"",
|
||||
_TIFFFieldWithTag(tif, dir->tdir_tag)->field_name);
|
||||
goto bad;
|
||||
}
|
||||
*pl = v[0];
|
||||
{
|
||||
if (v[i] < *minv)
|
||||
*minv = v[i];
|
||||
if (v[i] > *maxv)
|
||||
*maxv = v[i];
|
||||
}
|
||||
status = 1;
|
||||
}
|
||||
bad:
|
||||
if (v && v != buf)
|
||||
_TIFFfree(v);
|
||||
}
|
||||
|
||||
50
3rdparty/libtiff/tif_dirwrite.c
vendored
50
3rdparty/libtiff/tif_dirwrite.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_dirwrite.c,v 1.37.2.7 2010-06-08 18:50:42 bfriesen Exp $ */
|
||||
/* $Id: tif_dirwrite.c,v 1.37.2.9 2011-02-25 15:28:30 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -42,6 +42,7 @@ extern void TIFFCvtNativeToIEEEDouble(TIFF*, uint32, double*);
|
||||
static int TIFFWriteNormalTag(TIFF*, TIFFDirEntry*, const TIFFFieldInfo*);
|
||||
static void TIFFSetupShortLong(TIFF*, ttag_t, TIFFDirEntry*, uint32);
|
||||
static void TIFFSetupShort(TIFF*, ttag_t, TIFFDirEntry*, uint16);
|
||||
static int TIFFSetupBytePair(TIFF*, ttag_t, TIFFDirEntry*);
|
||||
static int TIFFSetupShortPair(TIFF*, ttag_t, TIFFDirEntry*);
|
||||
static int TIFFWritePerSampleShorts(TIFF*, ttag_t, TIFFDirEntry*);
|
||||
static int TIFFWritePerSampleAnys(TIFF*, TIFFDataType, ttag_t, TIFFDirEntry*);
|
||||
@@ -291,12 +292,6 @@ _TIFFWriteDirectory(TIFF* tif, int done)
|
||||
_TIFFSampleToTagType(tif), fip->field_tag, dir))
|
||||
goto bad;
|
||||
break;
|
||||
case FIELD_PAGENUMBER:
|
||||
case FIELD_HALFTONEHINTS:
|
||||
case FIELD_YCBCRSUBSAMPLING:
|
||||
if (!TIFFSetupShortPair(tif, fip->field_tag, dir))
|
||||
goto bad;
|
||||
break;
|
||||
case FIELD_INKNAMES:
|
||||
if (!TIFFWriteInkNames(tif, dir))
|
||||
goto bad;
|
||||
@@ -336,12 +331,22 @@ _TIFFWriteDirectory(TIFF* tif, int done)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
/* XXX: Should be fixed and removed. */
|
||||
if (fip->field_tag == TIFFTAG_DOTRANGE) {
|
||||
if (!TIFFSetupShortPair(tif, fip->field_tag, dir))
|
||||
goto bad;
|
||||
}
|
||||
else if (!TIFFWriteNormalTag(tif, dir, fip))
|
||||
/*
|
||||
* XXX: Should be fixed and removed. See comments
|
||||
* related to these tags in tif_dir.c.
|
||||
*/
|
||||
if (fip->field_tag == TIFFTAG_PAGENUMBER
|
||||
|| fip->field_tag == TIFFTAG_HALFTONEHINTS
|
||||
|| fip->field_tag == TIFFTAG_YCBCRSUBSAMPLING
|
||||
|| fip->field_tag == TIFFTAG_DOTRANGE) {
|
||||
if (fip->field_type == TIFF_BYTE) {
|
||||
if (!TIFFSetupBytePair(tif, fip->field_tag, dir))
|
||||
goto bad;
|
||||
} else if (fip->field_type == TIFF_SHORT) {
|
||||
if (!TIFFSetupShortPair(tif, fip->field_tag, dir))
|
||||
goto bad;
|
||||
}
|
||||
} else if (!TIFFWriteNormalTag(tif, dir, fip))
|
||||
goto bad;
|
||||
break;
|
||||
}
|
||||
@@ -875,6 +880,23 @@ TIFFWritePerSampleAnys(TIFF* tif,
|
||||
}
|
||||
#undef NITEMS
|
||||
|
||||
/*
|
||||
* Setup a pair of bytes that are returned by
|
||||
* value, rather than as a reference to an array.
|
||||
*/
|
||||
static int
|
||||
TIFFSetupBytePair(TIFF* tif, ttag_t tag, TIFFDirEntry* dir)
|
||||
{
|
||||
char v[2];
|
||||
|
||||
TIFFGetField(tif, tag, &v[0], &v[1]);
|
||||
|
||||
dir->tdir_tag = (uint16) tag;
|
||||
dir->tdir_type = (uint16) TIFF_BYTE;
|
||||
dir->tdir_count = 2;
|
||||
return (TIFFWriteByteArray(tif, dir, v));
|
||||
}
|
||||
|
||||
/*
|
||||
* Setup a pair of shorts that are returned by
|
||||
* value, rather than as a reference to an array.
|
||||
@@ -1019,7 +1041,7 @@ TIFFWriteRationalArray(TIFF* tif, TIFFDirEntry* dir, float* v)
|
||||
while (fv < 1L<<(31-3) && den < 1L<<(31-3))
|
||||
fv *= 1<<3, den *= 1L<<3;
|
||||
}
|
||||
t[2*i+0] = (uint32) (sign * (fv + 0.5));
|
||||
t[2*i+0] = (uint32) (sign * (int32)(fv + 0.5));
|
||||
t[2*i+1] = den;
|
||||
}
|
||||
status = TIFFWriteData(tif, dir, (char *)t);
|
||||
|
||||
8
3rdparty/libtiff/tif_fax3.h
vendored
8
3rdparty/libtiff/tif_fax3.h
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_fax3.h,v 1.5.2.1 2010-06-08 18:50:42 bfriesen Exp $ */
|
||||
/* $Id: tif_fax3.h,v 1.5.2.3 2011-03-10 20:22:33 fwarmerdam Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1990-1997 Sam Leffler
|
||||
@@ -478,6 +478,12 @@ done1d: \
|
||||
break; \
|
||||
case S_VL: \
|
||||
CHECK_b1; \
|
||||
if (b1 <= (int) (a0 + TabEnt->Param)) { \
|
||||
if (b1 < (int) (a0 + TabEnt->Param) || pa != thisrun) { \
|
||||
unexpected("VL", a0); \
|
||||
goto eol2d; \
|
||||
} \
|
||||
} \
|
||||
SETVALUE(b1 - a0 - TabEnt->Param); \
|
||||
b1 -= *--pb; \
|
||||
break; \
|
||||
|
||||
14
3rdparty/libtiff/tif_getimage.c
vendored
14
3rdparty/libtiff/tif_getimage.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_getimage.c,v 1.63.2.4 2010-06-08 18:50:42 bfriesen Exp $ */
|
||||
/* $Id: tif_getimage.c,v 1.63.2.6 2010-07-02 13:38:27 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1991-1997 Sam Leffler
|
||||
@@ -1846,6 +1846,7 @@ DECLAREContigPutFunc(putcontig8bitYCbCr41tile)
|
||||
DECLAREContigPutFunc(putcontig8bitYCbCr22tile)
|
||||
{
|
||||
uint32* cp2;
|
||||
int32 incr = 2*toskew+w;
|
||||
(void) y;
|
||||
fromskew = (fromskew / 2) * 6;
|
||||
cp2 = cp+w+toskew;
|
||||
@@ -1872,8 +1873,8 @@ DECLAREContigPutFunc(putcontig8bitYCbCr22tile)
|
||||
cp2 ++ ;
|
||||
pp += 6;
|
||||
}
|
||||
cp += toskew*2+w;
|
||||
cp2 += toskew*2+w;
|
||||
cp += incr;
|
||||
cp2 += incr;
|
||||
pp += fromskew;
|
||||
h-=2;
|
||||
}
|
||||
@@ -1939,6 +1940,7 @@ DECLAREContigPutFunc(putcontig8bitYCbCr21tile)
|
||||
DECLAREContigPutFunc(putcontig8bitYCbCr12tile)
|
||||
{
|
||||
uint32* cp2;
|
||||
int32 incr = 2*toskew+w;
|
||||
(void) y;
|
||||
fromskew = (fromskew / 2) * 4;
|
||||
cp2 = cp+w+toskew;
|
||||
@@ -1953,8 +1955,8 @@ DECLAREContigPutFunc(putcontig8bitYCbCr12tile)
|
||||
cp2 ++;
|
||||
pp += 4;
|
||||
} while (--x);
|
||||
cp += toskew*2+w;
|
||||
cp2 += toskew*2+w;
|
||||
cp += incr;
|
||||
cp2 += incr;
|
||||
pp += fromskew;
|
||||
h-=2;
|
||||
}
|
||||
@@ -2397,7 +2399,7 @@ PickContigCase(TIFFRGBAImage* img)
|
||||
}
|
||||
break;
|
||||
case PHOTOMETRIC_YCBCR:
|
||||
if (img->bitspersample == 8)
|
||||
if ((img->bitspersample==8) && (img->samplesperpixel==3))
|
||||
{
|
||||
if (initYCbCrConversion(img)!=0)
|
||||
{
|
||||
|
||||
31
3rdparty/libtiff/tif_jpeg.c
vendored
31
3rdparty/libtiff/tif_jpeg.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_jpeg.c,v 1.50.2.9 2010-06-14 02:47:16 fwarmerdam Exp $ */
|
||||
/* $Id: tif_jpeg.c,v 1.50.2.17 2011-01-04 02:51:17 faxguy Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994-1997 Sam Leffler
|
||||
@@ -988,8 +988,15 @@ JPEGDecodeRaw(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s)
|
||||
tsize_t nrows;
|
||||
(void) s;
|
||||
|
||||
/* data is expected to be read in multiples of a scanline */
|
||||
if ( (nrows = sp->cinfo.d.image_height) ) {
|
||||
nrows = cc / sp->bytesperline;
|
||||
if (cc % sp->bytesperline)
|
||||
TIFFWarningExt(tif->tif_clientdata, tif->tif_name, "fractional scanline not read");
|
||||
|
||||
if( nrows > (int) sp->cinfo.d.image_height )
|
||||
nrows = sp->cinfo.d.image_height;
|
||||
|
||||
/* data is expected to be read in multiples of a scanline */
|
||||
if (nrows) {
|
||||
/* Cb,Cr both have sampling factors 1, so this is correct */
|
||||
JDIMENSION clumps_per_line = sp->cinfo.d.comp_info[1].downsampled_width;
|
||||
int samples_per_clump = sp->samplesperclump;
|
||||
@@ -1064,7 +1071,7 @@ JPEGDecodeRaw(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s)
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // 12-bit
|
||||
{ /* 12-bit */
|
||||
int value_pairs = (sp->cinfo.d.output_width
|
||||
* sp->cinfo.d.num_components) / 2;
|
||||
int iPair;
|
||||
@@ -1087,8 +1094,7 @@ JPEGDecodeRaw(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s)
|
||||
* TODO: resolve this */
|
||||
buf += sp->bytesperline;
|
||||
cc -= sp->bytesperline;
|
||||
nrows -= sp->v_sampling;
|
||||
} while (nrows > 0);
|
||||
} while (--nrows > 0);
|
||||
|
||||
#ifdef JPEG_LIB_MK1
|
||||
_TIFFfree(tmpbuf);
|
||||
@@ -1352,8 +1358,15 @@ JPEGPreEncode(TIFF* tif, tsample_t s)
|
||||
sp->cinfo.c.comp_info[0].h_samp_factor = sp->h_sampling;
|
||||
sp->cinfo.c.comp_info[0].v_samp_factor = sp->v_sampling;
|
||||
} else {
|
||||
sp->cinfo.c.in_color_space = JCS_UNKNOWN;
|
||||
if (!TIFFjpeg_set_colorspace(sp, JCS_UNKNOWN))
|
||||
if ((td->td_photometric == PHOTOMETRIC_MINISWHITE || td->td_photometric == PHOTOMETRIC_MINISBLACK) && td->td_samplesperpixel == 1)
|
||||
sp->cinfo.c.in_color_space = JCS_GRAYSCALE;
|
||||
else if (td->td_photometric == PHOTOMETRIC_RGB)
|
||||
sp->cinfo.c.in_color_space = JCS_RGB;
|
||||
else if (td->td_photometric == PHOTOMETRIC_SEPARATED && td->td_samplesperpixel == 4)
|
||||
sp->cinfo.c.in_color_space = JCS_CMYK;
|
||||
else
|
||||
sp->cinfo.c.in_color_space = JCS_UNKNOWN;
|
||||
if (!TIFFjpeg_set_colorspace(sp, sp->cinfo.c.in_color_space))
|
||||
return (0);
|
||||
/* jpeg_set_colorspace set all sampling factors to 1 */
|
||||
}
|
||||
@@ -1523,7 +1536,7 @@ JPEGEncodeRaw(TIFF* tif, tidata_t buf, tsize_t cc, tsample_t s)
|
||||
sp->scancount = 0;
|
||||
}
|
||||
tif->tif_row += sp->v_sampling;
|
||||
buf += sp->bytesperline;
|
||||
buf += bytesperclumpline;
|
||||
nrows -= sp->v_sampling;
|
||||
}
|
||||
return (1);
|
||||
|
||||
14
3rdparty/libtiff/tif_ojpeg.c
vendored
14
3rdparty/libtiff/tif_ojpeg.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_ojpeg.c,v 1.24.2.6 2010-06-08 23:29:51 bfriesen Exp $ */
|
||||
/* $Id: tif_ojpeg.c,v 1.24.2.8 2010-12-11 21:25:04 faxguy Exp $ */
|
||||
|
||||
/* WARNING: The type of JPEG encapsulation defined by the TIFF Version 6.0
|
||||
specification is now totally obsolete and deprecated for new applications and
|
||||
@@ -1537,7 +1537,6 @@ OJPEGReadHeaderInfoSecStreamSof(TIFF* tif, uint8 marker_id)
|
||||
OJPEGReadSkip(sp,4);
|
||||
else
|
||||
{
|
||||
/* TODO: probably best to also add check on allowed upper bound, especially x, may cause buffer overflow otherwise i think */
|
||||
/* Y: Number of lines */
|
||||
if (OJPEGReadWord(sp,&p)==0)
|
||||
return(0);
|
||||
@@ -1555,6 +1554,11 @@ OJPEGReadHeaderInfoSecStreamSof(TIFF* tif, uint8 marker_id)
|
||||
TIFFErrorExt(tif->tif_clientdata,module,"JPEG compressed data indicates unexpected width");
|
||||
return(0);
|
||||
}
|
||||
if ((uint32)p>sp->strile_width)
|
||||
{
|
||||
TIFFErrorExt(tif->tif_clientdata,module,"JPEG compressed data image width exceeds expected image width");
|
||||
return(0);
|
||||
}
|
||||
sp->sof_x=p;
|
||||
}
|
||||
/* Nf: Number of image components in frame */
|
||||
@@ -1918,8 +1922,14 @@ OJPEGReadBufferFill(OJPEGState* sp)
|
||||
{
|
||||
if (sp->in_buffer_file_pos>=sp->file_size)
|
||||
sp->in_buffer_file_pos=0;
|
||||
else if (sp->tif->tif_dir.td_stripbytecount==NULL)
|
||||
sp->in_buffer_file_togo=sp->file_size-sp->in_buffer_file_pos;
|
||||
else
|
||||
{
|
||||
if (sp->tif->tif_dir.td_stripbytecount == 0) {
|
||||
TIFFErrorExt(sp->tif->tif_clientdata,sp->tif->tif_name,"Strip byte counts are missing");
|
||||
return(0);
|
||||
}
|
||||
sp->in_buffer_file_togo=sp->tif->tif_dir.td_stripbytecount[sp->in_buffer_next_strile];
|
||||
if (sp->in_buffer_file_togo==0)
|
||||
sp->in_buffer_file_pos=0;
|
||||
|
||||
4
3rdparty/libtiff/tif_open.c
vendored
4
3rdparty/libtiff/tif_open.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_open.c,v 1.33.2.1 2010-06-08 18:50:42 bfriesen Exp $ */
|
||||
/* $Id: tif_open.c,v 1.33.2.2 2010-12-06 16:54:22 faxguy Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -304,7 +304,7 @@ TIFFClientOpen(
|
||||
/*
|
||||
* Read in TIFF header.
|
||||
*/
|
||||
if (tif->tif_mode & O_TRUNC ||
|
||||
if ((m & O_TRUNC) ||
|
||||
!ReadOK(tif, &tif->tif_header, sizeof (TIFFHeader))) {
|
||||
if (tif->tif_mode == O_RDONLY) {
|
||||
TIFFErrorExt(tif->tif_clientdata, name,
|
||||
|
||||
8
3rdparty/libtiff/tif_print.c
vendored
8
3rdparty/libtiff/tif_print.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_print.c,v 1.36.2.4 2010-06-08 18:50:42 bfriesen Exp $ */
|
||||
/* $Id: tif_print.c,v 1.36.2.5 2010-07-06 14:05:30 dron Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -115,8 +115,6 @@ static int
|
||||
_TIFFPrettyPrintField(TIFF* tif, FILE* fd, ttag_t tag,
|
||||
uint32 value_count, void *raw_data)
|
||||
{
|
||||
//TIFFDirectory *td = &tif->tif_dir;
|
||||
|
||||
switch (tag)
|
||||
{
|
||||
case TIFFTAG_INKSET:
|
||||
@@ -132,10 +130,6 @@ _TIFFPrettyPrintField(TIFF* tif, FILE* fd, ttag_t tag,
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
case TIFFTAG_DOTRANGE:
|
||||
fprintf(fd, " Dot Range: %u-%u\n",
|
||||
((uint16*)raw_data)[0], ((uint16*)raw_data)[1]);
|
||||
return 1;
|
||||
case TIFFTAG_WHITEPOINT:
|
||||
fprintf(fd, " White Point: %g-%g\n",
|
||||
((float *)raw_data)[0], ((float *)raw_data)[1]); return 1;
|
||||
|
||||
38
3rdparty/libtiff/tif_strip.c
vendored
38
3rdparty/libtiff/tif_strip.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_strip.c,v 1.19.2.1 2010-06-08 18:50:43 bfriesen Exp $ */
|
||||
/* $Id: tif_strip.c,v 1.19.2.3 2010-12-15 00:50:30 faxguy Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1991-1997 Sam Leffler
|
||||
@@ -124,9 +124,9 @@ TIFFVStripSize(TIFF* tif, uint32 nrows)
|
||||
uint16 ycbcrsubsampling[2];
|
||||
tsize_t w, scanline, samplingarea;
|
||||
|
||||
TIFFGetField( tif, TIFFTAG_YCBCRSUBSAMPLING,
|
||||
ycbcrsubsampling + 0,
|
||||
ycbcrsubsampling + 1 );
|
||||
TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRSUBSAMPLING,
|
||||
ycbcrsubsampling + 0,
|
||||
ycbcrsubsampling + 1);
|
||||
|
||||
samplingarea = ycbcrsubsampling[0]*ycbcrsubsampling[1];
|
||||
if (samplingarea == 0) {
|
||||
@@ -234,27 +234,23 @@ TIFFScanlineSize(TIFF* tif)
|
||||
&& !isUpSampled(tif)) {
|
||||
uint16 ycbcrsubsampling[2];
|
||||
|
||||
TIFFGetField(tif, TIFFTAG_YCBCRSUBSAMPLING,
|
||||
ycbcrsubsampling + 0,
|
||||
ycbcrsubsampling + 1);
|
||||
TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRSUBSAMPLING,
|
||||
ycbcrsubsampling + 0,
|
||||
ycbcrsubsampling + 1);
|
||||
|
||||
if (ycbcrsubsampling[0] == 0) {
|
||||
if (ycbcrsubsampling[0]*ycbcrsubsampling[1] == 0) {
|
||||
TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
|
||||
"Invalid YCbCr subsampling");
|
||||
return 0;
|
||||
}
|
||||
|
||||
scanline = TIFFroundup(td->td_imagewidth,
|
||||
/* number of sample clumps per line */
|
||||
scanline = TIFFhowmany(td->td_imagewidth,
|
||||
ycbcrsubsampling[0]);
|
||||
scanline = TIFFhowmany8(multiply(tif, scanline,
|
||||
td->td_bitspersample,
|
||||
"TIFFScanlineSize"));
|
||||
return ((tsize_t)
|
||||
summarize(tif, scanline,
|
||||
multiply(tif, 2,
|
||||
scanline / ycbcrsubsampling[0],
|
||||
"TIFFVStripSize"),
|
||||
"TIFFVStripSize"));
|
||||
/* number of samples per line */
|
||||
scanline = multiply(tif, scanline,
|
||||
ycbcrsubsampling[0]*ycbcrsubsampling[1] + 2,
|
||||
"TIFFScanlineSize");
|
||||
} else {
|
||||
scanline = multiply(tif, td->td_imagewidth,
|
||||
td->td_samplesperpixel,
|
||||
@@ -308,9 +304,9 @@ TIFFNewScanlineSize(TIFF* tif)
|
||||
&& !isUpSampled(tif)) {
|
||||
uint16 ycbcrsubsampling[2];
|
||||
|
||||
TIFFGetField(tif, TIFFTAG_YCBCRSUBSAMPLING,
|
||||
ycbcrsubsampling + 0,
|
||||
ycbcrsubsampling + 1);
|
||||
TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRSUBSAMPLING,
|
||||
ycbcrsubsampling + 0,
|
||||
ycbcrsubsampling + 1);
|
||||
|
||||
if (ycbcrsubsampling[0]*ycbcrsubsampling[1] == 0) {
|
||||
TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
|
||||
|
||||
38
3rdparty/libtiff/tif_thunder.c
vendored
38
3rdparty/libtiff/tif_thunder.c
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tif_thunder.c,v 1.5.2.1 2010-06-08 18:50:43 bfriesen Exp $ */
|
||||
/* $Id: tif_thunder.c,v 1.5.2.2 2011-03-21 16:01:28 fwarmerdam Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -25,6 +25,7 @@
|
||||
*/
|
||||
|
||||
#include "tiffiop.h"
|
||||
#include <assert.h>
|
||||
#ifdef THUNDER_SUPPORT
|
||||
/*
|
||||
* TIFF Library.
|
||||
@@ -55,12 +56,32 @@
|
||||
static const int twobitdeltas[4] = { 0, 1, 0, -1 };
|
||||
static const int threebitdeltas[8] = { 0, 1, 2, 3, 0, -3, -2, -1 };
|
||||
|
||||
#define SETPIXEL(op, v) { \
|
||||
lastpixel = (v) & 0xf; \
|
||||
if (npixels++ & 1) \
|
||||
*op++ |= lastpixel; \
|
||||
else \
|
||||
#define SETPIXEL(op, v) { \
|
||||
lastpixel = (v) & 0xf; \
|
||||
if ( npixels < maxpixels ) \
|
||||
{ \
|
||||
if (npixels++ & 1) \
|
||||
*op++ |= lastpixel; \
|
||||
else \
|
||||
op[0] = (tidataval_t) (lastpixel << 4); \
|
||||
} \
|
||||
}
|
||||
|
||||
static int
|
||||
ThunderSetupDecode(TIFF* tif)
|
||||
{
|
||||
static const char module[] = "ThunderSetupDecode";
|
||||
|
||||
if( tif->tif_dir.td_bitspersample != 4 )
|
||||
{
|
||||
TIFFErrorExt(tif->tif_clientdata, module,
|
||||
"Wrong bitspersample value (%d), Thunder decoder only supports 4bits per sample.",
|
||||
(int) tif->tif_dir.td_bitspersample );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -142,7 +163,8 @@ ThunderDecodeRow(TIFF* tif, tidata_t buf, tsize_t occ, tsample_t s)
|
||||
occ -= tif->tif_scanlinesize;
|
||||
row += tif->tif_scanlinesize;
|
||||
}
|
||||
return (1);
|
||||
|
||||
return (1);
|
||||
}
|
||||
|
||||
int
|
||||
@@ -151,6 +173,7 @@ TIFFInitThunderScan(TIFF* tif, int scheme)
|
||||
(void) scheme;
|
||||
tif->tif_decoderow = ThunderDecodeRow;
|
||||
tif->tif_decodestrip = ThunderDecodeRow;
|
||||
tif->tif_setupdecode = ThunderSetupDecode;
|
||||
return (1);
|
||||
}
|
||||
#endif /* THUNDER_SUPPORT */
|
||||
@@ -163,3 +186,4 @@ TIFFInitThunderScan(TIFF* tif, int scheme)
|
||||
* fill-column: 78
|
||||
* End:
|
||||
*/
|
||||
|
||||
|
||||
7
3rdparty/libtiff/tiffiop.h
vendored
7
3rdparty/libtiff/tiffiop.h
vendored
@@ -1,4 +1,4 @@
|
||||
/* $Id: tiffiop.h,v 1.51.2.6 2010-06-12 02:55:16 bfriesen Exp $ */
|
||||
/* $Id: tiffiop.h,v 1.51.2.7 2011-03-21 21:09:19 fwarmerdam Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988-1997 Sam Leffler
|
||||
@@ -59,10 +59,13 @@ extern void *lfind(const void *, const void *, size_t *, size_t,
|
||||
|
||||
/*
|
||||
Libtiff itself does not require a 64-bit type, but bundled TIFF
|
||||
utilities may use it.
|
||||
utilities may use it.
|
||||
*/
|
||||
|
||||
#if !defined(__xlC__) && !defined(__xlc__) // Already defined there (#2301)
|
||||
typedef TIFF_INT64_T int64;
|
||||
typedef TIFF_UINT64_T uint64;
|
||||
#endif
|
||||
|
||||
#include "tiffio.h"
|
||||
#include "tif_dir.h"
|
||||
|
||||
4
3rdparty/libtiff/tiffvers.h
vendored
4
3rdparty/libtiff/tiffvers.h
vendored
@@ -1,4 +1,4 @@
|
||||
#define TIFFLIB_VERSION_STR "LIBTIFF, Version 3.9.4\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc."
|
||||
#define TIFFLIB_VERSION_STR "LIBTIFF, Version 3.9.5\nCopyright (c) 1988-1996 Sam Leffler\nCopyright (c) 1991-1996 Silicon Graphics, Inc."
|
||||
/*
|
||||
* This define can be used in code that requires
|
||||
* compilation-related definitions specific to a
|
||||
@@ -6,4 +6,4 @@
|
||||
* version checking should be done based on the
|
||||
* string returned by TIFFGetVersion.
|
||||
*/
|
||||
#define TIFFLIB_VERSION 20100615
|
||||
#define TIFFLIB_VERSION 20110409
|
||||
|
||||
36
3rdparty/readme.txt
vendored
36
3rdparty/readme.txt
vendored
@@ -11,7 +11,6 @@ libjpeg 6b (6.2) - The Independent JPEG Group's JPEG software.
|
||||
|
||||
HAVE_JPEG preprocessor flag must be set to make highgui use libjpeg.
|
||||
On UNIX systems configure script takes care of it.
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
libpng 1.4.3 - Portable Network Graphics library.
|
||||
Copyright (C) 1998-2010, Glenn Randers-Pehrson.
|
||||
@@ -20,15 +19,13 @@ libpng 1.4.3 - Portable Network Graphics library.
|
||||
|
||||
HAVE_PNG preprocessor flag must be set to make highgui use libpng.
|
||||
On UNIX systems configure script takes care of it.
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
libtiff 3.9.4 - Tag Image File Format (TIFF) Software
|
||||
libtiff 3.9.5 - Tag Image File Format (TIFF) Software
|
||||
Copyright (c) 1988-1997 Sam Leffler
|
||||
Copyright (c) 1991-1997 Silicon Graphics, Inc.
|
||||
See libtiff home page http://www.libtiff.org
|
||||
for details and links to the source code
|
||||
|
||||
|
||||
HAVE_TIFF preprocessor flag must be set to make highgui use libtiff.
|
||||
On UNIX systems configure script takes care of it.
|
||||
|
||||
@@ -42,9 +39,7 @@ zlib 1.2.5 - General purpose LZ77 compression library
|
||||
|
||||
No preprocessor definition is needed to make highgui use this library -
|
||||
it is included automatically if either libpng or libtiff are used.
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
jasper-1.900.1 - JasPer is a collection of software
|
||||
(i.e., a library and application programs) for the coding
|
||||
and manipulation of images. This software can handle image data in a
|
||||
@@ -61,9 +56,7 @@ jasper-1.900.1 - JasPer is a collection of software
|
||||
(lib/libjasper*). To get the latest source code,
|
||||
please, visit the project homepage:
|
||||
http://www.ece.uvic.ca/~mdadams/jasper/
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
openexr-1.4.0 - OpenEXR is a high dynamic-range (HDR) image file format developed
|
||||
by Industrial Light & Magic for use in computer imaging applications.
|
||||
|
||||
@@ -73,34 +66,15 @@ openexr-1.4.0 - OpenEXR is a high dynamic-range (HDR) image file format develope
|
||||
|
||||
The project homepage: http://www.openexr.com/
|
||||
|
||||
OpenCV on Windows does not include openexr codec by default.
|
||||
To add it, you will need to recompile highgui with OpenEXR support
|
||||
using VS.NET2003 or VS.NET2005 (MSVC6 can not compile it):
|
||||
1) download binaries (e.g. openexr-1.4.0-vs2005.zip)
|
||||
from the official site.
|
||||
2) copy
|
||||
half.lib, iex.lib, ilmimf.lib ilmthread.lib imath.lib to
|
||||
_graphics/lib
|
||||
3) copy include/openexr/*.h to _graphics/include/openexr
|
||||
4) open _make/opencv.sln
|
||||
5) in highgui/_highgui.h uncomment
|
||||
#define HAVE_ILMIMF 1
|
||||
6) build debug/release configurations of highgui.
|
||||
|
||||
OpenCV does not include openexr codec.
|
||||
To add it, you will need install OpenEXR, reconfigure OpenCV
|
||||
using CMake (make sure OpenEXR library is found) and the rebuild OpenCV.
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
ffmpeg-0.6.0 - FFmpeg is a complete, cross-platform solution to record,
|
||||
ffmpeg-0.8.0 - FFmpeg is a complete, cross-platform solution to record,
|
||||
convert and stream audio and video. It includes libavcodec -
|
||||
the leading audio/video codec library, and also libavformat, libavutils and
|
||||
other helper libraries that are used by OpenCV (in highgui module) to
|
||||
read and write video files.
|
||||
|
||||
The project homepage: http://ffmpeg.org/
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
videoInput-0.1995 - Video capturing library for Windows using DirectShow as backend
|
||||
Written by Theodore Watson
|
||||
http://muonics.net/school/spring05/videoInput/
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
4
3rdparty/zlib/CMakeLists.txt
vendored
4
3rdparty/zlib/CMakeLists.txt
vendored
@@ -29,7 +29,7 @@ set_target_properties(${the_target}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME "${the_target}"
|
||||
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/lib"
|
||||
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/3rdparty/${OPENCV_LIB_INSTALL_PATH}"
|
||||
)
|
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS)
|
||||
@@ -38,5 +38,5 @@ endif()
|
||||
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
install(TARGETS ${the_target}
|
||||
ARCHIVE DESTINATION share/opencv/3rdparty/lib COMPONENT main)
|
||||
ARCHIVE DESTINATION share/OpenCV/3rdparty/${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
|
||||
endif()
|
||||
|
||||
1083
CMakeLists.txt
1083
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
45
OpenCV.mk.in
45
OpenCV.mk.in
@@ -1,41 +1,53 @@
|
||||
RELATIVE_PREFIX:=.$(shell echo $(abspath $(LOCAL_PATH))| sed -e "s/\/[^\/]*/\/../g" )
|
||||
OPENCV_THIS_DIR:=$(RELATIVE_PREFIX)$(abspath $(dir $(lastword $(MAKEFILE_LIST))))
|
||||
OPENCV_LIBS_DIR:=@CMAKE_LIB_DIRS_CONFIGCMAKE@
|
||||
OPENCV_BASEDIR:=@CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@
|
||||
# In order to compile your application under cygwin
|
||||
# you need to define NDK_USE_CYGPATH=1 before calling ndk-build
|
||||
|
||||
USER_LOCAL_PATH:=$(LOCAL_PATH)
|
||||
LOCAL_PATH:=$(subst ?,,$(firstword ?$(subst \, ,$(subst /, ,$(call my-dir)))))
|
||||
|
||||
OPENCV_THIS_DIR:=$(patsubst $(LOCAL_PATH)\\%,%,$(patsubst $(LOCAL_PATH)/%,%,$(call my-dir)))
|
||||
OPENCV_LIBS_DIR:=@CMAKE_LIBS_DIR_CONFIGCMAKE@
|
||||
OPENCV_BASEDIR:=@CMAKE_BASE_INCLUDE_DIR_CONFIGCMAKE@
|
||||
OPENCV_LOCAL_C_INCLUDES:=@CMAKE_INCLUDE_DIRS_CONFIGCMAKE@
|
||||
|
||||
OPENCV_MODULES := contrib calib3d objdetect features2d imgproc video highgui ml legacy flann core
|
||||
OPENCV_MODULES := contrib calib3d objdetect features2d video imgproc highgui ml legacy flann core
|
||||
|
||||
ifeq (${OPENCV_CAMERA_MODULES},off)
|
||||
OPENCV_CAMERA_MODULES:=
|
||||
else
|
||||
OPENCV_CAMERA_MODULES:=@CMAKE_CAMERA_LIBS_CONFIGCMAKE@
|
||||
endif
|
||||
|
||||
OPENCV_LIB_TYPE:=@OPENCV_LIBTYPE_CONFIGMAKE@
|
||||
|
||||
ifeq ($(OPENCV_LIB_TYPE),SHARED)
|
||||
OPENCV_LIB_SUFFIX:=so
|
||||
OPENCV_EXTRA_COMPONENTS:=
|
||||
else
|
||||
OPENCV_LIB_SUFFIX:=a
|
||||
OPENCV_MODULES+= androidcamera
|
||||
OPENCV_EXTRA_COMPONENTS:=@JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ zlib
|
||||
ifeq (@WITH_ANDROID_CAMERA@,ON)
|
||||
OPENCV_MODULES+= androidcamera
|
||||
endif
|
||||
OPENCV_EXTRA_COMPONENTS:=@JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ @ZLIB_LIBRARY@
|
||||
endif
|
||||
|
||||
OPENCV_CAMERA_MODULES := @CMAKE_CAMERA_LIBS_CONFIGCMAKE@
|
||||
|
||||
define add_opencv_module
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=opencv_$1
|
||||
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/libopencv_$1.$(OPENCV_LIB_SUFFIX)
|
||||
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/libs/$(TARGET_ARCH_ABI)/libopencv_$1.$(OPENCV_LIB_SUFFIX)
|
||||
include $(PREBUILT_@OPENCV_LIBTYPE_CONFIGMAKE@_LIBRARY)
|
||||
endef
|
||||
|
||||
define add_opencv_extra_component
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=$1
|
||||
LOCAL_SRC_FILES:=$(OPENCV_THIS_DIR)/3rdparty/lib/lib$1.a
|
||||
LOCAL_SRC_FILES:=$(OPENCV_THIS_DIR)/3rdparty/libs/$(TARGET_ARCH_ABI)/lib$1.a
|
||||
include $(PREBUILT_STATIC_LIBRARY)
|
||||
endef
|
||||
|
||||
define add_opencv_camera_module
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_MODULE:=$1
|
||||
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/lib$1.so
|
||||
LOCAL_SRC_FILES:=$(OPENCV_LIBS_DIR)/libs/$(TARGET_ARCH_ABI)/lib$1.so
|
||||
include $(PREBUILT_SHARED_LIBRARY)
|
||||
endef
|
||||
|
||||
@@ -47,11 +59,16 @@ ifneq ($(OPENCV_BASEDIR),)
|
||||
OPENCV_LOCAL_C_INCLUDES += $(foreach mod, $(OPENCV_MODULES), $(OPENCV_BASEDIR)/modules/$(mod)/include)
|
||||
endif
|
||||
|
||||
OPENCV_LOCAL_LIBRARIES += $(foreach mod, $(OPENCV_MODULES), opencv_$(mod))
|
||||
ifeq ($(OPENCV_LIB_TYPE),STATIC)
|
||||
OPENCV_LOCAL_LIBRARIES += $(foreach mod, $(OPENCV_MODULES), opencv_$(mod))
|
||||
endif
|
||||
|
||||
OPENCV_LOCAL_LIBRARIES += $(OPENCV_EXTRA_COMPONENTS)
|
||||
OPENCV_LOCAL_CFLAGS := -fsigned-char -fPIC -DANDROID
|
||||
OPENCV_LOCAL_CFLAGS := -fPIC -DANDROID -fsigned-char
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_C_INCLUDES += $(OPENCV_LOCAL_C_INCLUDES)
|
||||
LOCAL_STATIC_LIBRARIES += $(OPENCV_LOCAL_LIBRARIES)
|
||||
LOCAL_CFLAGS += $(OPENCV_LOCAL_CFLAGS)
|
||||
|
||||
LOCAL_PATH:=$(USER_LOCAL_PATH)
|
||||
|
||||
143
OpenCVAndroidProject.cmake
Normal file
143
OpenCVAndroidProject.cmake
Normal file
@@ -0,0 +1,143 @@
|
||||
# creates target "${_target}_android_project" for building standard Android project
|
||||
macro(add_android_project _target _path)
|
||||
SET (android_dependencies opencv_contrib opencv_legacy opencv_objdetect opencv_calib3d opencv_features2d opencv_video opencv_highgui opencv_ml opencv_imgproc opencv_flann opencv_core)
|
||||
if(NOT BUILD_SHARED_LIBS)
|
||||
LIST(APPEND android_dependencies opencv_androidcamera)
|
||||
endif()
|
||||
|
||||
if (ANDROID AND CAN_BUILD_ANDROID_PROJECTS)
|
||||
file(GLOB_RECURSE res_files_all RELATIVE "${_path}" "${_path}/res/*")
|
||||
file(GLOB_RECURSE jni_files_all RELATIVE "${_path}" "${_path}/jni/*.c*" "${_path}/jni/*.h*")
|
||||
file(GLOB_RECURSE src_files_all RELATIVE "${_path}" "${_path}/src/*.java")
|
||||
|
||||
#remove .svn
|
||||
set(res_files)
|
||||
foreach(f ${res_files_all})
|
||||
if(NOT f MATCHES "\\.svn")
|
||||
list(APPEND res_files "${f}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(jni_files)
|
||||
foreach(f ${jni_files_all})
|
||||
if(NOT f MATCHES "\\.svn")
|
||||
list(APPEND jni_files "${f}")
|
||||
endif()
|
||||
endforeach()
|
||||
set(src_files)
|
||||
foreach(f ${src_files_all})
|
||||
if(NOT f MATCHES "\\.svn")
|
||||
list(APPEND src_files "${f}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# get temporary location for the project
|
||||
file(RELATIVE_PATH build_path "${OpenCV_SOURCE_DIR}" "${_path}")
|
||||
SET(build_path "${CMAKE_BINARY_DIR}/${build_path}")
|
||||
|
||||
# copy project to temporary location
|
||||
SET(${_target}_project_files)
|
||||
foreach(f ${res_files} ${src_files} "AndroidManifest.xml")
|
||||
if(NOT "${build_path}" STREQUAL "${_path}")
|
||||
#this is not needed in case of in-source build
|
||||
add_custom_command(
|
||||
OUTPUT "${build_path}/${f}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${_path}/${f}" "${build_path}/${f}"
|
||||
DEPENDS "${_path}/${f}"
|
||||
COMMENT ""
|
||||
)
|
||||
endif()
|
||||
list(APPEND ${_target}_project_files "${build_path}/${f}")
|
||||
endforeach()
|
||||
|
||||
# process default.properties
|
||||
file(STRINGS "${_path}/default.properties" default_properties REGEX "^android\\.library\\.reference\\.1=.+$")
|
||||
if (default_properties)
|
||||
# has opencv dependency
|
||||
file(RELATIVE_PATH OPENCV_REFERENCE_PATH "${build_path}" "${CMAKE_BINARY_DIR}")
|
||||
add_custom_command(
|
||||
OUTPUT "${build_path}/default.properties"
|
||||
OUTPUT "${build_path}/build.xml"
|
||||
OUTPUT "${build_path}/local.properties"
|
||||
OUTPUT "${build_path}/proguard.cfg"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "" > "default.properties"
|
||||
COMMAND ${ANDROID_EXECUTABLE} update project --name "${_target}" --target "${ANDROID_SDK_TARGET}" --library "${OPENCV_REFERENCE_PATH}" --path .
|
||||
WORKING_DIRECTORY ${build_path}
|
||||
DEPENDS ${${_target}_project_files}
|
||||
DEPENDS "${CMAKE_BINARY_DIR}/default.properties"
|
||||
DEPENDS "${CMAKE_BINARY_DIR}/AndroidManifest.xml"
|
||||
COMMENT "Updating android project - ${_target}"
|
||||
)
|
||||
else()
|
||||
# has no opencv dependency
|
||||
add_custom_command(
|
||||
OUTPUT "${build_path}/default.properties"
|
||||
OUTPUT "${build_path}/build.xml"
|
||||
OUTPUT "${build_path}/local.properties"
|
||||
OUTPUT "${build_path}/proguard.cfg"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "" > "default.properties"
|
||||
COMMAND ${ANDROID_EXECUTABLE} update project --name "${_target}" --target "${ANDROID_SDK_TARGET}" --path .
|
||||
WORKING_DIRECTORY ${build_path}
|
||||
DEPENDS ${${_target}_project_files}
|
||||
COMMENT "Updating android project - ${_target}"
|
||||
)
|
||||
endif()
|
||||
|
||||
if("${build_path}" STREQUAL "${_path}")
|
||||
#in case of in-source build default.properties file is not generated (it is just overwritten :)
|
||||
SET_SOURCE_FILES_PROPERTIES("${build_path}/default.properties" PROPERTIES GENERATED FALSE)
|
||||
endif()
|
||||
|
||||
list(APPEND ${_target}_project_files "${build_path}/default.properties" "${build_path}/build.xml" "${build_path}/local.properties" "${build_path}/proguard.cfg")
|
||||
|
||||
# build native part of android project
|
||||
if(jni_files)
|
||||
INCLUDE_DIRECTORIES("${_path}/jni")
|
||||
|
||||
FILE(STRINGS "${_path}/jni/Android.mk" JNI_LIB_NAME REGEX "LOCAL_MODULE[ ]*:=[ ]*.*" )
|
||||
string(REGEX REPLACE "LOCAL_MODULE[ ]*:=[ ]*([a-zA-Z_][a-zA-Z_0-9]*)[ ]*" "\\1" JNI_LIB_NAME "${JNI_LIB_NAME}")
|
||||
|
||||
SET(jni_sources)
|
||||
foreach(src ${jni_files})
|
||||
list(APPEND jni_sources "${_path}/${src}")
|
||||
endforeach()
|
||||
|
||||
ADD_LIBRARY(${JNI_LIB_NAME} MODULE ${jni_sources})
|
||||
TARGET_LINK_LIBRARIES(${JNI_LIB_NAME} ${OPENCV_LINKER_LIBS} ${android_dependencies})
|
||||
|
||||
set_target_properties(${JNI_LIB_NAME} PROPERTIES
|
||||
OUTPUT_NAME "${JNI_LIB_NAME}"
|
||||
LIBRARY_OUTPUT_DIRECTORY "${build_path}/libs/${ARMEABI_NDK_NAME}"
|
||||
)
|
||||
|
||||
ADD_CUSTOM_COMMAND(
|
||||
TARGET ${JNI_LIB_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_STRIP} "${build_path}/libs/${ARMEABI_NDK_NAME}/*.so"
|
||||
)
|
||||
else()
|
||||
SET(JNI_LIB_NAME)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${build_path}/bin/${_target}-debug.apk"
|
||||
OUTPUT "${CMAKE_BINARY_DIR}/bin/${_target}.apk"
|
||||
COMMAND ${ANT_EXECUTABLE} -q -noinput -k debug
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${build_path}/bin/${_target}-debug.apk" "${CMAKE_BINARY_DIR}/bin/${_target}.apk"
|
||||
WORKING_DIRECTORY ${build_path}
|
||||
DEPENDS ${${_target}_project_files}
|
||||
DEPENDS "${LIBRARY_OUTPUT_PATH}/libopencv_java.so"
|
||||
COMMENT "Generating bin/${_target}.apk"
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(${_target}_android_project ALL
|
||||
DEPENDS "${build_path}/bin/${_target}-debug.apk"
|
||||
DEPENDS "${CMAKE_BINARY_DIR}/bin/${_target}.apk"
|
||||
)
|
||||
|
||||
add_dependencies(${_target}_android_project opencv_java ${JNI_LIB_NAME})
|
||||
|
||||
if("${ARGN}" STREQUAL "INSTALL" AND INSTALL_ANDROID_EXAMPLES)
|
||||
install(FILES "${CMAKE_BINARY_DIR}/bin/${_target}.apk" DESTINATION "bin" COMPONENT main)
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
14
OpenCVConfig-version.cmake.in
Normal file
14
OpenCVConfig-version.cmake.in
Normal file
@@ -0,0 +1,14 @@
|
||||
set(OpenCV_VERSION @OPENCV_VERSION@)
|
||||
set(PACKAGE_VERSION ${OpenCV_VERSION})
|
||||
|
||||
set(PACKAGE_VERSION_EXACT False)
|
||||
set(PACKAGE_VERSION_COMPATIBLE False)
|
||||
|
||||
if(PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION)
|
||||
set(PACKAGE_VERSION_EXACT True)
|
||||
set(PACKAGE_VERSION_COMPATIBLE True)
|
||||
endif()
|
||||
|
||||
if(PACKAGE_FIND_VERSION VERSION_LESS PACKAGE_VERSION)
|
||||
set(PACKAGE_VERSION_COMPATIBLE True)
|
||||
endif()
|
||||
@@ -15,10 +15,19 @@
|
||||
# with this path is NOT needed.
|
||||
# - OpenCV_INCLUDE_DIRS : The OpenCV include directories.
|
||||
# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability
|
||||
# - OpenCV_VERSION : The version of this OpenCV build. Example: "1.2.0"
|
||||
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "1"
|
||||
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "2"
|
||||
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "0"
|
||||
# - OpenCV_VERSION : The version of this OpenCV build. Example: "@OPENCV_VERSION@"
|
||||
# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "@OPENCV_VERSION_MAJOR@"
|
||||
# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "@OPENCV_VERSION_MINOR@"
|
||||
# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "@OPENCV_VERSION_PATCH@"
|
||||
#
|
||||
# Advanced variables:
|
||||
# - OpenCV_SHARED
|
||||
# - OpenCV_CONFIG_PATH
|
||||
# - OpenCV_INSTALL_PATH
|
||||
# - OpenCV_LIB_COMPONENTS
|
||||
# - OpenCV_EXTRA_COMPONENTS
|
||||
# - OpenCV_USE_MANGLED_PATHS
|
||||
# - OpenCV_HAVE_ANDROID_CAMERA
|
||||
#
|
||||
# =================================================================================================
|
||||
|
||||
@@ -28,9 +37,20 @@
|
||||
# ======================================================
|
||||
SET(OpenCV_COMPUTE_CAPABILITIES @OpenCV_CUDA_CC@)
|
||||
|
||||
# Some additional settings are required if OpenCV is built as static libs
|
||||
set(OpenCV_SHARED @BUILD_SHARED_LIBS@)
|
||||
|
||||
# Enables mangled install paths, that help with side by side installs
|
||||
set(OpenCV_USE_MANGLED_PATHS @OPENCV_MANGLED_INSTALL_PATHS@)
|
||||
|
||||
# Extract the directory where *this* file has been installed (determined at cmake run-time)
|
||||
# This variable may or may not be used below, depending on the parsing of OpenCVConfig.cmake
|
||||
get_filename_component(THIS_OPENCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
|
||||
# Get the absolute path with no ../.. relative marks, to eliminate implicit linker warnings
|
||||
get_filename_component(OpenCV_INSTALL_PATH "${OpenCV_CONFIG_PATH}/../.." REALPATH)
|
||||
|
||||
# Presence of Android native camera support
|
||||
set (OpenCV_HAVE_ANDROID_CAMERA @WITH_ANDROID_CAMERA@)
|
||||
|
||||
# ======================================================
|
||||
# Include directories to add to the user project:
|
||||
@@ -38,7 +58,6 @@ get_filename_component(THIS_OPENCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH
|
||||
|
||||
# Provide the include directories to the caller
|
||||
SET(OpenCV_INCLUDE_DIRS @CMAKE_INCLUDE_DIRS_CONFIGCMAKE@)
|
||||
|
||||
INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
|
||||
|
||||
# ======================================================
|
||||
@@ -47,93 +66,100 @@ INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
|
||||
|
||||
# Provide the libs directory anyway, it may be needed in some cases.
|
||||
SET(OpenCV_LIB_DIR @CMAKE_LIB_DIRS_CONFIGCMAKE@)
|
||||
|
||||
LINK_DIRECTORIES(${OpenCV_LIB_DIR})
|
||||
|
||||
# ====================================================================
|
||||
# Link libraries: e.g. opencv_core220.so, opencv_imgproc220d.lib, etc...
|
||||
# Link libraries: e.g. libopencv_core.so, opencv_imgproc220d.lib, etc...
|
||||
# ====================================================================
|
||||
SET(OpenCV_LIB_COMPONENTS opencv_contrib opencv_legacy opencv_objdetect opencv_calib3d opencv_features2d opencv_video opencv_highgui opencv_ml opencv_imgproc opencv_flann opencv_core )
|
||||
#libraries order is very important because linker from Android NDK is one-pass linker
|
||||
if(NOT ANDROID)
|
||||
set(OPENCV_LIB_COMPONENTS opencv_core opencv_imgproc opencv_features2d opencv_gpu opencv_calib3d opencv_objdetect opencv_video opencv_highgui opencv_ml opencv_legacy opencv_contrib opencv_flann)
|
||||
else()
|
||||
#libraries order is very important because linker from Android NDK is one-pass linker
|
||||
set(OPENCV_LIB_COMPONENTS opencv_contrib opencv_calib3d opencv_objdetect opencv_features2d opencv_imgproc opencv_video opencv_highgui opencv_ml opencv_legacy opencv_flann opencv_core )
|
||||
IF (NOT @BUILD_SHARED_LIBS@)
|
||||
set(OPENCV_LIB_COMPONENTS ${OPENCV_LIB_COMPONENTS} opencv_androidcamera)
|
||||
ENDIF()
|
||||
LIST(INSERT OpenCV_LIB_COMPONENTS 0 opencv_gpu)
|
||||
ELSEIF(NOT OpenCV_SHARED AND OpenCV_HAVE_ANDROID_CAMERA)
|
||||
LIST(APPEND OpenCV_LIB_COMPONENTS opencv_androidcamera)
|
||||
endif()
|
||||
|
||||
if(OpenCV_USE_MANGLED_PATHS)
|
||||
#be explicit about the library names.
|
||||
set(OpenCV_LIB_COMPONENTS_ )
|
||||
foreach( CVLib ${OpenCV_LIB_COMPONENTS})
|
||||
list(APPEND OpenCV_LIB_COMPONENTS_ ${OpenCV_LIB_DIR}/lib${CVLib}.so.@OPENCV_VERSION@ )
|
||||
endforeach()
|
||||
set(OpenCV_LIB_COMPONENTS ${OpenCV_LIB_COMPONENTS_})
|
||||
endif()
|
||||
|
||||
SET(OpenCV_LIBS "")
|
||||
foreach(__CVLIB ${OPENCV_LIB_COMPONENTS})
|
||||
# CMake>=2.6 supports the notation "debug XXd optimized XX"
|
||||
if (CMAKE_MAJOR_VERSION GREATER 2 OR CMAKE_MINOR_VERSION GREATER 4)
|
||||
# Modern CMake:
|
||||
SET(OpenCV_LIBS ${OpenCV_LIBS} debug ${__CVLIB}@OPENCV_DLLVERSION@@OPENCV_DEBUG_POSTFIX@ optimized ${__CVLIB}@OPENCV_DLLVERSION@)
|
||||
else(CMAKE_MAJOR_VERSION GREATER 2 OR CMAKE_MINOR_VERSION GREATER 4)
|
||||
# Old CMake:
|
||||
SET(OpenCV_LIBS ${OpenCV_LIBS} ${__CVLIB}@OPENCV_DLLVERSION@)
|
||||
endif(CMAKE_MAJOR_VERSION GREATER 2 OR CMAKE_MINOR_VERSION GREATER 4)
|
||||
endforeach(__CVLIB)
|
||||
if(WIN32)
|
||||
foreach(__CVLIB ${OpenCV_LIB_COMPONENTS})
|
||||
# CMake>=2.6 supports the notation "debug XXd optimized XX"
|
||||
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 2.4)
|
||||
# Modern CMake:
|
||||
SET(OpenCV_LIBS ${OpenCV_LIBS} debug ${__CVLIB}@OPENCV_DLLVERSION@@OPENCV_DEBUG_POSTFIX@ optimized ${__CVLIB}@OPENCV_DLLVERSION@)
|
||||
else()
|
||||
# Old CMake:
|
||||
SET(OpenCV_LIBS ${OpenCV_LIBS} ${__CVLIB}@OPENCV_DLLVERSION@)
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
foreach(__CVLIB ${OpenCV_LIB_COMPONENTS})
|
||||
SET(OpenCV_LIBS ${OpenCV_LIBS} ${__CVLIB})
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# ==============================================================
|
||||
# Extra include directories, needed by OpenCV 2 new structure
|
||||
# ==============================================================
|
||||
if(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL "")
|
||||
SET(BASEDIR @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@)
|
||||
foreach(__CVLIB ${OPENCV_LIB_COMPONENTS})
|
||||
if(NOT "@CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE@" STREQUAL "")
|
||||
foreach(__CVLIB ${OpenCV_LIB_COMPONENTS})
|
||||
# We only need the "core",... part here: "opencv_core" -> "core"
|
||||
STRING(REGEX REPLACE "opencv_(.*)" "\\1" MODNAME ${__CVLIB})
|
||||
INCLUDE_DIRECTORIES("${BASEDIR}/modules/${MODNAME}/include")
|
||||
endforeach(__CVLIB)
|
||||
endif(NOT @CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@ STREQUAL "")
|
||||
STRING(REGEX REPLACE "opencv_(.*)" "\\1" __MODNAME ${__CVLIB})
|
||||
INCLUDE_DIRECTORIES("@CMAKE_OPENCV2_INCLUDE_DIRS_CONFIGCMAKE@/modules/${__MODNAME}/include")
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# For OpenCV built as static libs, we need the user to link against
|
||||
# many more dependencies:
|
||||
set(OpenCV_SHARED @BUILD_SHARED_LIBS@)
|
||||
|
||||
IF (NOT OpenCV_SHARED)
|
||||
# Under static libs, the user of OpenCV needs access to the 3rdparty libs as well:
|
||||
if(WIN32 AND NOT ANDROID)
|
||||
LINK_DIRECTORIES(@CMAKE_BASE_INCLUDE_DIRS_CONFIGCMAKE@/3rdparty/lib)
|
||||
else()
|
||||
LINK_DIRECTORIES("${THIS_OPENCV_CONFIG_PATH}/3rdparty/lib")
|
||||
endif()
|
||||
LINK_DIRECTORIES(@CMAKE_3RDPARTY_LIB_DIRS_CONFIGCMAKE@)
|
||||
|
||||
set(OpenCV_LIBS @OPENCV_LINKER_LIBS@ @IPP_LIBS@ @HIGHGUI_LIBRARIES@ ${OpenCV_LIBS})
|
||||
set(OpenCV_EXTRA_COMPONENTS @JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ @ZLIB_LIBRARY@)
|
||||
|
||||
set(OPENCV_EXTRA_COMPONENTS @JPEG_LIBRARIES@ @PNG_LIBRARIES@ @TIFF_LIBRARIES@ @JASPER_LIBRARIES@ zlib)
|
||||
|
||||
if (CMAKE_MAJOR_VERSION GREATER 2 OR CMAKE_MINOR_VERSION GREATER 4)
|
||||
foreach(__EXTRA_LIB ${OPENCV_EXTRA_COMPONENTS})
|
||||
if (WIN32 AND ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 2.4)
|
||||
# Modern CMake:
|
||||
foreach(__EXTRA_LIB ${OpenCV_EXTRA_COMPONENTS})
|
||||
set(OpenCV_LIBS ${OpenCV_LIBS}
|
||||
debug ${__EXTRA_LIB}@OPENCV_DEBUG_POSTFIX@
|
||||
optimized ${__EXTRA_LIB})
|
||||
endforeach(__EXTRA_LIB)
|
||||
else(CMAKE_MAJOR_VERSION GREATER 2 OR CMAKE_MINOR_VERSION GREATER 4)
|
||||
set(OpenCV_LIBS ${OpenCV_LIBS} ${OPENCV_EXTRA_COMPONENTS})
|
||||
endif(CMAKE_MAJOR_VERSION GREATER 2 OR CMAKE_MINOR_VERSION GREATER 4)
|
||||
|
||||
endforeach()
|
||||
else()
|
||||
# Old CMake:
|
||||
set(OpenCV_LIBS ${OpenCV_LIBS} ${OpenCV_EXTRA_COMPONENTS})
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
set(OpenCV_LIBS ${OpenCV_LIBS} "-lbz2" "-framework Cocoa" "-framework QuartzCore" "-framework QTKit")
|
||||
endif()
|
||||
ENDIF()
|
||||
|
||||
# ======================================================
|
||||
# Android camera helper macro
|
||||
# ======================================================
|
||||
IF (ANDROID)
|
||||
IF (OpenCV_HAVE_ANDROID_CAMERA)
|
||||
macro( COPY_NATIVE_CAMERA_LIBS target )
|
||||
IF( ARMEABI_V7A)
|
||||
get_target_property(target_location ${target} LOCATION)
|
||||
get_filename_component(target_location "${target_location}" PATH)
|
||||
file(GLOB camera_wrappers "${OpenCV_LIB_DIR}/libnative_camera_r*.so")
|
||||
foreach(wrapper ${camera_wrappers})
|
||||
ADD_CUSTOM_COMMAND(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${wrapper}" "${target_location}"
|
||||
)
|
||||
endforeach()
|
||||
ENDIF( ARMEABI_V7A )
|
||||
get_target_property(target_location ${target} LOCATION)
|
||||
get_filename_component(target_location "${target_location}" PATH)
|
||||
file(GLOB camera_wrappers "${OpenCV_LIB_DIR}/libnative_camera_r*.so")
|
||||
foreach(wrapper ${camera_wrappers})
|
||||
ADD_CUSTOM_COMMAND(
|
||||
TARGET ${target}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${wrapper}" "${target_location}"
|
||||
)
|
||||
endforeach()
|
||||
endmacro()
|
||||
ENDIF(ANDROID)
|
||||
ENDIF()
|
||||
|
||||
# ======================================================
|
||||
# Version variables:
|
||||
|
||||
@@ -43,6 +43,14 @@ set(IPPCV "cv") # computer vision
|
||||
set(IPPVM "vm") # vector math
|
||||
|
||||
|
||||
set(IPP_X64 0)
|
||||
if (CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
|
||||
set(IPP_X64 1)
|
||||
endif()
|
||||
if (CMAKE_CL_64)
|
||||
set(IPP_X64 1)
|
||||
endif()
|
||||
|
||||
# ------------------------------------------------------------------------
|
||||
# This function detect IPP version by analyzing ippversion.h file
|
||||
# Note, ippversion.h file was inroduced since IPP 5.3
|
||||
@@ -96,7 +104,7 @@ function(set_ipp_old_libraries)
|
||||
set(IPPCV "cv") # computer vision
|
||||
set(IPPVM "vm") # vector math
|
||||
|
||||
if (CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
|
||||
if (IPP_X64)
|
||||
set(IPP_ARCH "em64t")
|
||||
endif()
|
||||
|
||||
@@ -167,7 +175,7 @@ function(set_ipp_variables _LATEST_VERSION)
|
||||
set(IPP_INCLUDE_DIRS ${IPP_ROOT_DIR}/include PARENT_SCOPE)
|
||||
set(IPP_LIBRARY_DIRS ${IPP_ROOT_DIR}/lib PARENT_SCOPE)
|
||||
|
||||
if (CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
|
||||
if (IPP_X64)
|
||||
if(NOT EXISTS ${IPP_ROOT_DIR}/../em64t)
|
||||
message(SEND_ERROR "IPP EM64T libraries not found")
|
||||
endif()
|
||||
@@ -188,7 +196,7 @@ function(set_ipp_variables _LATEST_VERSION)
|
||||
# set INCLUDE and LIB folders
|
||||
set(IPP_INCLUDE_DIRS ${IPP_ROOT_DIR}/include PARENT_SCOPE)
|
||||
|
||||
if (CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8)
|
||||
if (IPP_X64)
|
||||
if(NOT EXISTS ${IPP_ROOT_DIR}/lib/intel64)
|
||||
message(SEND_ERROR "IPP EM64T libraries not found")
|
||||
endif()
|
||||
|
||||
@@ -47,55 +47,55 @@ IF (WIN32)
|
||||
|
||||
ENDIF (WIN32)
|
||||
|
||||
FIND_PROGRAM(LATEX_COMPILER
|
||||
FIND_HOST_PROGRAM(LATEX_COMPILER
|
||||
NAMES latex
|
||||
PATHS ${MIKTEX_BINARY_PATH}
|
||||
/usr/bin /usr/texbin
|
||||
)
|
||||
|
||||
FIND_PROGRAM(PDFLATEX_COMPILER
|
||||
FIND_HOST_PROGRAM(PDFLATEX_COMPILER
|
||||
NAMES pdflatex
|
||||
PATHS ${MIKTEX_BINARY_PATH}
|
||||
/usr/bin /usr/texbin
|
||||
)
|
||||
|
||||
FIND_PROGRAM(BIBTEX_COMPILER
|
||||
FIND_HOST_PROGRAM(BIBTEX_COMPILER
|
||||
NAMES bibtex
|
||||
PATHS ${MIKTEX_BINARY_PATH}
|
||||
/usr/bin /usr/texbin
|
||||
)
|
||||
|
||||
FIND_PROGRAM(MAKEINDEX_COMPILER
|
||||
FIND_HOST_PROGRAM(MAKEINDEX_COMPILER
|
||||
NAMES makeindex
|
||||
PATHS ${MIKTEX_BINARY_PATH}
|
||||
/usr/bin /usr/texbin
|
||||
)
|
||||
|
||||
FIND_PROGRAM(DVIPS_CONVERTER
|
||||
FIND_HOST_PROGRAM(DVIPS_CONVERTER
|
||||
NAMES dvips
|
||||
PATHS ${MIKTEX_BINARY_PATH}
|
||||
/usr/bin /usr/texbin
|
||||
)
|
||||
|
||||
FIND_PROGRAM(DVIPDF_CONVERTER
|
||||
FIND_HOST_PROGRAM(DVIPDF_CONVERTER
|
||||
NAMES dvipdfm dvipdft dvipdf
|
||||
PATHS ${MIKTEX_BINARY_PATH}
|
||||
/usr/bin /usr/texbin
|
||||
)
|
||||
|
||||
IF (WIN32)
|
||||
FIND_PROGRAM(PS2PDF_CONVERTER
|
||||
FIND_HOST_PROGRAM(PS2PDF_CONVERTER
|
||||
NAMES ps2pdf14.bat
|
||||
PATHS ${GHOSTSCRIPT_LIBRARY_PATH}
|
||||
)
|
||||
ELSE (WIN32)
|
||||
FIND_PROGRAM(PS2PDF_CONVERTER
|
||||
FIND_HOST_PROGRAM(PS2PDF_CONVERTER
|
||||
NAMES ps2pdf14 ps2pdf
|
||||
PATHS /usr/bin /usr/texbin
|
||||
)
|
||||
ENDIF (WIN32)
|
||||
|
||||
FIND_PROGRAM(LATEX2HTML_CONVERTER
|
||||
FIND_HOST_PROGRAM(LATEX2HTML_CONVERTER
|
||||
NAMES latex2html
|
||||
PATHS ${MIKTEX_BINARY_PATH}
|
||||
/usr/bin /usr/texbin
|
||||
|
||||
@@ -2,81 +2,57 @@
|
||||
# OPENNI_LIBRARY and OPENNI_INCLUDES to link OpenCV modules with OpenNI
|
||||
# HAVE_OPENNI for conditional compilation OpenCV with/without OpenNI
|
||||
|
||||
set(OPENNI_LIB_DESCR "Path to the directory of OpenNI libraries" CACHE INTERNAL "Description" )
|
||||
set(OPENNI_INCLUDE_DESCR "Path to the directory of OpenNI includes" CACHE INTERNAL "Description" )
|
||||
set(OPENNI_PRIME_SENSOR_MODULE_BIN_DESCR "Path to the directory of PrimeSensor Module binaries" CACHE INTERNAL "Description" )
|
||||
|
||||
if(NOT "${OPENNI_LIB_DIR}" STREQUAL "${OPENNI_LIB_DIR_INTERNAL}")
|
||||
unset(OPENNI_LIBRARY CACHE)
|
||||
endif()
|
||||
|
||||
if(NOT "${OPENNI_INCLUDE_DIR}" STREQUAL "${OPENNI_INCLUDE_DIR_INTERNAL}")
|
||||
unset(OPENNI_INCLUDES CACHE)
|
||||
endif()
|
||||
|
||||
if(NOT "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR}" STREQUAL "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR}")
|
||||
unset(OPENNI_PRIME_SENSOR_MODULE CACHE)
|
||||
endif()
|
||||
|
||||
if(NOT OPENNI_LIB_DIR OR OPENNI_LIB_DIR STREQUAL "")
|
||||
if(WIN32)
|
||||
set(OPENNI_LIB_DIR "c:/Program Files/OpenNI/Lib" CACHE PATH ${OPENNI_LIB_DESCR})
|
||||
elseif(UNIX OR APPLE)
|
||||
set(OPENNI_LIB_DIR "/usr/lib" CACHE PATH ${OPENNI_LIB_DESCR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT OPENNI_INCLUDE_DIR OR OPENNI_INCLUDE_DIR STREQUAL "")
|
||||
if(WIN32)
|
||||
set(OPENNI_INCLUDE_DIR "c:/Program Files/OpenNI/Include" CACHE PATH ${OPENNI_INCLUDE_DESCR})
|
||||
elseif(UNIX OR APPLE)
|
||||
set(OPENNI_INCLUDE_DIR "/usr/include/ni" CACHE PATH ${OPENNI_INCLUDE_DESCR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT OPENNI_PRIME_SENSOR_MODULE_BIN_DIR OR OPENNI_PRIME_SENSOR_MODULE_BIN_DIR STREQUAL "")
|
||||
if(WIN32)
|
||||
set(OPENNI_PRIME_SENSOR_MODULE_BIN_DIR "c:/Program Files/Prime Sense/Sensor/Bin" CACHE PATH ${OPENNI_PRIME_SENSOR_MODULE_BIN_DESCR})
|
||||
elseif(UNIX OR APPLE)
|
||||
set(OPENNI_PRIME_SENSOR_MODULE_BIN_DIR "/usr/lib" CACHE PATH ${OPENNI_PRIME_SENSOR_MODULE_BIN_DESCR})
|
||||
endif()
|
||||
unset(OPENNI_LIB_DIR CACHE)
|
||||
endif()
|
||||
|
||||
find_library(OPENNI_LIBRARY "OpenNI" PATHS ${OPENNI_LIB_DIR} DOC "OpenNI library" NO_DEFAULT_PATH)
|
||||
find_path(OPENNI_INCLUDES "XnCppWrapper.h" PATHS ${OPENNI_INCLUDE_DIR} DOC "OpenNI c++ interface header" NO_DEFAULT_PATH)
|
||||
if(NOT "${OPENNI_INCLUDE_DIR}" STREQUAL "${OPENNI_INCLUDE_DIR_INTERNAL}")
|
||||
unset(OPENNI_INCLUDES CACHE)
|
||||
unset(OPENNI_INCLUDE_DIR CACHE)
|
||||
endif()
|
||||
|
||||
if(NOT "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR}" STREQUAL "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR_INTERNAL}")
|
||||
unset(OPENNI_PRIME_SENSOR_MODULE CACHE)
|
||||
unset(OPENNI_PRIME_SENSOR_MODULE_BIN_DIR CACHE)
|
||||
endif()
|
||||
|
||||
find_file(OPENNI_INCLUDES "XnCppWrapper.h" PATHS $ENV{OPEN_NI_INCLUDE} "/usr/include/ni" "/usr/include/openni" "c:/Program Files/OpenNI/Include" DOC "OpenNI c++ interface header")
|
||||
find_library(OPENNI_LIBRARY "OpenNI" PATHS $ENV{OPEN_NI_LIB} "/usr/lib" "c:/Program Files/OpenNI/Lib" DOC "OpenNI library")
|
||||
|
||||
if(OPENNI_LIBRARY AND OPENNI_INCLUDES)
|
||||
set(HAVE_OPENNI TRUE)
|
||||
# the check: are PrimeSensor Modules for OpenNI installed?
|
||||
# the check: are PrimeSensor Modules for OpenNI installed
|
||||
if(WIN32)
|
||||
find_file(OPENNI_PRIME_SENSOR_MODULE "XnCore.dll" PATHS ${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR} DOC "Core library of PrimeSensor Modules for OpenNI" NO_DEFAULT_PATH)
|
||||
find_file(OPENNI_PRIME_SENSOR_MODULE "XnCore.dll" PATHS "c:/Program Files/Prime Sense/Sensor/Bin" DOC "Core library of PrimeSensor Modules for OpenNI")
|
||||
elseif(UNIX OR APPLE)
|
||||
find_library(OPENNI_PRIME_SENSOR_MODULE "XnCore" PATHS ${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR} DOC "Core library of PrimeSensor Modules for OpenNI" NO_DEFAULT_PATH)
|
||||
find_library(OPENNI_PRIME_SENSOR_MODULE "XnCore" PATHS "/usr/lib" DOC "Core library of PrimeSensor Modules for OpenNI")
|
||||
endif()
|
||||
|
||||
if(OPENNI_PRIME_SENSOR_MODULE)
|
||||
set(HAVE_OPENNI_PRIME_SENSOR_MODULE TRUE)
|
||||
endif()
|
||||
endif()
|
||||
endif() #if(OPENNI_LIBRARY AND OPENNI_INCLUDES)
|
||||
|
||||
get_filename_component(OPENNI_LIB_DIR "${OPENNI_LIBRARY}" PATH CACHE)
|
||||
get_filename_component(OPENNI_INCLUDE_DIR ${OPENNI_INCLUDES} PATH CACHE)
|
||||
get_filename_component(OPENNI_PRIME_SENSOR_MODULE_BIN_DIR "${OPENNI_PRIME_SENSOR_MODULE}" PATH CACHE)
|
||||
|
||||
if(OPENNI_LIBRARY)
|
||||
set(OPENNI_LIB_DIR_INTERNAL "${OPENNI_LIB_DIR}" CACHE INTERNAL "This is the value of the last time OPENNI_LIB_DIR was set successfully." FORCE)
|
||||
else()
|
||||
set(OPENNI_LIB_DIR "${OPENNI_LIB_DIR}-NOTFOUND or does not have OpenNI libraries" CACHE PATH ${OPENNI_LIB_DESCR} FORCE)
|
||||
message( WARNING, " OpenNI library directory (set by OPENNI_LIB_DIR variable) is not found or does not have OpenNI libraries." )
|
||||
endif()
|
||||
|
||||
if(OPENNI_INCLUDES)
|
||||
set(OPENNI_INCLUDE_DIR_INTERNAL "${OPENNI_INCLUDE_DIR}" CACHE INTERNAL "This is the value of the last time OPENNI_INCLUDE_DIR was set successfully." FORCE)
|
||||
else()
|
||||
set(OPENNI_INCLUDE_DIR "${OPENNI_INCLUDE_DIR}-NOTFOUND or does not have OpenNI includes" CACHE PATH ${OPENNI_INCLUDE_DESCR} FORCE)
|
||||
message( WARNING, " OpenNI include directory (set by OPENNI_INCLUDE_DIR variable) is not found or does not have OpenNI includes." )
|
||||
message( WARNING, " OpenNI include directory (set by OPENNI_INCLUDE_DIR variable) is not found or does not have OpenNI include files." )
|
||||
endif()
|
||||
|
||||
if(OPENNI_PRIME_SENSOR_MODULE)
|
||||
set(OPENNI_PRIME_SENSOR_MODULE_BIN_DIR_INTERNAL "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR}" CACHE INTERNAL "This is the value of the last time OPENNI_PRIME_SENSOR_MODULE_BIN_DIR was set successfully." FORCE)
|
||||
else()
|
||||
set(OPENNI_PRIME_SENSOR_MODULE_BIN_DIR "${OPENNI_PRIME_SENSOR_MODULE_BIN_DIR}-NOTFOUND or does not have PrimeSensor Module binaries" CACHE PATH ${OPENNI_PRIME_SENSOR_MODULE_BIN_DESCR} FORCE)
|
||||
message( WARNING, " PrimeSensor Module binaries directory (set by OPENNI_PRIME_SENSOR_MODULE_BIN_DIR variable) is not found or does not have PrimeSensor Module binaries." )
|
||||
endif()
|
||||
|
||||
|
||||
35
OpenCVFindXimea.cmake
Executable file
35
OpenCVFindXimea.cmake
Executable file
@@ -0,0 +1,35 @@
|
||||
# - Find XIMEA
|
||||
# This module finds if XIMEA Software package is installed
|
||||
# and determines where the binaries and header files are.
|
||||
# This code sets the following variables:
|
||||
#
|
||||
# XIMEA_FOUND - True if XIMEA API found
|
||||
# XIMEA_PATH: - Path to the XIMEA API folder
|
||||
# XIMEA_LIBRARY_DIRS - XIMEA libraries folder
|
||||
#
|
||||
# Created: 5 Aug 2011 by Marian Zajko (marian.zajko@ximea.com)
|
||||
#
|
||||
|
||||
set(XIMEA_FOUND)
|
||||
set(XIMEA_PATH)
|
||||
set(XIMEA_LIBRARY_DIR)
|
||||
|
||||
# Try to find the XIMEA API path in registry.
|
||||
GET_FILENAME_COMPONENT(XIMEA_PATH "[HKEY_CURRENT_USER\\Software\\XIMEA\\CamSupport\\API;Path]" ABSOLUTE)
|
||||
|
||||
if(XIMEA_PATH)
|
||||
set(XIMEA_FOUND 1)
|
||||
|
||||
# set LIB folders
|
||||
set(XIMEA_LIBRARY_DIR "${XIMEA_PATH}\\x86")
|
||||
|
||||
else()
|
||||
set(XIMEA_FOUND 0)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(FORCE XIMEA_FOUND)
|
||||
mark_as_advanced(FORCE XIMEA_PATH)
|
||||
mark_as_advanced(FORCE XIMEA_LIBRARY_DIR)
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,24 @@
|
||||
#opencv precompiled headers macro (can add pch to modules and tests)
|
||||
#this macro must be called after any "add_definitions" commands, otherwise precompiled headers will not work
|
||||
macro(add_opencv_precompiled_headers the_target)
|
||||
if("${the_target}" MATCHES "opencv_test_.*")
|
||||
SET(pch_name "test/test_precomp")
|
||||
else()
|
||||
SET(pch_name "src/precomp")
|
||||
endif()
|
||||
set(pch_header "${CMAKE_CURRENT_SOURCE_DIR}/${pch_name}.hpp")
|
||||
if(PCHSupport_FOUND AND USE_PRECOMPILED_HEADERS AND EXISTS "${pch_header}")
|
||||
if(CMAKE_GENERATOR MATCHES Visual)
|
||||
set(${the_target}_pch "${CMAKE_CURRENT_SOURCE_DIR}/${pch_name}.cpp")
|
||||
add_native_precompiled_header(${the_target} ${pch_header})
|
||||
elseif(CMAKE_GENERATOR MATCHES Xcode)
|
||||
add_native_precompiled_header(${the_target} ${pch_header})
|
||||
elseif(CMAKE_COMPILER_IS_GNUCXX AND CMAKE_GENERATOR MATCHES Makefiles)
|
||||
add_precompiled_header(${the_target} ${pch_header})
|
||||
endif()
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# this is template for a OpenCV module
|
||||
macro(define_opencv_module name)
|
||||
|
||||
@@ -8,20 +29,19 @@ macro(define_opencv_module name)
|
||||
"${CMAKE_CURRENT_BINARY_DIR}")
|
||||
|
||||
foreach(d ${ARGN})
|
||||
if(${d} MATCHES "opencv_")
|
||||
if(${d} MATCHES "opencv_lapack")
|
||||
else()
|
||||
string(REPLACE "opencv_" "${CMAKE_CURRENT_SOURCE_DIR}/../" d_dir ${d})
|
||||
include_directories("${d_dir}/include")
|
||||
endif()
|
||||
if(d MATCHES "opencv_")
|
||||
string(REPLACE "opencv_" "${CMAKE_CURRENT_SOURCE_DIR}/../" d_dir ${d})
|
||||
include_directories("${d_dir}/include")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
file(GLOB lib_srcs "src/*.cpp")
|
||||
file(GLOB lib_int_hdrs "src/*.h*")
|
||||
|
||||
if(COMMAND get_module_external_sources)
|
||||
get_module_external_sources(${name})
|
||||
endif()
|
||||
|
||||
source_group("Src" FILES ${lib_srcs} ${lib_int_hdrs})
|
||||
|
||||
file(GLOB lib_hdrs "include/opencv2/${name}/*.h*")
|
||||
@@ -66,17 +86,7 @@ macro(define_opencv_module name)
|
||||
INSTALL_NAME_DIR lib
|
||||
)
|
||||
|
||||
if(PCHSupport_FOUND AND USE_PRECOMPILED_HEADERS)
|
||||
set(pch_header ${CMAKE_CURRENT_SOURCE_DIR}/src/precomp.hpp)
|
||||
if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")
|
||||
if(${CMAKE_GENERATOR} MATCHES "Visual*")
|
||||
set(${the_target}_pch "src/precomp.cpp")
|
||||
endif()
|
||||
add_native_precompiled_header(${the_target} ${pch_header})
|
||||
elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")
|
||||
add_precompiled_header(${the_target} ${pch_header})
|
||||
endif()
|
||||
endif()
|
||||
add_opencv_precompiled_headers(${the_target})
|
||||
|
||||
# Add the required libraries for linking:
|
||||
target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${IPP_LIBS} ${ARGN})
|
||||
@@ -97,11 +107,11 @@ macro(define_opencv_module name)
|
||||
|
||||
install(TARGETS ${the_target}
|
||||
RUNTIME DESTINATION bin COMPONENT main
|
||||
LIBRARY DESTINATION lib COMPONENT main
|
||||
ARCHIVE DESTINATION lib COMPONENT main)
|
||||
LIBRARY DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main
|
||||
ARCHIVE DESTINATION ${OPENCV_LIB_INSTALL_PATH} COMPONENT main)
|
||||
|
||||
install(FILES ${lib_hdrs}
|
||||
DESTINATION include/opencv2/${name}
|
||||
DESTINATION ${OPENCV_INCLUDE_PREFIX}/opencv2/${name}
|
||||
COMPONENT main)
|
||||
|
||||
if(BUILD_TESTS AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/test)
|
||||
@@ -111,12 +121,9 @@ macro(define_opencv_module name)
|
||||
|
||||
set(test_deps opencv_${name} ${ARGN} opencv_ts opencv_highgui ${EXTRA_${the_target}_DEPS})
|
||||
foreach(d ${test_deps})
|
||||
if(${d} MATCHES "opencv_")
|
||||
if(${d} MATCHES "opencv_lapack")
|
||||
else()
|
||||
string(REPLACE "opencv_" "${CMAKE_CURRENT_SOURCE_DIR}/../" d_dir ${d})
|
||||
include_directories("${d_dir}/include")
|
||||
endif()
|
||||
if(d MATCHES "opencv_")
|
||||
string(REPLACE "opencv_" "${CMAKE_CURRENT_SOURCE_DIR}/../" d_dir ${d})
|
||||
include_directories("${d_dir}/include")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
@@ -130,24 +137,14 @@ macro(define_opencv_module name)
|
||||
|
||||
add_executable(${the_target} ${test_srcs} ${test_hdrs})
|
||||
|
||||
if(PCHSupport_FOUND AND USE_PRECOMPILED_HEADERS)
|
||||
set(pch_header ${CMAKE_CURRENT_SOURCE_DIR}/test/test_precomp.hpp)
|
||||
if(${CMAKE_GENERATOR} MATCHES "Visual*" OR ${CMAKE_GENERATOR} MATCHES "Xcode*")
|
||||
if(${CMAKE_GENERATOR} MATCHES "Visual*")
|
||||
set(${the_target}_pch "test/test_precomp.cpp")
|
||||
endif()
|
||||
add_native_precompiled_header(${the_target} ${pch_header})
|
||||
elseif(CMAKE_COMPILER_IS_GNUCXX AND ${CMAKE_GENERATOR} MATCHES ".*Makefiles")
|
||||
add_precompiled_header(${the_target} ${pch_header})
|
||||
endif()
|
||||
endif()
|
||||
add_opencv_precompiled_headers(${the_target})
|
||||
|
||||
# Additional target properties
|
||||
set_target_properties(${the_target} PROPERTIES
|
||||
DEBUG_POSTFIX "${OPENCV_DEBUG_POSTFIX}"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${EXECUTABLE_OUTPUT_PATH}"
|
||||
)
|
||||
|
||||
|
||||
if(ENABLE_SOLUTION_FOLDERS)
|
||||
set_target_properties(${the_target} PROPERTIES FOLDER "tests")
|
||||
endif()
|
||||
@@ -165,5 +162,5 @@ macro(define_opencv_module name)
|
||||
# install(TARGETS ${the_target} RUNTIME DESTINATION bin COMPONENT main)
|
||||
#endif()
|
||||
endif()
|
||||
|
||||
|
||||
endmacro()
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user