Compare commits
512 Commits
openh264v1
...
v1.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
825ce5dcd9 | ||
|
|
6f9624790c | ||
|
|
ca0ed2a067 | ||
|
|
be97ccb45b | ||
|
|
6e56e80a8a | ||
|
|
4f7602e268 | ||
|
|
d6ff4304fa | ||
|
|
3cce92ea19 | ||
|
|
dcdcc7f3b8 | ||
|
|
273e1227a5 | ||
|
|
43c62d06eb | ||
|
|
5d6b20119a | ||
|
|
a594ddf3e7 | ||
|
|
0a3d4c4ebc | ||
|
|
57aae73d4c | ||
|
|
94a1d4426e | ||
|
|
23b5a61153 | ||
|
|
33e67427ab | ||
|
|
4e89e71e8f | ||
|
|
8d5863a170 | ||
|
|
97298de90a | ||
|
|
3c4279cdd8 | ||
|
|
452fb868c7 | ||
|
|
41720f8df5 | ||
|
|
769c38d4c4 | ||
|
|
195d13612c | ||
|
|
6c4f0d7d85 | ||
|
|
e415c3fe70 | ||
|
|
b17e9bb320 | ||
|
|
7720f2cc5d | ||
|
|
88b7a62f98 | ||
|
|
a765197b73 | ||
|
|
d720122a37 | ||
|
|
cbe7891300 | ||
|
|
5762cbb8fc | ||
|
|
1a78f69f2f | ||
|
|
d1a3bd3d33 | ||
|
|
89454f0cf9 | ||
|
|
9a0d56da97 | ||
|
|
d74c0f6ae6 | ||
|
|
9d182ee515 | ||
|
|
2479abf5c0 | ||
|
|
869c567f04 | ||
|
|
cdb7e5da61 | ||
|
|
46ee46c186 | ||
|
|
d9e0f2b023 | ||
|
|
39d725c113 | ||
|
|
cab92a3e36 | ||
|
|
ba535bda4d | ||
|
|
2ff61475d6 | ||
|
|
1e62aafcde | ||
|
|
4fc27714bd | ||
|
|
3ad4d9070e | ||
|
|
024ac63f15 | ||
|
|
614e898b67 | ||
|
|
3885bd8f0e | ||
|
|
b425450bc1 | ||
|
|
ad247a9a4a | ||
|
|
f9bab05b3a | ||
|
|
52419bd13e | ||
|
|
8c8cd50c96 | ||
|
|
68fed53687 | ||
|
|
b7c54242a9 | ||
|
|
04c2a7ac5c | ||
|
|
27a21edcc9 | ||
|
|
3593f2e3e7 | ||
|
|
007fb47004 | ||
|
|
0affe66f93 | ||
|
|
311272d341 | ||
|
|
efdefdba28 | ||
|
|
a3a0effc88 | ||
|
|
d875d923f8 | ||
|
|
6b1630cc90 | ||
|
|
3904c025cb | ||
|
|
72df20000b | ||
|
|
fd8d41dbb9 | ||
|
|
07fa3d1898 | ||
|
|
6673a5f71e | ||
|
|
e4b373a800 | ||
|
|
cf2cf9efd9 | ||
|
|
6ae38da3ab | ||
|
|
19c02bdfa8 | ||
|
|
bab0bf18f8 | ||
|
|
8945348c87 | ||
|
|
ed341048de | ||
|
|
73d27e9776 | ||
|
|
bef3d87f34 | ||
|
|
9f20c727d1 | ||
|
|
810d20a59d | ||
|
|
d0f9b218f4 | ||
|
|
ffebbdb9b2 | ||
|
|
4e57a46ca5 | ||
|
|
c618cb1eaf | ||
|
|
a3bdf4ffc9 | ||
|
|
147c9052b8 | ||
|
|
cfbf32b3fb | ||
|
|
f8d2ae42ef | ||
|
|
a59a989d9b | ||
|
|
06e56ecdd8 | ||
|
|
f6fb459a7f | ||
|
|
fd8db0451e | ||
|
|
ee2f87dbbc | ||
|
|
17df23c2eb | ||
|
|
480ff5acc2 | ||
|
|
66e38cc9ed | ||
|
|
c480ffdad5 | ||
|
|
84ca659f06 | ||
|
|
25cad576b3 | ||
|
|
f5b9d920ff | ||
|
|
64fa8a6b60 | ||
|
|
ac2de4cbab | ||
|
|
3ba0a9956a | ||
|
|
c4a446b43a | ||
|
|
880bf2d621 | ||
|
|
1d37250301 | ||
|
|
7e71714863 | ||
|
|
05684744c9 | ||
|
|
3ff145e839 | ||
|
|
25b723c413 | ||
|
|
ca96def4ff | ||
|
|
c213c6ba30 | ||
|
|
8538b22f23 | ||
|
|
399ca33284 | ||
|
|
4e54fd191b | ||
|
|
19dcff8616 | ||
|
|
68e92f9eb6 | ||
|
|
5c67f368c3 | ||
|
|
a6cc71208e | ||
|
|
58eba54e8c | ||
|
|
9d9c609aab | ||
|
|
958113073f | ||
|
|
37ae6505d4 | ||
|
|
c5091e73be | ||
|
|
8eafdfa598 | ||
|
|
e7cd53e81b | ||
|
|
f8d5f93b16 | ||
|
|
48f203929e | ||
|
|
b85a09163f | ||
|
|
49ce86c78a | ||
|
|
72862118f9 | ||
|
|
631ca210a8 | ||
|
|
b51ff51387 | ||
|
|
4001551027 | ||
|
|
458cc6b4fd | ||
|
|
522aa4457a | ||
|
|
311f7006fd | ||
|
|
9913b73cb1 | ||
|
|
9e7a19291c | ||
|
|
0fe477625c | ||
|
|
6b64efbf92 | ||
|
|
235f6e3474 | ||
|
|
77552551f7 | ||
|
|
679cc4ac6c | ||
|
|
c6a136c742 | ||
|
|
1a394d1432 | ||
|
|
bffbde9f45 | ||
|
|
84848bb7d3 | ||
|
|
bb43c1c9a9 | ||
|
|
f003fa1fe6 | ||
|
|
1df4cd43cc | ||
|
|
6f553c9742 | ||
|
|
79157ce632 | ||
|
|
a6df69c305 | ||
|
|
a1dbf6ab13 | ||
|
|
ef590de0dc | ||
|
|
684c42536d | ||
|
|
881667a533 | ||
|
|
4fc144b698 | ||
|
|
1b1ea2b9ef | ||
|
|
d63172db9b | ||
|
|
2f041c7a4b | ||
|
|
43dc6f01e1 | ||
|
|
61926f208c | ||
|
|
199d19a785 | ||
|
|
7c95ccc6a7 | ||
|
|
f2437f24b9 | ||
|
|
c287a9109f | ||
|
|
3735cfc1bd | ||
|
|
315d9315c4 | ||
|
|
7e8cde055f | ||
|
|
0227f87b7a | ||
|
|
d98fd57252 | ||
|
|
4ece8efaed | ||
|
|
cef43e30fe | ||
|
|
15124b1258 | ||
|
|
b5a01efa96 | ||
|
|
aa7eb5fd09 | ||
|
|
849a730608 | ||
|
|
24bd0b74ae | ||
|
|
c1cc195ab1 | ||
|
|
06ab5b1934 | ||
|
|
d4eff959ed | ||
|
|
77e01435c0 | ||
|
|
43e1c46756 | ||
|
|
3ff6bf8ac1 | ||
|
|
5809db9eff | ||
|
|
22e7750bb3 | ||
|
|
0187c84f29 | ||
|
|
c3710c4130 | ||
|
|
2361f7543b | ||
|
|
cafb91a66a | ||
|
|
cebf586c3a | ||
|
|
40ca34ae13 | ||
|
|
67b5a79c2e | ||
|
|
76c6ff4b0f | ||
|
|
0b23d0facb | ||
|
|
9b97138786 | ||
|
|
674af41108 | ||
|
|
8935bfaa91 | ||
|
|
770400103f | ||
|
|
6d4a628331 | ||
|
|
93af7bfc64 | ||
|
|
81f7b0c108 | ||
|
|
dcc3d90574 | ||
|
|
40e952f981 | ||
|
|
0163eb520d | ||
|
|
bac5511694 | ||
|
|
9b5902b94a | ||
|
|
035019f052 | ||
|
|
ac7fac9644 | ||
|
|
0951c8fc0c | ||
|
|
0c32465aac | ||
|
|
863dc78c25 | ||
|
|
d6f0dee0c4 | ||
|
|
ced2a8e4bc | ||
|
|
ddbd41cbc5 | ||
|
|
a4eea4c64d | ||
|
|
11c9f2037d | ||
|
|
a19974d009 | ||
|
|
7486bb1100 | ||
|
|
94815cf993 | ||
|
|
8da63eae33 | ||
|
|
441dc45e69 | ||
|
|
153a0311db | ||
|
|
dddb825bbd | ||
|
|
eb6fb7fc72 | ||
|
|
6047ff930e | ||
|
|
e6f838e331 | ||
|
|
fd9a9e521f | ||
|
|
3f839e367c | ||
|
|
7fb9e57f30 | ||
|
|
e3d8524c82 | ||
|
|
28fa2e7c98 | ||
|
|
47f1ac7307 | ||
|
|
462f56d413 | ||
|
|
b230a6deee | ||
|
|
3596b6ced0 | ||
|
|
d3dc48d1d1 | ||
|
|
f4054f2633 | ||
|
|
fc9203cb50 | ||
|
|
45d95d2f50 | ||
|
|
81ac3d2a9b | ||
|
|
464244ccbe | ||
|
|
955d27b3a2 | ||
|
|
e25a82b3d6 | ||
|
|
f69c9074e7 | ||
|
|
0f95fac4ca | ||
|
|
4b5e893fcc | ||
|
|
87107c50a3 | ||
|
|
f9448ced69 | ||
|
|
ef88889404 | ||
|
|
136e169c01 | ||
|
|
a893e22311 | ||
|
|
711f5cabe7 | ||
|
|
76863f977a | ||
|
|
b35f5797de | ||
|
|
1e34a61dd6 | ||
|
|
42384c0cb4 | ||
|
|
f82726d7ef | ||
|
|
d243608611 | ||
|
|
e14186b535 | ||
|
|
9d2e1a9384 | ||
|
|
dc833e19f4 | ||
|
|
2b26a28d15 | ||
|
|
3703ba16a4 | ||
|
|
186f4c0d29 | ||
|
|
0f9c2dbb12 | ||
|
|
e346bc5263 | ||
|
|
f2314151e8 | ||
|
|
2ac973474a | ||
|
|
a2b727fb6b | ||
|
|
681b1da698 | ||
|
|
493d254a4a | ||
|
|
49f8fe8c5c | ||
|
|
f7cd6e7aad | ||
|
|
57f4548daf | ||
|
|
febb3ebb9b | ||
|
|
5948e8af3f | ||
|
|
7b3bf074b3 | ||
|
|
6190c10de8 | ||
|
|
f8e5d3a7bf | ||
|
|
46f1c898c6 | ||
|
|
352f5eea7a | ||
|
|
2f6a986d7c | ||
|
|
38d2d64ede | ||
|
|
dacd22d695 | ||
|
|
03af36dc54 | ||
|
|
38cc9acdd3 | ||
|
|
c3702d9075 | ||
|
|
af417b5ae4 | ||
|
|
642b405f87 | ||
|
|
5f0ef6a5a9 | ||
|
|
0b85855e98 | ||
|
|
84f33aa8e4 | ||
|
|
439e51bc11 | ||
|
|
ef1098be9c | ||
|
|
a5707738b7 | ||
|
|
4ebf8266a1 | ||
|
|
00d0180f26 | ||
|
|
e8fafebd96 | ||
|
|
df16cd9d0c | ||
|
|
cff49f5e45 | ||
|
|
3aec3a2606 | ||
|
|
0dd0b06287 | ||
|
|
ed12e6aa46 | ||
|
|
3139fe7a88 | ||
|
|
11bf575892 | ||
|
|
5356249100 | ||
|
|
059e19074a | ||
|
|
11f0a11177 | ||
|
|
ecfd7df157 | ||
|
|
aa41dc43bd | ||
|
|
2ac06c4a61 | ||
|
|
2ec91a0bbe | ||
|
|
f68b0811f0 | ||
|
|
baf82f1b32 | ||
|
|
681919da8e | ||
|
|
8c663ffe66 | ||
|
|
a1bc5fa1b5 | ||
|
|
cd4a615c43 | ||
|
|
8dd5d483d4 | ||
|
|
e8fdd4cf75 | ||
|
|
eff4b3ae4d | ||
|
|
d2896038b8 | ||
|
|
4ee434691a | ||
|
|
d0d6842f73 | ||
|
|
adc7be9f01 | ||
|
|
4afb83e3b0 | ||
|
|
ae62909aab | ||
|
|
964e98fb76 | ||
|
|
3240a14baa | ||
|
|
8fb6677266 | ||
|
|
79276c38dd | ||
|
|
4335167792 | ||
|
|
39d490b23d | ||
|
|
933c477717 | ||
|
|
8e2d92e5c9 | ||
|
|
91bbd18d2e | ||
|
|
6543900747 | ||
|
|
e286144524 | ||
|
|
e58de20f3a | ||
|
|
b53f8909de | ||
|
|
30e510e307 | ||
|
|
b1a76aa936 | ||
|
|
7932845674 | ||
|
|
de624c0972 | ||
|
|
f78f395683 | ||
|
|
a22d976b4e | ||
|
|
6ba537bee5 | ||
|
|
8b3aa2d826 | ||
|
|
4d0c832b47 | ||
|
|
1c42743999 | ||
|
|
7624b360f0 | ||
|
|
a8286234bb | ||
|
|
d5a45ec513 | ||
|
|
a365b42d3b | ||
|
|
d215a5f879 | ||
|
|
ab1778a523 | ||
|
|
cf0ac5504b | ||
|
|
ed4db186a1 | ||
|
|
0b80b7fa79 | ||
|
|
4433740722 | ||
|
|
8253049383 | ||
|
|
300cceaabf | ||
|
|
06d92c4ed1 | ||
|
|
562f38afff | ||
|
|
33a7e02261 | ||
|
|
470246c20f | ||
|
|
910c64ef22 | ||
|
|
c12cf3b2a0 | ||
|
|
5397265021 | ||
|
|
7847f69eab | ||
|
|
e2425df06c | ||
|
|
78650363b8 | ||
|
|
9b11f25300 | ||
|
|
f3a5655754 | ||
|
|
69be28bd1b | ||
|
|
123b904f77 | ||
|
|
a555639dd2 | ||
|
|
0d1699b67f | ||
|
|
9ac7cd2816 | ||
|
|
3797aa1a14 | ||
|
|
811e20f0d9 | ||
|
|
71e59fd31c | ||
|
|
f26c7e3f4f | ||
|
|
7e3812c970 | ||
|
|
2627c05117 | ||
|
|
6b67aa3516 | ||
|
|
8d22836ecd | ||
|
|
df8623dce1 | ||
|
|
fa8e56e944 | ||
|
|
288e2b3cdf | ||
|
|
63e3c6588a | ||
|
|
a0320dac5d | ||
|
|
74b52e8a31 | ||
|
|
ef7cce3d14 | ||
|
|
a0e569da81 | ||
|
|
396249fedc | ||
|
|
cd026ef166 | ||
|
|
2db10df5c6 | ||
|
|
2a83a85eb7 | ||
|
|
948356993b | ||
|
|
990bdda615 | ||
|
|
22f04159bb | ||
|
|
04f066ae7c | ||
|
|
9aaeef9264 | ||
|
|
6966679f33 | ||
|
|
71c5acc7a1 | ||
|
|
b9058e4987 | ||
|
|
93e9694bc6 | ||
|
|
efdb0cd2e2 | ||
|
|
e63dad0b6c | ||
|
|
29bb1df645 | ||
|
|
f94a20d7b5 | ||
|
|
5c3e16842d | ||
|
|
27499895f7 | ||
|
|
c1a9beeab8 | ||
|
|
c9a6482fc6 | ||
|
|
9626596421 | ||
|
|
b7ea251e95 | ||
|
|
d7f3331c9d | ||
|
|
7f36b244f7 | ||
|
|
832bf7c45d | ||
|
|
d633f8584a | ||
|
|
aaedb508c3 | ||
|
|
333cf6aa97 | ||
|
|
b02f75f608 | ||
|
|
010e423b2b | ||
|
|
3632a0331c | ||
|
|
4a518655a6 | ||
|
|
c4fc6642cf | ||
|
|
2791929e03 | ||
|
|
b6b7bb7680 | ||
|
|
110ce9ceca | ||
|
|
b669801e89 | ||
|
|
3a37586970 | ||
|
|
d1123a8bb1 | ||
|
|
bc76a8f9b3 | ||
|
|
c36f864682 | ||
|
|
36cfb3bd32 | ||
|
|
4cdee3b2d1 | ||
|
|
bd560b474a | ||
|
|
d49e7208fb | ||
|
|
ee4166ebea | ||
|
|
3bc9b47465 | ||
|
|
1acb0fb89f | ||
|
|
0ee2562004 | ||
|
|
db476bac57 | ||
|
|
edb9872473 | ||
|
|
301ccb1081 | ||
|
|
c0c51eb73e | ||
|
|
e9610e465e | ||
|
|
b63b13e6f0 | ||
|
|
140a67dfc9 | ||
|
|
e02f5ba3cd | ||
|
|
cbc5f3bf4b | ||
|
|
99dc18c0ba | ||
|
|
79891067e9 | ||
|
|
a3800d205d | ||
|
|
da0f65ea0a | ||
|
|
6310017877 | ||
|
|
c72f82e7a7 | ||
|
|
0dc2c3b031 | ||
|
|
21691a6741 | ||
|
|
d4baad0dcb | ||
|
|
209c607020 | ||
|
|
d5c71dbe2f | ||
|
|
019fb9e20e | ||
|
|
0cafc565be | ||
|
|
eaf7d65518 | ||
|
|
0110e5df55 | ||
|
|
4edc5f60a1 | ||
|
|
7bb422803d | ||
|
|
2531e26da1 | ||
|
|
d070f9e7f2 | ||
|
|
1dd5a7a866 | ||
|
|
70e9ff3a33 | ||
|
|
17c14d44e2 | ||
|
|
a11fdcd647 | ||
|
|
beaf7c1893 | ||
|
|
e5eed1f65b | ||
|
|
ac0e5cb7b4 | ||
|
|
013de2602a | ||
|
|
b86e1f00b2 | ||
|
|
a29645cefe | ||
|
|
e465cc8bc3 | ||
|
|
fb52509cee | ||
|
|
9ccfea24a7 | ||
|
|
71617445df | ||
|
|
73ccb74414 | ||
|
|
821483a4e9 | ||
|
|
6bf65da869 | ||
|
|
569033c091 | ||
|
|
46c4335cb5 | ||
|
|
79f80ac7da | ||
|
|
3068814e90 | ||
|
|
45c2fff6b8 | ||
|
|
fb47e529fc | ||
|
|
53b79c0c1f | ||
|
|
2f53a08aba | ||
|
|
78771344b7 | ||
|
|
ae12fbde1c |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,7 +1,6 @@
|
|||||||
# Object files
|
# Object files
|
||||||
*.o
|
*.o
|
||||||
*.obj
|
*.obj
|
||||||
codec/obj
|
|
||||||
|
|
||||||
# Dependency files
|
# Dependency files
|
||||||
*.d
|
*.d
|
||||||
|
|||||||
31
.travis.yml
31
.travis.yml
@@ -1,15 +1,38 @@
|
|||||||
language: cpp
|
language: cpp
|
||||||
|
|
||||||
compiler:
|
compiler:
|
||||||
- g++
|
- g++
|
||||||
- clang
|
- clang
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- sudo apt-get update -qq
|
- sudo apt-get update -qq
|
||||||
- sudo apt-get install -qq nasm g++-4.6-multilib gcc-multilib libc6-dev-i386
|
- sudo apt-get install -qq nasm g++-4.6-multilib gcc-multilib libc6-dev-i386
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- make gmp-bootstrap
|
- make gmp-bootstrap
|
||||||
- make gtest-bootstrap
|
- make gtest-bootstrap
|
||||||
|
|
||||||
|
before_script:
|
||||||
|
- WorkingDir=`pwd`
|
||||||
|
- cd test/encoder_binary_comparison
|
||||||
|
- ./run_PrepareAllTestData.sh 64
|
||||||
|
- cd ${WorkingDir}
|
||||||
|
|
||||||
|
env:
|
||||||
|
- TASK=UnitTest; TestParameter=""
|
||||||
|
- TASK=BinaryCompare; TestParameter=BA_MW_D.264
|
||||||
|
- TASK=BinaryCompare; TestParameter=LS_SVA_D.264
|
||||||
|
- TASK=BinaryCompare; TestParameter=CVPCMNL1_SVA_C.264
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
exclude:
|
||||||
|
- compiler: clang
|
||||||
|
env: TASK=BinaryCompare; TestParameter=BA_MW_D.264
|
||||||
|
- compiler: clang
|
||||||
|
env: TASK=BinaryCompare; TestParameter=LS_SVA_D.264
|
||||||
|
- compiler: clang
|
||||||
|
env: TASK=BinaryCompare; TestParameter=CVPCMNL1_SVA_C.264
|
||||||
script:
|
script:
|
||||||
- make -B ENABLE64BIT=Yes BUILDTYPE=Release all plugin test
|
- echo "currrent test is for ${TASK}"
|
||||||
- make -B ENABLE64BIT=Yes BUILDTYPE=Debug all plugin test
|
- echo "test parameter is ${TestParameter}"
|
||||||
- make -B ENABLE64BIT=No BUILDTYPE=Release all plugin test
|
- ./run_Test.sh ${TASK} ${TestParameter}
|
||||||
- make -B ENABLE64BIT=No BUILDTYPE=Debug all plugin test
|
|
||||||
|
|||||||
@@ -44,8 +44,9 @@ Rory Zhang
|
|||||||
Volvet Zhang
|
Volvet Zhang
|
||||||
Ling Zhu
|
Ling Zhu
|
||||||
James Zhu
|
James Zhu
|
||||||
|
Dong Zhang
|
||||||
|
Haibo Zhu
|
||||||
|
Huade Shi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
125
Makefile
125
Makefile
@@ -1,3 +1,10 @@
|
|||||||
|
SRC_PATH=$(word 1, $(dir $(MAKEFILE_LIST)))
|
||||||
|
vpath %.c $(SRC_PATH)
|
||||||
|
vpath %.cc $(SRC_PATH)
|
||||||
|
vpath %.cpp $(SRC_PATH)
|
||||||
|
vpath %.asm $(SRC_PATH)
|
||||||
|
vpath %.S $(SRC_PATH)
|
||||||
|
|
||||||
OS=$(shell uname | tr A-Z a-z | tr -d \\-[:digit:].)
|
OS=$(shell uname | tr A-Z a-z | tr -d \\-[:digit:].)
|
||||||
ARCH=$(shell uname -m)
|
ARCH=$(shell uname -m)
|
||||||
LIBPREFIX=lib
|
LIBPREFIX=lib
|
||||||
@@ -17,15 +24,16 @@ SHARED=-shared
|
|||||||
OBJ=o
|
OBJ=o
|
||||||
PROJECT_NAME=openh264
|
PROJECT_NAME=openh264
|
||||||
MODULE_NAME=gmpopenh264
|
MODULE_NAME=gmpopenh264
|
||||||
|
GMP_API_BRANCH=master
|
||||||
CCASFLAGS=$(CFLAGS)
|
CCASFLAGS=$(CFLAGS)
|
||||||
|
|
||||||
ifeq (,$(wildcard ./gmp-api))
|
ifeq (,$(wildcard $(SRC_PATH)gmp-api))
|
||||||
HAVE_GMP_API=No
|
HAVE_GMP_API=No
|
||||||
else
|
else
|
||||||
HAVE_GMP_API=Yes
|
HAVE_GMP_API=Yes
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (,$(wildcard ./gtest))
|
ifeq (,$(wildcard $(SRC_PATH)gtest))
|
||||||
HAVE_GTEST=No
|
HAVE_GTEST=No
|
||||||
else
|
else
|
||||||
HAVE_GTEST=Yes
|
HAVE_GTEST=Yes
|
||||||
@@ -45,7 +53,7 @@ CFLAGS += -fsanitize=address
|
|||||||
LDFLAGS += -fsanitize=address
|
LDFLAGS += -fsanitize=address
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include build/platform-$(OS).mk
|
include $(SRC_PATH)build/platform-$(OS).mk
|
||||||
|
|
||||||
|
|
||||||
CFLAGS +=
|
CFLAGS +=
|
||||||
@@ -67,62 +75,72 @@ ifneq ($(V),Yes)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
INCLUDES += -Icodec/api/svc -Icodec/common/inc
|
INCLUDES += -I$(SRC_PATH)codec/api/svc -I$(SRC_PATH)codec/common/inc
|
||||||
|
|
||||||
DECODER_INCLUDES += \
|
DECODER_INCLUDES += \
|
||||||
-Icodec/decoder/core/inc \
|
-I$(SRC_PATH)codec/decoder/core/inc \
|
||||||
-Icodec/decoder/plus/inc
|
-I$(SRC_PATH)codec/decoder/plus/inc
|
||||||
|
|
||||||
ENCODER_INCLUDES += \
|
ENCODER_INCLUDES += \
|
||||||
-Icodec/encoder/core/inc \
|
-I$(SRC_PATH)codec/encoder/core/inc \
|
||||||
-Icodec/encoder/plus/inc \
|
-I$(SRC_PATH)codec/encoder/plus/inc \
|
||||||
-Icodec/processing/interface
|
-I$(SRC_PATH)codec/processing/interface
|
||||||
|
|
||||||
PROCESSING_INCLUDES += \
|
PROCESSING_INCLUDES += \
|
||||||
-Icodec/processing/interface \
|
-I$(SRC_PATH)codec/processing/interface \
|
||||||
-Icodec/processing/src/common \
|
-I$(SRC_PATH)codec/processing/src/common \
|
||||||
-Icodec/processing/src/scrolldetection
|
-I$(SRC_PATH)codec/processing/src/adaptivequantization \
|
||||||
|
-I$(SRC_PATH)codec/processing/src/downsample \
|
||||||
|
-I$(SRC_PATH)codec/processing/src/scrolldetection \
|
||||||
|
-I$(SRC_PATH)codec/processing/src/vaacalc
|
||||||
|
|
||||||
GTEST_INCLUDES += \
|
GTEST_INCLUDES += \
|
||||||
-Igtest \
|
-I$(SRC_PATH)gtest \
|
||||||
-Igtest/include
|
-I$(SRC_PATH)gtest/include
|
||||||
|
|
||||||
CODEC_UNITTEST_INCLUDES += \
|
CODEC_UNITTEST_INCLUDES += \
|
||||||
-Igtest/include \
|
-I$(SRC_PATH)gtest/include \
|
||||||
-Icodec/common/inc \
|
-I$(SRC_PATH)codec/common/inc \
|
||||||
|
|
||||||
CONSOLE_COMMON_INCLUDES += \
|
CONSOLE_COMMON_INCLUDES += \
|
||||||
-Icodec/console/common/inc
|
-I$(SRC_PATH)codec/console/common/inc
|
||||||
|
|
||||||
H264DEC_INCLUDES += $(DECODER_INCLUDES) $(CONSOLE_COMMON_INCLUDES) -Icodec/console/dec/inc
|
H264DEC_INCLUDES += $(DECODER_INCLUDES) $(CONSOLE_COMMON_INCLUDES) -I$(SRC_PATH)codec/console/dec/inc
|
||||||
H264DEC_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,decoder) $(call LINK_LIB,common) $(call LINK_LIB,console_common)
|
H264DEC_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,decoder) $(call LINK_LIB,common) $(call LINK_LIB,console_common)
|
||||||
H264DEC_DEPS = $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) $(LIBPREFIX)console_common.$(LIBSUFFIX)
|
H264DEC_DEPS = $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) $(LIBPREFIX)console_common.$(LIBSUFFIX)
|
||||||
|
|
||||||
H264ENC_INCLUDES += $(ENCODER_INCLUDES) $(CONSOLE_COMMON_INCLUDES) -Icodec/console/enc/inc
|
H264ENC_INCLUDES += $(ENCODER_INCLUDES) $(CONSOLE_COMMON_INCLUDES) -I$(SRC_PATH)codec/console/enc/inc
|
||||||
H264ENC_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common) $(call LINK_LIB,console_common)
|
H264ENC_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common) $(call LINK_LIB,console_common)
|
||||||
H264ENC_DEPS = $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) $(LIBPREFIX)console_common.$(LIBSUFFIX)
|
H264ENC_DEPS = $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX) $(LIBPREFIX)console_common.$(LIBSUFFIX)
|
||||||
|
|
||||||
CODEC_UNITTEST_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,gtest) $(call LINK_LIB,decoder) $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common) $(CODEC_UNITTEST_LDFLAGS_SUFFIX)
|
CODEC_UNITTEST_LDFLAGS = $(LINK_LOCAL_DIR) $(call LINK_LIB,gtest) $(call LINK_LIB,decoder) $(call LINK_LIB,encoder) $(call LINK_LIB,processing) $(call LINK_LIB,common) $(CODEC_UNITTEST_LDFLAGS_SUFFIX)
|
||||||
CODEC_UNITTEST_DEPS = $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX)
|
CODEC_UNITTEST_DEPS = $(LIBPREFIX)gtest.$(LIBSUFFIX) $(LIBPREFIX)decoder.$(LIBSUFFIX) $(LIBPREFIX)encoder.$(LIBSUFFIX) $(LIBPREFIX)processing.$(LIBSUFFIX) $(LIBPREFIX)common.$(LIBSUFFIX)
|
||||||
DECODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -Itest -Itest/decoder
|
DECODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/decoder
|
||||||
ENCODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(ENCODER_INCLUDES) -Itest -Itest/encoder
|
ENCODER_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(ENCODER_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/encoder
|
||||||
PROCESSING_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(PROCESSING_INCLUDES) -Itest -Itest/processing
|
PROCESSING_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(PROCESSING_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/processing
|
||||||
API_TEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) -Itest -Itest/api
|
API_TEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/api
|
||||||
COMMON_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -Itest -Itest/common
|
COMMON_UNITTEST_INCLUDES += $(CODEC_UNITTEST_INCLUDES) $(DECODER_INCLUDES) -I$(SRC_PATH)test -I$(SRC_PATH)test/common
|
||||||
MODULE_INCLUDES += -Igmp-api
|
MODULE_INCLUDES += -I$(SRC_PATH)gmp-api
|
||||||
|
|
||||||
.PHONY: test gtest-bootstrap clean
|
.PHONY: test gtest-bootstrap clean
|
||||||
|
|
||||||
all: libraries binaries
|
all: libraries binaries
|
||||||
|
|
||||||
|
generate-version:
|
||||||
|
$(QUIET)cd $(SRC_PATH) && sh ./codec/common/generate_version.sh
|
||||||
|
|
||||||
|
codec/decoder/plus/src/welsDecoderExt.$(OBJ): | generate-version
|
||||||
|
codec/encoder/plus/src/welsEncoderExt.$(OBJ): | generate-version
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
ifeq (android,$(OS))
|
ifeq (android,$(OS))
|
||||||
clean: clean_Android
|
clean: clean_Android
|
||||||
endif
|
endif
|
||||||
$(QUIET)rm -f $(OBJS) $(OBJS:.$(OBJ)=.d) $(LIBRARIES) $(BINARIES)
|
$(QUIET)rm -f $(OBJS) $(OBJS:.$(OBJ)=.d) $(OBJS:.$(OBJ)=.obj) $(LIBRARIES) $(BINARIES) *.lib *.a *.dylib *.dll *.so
|
||||||
|
|
||||||
gmp-bootstrap:
|
gmp-bootstrap:
|
||||||
git clone https://github.com/mozilla/gmp-api gmp-api
|
if [ ! -d gmp-api ] ; then git clone https://github.com/mozilla/gmp-api gmp-api ; fi
|
||||||
|
cd gmp-api && git fetch origin && git checkout $(GMP_API_BRANCH)
|
||||||
|
|
||||||
gtest-bootstrap:
|
gtest-bootstrap:
|
||||||
svn co https://googletest.googlecode.com/svn/trunk/ gtest
|
svn co https://googletest.googlecode.com/svn/trunk/ gtest
|
||||||
@@ -142,20 +160,20 @@ test:
|
|||||||
@echo "You do not have gtest. Run make gtest-bootstrap to get gtest"
|
@echo "You do not have gtest. Run make gtest-bootstrap to get gtest"
|
||||||
endif
|
endif
|
||||||
|
|
||||||
include codec/common/targets.mk
|
include $(SRC_PATH)codec/common/targets.mk
|
||||||
include codec/decoder/targets.mk
|
include $(SRC_PATH)codec/decoder/targets.mk
|
||||||
include codec/encoder/targets.mk
|
include $(SRC_PATH)codec/encoder/targets.mk
|
||||||
include codec/processing/targets.mk
|
include $(SRC_PATH)codec/processing/targets.mk
|
||||||
|
|
||||||
ifeq ($(HAVE_GMP_API),Yes)
|
ifeq ($(HAVE_GMP_API),Yes)
|
||||||
include module/targets.mk
|
include $(SRC_PATH)module/targets.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq (android, $(OS))
|
ifneq (android, $(OS))
|
||||||
ifneq (ios, $(OS))
|
ifneq (ios, $(OS))
|
||||||
include codec/console/dec/targets.mk
|
include $(SRC_PATH)codec/console/dec/targets.mk
|
||||||
include codec/console/enc/targets.mk
|
include $(SRC_PATH)codec/console/enc/targets.mk
|
||||||
include codec/console/common/targets.mk
|
include $(SRC_PATH)codec/console/common/targets.mk
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -173,7 +191,7 @@ $(LIBPREFIX)$(PROJECT_NAME).$(LIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROC
|
|||||||
|
|
||||||
$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
|
$(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX): $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
|
||||||
$(QUIET)rm -f $@
|
$(QUIET)rm -f $@
|
||||||
$(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(SHLDFLAGS)
|
$(QUIET_CXX)$(CXX) $(SHARED) $(CXX_LINK_O) $+ $(LDFLAGS) $(SHLDFLAGS)
|
||||||
|
|
||||||
ifeq ($(HAVE_GMP_API),Yes)
|
ifeq ($(HAVE_GMP_API),Yes)
|
||||||
plugin: $(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX)
|
plugin: $(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX)
|
||||||
@@ -186,7 +204,7 @@ endif
|
|||||||
|
|
||||||
$(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX): $(MODULE_OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
|
$(LIBPREFIX)$(MODULE_NAME).$(SHAREDLIBSUFFIX): $(MODULE_OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) $(PROCESSING_OBJS) $(COMMON_OBJS)
|
||||||
$(QUIET)rm -f $@
|
$(QUIET)rm -f $@
|
||||||
$(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(SHLDFLAGS) $(MODULE_LDFLAGS)
|
$(QUIET_CXX)$(CXX) $(SHARED) $(CXX_LINK_O) $+ $(LDFLAGS) $(SHLDFLAGS) $(MODULE_LDFLAGS)
|
||||||
|
|
||||||
install-headers:
|
install-headers:
|
||||||
mkdir -p $(PREFIX)/include/wels
|
mkdir -p $(PREFIX)/include/wels
|
||||||
@@ -207,12 +225,12 @@ install: install-static install-shared
|
|||||||
@:
|
@:
|
||||||
|
|
||||||
ifeq ($(HAVE_GTEST),Yes)
|
ifeq ($(HAVE_GTEST),Yes)
|
||||||
include build/gtest-targets.mk
|
include $(SRC_PATH)build/gtest-targets.mk
|
||||||
include test/api/targets.mk
|
include $(SRC_PATH)test/api/targets.mk
|
||||||
include test/decoder/targets.mk
|
include $(SRC_PATH)test/decoder/targets.mk
|
||||||
include test/encoder/targets.mk
|
include $(SRC_PATH)test/encoder/targets.mk
|
||||||
include test/processing/targets.mk
|
include $(SRC_PATH)test/processing/targets.mk
|
||||||
include test/common/targets.mk
|
include $(SRC_PATH)test/common/targets.mk
|
||||||
|
|
||||||
LIBRARIES += $(LIBPREFIX)ut.$(LIBSUFFIX)
|
LIBRARIES += $(LIBPREFIX)ut.$(LIBSUFFIX)
|
||||||
$(LIBPREFIX)ut.$(LIBSUFFIX): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(COMMON_UNITTEST_OBJS) $(API_TEST_OBJS)
|
$(LIBPREFIX)ut.$(LIBSUFFIX): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(COMMON_UNITTEST_OBJS) $(API_TEST_OBJS)
|
||||||
@@ -223,7 +241,7 @@ $(LIBPREFIX)ut.$(LIBSUFFIX): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $
|
|||||||
LIBRARIES +=$(LIBPREFIX)ut.$(SHAREDLIBSUFFIX)
|
LIBRARIES +=$(LIBPREFIX)ut.$(SHAREDLIBSUFFIX)
|
||||||
$(LIBPREFIX)ut.$(SHAREDLIBSUFFIX): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS)
|
$(LIBPREFIX)ut.$(SHAREDLIBSUFFIX): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS)
|
||||||
$(QUIET)rm -f $@
|
$(QUIET)rm -f $@
|
||||||
$(QUIET_CXX)$(CXX) $(SHARED) $(LDFLAGS) $(CXX_LINK_O) $+ $(CODEC_UNITTEST_LDFLAGS)
|
$(QUIET_CXX)$(CXX) $(SHARED) $(CXX_LINK_O) $+ $(LDFLAGS) $(CODEC_UNITTEST_LDFLAGS)
|
||||||
|
|
||||||
binaries: codec_unittest$(EXEEXT)
|
binaries: codec_unittest$(EXEEXT)
|
||||||
BINARIES += codec_unittest$(EXEEXT)
|
BINARIES += codec_unittest$(EXEEXT)
|
||||||
@@ -233,6 +251,7 @@ codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(LIBSUFFIX) $(LIBPREFIX)gtest.$(LIBSUFF
|
|||||||
|
|
||||||
else
|
else
|
||||||
ifeq (android,$(OS))
|
ifeq (android,$(OS))
|
||||||
|
ifeq (./,$(SRC_PATH))
|
||||||
codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(SHAREDLIBSUFFIX)
|
codec_unittest$(EXEEXT): $(LIBPREFIX)ut.$(SHAREDLIBSUFFIX)
|
||||||
cd ./test/build/android && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug
|
cd ./test/build/android && $(NDKROOT)/ndk-build -B APP_ABI=$(APP_ABI) && android update project -t $(TARGET) -p . && ant debug
|
||||||
|
|
||||||
@@ -241,10 +260,17 @@ clean_Android_ut:
|
|||||||
-cd ./test/build/android && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
|
-cd ./test/build/android && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
|
||||||
|
|
||||||
else
|
else
|
||||||
codec_unittest$(EXEEXT): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS)
|
codec_unittest$(EXEEXT):
|
||||||
|
@:
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
codec_unittest$(EXEEXT): $(DECODER_UNITTEST_OBJS) $(ENCODER_UNITTEST_OBJS) $(PROCESSING_UNITTEST_OBJS) $(API_TEST_OBJS) $(COMMON_UNITTEST_OBJS) $(CODEC_UNITTEST_DEPS) | res
|
||||||
$(QUIET)rm -f $@
|
$(QUIET)rm -f $@
|
||||||
$(QUIET_CXX)$(CXX) $(CXX_LINK_O) $+ $(CODEC_UNITTEST_LDFLAGS) $(LDFLAGS)
|
$(QUIET_CXX)$(CXX) $(CXX_LINK_O) $+ $(CODEC_UNITTEST_LDFLAGS) $(LDFLAGS)
|
||||||
|
|
||||||
|
res:
|
||||||
|
$(QUIET)if [ ! -e res ]; then ln -s $(SRC_PATH)res .; fi
|
||||||
|
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@@ -254,3 +280,10 @@ binaries:
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
-include $(OBJS:.$(OBJ)=.d)
|
-include $(OBJS:.$(OBJ)=.d)
|
||||||
|
|
||||||
|
OBJDIRS = $(sort $(dir $(OBJS)))
|
||||||
|
|
||||||
|
$(OBJDIRS):
|
||||||
|
$(QUIET)mkdir -p $@
|
||||||
|
|
||||||
|
$(OBJS): | $(OBJDIRS)
|
||||||
|
|||||||
BIN
OpenH264_API_v1.2.0.docx
Normal file
BIN
OpenH264_API_v1.2.0.docx
Normal file
Binary file not shown.
@@ -64,14 +64,13 @@ The codec and demo can be built by
|
|||||||
'make OS=android NDKROOT=**ANDROID_NDK** TARGET= **ANDROID_TARGET**'
|
'make OS=android NDKROOT=**ANDROID_NDK** TARGET= **ANDROID_TARGET**'
|
||||||
|
|
||||||
Valid **ANDROID_TARGET** can be found in **ANDROID_SDK**/platforms, such as android-12.
|
Valid **ANDROID_TARGET** can be found in **ANDROID_SDK**/platforms, such as android-12.
|
||||||
You can also set ARCH, NDKLEVEL, GCCVERSION according to your device and NDK version.
|
You can also set ARCH, NDKLEVEL according to your device and NDK version.
|
||||||
ARCH specifies the architecture of android device. Currently only arm and x86 are supported, the default is arm.
|
ARCH specifies the architecture of android device. Currently only arm and x86 are supported, the default is arm.
|
||||||
NDKLEVEL specifies android api level, the api level can be 12-19, the default is 12.
|
NDKLEVEL specifies android api level, the api level can be 12-19, the default is 12.
|
||||||
GCCVERSION specifies which gcc in NDK is used, the default is 4.8.
|
|
||||||
|
|
||||||
By default these commands build for the armeabi-v7a ABI. To build for the other android
|
By default these commands build for the armeabi-v7a ABI. To build for the other android
|
||||||
ABIs, add "ARCH=mips" or "ARCH=x86". To build for the older armeabi ABI (which has
|
ABIs, add "ARCH=arm64", "ARCH=x86", "ARCH=x86_64", "ARCH=mips" or "ARCH=mips64".
|
||||||
armv5te as baseline), add "APP_ABI=armeabi" (ARCH=arm is implicit).
|
To build for the older armeabi ABI (which has armv5te as baseline), add "APP_ABI=armeabi" (ARCH=arm is implicit).
|
||||||
|
|
||||||
For iOS Builds
|
For iOS Builds
|
||||||
--------------
|
--------------
|
||||||
|
|||||||
42
RELEASES
42
RELEASES
@@ -1,9 +1,51 @@
|
|||||||
|
|
||||||
Releases
|
Releases
|
||||||
|
-----------
|
||||||
|
v1.2.0
|
||||||
|
------
|
||||||
|
- Add and modify encoder APIs related to rate control and screen content encoding
|
||||||
|
- Remove PauseFrame in encoder APIs
|
||||||
|
- Improve rate control and compression ratio for screen content encoding
|
||||||
|
- Improve error concealment algorithm
|
||||||
|
- Improve validation of input parameters
|
||||||
|
- Add ARM64 assembly
|
||||||
|
- bug fixes
|
||||||
|
|
||||||
|
-----------
|
||||||
|
v1.1.0
|
||||||
|
------
|
||||||
|
- Modify some APIs (see API doc for detail)
|
||||||
|
- Improve the compression ratio of screen content encoding
|
||||||
|
- ARM64 assembly support for most of core functions in encoder & decoder
|
||||||
|
- Modify error concealment logic to always return decoding error info until IDR picture comes
|
||||||
|
- fix some bugs
|
||||||
|
|
||||||
|
|
||||||
|
Binaries
|
||||||
|
-----------
|
||||||
These binary releases are distributed under this license:
|
These binary releases are distributed under this license:
|
||||||
http://www.openh264.org/BINARY_LICENSE.txt
|
http://www.openh264.org/BINARY_LICENSE.txt
|
||||||
|
|
||||||
|
v1.2.0
|
||||||
|
------
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.2.0-android19.so.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.2.0-linux32.so.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.2.0-linux64.so.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.2.0-osx32.dylib.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.2.0-osx64.dylib.bz2
|
||||||
|
http://ciscobinary.openh264.org/openh264-1.2.0-win32msvc.dll.bz2
|
||||||
|
http://ciscobinary.openh264.org/openh264-1.2.0-win64msvc.dll.bz2
|
||||||
|
|
||||||
|
v1.1.0
|
||||||
|
------
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.1.0-android19.so.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.1.0-linux32.so.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.1.0-linux64.so.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.1.0-osx32.dylib.bz2
|
||||||
|
http://ciscobinary.openh264.org/libopenh264-1.1.0-osx64.dylib.bz2
|
||||||
|
http://ciscobinary.openh264.org/openh264-1.1.0-win32msvc.dll.bz2
|
||||||
|
http://ciscobinary.openh264.org/openh264-1.1.0-win64msvc.dll.bz2
|
||||||
|
|
||||||
v1.0.0
|
v1.0.0
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|||||||
13
autotest/performanceTest/.gitignore
vendored
Normal file
13
autotest/performanceTest/.gitignore
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#performance test resource folder
|
||||||
|
./EncoderPerfTestRes
|
||||||
|
./DecoderPerfTestRes
|
||||||
|
./DecoderPerfTestRes/*.*
|
||||||
|
./EncoderPerfTestRes/*.*
|
||||||
|
#performance test result folder
|
||||||
|
./TestResultCSV
|
||||||
|
#
|
||||||
|
.DS_Store
|
||||||
|
#.
|
||||||
|
./android/report
|
||||||
|
./ios/report
|
||||||
|
|
||||||
180
autotest/performanceTest/android/run_AutoTest_android.sh
Normal file
180
autotest/performanceTest/android/run_AutoTest_android.sh
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
AUTO_TEST_ANDROID_PATH=`pwd`
|
||||||
|
AUTO_TEST_SRC_PATH="../../../"
|
||||||
|
AUTO_TEST_RES_PATH="${AUTO_TEST_ANDROID_PATH}/report"
|
||||||
|
mkdir -p ${AUTO_TEST_RES_PATH}
|
||||||
|
#Prepare android build enviroment
|
||||||
|
echo please set the enviroment variable as:
|
||||||
|
echo export ANDROID_HOME="path of android sdk"
|
||||||
|
echo export ANDROID_NDK_HOME="path of android ndk"
|
||||||
|
ANDROID_SDK_PATH=${ANDROID_HOME}
|
||||||
|
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
|
||||||
|
ANDROID_MAKE_PARAMS="OS=android NDKROOT=${ANDROID_NDK_PATH} TARGET=android-19"
|
||||||
|
|
||||||
|
if [ "#${ANDROID_SDK_PATH}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Please set ANDROID_HOME with the path of Android SDK
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "#${ANDROID_NDK_PATH}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Please set ANDROID_NDK_HOME with the path of Android NDK
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
#make build
|
||||||
|
cd ${AUTO_TEST_SRC_PATH}
|
||||||
|
find ./ -name *.o -exec rm -f {} \;
|
||||||
|
find ./ -name *.d -exec rm -f {} \;
|
||||||
|
make $ANDROID_MAKE_PARAMS
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo Build error,check with the trace of make
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ENCDEC=$1
|
||||||
|
#find apk
|
||||||
|
if [ ${ENCDEC} = "enc" ]
|
||||||
|
then
|
||||||
|
echo Start to find enc apk
|
||||||
|
apk_name=`find ./ -name WelsEncTest-debug.apk`
|
||||||
|
if [ "#${apk_name}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Fail to find encoder APK.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo Start to find dec apk
|
||||||
|
apk_name=`find ./ -name WelsDecTest-debug.apk`
|
||||||
|
if [ "#${apk_name}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Fail to find decoder APK.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#prepare devices
|
||||||
|
ADB=${ANDROID_SDK_PATH}/platform-tools/adb
|
||||||
|
|
||||||
|
#get devices
|
||||||
|
devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
|
||||||
|
if [ "#$devices" = "#" ];then
|
||||||
|
echo "Have not any android devices."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#run apk
|
||||||
|
run_apk() {
|
||||||
|
local apk=$1;
|
||||||
|
local rand=` date +%s`
|
||||||
|
|
||||||
|
if [[ "${apk}" =~ "WelsDecTest-debug.apk" ]]
|
||||||
|
then
|
||||||
|
apk_id="com.wels.dec"
|
||||||
|
apk_main="com.wels.dec/.WelsDecTest"
|
||||||
|
test_path="/sdcard/welsdec"
|
||||||
|
log_grep_params="welsdec"
|
||||||
|
test_res=${AUTO_TEST_ANDROID_PATH}/../DecoderPerfTestRes
|
||||||
|
report_file=${AUTO_TEST_RES_PATH}/decPerf
|
||||||
|
|
||||||
|
fi
|
||||||
|
if [[ "${apk}" =~ "WelsEncTest-debug.apk" ]]
|
||||||
|
then
|
||||||
|
apk_id="com.wels.enc"
|
||||||
|
apk_main="com.wels.enc/.WelsEncTest"
|
||||||
|
test_path="/sdcard/welsenc"
|
||||||
|
log_grep_params="welsenc"
|
||||||
|
test_res=${AUTO_TEST_ANDROID_PATH}/../EncoderPerfTestRes
|
||||||
|
report_file=${AUTO_TEST_RES_PATH}/encPerf
|
||||||
|
fi
|
||||||
|
space="limit"
|
||||||
|
for dev in $devices; do
|
||||||
|
dev_info_file=${AUTO_TEST_RES_PATH}/${dev}.log
|
||||||
|
$ADB -s $dev uninstall ${apk_id}
|
||||||
|
$ADB -s $dev install -r ${apk}
|
||||||
|
#TODO: output more info about android device such as name,cpu,memory,and also power comsumption.
|
||||||
|
#echo `$ADB -s $dev shell cat /system/build.prop |grep ro.product.model | awk -F"=" '{print $2}'`>${dev_info_file}
|
||||||
|
#push resources
|
||||||
|
#For limited devices space
|
||||||
|
if [ ${space} = "limit" ]
|
||||||
|
then
|
||||||
|
test_res_bak=${test_res}_bak
|
||||||
|
mv ${test_res} ${test_res_bak}
|
||||||
|
mkdir -p ${test_res}
|
||||||
|
test_case=`ls ${test_res_bak}`
|
||||||
|
for case in ${test_case}
|
||||||
|
do
|
||||||
|
echo ${case}
|
||||||
|
cp -r ${test_res_bak}/${case} ${test_res}/.
|
||||||
|
$ADB -s $dev push ${test_res} ${test_path}
|
||||||
|
#before start logcat,kill logcat
|
||||||
|
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
||||||
|
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
||||||
|
$ADB -s $dev logcat -c
|
||||||
|
$ADB -s $dev logcat |grep ${log_grep_params} >>${report_file}_${dev}_${rand}.log &
|
||||||
|
$ADB -s $dev shell am start -n ${apk_main}
|
||||||
|
# check whetehr the app is finished every 2 sec
|
||||||
|
for (( ; ; )); do
|
||||||
|
$ADB -s $dev shell ps | grep ${apk_id}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
sleep 2
|
||||||
|
$ADB -s $dev shell ps | grep ${apk_id}
|
||||||
|
[ $? -ne 0 ] && break
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
# kill logcat
|
||||||
|
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
||||||
|
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
||||||
|
|
||||||
|
#delete the res
|
||||||
|
$ADB -s $dev shell rm -rf ${test_path}
|
||||||
|
rm -rf ${test_res}/${case}
|
||||||
|
done
|
||||||
|
rm -rf ${test_res}
|
||||||
|
mv ${test_res_bak} ${test_res}
|
||||||
|
else
|
||||||
|
$ADB -s $dev push ${test_res} ${test_path}
|
||||||
|
#before start logcat,kill logcat
|
||||||
|
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
||||||
|
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
||||||
|
$ADB -s $dev logcat -c
|
||||||
|
$ADB -s $dev logcat |grep ${log_grep_params} >${report_file}_${dev}_${rand}.log &
|
||||||
|
$ADB -s $dev shell am start -n ${apk_main}
|
||||||
|
# check whetehr the app is finished every 2 sec
|
||||||
|
for (( ; ; )); do
|
||||||
|
$ADB -s $dev shell ps | grep ${apk_id}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
sleep 2
|
||||||
|
$ADB -s $dev shell ps | grep ${apk_idi}
|
||||||
|
[ $? -ne 0 ] && break
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
# kill logcat
|
||||||
|
pid=`$ADB -s $dev shell ps | grep logcat | awk '{print $2;}'`
|
||||||
|
[ "#$pid" != "#" ] && $ADB -s $dev shell kill $pid >/dev/null
|
||||||
|
|
||||||
|
#delete the res
|
||||||
|
$ADB -s $dev shell rm -rf ${test_path}
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
}
|
||||||
|
for apk in ${apk_name};do
|
||||||
|
run_apk $apk;
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo There is something wrong happened when run ${apk_name}
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo Finished $ENCDEC performance test on android
|
||||||
|
echo The test result is at ./android/report/xxx.log
|
||||||
|
echo xxxxxxxxxxxxxxxAndroid $ENCDEC Endxxxxxxxxxxxxxxxx
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
BIN
autotest/performanceTest/ios/fruitstrap
Executable file
BIN
autotest/performanceTest/ios/fruitstrap
Executable file
Binary file not shown.
BIN
autotest/performanceTest/ios/iFileTransfer
Executable file
BIN
autotest/performanceTest/ios/iFileTransfer
Executable file
Binary file not shown.
193
autotest/performanceTest/ios/run_AutoTest_ios.sh
Normal file
193
autotest/performanceTest/ios/run_AutoTest_ios.sh
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
#Build ios test ref app
|
||||||
|
|
||||||
|
#set the default configuration
|
||||||
|
CODEC_TEST_IOS_ARCH="armv7 armv7s arm64"
|
||||||
|
CODEC_TEST_IOS_PLATFORM="iphoneos"
|
||||||
|
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
|
||||||
|
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
|
||||||
|
|
||||||
|
|
||||||
|
buildXcodeProject()
|
||||||
|
{
|
||||||
|
xcodebuild ARCHS="${CODEC_TEST_IOS_ARCH}" VALID_ARCHS="${CODEC_TEST_IOS_ARCH}" ONLY_ACTIVE_ARCH=YES -project $1 -target $2 -configuration $3 -sdk ${CODEC_TEST_IOS_PLATFORM} clean build
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "build $1 $3 successfully"
|
||||||
|
else
|
||||||
|
echo "build $1 $3 fail"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
iosPerformanceTest()
|
||||||
|
{
|
||||||
|
|
||||||
|
if [ $# -gt 2 ]; then
|
||||||
|
echo "Please use command $0 [enc/dec] [release/debug]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for PARAM in $*; do
|
||||||
|
if [ "enc" = "${PARAM}" ]; then
|
||||||
|
CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/codec/build/iOS/enc/encDemo/encDemo.xcodeproj"
|
||||||
|
CODEC_TEST_IOS_PROJECT_NAME="encDemo"
|
||||||
|
CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/codec/build/iOS/enc/encDemo/build"
|
||||||
|
CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
|
||||||
|
CODEC_TEST_IOS_APP_ID="cisco.encDemo"
|
||||||
|
CODEC_TEST_RES=${AUTO_TEST_IOS_PATH}/../EncoderPerfTestRes
|
||||||
|
CODEC_TEST_LOG="encPerf"
|
||||||
|
elif [ "dec" = "${PARAM}" ]; then
|
||||||
|
CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/codec/build/iOS/dec/demo/demo.xcodeproj/"
|
||||||
|
CODEC_TEST_IOS_PROJECT_NAME="demo"
|
||||||
|
CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/codec/build/iOS/dec/demo/build"
|
||||||
|
CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
|
||||||
|
CODEC_TEST_IOS_APP_ID="hf.cisco.demo"
|
||||||
|
CODEC_TEST_RES=${AUTO_TEST_IOS_PATH}/../DecoderPerfTestRes
|
||||||
|
CODEC_TEST_LOG="decPerf"
|
||||||
|
elif [ "release" = "${PARAM}" ]; then
|
||||||
|
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
|
||||||
|
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
|
||||||
|
elif [ "debug" = "${PARAM}" ]; then
|
||||||
|
CODEC_TEST_IOS_DEBUG_RELEASE="Debug"
|
||||||
|
CODEC_TEST_IOS_REPORT_SUBFOLDER="debug"
|
||||||
|
else
|
||||||
|
echo parameters are illegal!!!, please have a check.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Codec test will run on ${CODEC_TEST_IOS_PLATFORM} with ${CODEC_TEST_IOS_DEBUG_RELEASE}"
|
||||||
|
buildXcodeProject ${CODEC_TEST_XCODE_PROJECT_NAME} ${CODEC_TEST_IOS_PROJECT_NAME} ${CODEC_TEST_IOS_DEBUG_RELEASE} ${CODEC_TEST_IOS_PLATFORM}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##############run on ios devices#########################
|
||||||
|
# for real device
|
||||||
|
if [ ! -d ${CODEC_TEST_IOS_APP} ] ; then
|
||||||
|
echo "${CODEC_TEST_IOS_APP} is not found"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Find app ${CODEC_TEST_IOS_APP}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#ensure instruments not runing
|
||||||
|
echo "Try to kill the runing instruments"
|
||||||
|
pids_str=`ps x -o pid,command | grep -v grep | grep "instruments" | awk '{printf "%s,", $1}'`
|
||||||
|
instruments_pids="${pids_str//,/ }"
|
||||||
|
for pid in ${instruments_pids}; do
|
||||||
|
echo "Found instruments ${pid}. Killing..."
|
||||||
|
kill -9 ${pid} && wait ${pid} &> /dev/null
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DEVICES=`system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'`
|
||||||
|
if [ "${DEVICES}#" == "#" ]
|
||||||
|
then
|
||||||
|
echo "Can not find any connected device! please check device is connected to MAC!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
rand=`date +%s`
|
||||||
|
for DEVICE_ID in ${DEVICES}
|
||||||
|
do
|
||||||
|
echo "Try to run on device:${DEVICE_ID}"
|
||||||
|
|
||||||
|
#Encoder YUV file too large
|
||||||
|
if [ ${ENCDEC} = "enc" ]
|
||||||
|
then
|
||||||
|
#For limited devices space
|
||||||
|
BAKRES=${CODEC_TEST_RES}_bak
|
||||||
|
mv ${CODEC_TEST_RES} ${BAKRES}
|
||||||
|
mkdir -p ${CODEC_TEST_RES}
|
||||||
|
CODEC_CASE=`ls ${BAKRES}`
|
||||||
|
echo ${CODEC_CASE}
|
||||||
|
for CASE in ${CODEC_CASE}
|
||||||
|
do
|
||||||
|
echo ${CASE}
|
||||||
|
cp -r ${BAKRES}/${CASE} ${CODEC_TEST_RES}/.
|
||||||
|
|
||||||
|
|
||||||
|
#uninstall the application from device to remove the last result
|
||||||
|
./fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
|
||||||
|
fi
|
||||||
|
#install the application
|
||||||
|
./fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
./iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
|
||||||
|
instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ./uiascript.js -e UIARRESULTPATH /tmp/
|
||||||
|
#copy to report folder
|
||||||
|
./iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.log -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "download file: ${CODEC_TEST_LOG}.log from ${CODEC_TEST_IOS_APP_ID} is failed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cat ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log>>${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}.log
|
||||||
|
rm -f ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
|
||||||
|
rm -rf ${CODEC_TEST_RES}/${CASE}
|
||||||
|
done
|
||||||
|
rm -rf ${CODEC_TEST_RES}
|
||||||
|
mv ${BAKRES} ${CODEC_TEST_RES}
|
||||||
|
#Enough spaces
|
||||||
|
else
|
||||||
|
#uninstall the application from device to remove the last result
|
||||||
|
./fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
|
||||||
|
fi
|
||||||
|
#install the application
|
||||||
|
./fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
./iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
|
||||||
|
instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ./uiascript.js -e UIARRESULTPATH /tmp/
|
||||||
|
#copy to report folder
|
||||||
|
./iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.log -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CASE}.log
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "download file: ${CODEC_TEST_LOG}.log from ${CODEC_TEST_IOS_APP_ID} is failed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
AUTO_TEST_IOS_PATH=`pwd`
|
||||||
|
AUTO_TEST_SRC_PATH="../../.."
|
||||||
|
CODEC_TEST_IOS_REPORT_PATH="${AUTO_TEST_IOS_PATH}/report"
|
||||||
|
if [ ! -d ${CODEC_TEST_IOS_REPORT_PATH} ]
|
||||||
|
then
|
||||||
|
mkdir -p ${CODEC_TEST_IOS_REPORT_PATH}
|
||||||
|
fi
|
||||||
|
|
||||||
|
ENCDEC=$1
|
||||||
|
#start to get encoder/decoder performance data,default run the xcode with release
|
||||||
|
iosPerformanceTest $ENCDEC release
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Running $ENCDEC demo to get encoder performance is failed!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo Finished $ENCDEC performance test on ios devices
|
||||||
|
echo the test result is generated at ./ios/report/xx.loGbash parsePerfData.sh
|
||||||
|
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxIOS $ENCDEC Endxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
fi
|
||||||
|
#TODO:according to the trace of instruments to do some analysis
|
||||||
|
#find ./ -name *.trace -exec rm -rf {} \;
|
||||||
19
autotest/performanceTest/ios/uiascript.js
Normal file
19
autotest/performanceTest/ios/uiascript.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
UIATarget.onAlert = function onAlert(alert){
|
||||||
|
|
||||||
|
UIALogger.logMessage("In Alert!");
|
||||||
|
title = alert.name();
|
||||||
|
if (title && title.indexOf("Microphone") !== -1) {
|
||||||
|
UIALogger.logMessage("Alert with title '" + title + "' encountered!");
|
||||||
|
var buttons = alert.buttons();
|
||||||
|
var buttonCount = buttons.length;
|
||||||
|
|
||||||
|
if (buttonCount > 0) {
|
||||||
|
var acceptButton = buttons[buttonCount - 1];
|
||||||
|
acceptButton.tap(); // last button is accept
|
||||||
|
}
|
||||||
|
return true; //forbid the default cancel processing
|
||||||
|
}
|
||||||
|
return false; //using the default cancel processing
|
||||||
|
}
|
||||||
|
var target = UIATarget.localTarget();
|
||||||
|
target.delay(6000);
|
||||||
107
autotest/performanceTest/parsePerfData.sh
Executable file
107
autotest/performanceTest/parsePerfData.sh
Executable file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#usage runGetPerformanceInfo ${PerformanceLogFile}
|
||||||
|
runGetPerformanceInfo_openh264()
|
||||||
|
{
|
||||||
|
|
||||||
|
if [ ! $# -eq 2 ]
|
||||||
|
then
|
||||||
|
echo "not enough parameters!"
|
||||||
|
echo "usage: ${0} [android/ios] ${PerformanceLogFile}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local PerformanceLogFile=$2
|
||||||
|
local FileName=""
|
||||||
|
local Width=""
|
||||||
|
local Height=""
|
||||||
|
local Frames=""
|
||||||
|
local FPS=""
|
||||||
|
local EncodeTime=""
|
||||||
|
if [ $1 = "android" ]
|
||||||
|
then seperatorNum=3
|
||||||
|
else
|
||||||
|
seperatorNum=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
while read line
|
||||||
|
do
|
||||||
|
if [[ $line =~ "enc yuv file" ]]
|
||||||
|
then
|
||||||
|
FileName=`echo $line | awk 'BEGIN {FS="enc yuv file"} {print $2}'`
|
||||||
|
FileName=`echo $FileName | awk 'BEGIN {FS=":"} {print $2}'`
|
||||||
|
fi
|
||||||
|
if [[ $line =~ "Width" ]]
|
||||||
|
then
|
||||||
|
Width=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
|
||||||
|
fi
|
||||||
|
if [[ $line =~ "Height" ]]
|
||||||
|
then
|
||||||
|
Height=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
|
||||||
|
fi
|
||||||
|
if [[ $line =~ "Frames" ]]
|
||||||
|
then
|
||||||
|
Frames=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
|
||||||
|
fi
|
||||||
|
if [[ $line =~ "FPS" ]]
|
||||||
|
then
|
||||||
|
FPS=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
|
||||||
|
FPS=`echo $FPS | awk 'BEGIN {FS="fps"} {print $1}'`
|
||||||
|
echo "${FileName},"${Width}x${Height}",${Frames},${FPS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $line =~ "encode time" ]]
|
||||||
|
then
|
||||||
|
EncodeTime=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
|
||||||
|
fi
|
||||||
|
if [[ $line =~ "height" ]]
|
||||||
|
then
|
||||||
|
Height=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
|
||||||
|
fi
|
||||||
|
if [[ $line =~ "H264 source file name" ]]
|
||||||
|
then
|
||||||
|
FileName=`echo $line | awk 'BEGIN {FS=":"} {print $'${seperatorNum}'}'`
|
||||||
|
if [ $1 = "ios" ]
|
||||||
|
then
|
||||||
|
FileName=`echo $FileName | awk -F"DecoderPerfTestRes" '{print $2}'`
|
||||||
|
FileName=`echo $FileName | awk -F"/" '{print $2}'`
|
||||||
|
else
|
||||||
|
FileName=`echo $FileName | awk -F"/" '{print $4}'`
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
done <${PerformanceLogFile}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
AUTO_TEST_RESULT_PATH="./TestResultCSV/"
|
||||||
|
|
||||||
|
|
||||||
|
parseLogToCSV()
|
||||||
|
{
|
||||||
|
if [ $# -ne 1 ]
|
||||||
|
then echo "Please input $0 [android/ios]"
|
||||||
|
fi
|
||||||
|
if [ $* = "android" ]
|
||||||
|
then
|
||||||
|
Result_log_path="./android/report/"
|
||||||
|
suffix=android
|
||||||
|
dos2unix ${Result_log_path}*.*
|
||||||
|
else
|
||||||
|
Result_log_path="./ios/report/"
|
||||||
|
suffix=ios
|
||||||
|
fi
|
||||||
|
Result_log=`ls ${Result_log_path}`
|
||||||
|
|
||||||
|
for log in ${Result_log}
|
||||||
|
do
|
||||||
|
PerformFile=`echo $log |awk -F"." '{print $1}'`
|
||||||
|
PerformFile=${PerformFile}_${suffix}.csv
|
||||||
|
#inital perfermance file
|
||||||
|
echo "$log,,,">>${AUTO_TEST_RESULT_PATH}${PerformFile}
|
||||||
|
echo "YUV,Resolution,Encodedframes,FPS">>${AUTO_TEST_RESULT_PATH}${PerformFile}
|
||||||
|
runGetPerformanceInfo_openh264 ${suffix} ${Result_log_path}${log}>>${AUTO_TEST_RESULT_PATH}${PerformFile}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
parseLogToCSV android
|
||||||
|
parseLogToCSV ios
|
||||||
122
autotest/performanceTest/run_perfTest.sh
Normal file
122
autotest/performanceTest/run_perfTest.sh
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
#!bin/bash
|
||||||
|
IOS=1
|
||||||
|
ANDROID=1
|
||||||
|
ENC=1
|
||||||
|
DEC=1
|
||||||
|
AUTO_TEST_PATH=`pwd`
|
||||||
|
|
||||||
|
#Judge to run the test on which kind of mobile
|
||||||
|
if [ $# -eq 0 ];then
|
||||||
|
echo Default testing will run on android and ios devices meanwhile
|
||||||
|
else
|
||||||
|
for params in $*; do
|
||||||
|
if [ $params = "ios" ];then
|
||||||
|
echo Running the test just on ios devices
|
||||||
|
ANDROID=0
|
||||||
|
elif [ $params = "android" ];then
|
||||||
|
echo Running the test just on android devices
|
||||||
|
IOS=0
|
||||||
|
elif [ $params = "enc" ];then
|
||||||
|
echo Running the encoder performance test
|
||||||
|
DEC=0
|
||||||
|
elif [ $params = "dec" ];then
|
||||||
|
echo Running the decoder performance test
|
||||||
|
ENC=0
|
||||||
|
else
|
||||||
|
echo parameters are illegal!!!, ${0} [ios/android] [enc/dec]
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Prepare encoder resources
|
||||||
|
if [ ${ENC} = "1" ]
|
||||||
|
then
|
||||||
|
if [ ! -d ./EncoderPerTestRes ]
|
||||||
|
then
|
||||||
|
mkdir -p ./EncoderPerfTestRes
|
||||||
|
fi
|
||||||
|
if [ "#`ls ./EncoderPerfTestRes`" = "#" ]
|
||||||
|
then
|
||||||
|
echo put yuv and cfg file into ./EncoderPerfTest folder as
|
||||||
|
echo case_720p
|
||||||
|
echo case_720p/welsenc.cfg
|
||||||
|
echo case_720p/layer2.cfg
|
||||||
|
echo case_720p/yuv
|
||||||
|
echo case_720p/yuv/xxx1.yuv
|
||||||
|
echo case_720p/yuv/xxx2.yuv
|
||||||
|
echo case_360p
|
||||||
|
echo case_360p/welsenc.cfg
|
||||||
|
echo ......
|
||||||
|
else
|
||||||
|
#Run the encoder performance test
|
||||||
|
if [ ${IOS} = "1" ]
|
||||||
|
then
|
||||||
|
echo xxxxxxxxxxxxxxxxIOS ENC Startxxxxxxxxxxxxxxxxxx
|
||||||
|
echo Run the Encoder performance test on ios devices
|
||||||
|
cd ./ios
|
||||||
|
bash run_AutoTest_ios.sh enc
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${ANDROID} = "1" ]
|
||||||
|
then
|
||||||
|
echo xxxxxxxxxxxxxxAndroid ENC Startxxxxxxxxxxxxxxxxxxxx
|
||||||
|
echo Run the Encoder performance test on android devices
|
||||||
|
cd ./android
|
||||||
|
bash run_AutoTest_android.sh enc
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Prepare decoder resources
|
||||||
|
if [ ${DEC} = "1" ]
|
||||||
|
then
|
||||||
|
if [ ! -d ./DecoderPerfTestRes ]
|
||||||
|
then
|
||||||
|
mkdir -p ./DecoderPerfTestRes
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "#`ls ./DecoderPerfTestRes`" = "#" ]
|
||||||
|
then
|
||||||
|
echo put decoded bitstreams into such folder as
|
||||||
|
echo xxx1.264
|
||||||
|
echo xxx2.264
|
||||||
|
echo ........
|
||||||
|
else
|
||||||
|
#Run the decoder performance test
|
||||||
|
if [ ${IOS} = "1" ]
|
||||||
|
then
|
||||||
|
echo xxxxxxxxxxxxxxxxIOS DEC Startxxxxxxxxxxxxxxxxxx
|
||||||
|
echo Run the Decoder performance test on ios devices
|
||||||
|
cd ./ios
|
||||||
|
bash run_AutoTest_ios.sh dec
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${ANDROID} = "1" ]
|
||||||
|
then
|
||||||
|
echo xxxxxxxxxxxxxxAndroid DEC Startxxxxxxxxxxxxxxxxxxxx
|
||||||
|
echo Run the Decoder performance test on android devices
|
||||||
|
cd ./android
|
||||||
|
bash run_AutoTest_android.sh dec
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#TODO:NOW just generate csv file to display performance data
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
if [[ "#`ls ./ios/report`" == "#" && "#`ls ./android/report`" == "#" ]]
|
||||||
|
then
|
||||||
|
echo There is nothing result log generated at ios or android devices
|
||||||
|
else
|
||||||
|
echo Start to generate test result csv file
|
||||||
|
#Test result
|
||||||
|
mkdir -p ./TestResultCSV
|
||||||
|
bash parsePerfData.sh
|
||||||
|
echo The csv file locate ./TestResultCSV/xxx.csv
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
4
autotest/unitTest/.gitignore
vendored
Normal file
4
autotest/unitTest/.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
.DS_Store
|
||||||
|
./ios/report/
|
||||||
|
./android/report/
|
||||||
|
|
||||||
112
autotest/unitTest/android/run_AutoTest_android.sh
Normal file
112
autotest/unitTest/android/run_AutoTest_android.sh
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
AUTO_TEST_ANDROID_PATH=`pwd`
|
||||||
|
AUTO_TEST_SRC_PATH="../../../"
|
||||||
|
AUTO_TEST_RES_PATH="${AUTO_TEST_ANDROID_PATH}/report"
|
||||||
|
if [ ! -d ${AUTO_TEST_RES_PATH} ]
|
||||||
|
then
|
||||||
|
mkdir -p ${AUTO_TEST_RES_PATH}
|
||||||
|
else
|
||||||
|
echo "Will delete those outdate xml in the report"
|
||||||
|
rm -f ${AUTO_TEST_RES_PATH}/*.xml
|
||||||
|
fi
|
||||||
|
#Prepare android build enviroment
|
||||||
|
echo please set the enviroment variable as:
|
||||||
|
echo export ANDROID_HOME="path of android sdk"
|
||||||
|
echo export ANDROID_NDK_HOME="path of android ndk"
|
||||||
|
ANDROID_SDK_PATH=${ANDROID_HOME}
|
||||||
|
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
|
||||||
|
ANDROID_MAKE_PARAMS="OS=android NDKROOT=${ANDROID_NDK_PATH} TARGET=android-19"
|
||||||
|
|
||||||
|
if [ "#${ANDROID_SDK_PATH}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Please set ANDROID_HOME with the path of Android SDK
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "#${ANDROID_NDK_PATH}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Please set ANDROID_NDK_HOME with the path of Android NDK
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
#make build
|
||||||
|
cd ${AUTO_TEST_SRC_PATH}
|
||||||
|
find ./ -name *.o -exec rm -f {} \;
|
||||||
|
find ./ -name *.d -exec rm -f {} \;
|
||||||
|
make clean
|
||||||
|
make $ANDROID_MAKE_PARAMS test
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo Build error,check with the trace of make
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#find apk
|
||||||
|
echo Start to find unittest apk
|
||||||
|
apk_name=`find ./ -name MainActivity-debug.apk`
|
||||||
|
if [ "#${apk_name}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Fail to find encoder APK.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#prepare devices
|
||||||
|
ADB=${ANDROID_SDK_PATH}/platform-tools/adb
|
||||||
|
|
||||||
|
#get devices
|
||||||
|
devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
|
||||||
|
if [ "#$devices" = "#" ];then
|
||||||
|
echo "Have not any android devices."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#run apk
|
||||||
|
run_apk() {
|
||||||
|
local apk=$1;
|
||||||
|
local rand=` date +%s`
|
||||||
|
apk_id="com.cisco.codec.unittest"
|
||||||
|
apk_main="com.cisco.codec.unittest/.MainActivity"
|
||||||
|
test_path="/sdcard/welsenc"
|
||||||
|
log_grep_params="welsenc"
|
||||||
|
test_res=./res
|
||||||
|
xml_file="sdcard/codec_unittest.xml"
|
||||||
|
for dev in $devices; do
|
||||||
|
#dev_info_file=${AUTO_TEST_RES_PATH}/${dev}.log
|
||||||
|
report_file=${AUTO_TEST_RES_PATH}/codec_unittest_${dev}_${rand}.xml
|
||||||
|
$ADB -s $dev uninstall ${apk_id}
|
||||||
|
$ADB -s $dev install -r ${apk}
|
||||||
|
#TODO: output more info about android device such as name,cpu,memory,and also power comsumption.
|
||||||
|
echo `$ADB -s $dev shell cat /system/build.prop |grep ro.product.model | awk -F"=" '{print $2}'`>${dev_info_file}
|
||||||
|
$ADB -s $dev push ${test_res} /sdcard/res
|
||||||
|
$ADB -s $dev shell am start --es path "$xml_file" -n ${apk_main}
|
||||||
|
# check whetehr the app is finished every 2 sec
|
||||||
|
for (( ; ; )); do
|
||||||
|
$ADB -s $dev shell ps | grep ${apk_id}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
sleep 2
|
||||||
|
$ADB -s $dev shell ps | grep ${apk_id}
|
||||||
|
[ $? -ne 0 ] && break
|
||||||
|
fi
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
# kill logcat
|
||||||
|
$ADB -s $dev pull ${xml_file} ${report_file}
|
||||||
|
#delete the res
|
||||||
|
$ADB -s $dev shell rm -rf ${xml_file}
|
||||||
|
$ADB -s $dev shell rm -rf /sdcard/res
|
||||||
|
done
|
||||||
|
}
|
||||||
|
for apk in ${apk_name};do
|
||||||
|
run_apk $apk;
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo There is something wrong happened when run ${apk_name}
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo Finished unit test on android
|
||||||
|
echo The test result is at ./android/report/xxx.xml
|
||||||
|
echo xxxxxxxxxxxxxxxAndroid unittest Endxxxxxxxxxxxxxxxx
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
167
autotest/unitTest/ios/run_AutoTest_ios.sh
Normal file
167
autotest/unitTest/ios/run_AutoTest_ios.sh
Normal file
@@ -0,0 +1,167 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
#Build ios test ref app
|
||||||
|
|
||||||
|
#set the default configuration
|
||||||
|
CODEC_TEST_IOS_ARCH="armv7"
|
||||||
|
CODEC_TEST_IOS_PLATFORM="iphoneos"
|
||||||
|
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
|
||||||
|
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
|
||||||
|
|
||||||
|
|
||||||
|
buildXcodeProject()
|
||||||
|
{
|
||||||
|
xcodebuild ARCHS="${CODEC_TEST_IOS_ARCH}" VALID_ARCHS="${CODEC_TEST_IOS_ARCH}" ONLY_ACTIVE_ARCH=NO -project $1 -target $2 -configuration $3 -sdk ${CODEC_TEST_IOS_PLATFORM} clean build
|
||||||
|
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo "build $1 $3 successfully"
|
||||||
|
else
|
||||||
|
echo "build $1 $3 fail"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
iosUnitTest()
|
||||||
|
{
|
||||||
|
|
||||||
|
if [ $# -gt 2 ]; then
|
||||||
|
echo "Please use command $0 [armv7/armv7s/arm64] [release/debug]"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
CODEC_TEST_XCODE_PROJECT_NAME="${AUTO_TEST_SRC_PATH}/test/build/ios/codec_unittest/codec_unittest.xcodeproj/"
|
||||||
|
CODEC_TEST_IOS_PROJECT_NAME="codec_unittest"
|
||||||
|
CODEC_TEST_IOS_PROJECT_PATH="${AUTO_TEST_SRC_PATH}/test/build/ios/codec_unittest/build"
|
||||||
|
CODEC_TEST_IOS_APP=${CODEC_TEST_IOS_PROJECT_PATH}/${CODEC_TEST_IOS_DEBUG_RELEASE}-iphoneos/${CODEC_TEST_IOS_PROJECT_NAME}.app
|
||||||
|
CODEC_TEST_IOS_APP_ID="com.cisco.codec-unittest"
|
||||||
|
CODEC_TEST_RES=${AUTO_TEST_SRC_PATH}/res
|
||||||
|
CODEC_TEST_LOG="codec_unittest"
|
||||||
|
for PARAM in $*; do
|
||||||
|
if [ "release" = "${PARAM}" ]; then
|
||||||
|
CODEC_TEST_IOS_DEBUG_RELEASE="Release"
|
||||||
|
CODEC_TEST_IOS_REPORT_SUBFOLDER="release"
|
||||||
|
elif [ "debug" = "${PARAM}" ]; then
|
||||||
|
CODEC_TEST_IOS_DEBUG_RELEASE="Debug"
|
||||||
|
CODEC_TEST_IOS_REPORT_SUBFOLDER="debug"
|
||||||
|
elif [ "armv7" = "${PARAM}" ];then
|
||||||
|
CODEC_TEST_IOS_ARCH="armv7"
|
||||||
|
elif [ "armv7s" = "${PARAM}" ];then
|
||||||
|
CODEC_TEST_IOS_ARCH="armv7s"
|
||||||
|
elif [ "arm64" = "${PARAM}" ];then
|
||||||
|
CODEC_TEST_IOS_ARCH="arm64"
|
||||||
|
else
|
||||||
|
echo parameters are illegal!!!, please have a check.
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
cd ${AUTO_TEST_SRC_PATH}
|
||||||
|
IOS_MAKE_PARAMS="OS=ios ARCH=${CODEC_TEST_IOS_ARCH}"
|
||||||
|
############make build
|
||||||
|
find ./ -name *.o -exec rm -rf {} \;
|
||||||
|
find ./ -name *.d -exec rm -rf {} \;
|
||||||
|
rm -f *.so
|
||||||
|
make clean
|
||||||
|
make ${IOS_MAKE_PARAMS} test
|
||||||
|
echo "Codec test will run on ${CODEC_TEST_IOS_PLATFORM} with ${CODEC_TEST_IOS_DEBUG_RELEASE}"
|
||||||
|
cd ${AUTO_TEST_IOS_PATH}
|
||||||
|
buildXcodeProject ${CODEC_TEST_XCODE_PROJECT_NAME} ${CODEC_TEST_IOS_PROJECT_NAME} ${CODEC_TEST_IOS_DEBUG_RELEASE} ${CODEC_TEST_IOS_PLATFORM}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##############run on ios devices#########################
|
||||||
|
# for real device
|
||||||
|
if [ ! -d ${CODEC_TEST_IOS_APP} ] ; then
|
||||||
|
echo "${CODEC_TEST_IOS_APP} is not found"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "Find app ${CODEC_TEST_IOS_APP}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#ensure instruments not runing
|
||||||
|
echo "Try to kill the runing instruments"
|
||||||
|
pids_str=`ps x -o pid,command | grep -v grep | grep "instruments" | awk '{printf "%s,", $1}'`
|
||||||
|
instruments_pids="${pids_str//,/ }"
|
||||||
|
for pid in ${instruments_pids}; do
|
||||||
|
echo "Found instruments ${pid}. Killing..."
|
||||||
|
kill -9 ${pid} && wait ${pid} &> /dev/null
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
DEVICES=`system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'`
|
||||||
|
if [ "${DEVICES}#" == "#" ]
|
||||||
|
then
|
||||||
|
echo "Can not find any connected device! please check device is connected to MAC!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
rand=`date +%s`
|
||||||
|
for DEVICE_ID in ${DEVICES}
|
||||||
|
do
|
||||||
|
echo "Try to run on device:${DEVICE_ID}"
|
||||||
|
|
||||||
|
#uninstall the application from device to remove the last result
|
||||||
|
${AUTO_TEST_IOS_SCRIPT_PATH}/fruitstrap uninstall --bundle ${CODEC_TEST_IOS_APP_ID} --id ${DEVICE_ID}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo uninstall application: ${CODEC_TEST_IOS_APP} from device: ${DEVICE_ID} is failed!
|
||||||
|
fi
|
||||||
|
#install the application
|
||||||
|
${AUTO_TEST_IOS_SCRIPT_PATH}/fruitstrap install --bundle ${CODEC_TEST_IOS_APP} --id ${DEVICE_ID}
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo install application: ${CODEC_TEST_IOS_APP} to device: ${DEVICE_ID} is failed!
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
${AUTO_TEST_IOS_SCRIPT_PATH}/iFileTransfer -o copy -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from ${CODEC_TEST_RES}
|
||||||
|
instruments -w ${DEVICE_ID} -t /Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate ${CODEC_TEST_IOS_APP} -e UIASCRIPT ${AUTO_TEST_IOS_SCRIPT_PATH}/uiascript.js -e UIARRESULTPATH /tmp/
|
||||||
|
#copy to report folder
|
||||||
|
${AUTO_TEST_IOS_SCRIPT_PATH}/iFileTransfer -o download -id ${DEVICE_ID} -app ${CODEC_TEST_IOS_APP_ID} -from /Documents/${CODEC_TEST_LOG}.xml -to ${CODEC_TEST_IOS_REPORT_PATH}/${CODEC_TEST_LOG}_${DEVICE_ID}_${rand}_${CODEC_TEST_IOS_ARCH}.xml
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "download file: ${CODEC_TEST_LOG}.xml from ${CODEC_TEST_IOS_APP_ID} is failed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
AUTO_TEST_IOS_PATH=`pwd`
|
||||||
|
AUTO_TEST_SRC_PATH="../../.."
|
||||||
|
AUTO_TEST_IOS_SCRIPT_PATH="../../performanceTest/ios"
|
||||||
|
CODEC_TEST_IOS_REPORT_PATH="${AUTO_TEST_IOS_PATH}/report"
|
||||||
|
if [ ! -d ${CODEC_TEST_IOS_REPORT_PATH} ]
|
||||||
|
then
|
||||||
|
mkdir -p ${CODEC_TEST_IOS_REPORT_PATH}
|
||||||
|
else
|
||||||
|
echo "Will delete those outdate xml in the report"
|
||||||
|
rm -f ${CODEC_TEST_IOS_REPORT_PATH}/*.xml
|
||||||
|
fi
|
||||||
|
|
||||||
|
#start to run unittest,default run the xcode at arch armv7 with release
|
||||||
|
iosUnitTest armv7 release
|
||||||
|
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Running Unittest demo with armv7 is failed!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo Finished unittest with armv7 on ios devices
|
||||||
|
echo the test result is generated at ./ios/report/xx.xml
|
||||||
|
fi
|
||||||
|
#start to run unittest,run the xcode at arch arm64 with release
|
||||||
|
iosUnitTest arm64 release
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Running Unittest demo with arm64 is failed!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo Finished unittest with arm64 on ios devices
|
||||||
|
echo the test result is generated at ./ios/report/xx.xml
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxIOS unittest Endxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||||
|
|
||||||
|
#TODO:according to the trace of instruments to do some analysis
|
||||||
|
#find ${AUTO_TEST_IOS_SCRIPT_PATH} -name *.trace -exec rm -rf {} \;
|
||||||
|
rm -rf *.trace
|
||||||
70
autotest/unitTest/run_ParseUTxml.sh
Normal file
70
autotest/unitTest/run_ParseUTxml.sh
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
if [ $# -ne 1 ];then
|
||||||
|
echo Please input $0 [report dir]
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
REPORT=$1
|
||||||
|
if [ ! -e ${REPORT} ];then
|
||||||
|
echo "The directory of ${REPORT} dose't not exit,please check the test log"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
UT_Failed_Num=0
|
||||||
|
parse_unittest() {
|
||||||
|
res=$1
|
||||||
|
echo ${res}
|
||||||
|
echo Start to parse unittest results of $res
|
||||||
|
if [ -e $res ];then
|
||||||
|
tests=`cat $res | grep "<testsuites" | awk -F " " '{print $2;}' | awk -F "\"" '{print $2;}'`
|
||||||
|
fails=`cat $res | grep "<testsuites" | awk -F " " '{print $3;}' | awk -F "\"" '{print $2;}'`
|
||||||
|
times=`cat $res | grep "<testsuites" | awk -F " " '{print $6;}' | awk -F "\"" '{print $2;}'`
|
||||||
|
waste=`cat $res | grep "<testsuites" | awk -F " " '{print $7;}' | awk -F "\"" '{print $2;}'`
|
||||||
|
msg="Total testcases: $tests, failed: $fails,time:$waste seconds, at$times,xml:$res"
|
||||||
|
echo ${msg}
|
||||||
|
UT_Failed_Num=$((${UT_Failed_Num}+${fails}))
|
||||||
|
cat >> mail.log << EOF
|
||||||
|
<style>
|
||||||
|
.fail {
|
||||||
|
background-color: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<br>
|
||||||
|
<table style="width:600px" cellspacing="0" border="1" width="100%">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>Total unit test cases</td>
|
||||||
|
<td>Failed</td>
|
||||||
|
<td>Time</td>
|
||||||
|
<td>Date</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr style="text-align:center; font-weight: bold;">
|
||||||
|
<td>${tests}</td>
|
||||||
|
<td><font class="fail">${fails}</font></td>
|
||||||
|
<td>${waste}</td>
|
||||||
|
<td>${times}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<br>
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
xmlcount=`ls $REPORT | wc -l`
|
||||||
|
xmlfiles=`ls $REPORT`
|
||||||
|
if [ ${xmlcount} -eq 0 ];
|
||||||
|
then echo There is nothing xml files generated at $REPORT
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
for file in $xmlfiles;do
|
||||||
|
parse_unittest $REPORT/$file
|
||||||
|
done
|
||||||
|
if [ ${UT_Failed_Num} = "0" ];then
|
||||||
|
echo Total $xmlcount files at $REPORT,all sucessful
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo Total $xmlcount files at $REPORT,${UT_Failed_Num} error cases
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
98
autotest/unitTest/run_unitTest.sh
Normal file
98
autotest/unitTest/run_unitTest.sh
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
AUTO_TEST_PATH=`pwd`
|
||||||
|
IOS=0
|
||||||
|
ANDROID=0
|
||||||
|
#Prepare GTEST
|
||||||
|
AUTO_TEST_SRC_PATH="../../"
|
||||||
|
cd ${AUTO_TEST_SRC_PATH}
|
||||||
|
if [ ! -d "./gtest" ]
|
||||||
|
then
|
||||||
|
make gtest-bootstrap
|
||||||
|
fi
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
#To find whether have android devices
|
||||||
|
echo please set the enviroment variable as:
|
||||||
|
echo export ANDROID_HOME="path of android sdk"
|
||||||
|
echo export ANDROID_NDK_HOME="path of android ndk"
|
||||||
|
ANDROID_SDK_PATH=${ANDROID_HOME}
|
||||||
|
ANDROID_NDK_PATH=${ANDROID_NDK_HOME}
|
||||||
|
if [ "#${ANDROID_SDK_PATH}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Please set ANDROID_HOME with the path of Android SDK
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ "#${ANDROID_NDK_PATH}" = "#" ]
|
||||||
|
then
|
||||||
|
echo Please set ANDROID_NDK_HOME with the path of Android NDK
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
#prepare devices
|
||||||
|
ADB=${ANDROID_SDK_PATH}/platform-tools/adb
|
||||||
|
|
||||||
|
#get devices
|
||||||
|
devices=`$ADB devices | awk -F" " '/\tdevice/{print $1}'`
|
||||||
|
if [ "#$devices" = "#" ];then
|
||||||
|
echo "Can not find any android devices!"
|
||||||
|
else
|
||||||
|
echo Start to run the unittest on android devices
|
||||||
|
ANDROID=1
|
||||||
|
cd ./android
|
||||||
|
bash run_AutoTest_android.sh >/dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ];then
|
||||||
|
echo There is something wrong happened when runing unittest on android devices,please to check
|
||||||
|
else
|
||||||
|
echo Finish run the unittest on android devices sucessfully
|
||||||
|
fi
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#To find whether have ios devices
|
||||||
|
DEVICES=`system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p' -e '/iPhone/,/Serial/p' | grep "Serial Number:" | awk -F ": " '{print $2}'`
|
||||||
|
if [ "${DEVICES}#" == "#" ]
|
||||||
|
then
|
||||||
|
echo "Can not find any ios devices!"
|
||||||
|
else
|
||||||
|
echo Start to run the unittest on ios devices
|
||||||
|
IOS=1
|
||||||
|
cd ./ios
|
||||||
|
bash run_AutoTest_ios.sh >/dev/null 2>&1
|
||||||
|
if [ $? -ne 0 ];then
|
||||||
|
echo There is something wrong happened when runing unittest on ios devices,please to check
|
||||||
|
else
|
||||||
|
echo Finish run the unittest on android devices sucessfully
|
||||||
|
fi
|
||||||
|
cd ${AUTO_TEST_PATH}
|
||||||
|
fi
|
||||||
|
|
||||||
|
#To parse the unit test result file to find whether have failures
|
||||||
|
if [ ${ANDROID} = "1" ];then
|
||||||
|
echo "
|
||||||
|
<style>
|
||||||
|
.env {
|
||||||
|
background-color: #95B9C7;
|
||||||
|
font: 30px bold;
|
||||||
|
}</style>">>mail.log
|
||||||
|
echo "<br><font class="env">Run unit test on android devices</font>">>mail.log
|
||||||
|
bash run_ParseUTxml.sh ./android/report
|
||||||
|
ret=$?
|
||||||
|
if [ ${ret} -eq 0 ];then
|
||||||
|
echo Unit test run on the android devices have not any failure case
|
||||||
|
elif [ ${ret} -eq 2 ];then
|
||||||
|
echo Unit test have cases failed,please check
|
||||||
|
elif [ ${ret} -eq 1 ];then
|
||||||
|
echo Unit test run failed
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ ${IOS} = "1" ];then
|
||||||
|
echo "<br><font class="env">Run unit test on ios devices with armv7 & arm64</font>">>mail.log
|
||||||
|
bash run_ParseUTxml.sh ./ios/report
|
||||||
|
ret=$?
|
||||||
|
if [ $ret -eq 0 ];then
|
||||||
|
echo Unit test run on the ios devices have not any failure case
|
||||||
|
elif [ $ret -eq 2 ];then
|
||||||
|
echo Unit test have cases failed,please check
|
||||||
|
elif [ $ret -eq 1 ];then
|
||||||
|
echo Unit test run failed
|
||||||
|
fi
|
||||||
|
fi
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
ifneq ($(filter %86 x86_64, $(ARCH)),)
|
ifneq ($(filter %86 x86_64, $(ARCH)),)
|
||||||
include build/platform-x86-common.mk
|
include $(SRC_PATH)build/x86-common.mk
|
||||||
endif
|
endif
|
||||||
ifneq ($(filter-out arm64, $(filter arm%, $(ARCH))),)
|
ifneq ($(filter-out arm64, $(filter arm%, $(ARCH))),)
|
||||||
ifeq ($(USE_ASM), Yes)
|
ifeq ($(USE_ASM), Yes)
|
||||||
ASM_ARCH = arm
|
ASM_ARCH = arm
|
||||||
ASMFLAGS += -Icodec/common/arm/
|
ASMFLAGS += -I$(SRC_PATH)codec/common/arm/
|
||||||
CFLAGS += -DHAVE_NEON
|
CFLAGS += -DHAVE_NEON
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifneq ($(filter arm64 aarch64, $(ARCH)),)
|
ifneq ($(filter arm64 aarch64, $(ARCH)),)
|
||||||
ifeq ($(USE_ASM), Yes)
|
ifeq ($(USE_ASM), Yes)
|
||||||
ASM_ARCH = arm64
|
ASM_ARCH = arm64
|
||||||
ASMFLAGS += -Icodec/common/arm64/
|
ASMFLAGS += -I$(SRC_PATH)codec/common/arm64/
|
||||||
CFLAGS += -DHAVE_NEON_AARCH64
|
CFLAGS += -DHAVE_NEON_AARCH64
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
@@ -5,6 +5,7 @@ GTEST_CPP_SRCS=\
|
|||||||
GTEST_OBJS += $(GTEST_CPP_SRCS:.cc=.$(OBJ))
|
GTEST_OBJS += $(GTEST_CPP_SRCS:.cc=.$(OBJ))
|
||||||
|
|
||||||
OBJS += $(GTEST_OBJS)
|
OBJS += $(GTEST_OBJS)
|
||||||
|
|
||||||
$(GTEST_SRCDIR)/%.$(OBJ): $(GTEST_SRCDIR)/%.cc
|
$(GTEST_SRCDIR)/%.$(OBJ): $(GTEST_SRCDIR)/%.cc
|
||||||
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(GTEST_CFLAGS) $(GTEST_INCLUDES) -c $(CXX_O) $<
|
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(GTEST_CFLAGS) $(GTEST_INCLUDES) -c $(CXX_O) $<
|
||||||
|
|
||||||
|
|||||||
@@ -134,37 +134,42 @@ if len(cfiles) > 0:
|
|||||||
for cfile in cfiles:
|
for cfile in cfiles:
|
||||||
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, cfile))
|
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, cfile))
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
f.write("%s_OBJS += $(%s_C_SRCS:.c=.$(OBJ))\n\n"%(PREFIX, PREFIX))
|
f.write("%s_OBJS += $(%s_C_SRCS:.c=.$(OBJ))\n"%(PREFIX, PREFIX))
|
||||||
|
|
||||||
if len(asm) > 0:
|
if len(asm) > 0:
|
||||||
f.write("ifeq ($(ASM_ARCH), x86)\n")
|
|
||||||
f.write("%s_ASM_SRCS=\\\n"%(PREFIX))
|
f.write("%s_ASM_SRCS=\\\n"%(PREFIX))
|
||||||
for c in asm:
|
for c in asm:
|
||||||
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
|
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
f.write("%s_OBJS += $(%s_ASM_SRCS:.asm=.$(OBJ))\n"%(PREFIX, PREFIX))
|
f.write("%s_OBJSASM += $(%s_ASM_SRCS:.asm=.$(OBJ))\n"%(PREFIX, PREFIX))
|
||||||
f.write("endif\n\n")
|
f.write("ifeq ($(ASM_ARCH), x86)\n")
|
||||||
|
f.write("%s_OBJS += $(%s_OBJSASM)\n"%(PREFIX,PREFIX))
|
||||||
|
f.write("endif\n")
|
||||||
|
f.write("OBJS += $(%s_OBJSASM)\n\n"%(PREFIX))
|
||||||
|
|
||||||
if len(armfiles) > 0:
|
if len(armfiles) > 0:
|
||||||
f.write("ifeq ($(ASM_ARCH), arm)\n")
|
|
||||||
f.write("%s_ASM_ARM_SRCS=\\\n"%(PREFIX))
|
f.write("%s_ASM_ARM_SRCS=\\\n"%(PREFIX))
|
||||||
for c in armfiles:
|
for c in armfiles:
|
||||||
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
|
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
f.write("%s_OBJS += $(%s_ASM_ARM_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
|
f.write("%s_OBJSARM += $(%s_ASM_ARM_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
|
||||||
f.write("endif\n\n")
|
f.write("ifeq ($(ASM_ARCH), arm)\n")
|
||||||
|
f.write("%s_OBJS += $(%s_OBJSARM)\n"%(PREFIX,PREFIX))
|
||||||
|
f.write("endif\n")
|
||||||
|
f.write("OBJS += $(%s_OBJSARM)\n\n"%(PREFIX))
|
||||||
|
|
||||||
if len(arm64files) > 0:
|
if len(arm64files) > 0:
|
||||||
f.write("ifeq ($(ASM_ARCH), arm64)\n")
|
|
||||||
f.write("%s_ASM_ARM64_SRCS=\\\n"%(PREFIX))
|
f.write("%s_ASM_ARM64_SRCS=\\\n"%(PREFIX))
|
||||||
for c in arm64files:
|
for c in arm64files:
|
||||||
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
|
f.write("\t$(%s_SRCDIR)/%s\\\n"%(PREFIX, c))
|
||||||
f.write("\n")
|
f.write("\n")
|
||||||
f.write("%s_OBJS += $(%s_ASM_ARM64_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
|
f.write("%s_OBJSARM64 += $(%s_ASM_ARM64_SRCS:.S=.$(OBJ))\n"%(PREFIX, PREFIX))
|
||||||
f.write("endif\n\n")
|
f.write("ifeq ($(ASM_ARCH), arm64)\n")
|
||||||
|
f.write("%s_OBJS += $(%s_OBJSARM64)\n"%(PREFIX,PREFIX))
|
||||||
f.write("OBJS += $(%s_OBJS)\n"%PREFIX)
|
f.write("endif\n")
|
||||||
|
f.write("OBJS += $(%s_OBJSARM64)\n\n"%(PREFIX))
|
||||||
|
|
||||||
|
f.write("OBJS += $(%s_OBJS)\n\n"%(PREFIX))
|
||||||
write_cpp_rule_pattern(f)
|
write_cpp_rule_pattern(f)
|
||||||
|
|
||||||
if len(cfiles) > 0:
|
if len(cfiles) > 0:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
include build/platform-arch.mk
|
include $(SRC_PATH)build/arch.mk
|
||||||
ifeq ($(ASM_ARCH), x86)
|
ifeq ($(ASM_ARCH), x86)
|
||||||
ifeq ($(ENABLE64BIT), Yes)
|
ifeq ($(ENABLE64BIT), Yes)
|
||||||
ASMFLAGS += -f win64
|
ASMFLAGS += -f win64
|
||||||
@@ -26,7 +26,7 @@ CFLAGS += -nologo -W3 -EHsc -fp:precise -Zc:wchar_t -Zc:forScope -D_VARIADIC_MAX
|
|||||||
CXX_LINK_O=-nologo -Fe$@
|
CXX_LINK_O=-nologo -Fe$@
|
||||||
AR_OPTS=-nologo -out:$@
|
AR_OPTS=-nologo -out:$@
|
||||||
CFLAGS_OPT=-O2 -Ob1 -Oy- -Zi -GF -Gm- -GS -Gy -DNDEBUG
|
CFLAGS_OPT=-O2 -Ob1 -Oy- -Zi -GF -Gm- -GS -Gy -DNDEBUG
|
||||||
CFLAGS_DEBUG=-Od -Oy- -ZI -RTC1 -D_DEBUG
|
CFLAGS_DEBUG=-Od -Oy- -Zi -RTC1 -D_DEBUG
|
||||||
CFLAGS_M32=
|
CFLAGS_M32=
|
||||||
CFLAGS_M64=
|
CFLAGS_M64=
|
||||||
LINK_LOCAL_DIR=
|
LINK_LOCAL_DIR=
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
ARCH = arm
|
ARCH = arm
|
||||||
include build/platform-arch.mk
|
include $(SRC_PATH)build/arch.mk
|
||||||
SHAREDLIBSUFFIX = so
|
SHAREDLIBSUFFIX = so
|
||||||
NDKLEVEL = 12
|
NDKLEVEL = 12
|
||||||
ifeq ($(ARCH), arm)
|
ifeq ($(ARCH), arm)
|
||||||
@@ -9,19 +9,23 @@ ifeq ($(ARCH), arm)
|
|||||||
LDFLAGS += -march=armv7-a -Wl,--fix-cortex-a8
|
LDFLAGS += -march=armv7-a -Wl,--fix-cortex-a8
|
||||||
APP_ABI = armeabi-v7a
|
APP_ABI = armeabi-v7a
|
||||||
endif
|
endif
|
||||||
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=./codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=armeabi)
|
|
||||||
ifeq (Yes, $(USE_ASM))
|
ifeq (Yes, $(USE_ASM))
|
||||||
ASMFLAGS += -march=armv7-a -mfpu=neon
|
ASMFLAGS += -march=armv7-a -mfpu=neon
|
||||||
endif
|
endif
|
||||||
|
else ifeq ($(ARCH), arm64)
|
||||||
|
APP_ABI = arm64-v8a
|
||||||
else ifeq ($(ARCH), x86)
|
else ifeq ($(ARCH), x86)
|
||||||
APP_ABI = x86
|
APP_ABI = x86
|
||||||
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=./codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=x86)
|
|
||||||
ifeq (Yes, $(USE_ASM))
|
ifeq (Yes, $(USE_ASM))
|
||||||
ASMFLAGS += -f elf32
|
ASMFLAGS += -f elf
|
||||||
|
endif
|
||||||
|
else ifeq ($(ARCH), x86_64)
|
||||||
|
APP_ABI = x86_64
|
||||||
|
ifeq (Yes, $(USE_ASM))
|
||||||
|
ASMFLAGS += -f elf64
|
||||||
endif
|
endif
|
||||||
else
|
else
|
||||||
APP_ABI = $(ARCH)
|
APP_ABI = $(ARCH)
|
||||||
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=./codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=$(APP_ABI))
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef NDKROOT
|
ifndef NDKROOT
|
||||||
@@ -31,6 +35,8 @@ ifndef TARGET
|
|||||||
$(error TARGET is not set)
|
$(error TARGET is not set)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
TOOLCHAINPREFIX = $(shell NDK_PROJECT_PATH=$(SRC_PATH)/codec/build/android/dec make --no-print-dir -f $(NDKROOT)/build/core/build-local.mk DUMP_TOOLCHAIN_PREFIX APP_ABI=$(APP_ABI))
|
||||||
|
|
||||||
SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)
|
SYSROOT = $(NDKROOT)/platforms/android-$(NDKLEVEL)/arch-$(ARCH)
|
||||||
CXX = $(TOOLCHAINPREFIX)g++
|
CXX = $(TOOLCHAINPREFIX)g++
|
||||||
CC = $(TOOLCHAINPREFIX)gcc
|
CC = $(TOOLCHAINPREFIX)gcc
|
||||||
@@ -38,7 +44,13 @@ AR = $(TOOLCHAINPREFIX)ar
|
|||||||
CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP
|
CFLAGS += -DANDROID_NDK -fpic --sysroot=$(SYSROOT) -MMD -MP
|
||||||
CXXFLAGS += -fno-rtti -fno-exceptions
|
CXXFLAGS += -fno-rtti -fno-exceptions
|
||||||
LDFLAGS += --sysroot=$(SYSROOT)
|
LDFLAGS += --sysroot=$(SYSROOT)
|
||||||
SHLDFLAGS = -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so
|
SHLDFLAGS = -Wl,--no-undefined -Wl,-z,relro -Wl,-z,now -Wl,-soname,lib$(PROJECT_NAME).so
|
||||||
|
|
||||||
|
ifneq ($(CXX),$(wildcard $(CXX)))
|
||||||
|
ifneq ($(CXX).exe,$(wildcard $(CXX).exe))
|
||||||
|
$(error Compiler not found, bad NDKROOT or ARCH?)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
STL_INCLUDES = \
|
STL_INCLUDES = \
|
||||||
-I$(NDKROOT)/sources/cxx-stl/stlport/stlport
|
-I$(NDKROOT)/sources/cxx-stl/stlport/stlport
|
||||||
@@ -51,6 +63,7 @@ CODEC_UNITTEST_LDFLAGS_SUFFIX = $(STL_LIB)
|
|||||||
MODULE_INCLUDES = $(STL_INCLUDES)
|
MODULE_INCLUDES = $(STL_INCLUDES)
|
||||||
MODULE_LDFLAGS = $(STL_LIB)
|
MODULE_LDFLAGS = $(STL_LIB)
|
||||||
|
|
||||||
|
ifeq (./,$(SRC_PATH))
|
||||||
binaries : decdemo encdemo
|
binaries : decdemo encdemo
|
||||||
|
|
||||||
decdemo: libraries
|
decdemo: libraries
|
||||||
@@ -65,6 +78,12 @@ clean_Android_dec:
|
|||||||
-cd ./codec/build/android/dec && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
|
-cd ./codec/build/android/dec && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
|
||||||
clean_Android_enc:
|
clean_Android_enc:
|
||||||
-cd ./codec/build/android/enc && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
|
-cd ./codec/build/android/enc && $(NDKROOT)/ndk-build APP_ABI=$(APP_ABI) clean && ant clean
|
||||||
|
else
|
||||||
|
all:
|
||||||
|
@:
|
||||||
|
clean_Android:
|
||||||
|
@:
|
||||||
|
endif
|
||||||
|
|
||||||
COMMON_INCLUDES += -I$(NDKROOT)/sources/android/cpufeatures
|
COMMON_INCLUDES += -I$(NDKROOT)/sources/android/cpufeatures
|
||||||
COMMON_OBJS += $(COMMON_SRCDIR)/src/cpu-features.$(OBJ)
|
COMMON_OBJS += $(COMMON_SRCDIR)/src/cpu-features.$(OBJ)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
include build/platform-arch.mk
|
include $(SRC_PATH)build/arch.mk
|
||||||
SHAREDLIBSUFFIX = dylib
|
SHAREDLIBSUFFIX = dylib
|
||||||
SHARED = -dynamiclib
|
SHARED = -dynamiclib
|
||||||
CFLAGS += -Wall -fPIC -MMD -MP
|
CFLAGS += -Wall -fPIC -MMD -MP
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
include build/platform-arch.mk
|
include $(SRC_PATH)build/arch.mk
|
||||||
SHAREDLIBSUFFIX = so
|
SHAREDLIBSUFFIX = so
|
||||||
CFLAGS += -fPIC
|
CFLAGS += -fPIC
|
||||||
LDFLAGS += -lpthread
|
LDFLAGS += -lpthread
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
ARCH = armv7
|
ARCH = armv7
|
||||||
include build/platform-darwin.mk
|
include $(SRC_PATH)build/platform-darwin.mk
|
||||||
CXX = clang++
|
CXX = clang++
|
||||||
CC = clang
|
CC = clang
|
||||||
ifneq ($(filter %86 x86_64, $(ARCH)),)
|
ifneq ($(filter %86 x86_64, $(ARCH)),)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
include build/platform-arch.mk
|
include $(SRC_PATH)build/arch.mk
|
||||||
SHAREDLIBSUFFIX = so
|
SHAREDLIBSUFFIX = so
|
||||||
CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP
|
CFLAGS += -Wall -fno-strict-aliasing -fPIC -MMD -MP
|
||||||
LDFLAGS += -lpthread
|
LDFLAGS += -lpthread
|
||||||
@@ -6,7 +6,7 @@ ifeq ($(ASM_ARCH), x86)
|
|||||||
ifeq ($(ENABLE64BIT), Yes)
|
ifeq ($(ENABLE64BIT), Yes)
|
||||||
ASMFLAGS += -f elf64
|
ASMFLAGS += -f elf64
|
||||||
else
|
else
|
||||||
ASMFLAGS += -f elf32
|
ASMFLAGS += -f elf
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
ifeq ($(ASM_ARCH), arm)
|
ifeq ($(ASM_ARCH), arm)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
include build/platform-x86-common.mk
|
include $(SRC_PATH)build/x86-common.mk
|
||||||
SHAREDLIBSUFFIX = dll
|
SHAREDLIBSUFFIX = dll
|
||||||
CFLAGS += -MMD -MP
|
CFLAGS += -MMD -MP
|
||||||
LDFLAGS +=
|
LDFLAGS +=
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
ARCH = arm
|
ARCH = arm
|
||||||
include build/platform-msvc-common.mk
|
include $(SRC_PATH)build/msvc-common.mk
|
||||||
CFLAGS_OPT += -MD
|
CFLAGS_OPT += -MD
|
||||||
CFLAGS_DEBUG += -MDd
|
CFLAGS_DEBUG += -MDd
|
||||||
CFLAGS += -DWINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP
|
CFLAGS += -DWINAPI_FAMILY=WINAPI_FAMILY_PHONE_APP
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
include build/platform-msvc-common.mk
|
include $(SRC_PATH)build/msvc-common.mk
|
||||||
LDFLAGS += user32.lib
|
LDFLAGS += user32.lib
|
||||||
CFLAGS_OPT += -MT
|
CFLAGS_OPT += -MT
|
||||||
CFLAGS_DEBUG += -MTd -Gm
|
CFLAGS_DEBUG += -MTd -Gm
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
CFLAGS_M32=-m32
|
CFLAGS_M32=-m32
|
||||||
CFLAGS_M64=-m64
|
CFLAGS_M64=-m64
|
||||||
ASM_INCLUDES = -Icodec/common/x86/
|
ASM_INCLUDES = -I$(SRC_PATH)codec/common/x86/
|
||||||
ifeq (, $(ENABLE64BIT))
|
ifeq (, $(ENABLE64BIT))
|
||||||
ifeq ($(ARCH), x86_64)
|
ifeq ($(ARCH), x86_64)
|
||||||
ENABLE64BIT=Yes
|
ENABLE64BIT=Yes
|
||||||
@@ -71,12 +71,6 @@ class ISVCEncoder {
|
|||||||
* return: 0 - success; otherwise - failed;
|
* return: 0 - success; otherwise - failed;
|
||||||
*/
|
*/
|
||||||
virtual int EXTAPI EncodeParameterSets (SFrameBSInfo* pBsInfo) = 0;
|
virtual int EXTAPI EncodeParameterSets (SFrameBSInfo* pBsInfo) = 0;
|
||||||
|
|
||||||
/*
|
|
||||||
* return: 0 - success; otherwise - failed;
|
|
||||||
*/
|
|
||||||
virtual int EXTAPI PauseFrame (const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo) = 0;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* return: 0 - success; otherwise - failed;
|
* return: 0 - success; otherwise - failed;
|
||||||
*/
|
*/
|
||||||
@@ -112,6 +106,14 @@ class ISVCDecoder {
|
|||||||
unsigned char** ppDst,
|
unsigned char** ppDst,
|
||||||
SBufferInfo* pDstInfo) = 0;
|
SBufferInfo* pDstInfo) = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This function parse input bitstream only, and rewrite possible SVC syntax to AVC syntax
|
||||||
|
* return: 0 - success; otherwise -failed;
|
||||||
|
*/
|
||||||
|
virtual DECODING_STATE EXTAPI DecodeParser (const unsigned char* pSrc,
|
||||||
|
const int iSrcLen,
|
||||||
|
SParserBsInfo* pDstInfo) = 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* this API does not work for now!! This is for future use to support non-I420 color format output.
|
* this API does not work for now!! This is for future use to support non-I420 color format output.
|
||||||
*/
|
*/
|
||||||
@@ -151,8 +153,6 @@ int (*Uninitialize) (ISVCEncoder*);
|
|||||||
int (*EncodeFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
|
int (*EncodeFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
|
||||||
int (*EncodeParameterSets) (ISVCEncoder*, SFrameBSInfo* pBsInfo);
|
int (*EncodeParameterSets) (ISVCEncoder*, SFrameBSInfo* pBsInfo);
|
||||||
|
|
||||||
int (*PauseFrame) (ISVCEncoder*, const SSourcePicture* kpSrcPic, SFrameBSInfo* pBsInfo);
|
|
||||||
|
|
||||||
int (*ForceIntraFrame) (ISVCEncoder*, bool bIDR);
|
int (*ForceIntraFrame) (ISVCEncoder*, bool bIDR);
|
||||||
|
|
||||||
int (*SetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
|
int (*SetOption) (ISVCEncoder*, ENCODER_OPTION eOptionId, void* pOption);
|
||||||
@@ -177,6 +177,10 @@ DECODING_STATE (*DecodeFrame2) (ISVCDecoder*, const unsigned char* pSrc,
|
|||||||
unsigned char** ppDst,
|
unsigned char** ppDst,
|
||||||
SBufferInfo* pDstInfo);
|
SBufferInfo* pDstInfo);
|
||||||
|
|
||||||
|
DECODING_STATE (*DecodeParser) (ISVCDecoder*, const unsigned char* pSrc,
|
||||||
|
const int iSrcLen,
|
||||||
|
SParserBsInfo* pDstInfo);
|
||||||
|
|
||||||
DECODING_STATE (*DecodeFrameEx) (ISVCDecoder*, const unsigned char* pSrc,
|
DECODING_STATE (*DecodeFrameEx) (ISVCDecoder*, const unsigned char* pSrc,
|
||||||
const int iSrcLen,
|
const int iSrcLen,
|
||||||
unsigned char* pDst,
|
unsigned char* pDst,
|
||||||
@@ -196,6 +200,7 @@ typedef void (*WelsTraceCallback) (void* ctx, int level, const char* string);
|
|||||||
int WelsCreateSVCEncoder (ISVCEncoder** ppEncoder);
|
int WelsCreateSVCEncoder (ISVCEncoder** ppEncoder);
|
||||||
void WelsDestroySVCEncoder (ISVCEncoder* pEncoder);
|
void WelsDestroySVCEncoder (ISVCEncoder* pEncoder);
|
||||||
|
|
||||||
|
int WelsGetDecoderCapability (SDecoderCapability* pDecCapability);
|
||||||
long WelsCreateDecoder (ISVCDecoder** ppDecoder);
|
long WelsCreateDecoder (ISVCDecoder** ppDecoder);
|
||||||
void WelsDestroyDecoder (ISVCDecoder* pDecoder);
|
void WelsDestroyDecoder (ISVCDecoder* pDecoder);
|
||||||
|
|
||||||
|
|||||||
@@ -89,8 +89,9 @@ typedef enum {
|
|||||||
|
|
||||||
ENCODER_LTR_RECOVERY_REQUEST,
|
ENCODER_LTR_RECOVERY_REQUEST,
|
||||||
ENCODER_LTR_MARKING_FEEDBACK,
|
ENCODER_LTR_MARKING_FEEDBACK,
|
||||||
ENCOCER_LTR_MARKING_PERIOD,
|
ENCODER_LTR_MARKING_PERIOD,
|
||||||
ENCODER_OPTION_LTR,
|
ENCODER_OPTION_LTR,
|
||||||
|
ENCODER_OPTION_COMPLEXITY,
|
||||||
|
|
||||||
ENCODER_OPTION_ENABLE_SSEI, //enable SSEI: true--enable ssei; false--disable ssei
|
ENCODER_OPTION_ENABLE_SSEI, //enable SSEI: true--enable ssei; false--disable ssei
|
||||||
ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING, //enable prefix: true--enable prefix; false--disable prefix
|
ENCODER_OPTION_ENABLE_PREFIX_NAL_ADDING, //enable prefix: true--enable prefix; false--disable prefix
|
||||||
@@ -101,6 +102,12 @@ typedef enum {
|
|||||||
ENCODER_OPTION_TRACE_LEVEL,
|
ENCODER_OPTION_TRACE_LEVEL,
|
||||||
ENCODER_OPTION_TRACE_CALLBACK, // a void (*)(void* context, int level, const char* message) function which receives log messages
|
ENCODER_OPTION_TRACE_CALLBACK, // a void (*)(void* context, int level, const char* message) function which receives log messages
|
||||||
ENCODER_OPTION_TRACE_CALLBACK_CONTEXT,
|
ENCODER_OPTION_TRACE_CALLBACK_CONTEXT,
|
||||||
|
|
||||||
|
ENCODER_OPTION_GET_STATISTICS, //read only
|
||||||
|
ENCODER_OPTION_STATISTICS_LOG_INTERVAL, // log interval in milliseconds
|
||||||
|
|
||||||
|
// advanced algorithmetic settings
|
||||||
|
ENCODER_OPTION_IS_LOSSLESS_LINK
|
||||||
} ENCODER_OPTION;
|
} ENCODER_OPTION;
|
||||||
|
|
||||||
/* Option types introduced in decoder application */
|
/* Option types introduced in decoder application */
|
||||||
@@ -118,13 +125,15 @@ typedef enum {
|
|||||||
DECODER_OPTION_TRACE_CALLBACK, // a void (*)(void* context, int level, const char* message) function which receives log messages
|
DECODER_OPTION_TRACE_CALLBACK, // a void (*)(void* context, int level, const char* message) function which receives log messages
|
||||||
DECODER_OPTION_TRACE_CALLBACK_CONTEXT,
|
DECODER_OPTION_TRACE_CALLBACK_CONTEXT,
|
||||||
|
|
||||||
|
DECODER_OPTION_GET_STATISTICS
|
||||||
|
|
||||||
} DECODER_OPTION;
|
} DECODER_OPTION;
|
||||||
|
|
||||||
//enuerate the types of error concealment methods
|
//enuerate the types of error concealment methods
|
||||||
typedef enum {
|
typedef enum {
|
||||||
ERROR_CON_DISABLE = 0,
|
ERROR_CON_DISABLE = 0,
|
||||||
ERROR_CON_FRAME_COPY,
|
ERROR_CON_FRAME_COPY,
|
||||||
ERROR_CON_SLICE_COPY,
|
ERROR_CON_SLICE_COPY
|
||||||
} ERROR_CON_IDC;
|
} ERROR_CON_IDC;
|
||||||
|
|
||||||
typedef enum { //feedback that whether or not have VCL NAL in current AU
|
typedef enum { //feedback that whether or not have VCL NAL in current AU
|
||||||
@@ -144,14 +153,14 @@ typedef enum {
|
|||||||
SPATIAL_LAYER_1 = 1,
|
SPATIAL_LAYER_1 = 1,
|
||||||
SPATIAL_LAYER_2 = 2,
|
SPATIAL_LAYER_2 = 2,
|
||||||
SPATIAL_LAYER_3 = 3,
|
SPATIAL_LAYER_3 = 3,
|
||||||
SPATIAL_LAYER_ALL = 4,
|
SPATIAL_LAYER_ALL = 4
|
||||||
} LAYER_NUM;
|
} LAYER_NUM;
|
||||||
|
|
||||||
//enumerate the type of video bitstream which is provided to decoder
|
//enumerate the type of video bitstream which is provided to decoder
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VIDEO_BITSTREAM_AVC = 0,
|
VIDEO_BITSTREAM_AVC = 0,
|
||||||
VIDEO_BITSTREAM_SVC = 1,
|
VIDEO_BITSTREAM_SVC = 1,
|
||||||
VIDEO_BITSTREAM_DEFAULT = VIDEO_BITSTREAM_SVC,
|
VIDEO_BITSTREAM_DEFAULT = VIDEO_BITSTREAM_SVC
|
||||||
} VIDEO_BITSTREAM_TYPE;
|
} VIDEO_BITSTREAM_TYPE;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -160,7 +169,7 @@ typedef enum {
|
|||||||
IDR_RECOVERY_REQUEST = 2,
|
IDR_RECOVERY_REQUEST = 2,
|
||||||
NO_LTR_MARKING_FEEDBACK = 3,
|
NO_LTR_MARKING_FEEDBACK = 3,
|
||||||
LTR_MARKING_SUCCESS = 4,
|
LTR_MARKING_SUCCESS = 4,
|
||||||
LTR_MARKING_FAILED = 5,
|
LTR_MARKING_FAILED = 5
|
||||||
} KEY_FRAME_REQUEST_TYPE;
|
} KEY_FRAME_REQUEST_TYPE;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -176,6 +185,10 @@ typedef struct {
|
|||||||
int iLTRFrameNum; //specify current decoder frame_num
|
int iLTRFrameNum; //specify current decoder frame_num
|
||||||
} SLTRMarkingFeedback;
|
} SLTRMarkingFeedback;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
bool bEnableLongTermReference; // 1: on, 0: off
|
||||||
|
int iLTRRefNum; //TODO: not supported to set it arbitrary yet
|
||||||
|
} SLTRConfig;
|
||||||
typedef struct {
|
typedef struct {
|
||||||
unsigned int
|
unsigned int
|
||||||
uiSliceMbNum[MAX_SLICES_NUM_TMP]; //here we use a tmp fixed value since MAX_SLICES_NUM is not defined here and its definition may be changed;
|
uiSliceMbNum[MAX_SLICES_NUM_TMP]; //here we use a tmp fixed value since MAX_SLICES_NUM is not defined here and its definition may be changed;
|
||||||
@@ -196,8 +209,8 @@ typedef enum {
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
RC_QUALITY_MODE = 0, //Quality mode
|
RC_QUALITY_MODE = 0, //Quality mode
|
||||||
RC_BITRATE_MODE = 1, //Bitrate mode
|
RC_BITRATE_MODE = 1, //Bitrate mode
|
||||||
RC_LOW_BW_MODE = 2, //bitrate limited mode
|
RC_BUFFERBASED_MODE = 2,//no bitrate control,only using buffer status,adjust the video quality
|
||||||
RC_OFF_MODE = -1, // rate control off mode
|
RC_OFF_MODE = -1 // rate control off mode
|
||||||
} RC_MODES;
|
} RC_MODES;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -212,7 +225,7 @@ typedef enum {
|
|||||||
PRO_CAVLC444 = 244,
|
PRO_CAVLC444 = 244,
|
||||||
|
|
||||||
PRO_SCALABLE_BASELINE = 83,
|
PRO_SCALABLE_BASELINE = 83,
|
||||||
PRO_SCALABLE_HIGH = 86,
|
PRO_SCALABLE_HIGH = 86
|
||||||
} EProfileIdc;
|
} EProfileIdc;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -269,15 +282,19 @@ typedef struct {
|
|||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
CAMERA_VIDEO_REAL_TIME, //camera video signal
|
CAMERA_VIDEO_REAL_TIME, //camera video signal
|
||||||
SCREEN_CONTENT_REAL_TIME,//screen content signal
|
SCREEN_CONTENT_REAL_TIME //screen content signal
|
||||||
} EUsageType;
|
} EUsageType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LOW_COMPLEXITY, //the lowest compleixty,the fastest speed,
|
||||||
|
MEDIUM_COMPLEXITY, //medium complexity, medium speed,medium quality
|
||||||
|
HIGH_COMPLEXITY //high complexity, lowest speed, high quality
|
||||||
|
} ECOMPLEXITY_MODE;
|
||||||
// TODO: Refine the parameters definition.
|
// TODO: Refine the parameters definition.
|
||||||
// SVC Encoding Parameters
|
// SVC Encoding Parameters
|
||||||
typedef struct TagEncParamBase {
|
typedef struct TagEncParamBase {
|
||||||
EUsageType
|
EUsageType
|
||||||
iUsageType; //application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
|
iUsageType; //application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
|
||||||
int iInputCsp; // color space of input sequence
|
|
||||||
|
|
||||||
int iPicWidth; // width of picture in samples
|
int iPicWidth; // width of picture in samples
|
||||||
int iPicHeight; // height of picture in samples
|
int iPicHeight; // height of picture in samples
|
||||||
@@ -291,7 +308,6 @@ typedef struct TagEncParamBase {
|
|||||||
typedef struct TagEncParamExt {
|
typedef struct TagEncParamExt {
|
||||||
EUsageType
|
EUsageType
|
||||||
iUsageType; //application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
|
iUsageType; //application type;// CAMERA_VIDEO_REAL_TIME: //camera video signal; SCREEN_CONTENT_REAL_TIME: screen content signal;
|
||||||
int iInputCsp; // color space of input sequence
|
|
||||||
|
|
||||||
int iPicWidth; // width of picture in samples
|
int iPicWidth; // width of picture in samples
|
||||||
int iPicHeight; // height of picture in samples
|
int iPicHeight; // height of picture in samples
|
||||||
@@ -303,9 +319,9 @@ typedef struct TagEncParamExt {
|
|||||||
int iSpatialLayerNum; // layer number at spatial level
|
int iSpatialLayerNum; // layer number at spatial level
|
||||||
SSpatialLayerConfig sSpatialLayers[MAX_SPATIAL_LAYER_NUM];
|
SSpatialLayerConfig sSpatialLayers[MAX_SPATIAL_LAYER_NUM];
|
||||||
|
|
||||||
|
ECOMPLEXITY_MODE iComplexityMode;
|
||||||
unsigned int uiIntraPeriod; // period of Intra frame
|
unsigned int uiIntraPeriod; // period of Intra frame
|
||||||
int iNumRefFrame; // number of reference frame used
|
int iNumRefFrame; // number of reference frame used
|
||||||
unsigned int uiFrameToBeCoded; // frame to be encoded (at input frame rate)
|
|
||||||
bool bEnableSpsPpsIdAddition;
|
bool bEnableSpsPpsIdAddition;
|
||||||
bool bPrefixNalAddingCtrl;
|
bool bPrefixNalAddingCtrl;
|
||||||
bool bEnableSSEI;
|
bool bEnableSSEI;
|
||||||
@@ -320,8 +336,8 @@ typedef struct TagEncParamExt {
|
|||||||
unsigned int uiMaxNalSize;
|
unsigned int uiMaxNalSize;
|
||||||
|
|
||||||
/*LTR settings*/
|
/*LTR settings*/
|
||||||
bool bEnableLongTermReference; // 0: on, 1: off
|
bool bEnableLongTermReference; // 1: on, 0: off
|
||||||
int iLTRRefNum;
|
int iLTRRefNum; //TODO: not supported to set it arbitrary yet
|
||||||
unsigned int iLtrMarkPeriod;
|
unsigned int iLtrMarkPeriod;
|
||||||
|
|
||||||
/* multi-thread settings*/
|
/* multi-thread settings*/
|
||||||
@@ -338,6 +354,9 @@ typedef struct TagEncParamExt {
|
|||||||
bool bEnableAdaptiveQuant; // adaptive quantization control
|
bool bEnableAdaptiveQuant; // adaptive quantization control
|
||||||
bool bEnableFrameCroppingFlag;// enable frame cropping flag: TRUE always in application
|
bool bEnableFrameCroppingFlag;// enable frame cropping flag: TRUE always in application
|
||||||
bool bEnableSceneChangeDetect;
|
bool bEnableSceneChangeDetect;
|
||||||
|
|
||||||
|
/*LTR advanced setting*/
|
||||||
|
bool bIsLosslessLink;
|
||||||
} SEncParamExt;
|
} SEncParamExt;
|
||||||
|
|
||||||
//Define a new struct to show the property of video bitstream.
|
//Define a new struct to show the property of video bitstream.
|
||||||
@@ -350,11 +369,11 @@ typedef struct {
|
|||||||
typedef struct TagSVCDecodingParam {
|
typedef struct TagSVCDecodingParam {
|
||||||
char* pFileNameRestructed; // File name of restructed frame used for PSNR calculation based debug
|
char* pFileNameRestructed; // File name of restructed frame used for PSNR calculation based debug
|
||||||
|
|
||||||
int iOutputColorFormat; // color space format to be outputed, EVideoFormatType specified in codec_def.h
|
EVideoFormatType eOutputColorFormat; // color space format to be outputed, EVideoFormatType specified in codec_def.h
|
||||||
unsigned int uiCpuLoad; // CPU load
|
unsigned int uiCpuLoad; // CPU load
|
||||||
unsigned char uiTargetDqLayer; // Setting target dq layer id
|
unsigned char uiTargetDqLayer; // Setting target dq layer id
|
||||||
|
|
||||||
unsigned char uiEcActiveFlag; // Whether active error concealment feature in decoder
|
ERROR_CON_IDC eEcActiveIdc; // Whether active error concealment feature in decoder
|
||||||
|
|
||||||
SVideoProperty sVideoProperty;
|
SVideoProperty sVideoProperty;
|
||||||
} SDecodingParam, *PDecodingParam;
|
} SDecodingParam, *PDecodingParam;
|
||||||
@@ -416,8 +435,63 @@ typedef struct TagLevelInfo {
|
|||||||
} SLevelInfo;
|
} SLevelInfo;
|
||||||
|
|
||||||
typedef struct TagDeliveryStatus {
|
typedef struct TagDeliveryStatus {
|
||||||
int iDropNum; //the number of video frames that are dropped continuously before delivery to encoder, which is used by screen content.
|
bool bDeliveryFlag; //0: the previous frame isn't delivered,1: the previous frame is delivered
|
||||||
int iDropFrameType; // the frame type that is dropped
|
int iDropFrameType; // the frame type that is dropped; reserved
|
||||||
int iDropFrameSize; // the frame size that is dropped
|
int iDropFrameSize; // the frame size that is dropped; reserved
|
||||||
} SDeliveryStatus;
|
} SDeliveryStatus;
|
||||||
|
|
||||||
|
typedef struct TagDecoderCapability {
|
||||||
|
int iProfileIdc;
|
||||||
|
int iProfileIop;
|
||||||
|
int iLevelIdc;
|
||||||
|
int iMaxMbps;
|
||||||
|
int iMaxFs;
|
||||||
|
int iMaxCpb;
|
||||||
|
int iMaxDpb;
|
||||||
|
int iMaxBr;
|
||||||
|
bool bRedPicCap;
|
||||||
|
} SDecoderCapability;
|
||||||
|
|
||||||
|
typedef struct TagParserBsInfo {
|
||||||
|
int iNalNum; //total NAL number in current AU
|
||||||
|
int iNalLenInByte [MAX_NAL_UNITS_IN_LAYER]; //each nal length
|
||||||
|
unsigned char* pDstBuff; //outputted dst buffer for parsed bitstream
|
||||||
|
int iSpsWidthInPixel; //required SPS width info
|
||||||
|
int iSpsHeightInPixel; //required SPS height info
|
||||||
|
} SParserBsInfo, PParserBsInfo;
|
||||||
|
|
||||||
|
typedef struct TagVideoEncoderStatistics {
|
||||||
|
unsigned int uiWidth; // the width of encoded frame
|
||||||
|
unsigned int uiHeight; // the height of encoded frame
|
||||||
|
//following standard, will be 16x aligned, if there are multiple spatial, this is of the highest
|
||||||
|
float fAverageFrameSpeedInMs; // Average_Encoding_Time
|
||||||
|
|
||||||
|
// rate control related
|
||||||
|
float fAverageFrameRate; // the average frame rate in, calculate since encoding starts, supposed that the input timestamp is in unit of ms
|
||||||
|
float fLatestFrameRate; // the frame rate in, in the last second, supposed that the input timestamp is in unit of ms (? useful for checking BR, but is it easy to calculate?
|
||||||
|
unsigned int uiBitRate; // sendrate in Bits per second, calculated within the set time-window
|
||||||
|
|
||||||
|
unsigned int uiInputFrameCount; // number of frames
|
||||||
|
unsigned int uiSkippedFrameCount; // number of frames
|
||||||
|
|
||||||
|
unsigned int uiResolutionChangeTimes; // uiResolutionChangeTimes
|
||||||
|
unsigned int uiIDRReqNum; // number of IDR requests
|
||||||
|
unsigned int uiIDRSentNum; // number of actual IDRs sent
|
||||||
|
unsigned int uiLTRSentNum; // number of LTR sent/marked
|
||||||
|
} SEncoderStatistics; // in building, coming soon
|
||||||
|
|
||||||
|
typedef struct TagVideoDecoderStatistics {
|
||||||
|
unsigned int uiWidth; // the width of encode/decode frame
|
||||||
|
unsigned int uiHeight; // the height of encode/decode frame
|
||||||
|
float fAverageFrameSpeedInMs; // Average_Decoding_Time
|
||||||
|
|
||||||
|
unsigned int uiDecodedFrameCount; // number of frames
|
||||||
|
unsigned int uiResolutionChangeTimes; // uiResolutionChangeTimes
|
||||||
|
unsigned int
|
||||||
|
uiAvgEcRatio; // when EC is on, the average ratio of correct or EC areas, can be an indicator of reconstruction quality
|
||||||
|
unsigned int uiIDRReqNum; // number of actual IDR request
|
||||||
|
unsigned int uiLTRReqNum; // number of actual LTR request
|
||||||
|
unsigned int uiIDRRecvNum; // number of actual IDR received
|
||||||
|
} SDecoderStatistics; // in building, coming soon
|
||||||
|
|
||||||
#endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
|
#endif//WELS_VIDEO_CODEC_APPLICATION_DEFINITION_H__
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ typedef enum {
|
|||||||
videoFrameTypeI, /* I frame type */
|
videoFrameTypeI, /* I frame type */
|
||||||
videoFrameTypeP, /* P frame type */
|
videoFrameTypeP, /* P frame type */
|
||||||
videoFrameTypeSkip, /* Skip the frame based encoder kernel */
|
videoFrameTypeSkip, /* Skip the frame based encoder kernel */
|
||||||
videoFrameTypeIPMixed, /* Frame type introduced I and P slices are mixing */
|
videoFrameTypeIPMixed /* Frame type introduced I and P slices are mixing */
|
||||||
} EVideoFrameType;
|
} EVideoFrameType;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@@ -72,7 +72,7 @@ typedef enum {
|
|||||||
cmUnkonwReason,
|
cmUnkonwReason,
|
||||||
cmMallocMemeError, /*Malloc a memory error*/
|
cmMallocMemeError, /*Malloc a memory error*/
|
||||||
cmInitExpected, /*Initial action is expected*/
|
cmInitExpected, /*Initial action is expected*/
|
||||||
cmUnsupportedData,
|
cmUnsupportedData
|
||||||
} CM_RETURN;
|
} CM_RETURN;
|
||||||
|
|
||||||
/* nal unit type */
|
/* nal unit type */
|
||||||
@@ -93,7 +93,7 @@ enum ENalPriority {
|
|||||||
NAL_PRIORITY_DISPOSABLE = 0,
|
NAL_PRIORITY_DISPOSABLE = 0,
|
||||||
NAL_PRIORITY_LOW = 1,
|
NAL_PRIORITY_LOW = 1,
|
||||||
NAL_PRIORITY_HIGH = 2,
|
NAL_PRIORITY_HIGH = 2,
|
||||||
NAL_PRIORITY_HIGHEST = 3,
|
NAL_PRIORITY_HIGHEST = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
#define IS_PARAMETER_SET_NAL(eNalRefIdc, eNalType) \
|
#define IS_PARAMETER_SET_NAL(eNalRefIdc, eNalType) \
|
||||||
@@ -116,7 +116,7 @@ enum {
|
|||||||
ET_IR_R3 = 0x10, // Intra Refresh in predifined 10% MB
|
ET_IR_R3 = 0x10, // Intra Refresh in predifined 10% MB
|
||||||
ET_FEC_HALF = 0x20, // Forward Error Correction in 50% redundency mode
|
ET_FEC_HALF = 0x20, // Forward Error Correction in 50% redundency mode
|
||||||
ET_FEC_FULL = 0x40, // Forward Error Correction in 100% redundency mode
|
ET_FEC_FULL = 0x40, // Forward Error Correction in 100% redundency mode
|
||||||
ET_RFS = 0x80, // Reference Frame Selection
|
ET_RFS = 0x80 // Reference Frame Selection
|
||||||
};
|
};
|
||||||
|
|
||||||
/* information of coded Slice(=NAL)(s) */
|
/* information of coded Slice(=NAL)(s) */
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.wels.dec;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
import android.os.Process;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
@@ -15,103 +16,136 @@ import java.io.*;
|
|||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
public class WelsDecTest extends Activity {
|
public class WelsDecTest extends Activity {
|
||||||
/** Called when the activity is first created. */
|
/** Called when the activity is first created. */
|
||||||
private OnClickListener OnClickEvent;
|
private OnClickListener OnClickEvent;
|
||||||
private Button mBtnLoad, mBtnStartSW;
|
private Button mBtnLoad, mBtnStartSW;
|
||||||
|
|
||||||
final String mStreamPath = "/sdcard/wels-seq/";
|
final String mStreamPath = "/sdcard/welsdec/";
|
||||||
Vector<String> mStreamFiles = new Vector<String>();
|
Vector<String> mStreamFiles = new Vector<String>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate (Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate (savedInstanceState);
|
||||||
final TextView tv = new TextView(this);
|
final TextView tv = new TextView (this);
|
||||||
System.out.println("Here we go ...");
|
System.out.println ("Here we go ...");
|
||||||
Log.i(TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
|
Log.i (TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
|
||||||
setContentView(R.layout.main);
|
setContentView (R.layout.main);
|
||||||
|
|
||||||
mBtnLoad = (Button)findViewById(R.id.cfg);
|
mBtnLoad = (Button)findViewById (R.id.cfg);
|
||||||
mBtnStartSW = (Button)findViewById(R.id.buttonSW);
|
mBtnStartSW = (Button)findViewById (R.id.buttonSW);
|
||||||
|
|
||||||
OnClickEvent = new OnClickListener()
|
OnClickEvent = new OnClickListener() {
|
||||||
{
|
public void onClick (View v) {
|
||||||
public void onClick(View v)
|
switch (v.getId()) {
|
||||||
{
|
case R.id.cfg: {
|
||||||
switch(v.getId())
|
String cfgFile = mStreamPath + "BitStreams.txt";
|
||||||
{
|
try {
|
||||||
case R.id.cfg:
|
BufferedReader bufferedReader = new BufferedReader (new FileReader (cfgFile));
|
||||||
{
|
String text;
|
||||||
String cfgFile = mStreamPath + "BitStreams.txt";
|
while ((text = bufferedReader.readLine()) != null) {
|
||||||
try {
|
mStreamFiles.add (mStreamPath + text);
|
||||||
BufferedReader bufferedReader = new BufferedReader(new FileReader(cfgFile));
|
Log.i (TAG, mStreamPath + text);
|
||||||
String text;
|
|
||||||
while((text = bufferedReader.readLine()) != null) {
|
|
||||||
mStreamFiles.add(mStreamPath + text);
|
|
||||||
Log.i(TAG, mStreamPath + text);
|
|
||||||
}
|
|
||||||
bufferedReader.close();
|
|
||||||
} catch(IOException e) {
|
|
||||||
Log.e("WELS_DEC", e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case R.id.buttonSW:
|
|
||||||
{
|
|
||||||
System.out.println("decode sequence number = " + mStreamFiles.size());
|
|
||||||
Log.i("WSE_DEC","after click");
|
|
||||||
try {
|
|
||||||
for (int k=0; k < mStreamFiles.size(); k++) {
|
|
||||||
String inFile = mStreamFiles.get(k);
|
|
||||||
String outFile = mStreamFiles.get(k) + ".yuv";
|
|
||||||
Log.i(TAG, "input file:" + inFile+ " output file:" + outFile);
|
|
||||||
DoDecoderTest(inFile, outFile);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, e.getMessage());
|
|
||||||
}
|
|
||||||
mStreamFiles.clear();
|
|
||||||
tv.setText( "Decoder is completed!" );
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
bufferedReader.close();
|
||||||
|
} catch (IOException e) {
|
||||||
mBtnLoad.setOnClickListener(OnClickEvent);
|
Log.e ("WELS_DEC", e.getMessage());
|
||||||
mBtnStartSW.setOnClickListener(OnClickEvent);
|
}
|
||||||
|
|
||||||
System.out.println("Done!");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStart()
|
|
||||||
{
|
|
||||||
Log.i("WSE_DEC","welsdecdemo onStart");
|
|
||||||
super.onStart();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
||||||
switch (keyCode) {
|
|
||||||
case KeyEvent.KEYCODE_BACK:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onKeyDown(keyCode, event);
|
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
|
case R.id.buttonSW: {
|
||||||
|
System.out.println ("decode sequence number = " + mStreamFiles.size());
|
||||||
|
Log.i ("WSE_DEC", "after click");
|
||||||
|
try {
|
||||||
|
for (int k = 0; k < mStreamFiles.size(); k++) {
|
||||||
|
String inFile = mStreamFiles.get (k);
|
||||||
|
String outFile = mStreamFiles.get (k) + ".yuv";
|
||||||
|
Log.i (TAG, "input file:" + inFile + " output file:" + outFile);
|
||||||
|
DoDecoderTest (inFile, outFile);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e (TAG, e.getMessage());
|
||||||
|
}
|
||||||
|
mStreamFiles.clear();
|
||||||
|
tv.setText ("Decoder is completed!");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public native void DoDecoderTest(String infilename, String outfilename);
|
mBtnLoad.setOnClickListener (OnClickEvent);
|
||||||
private static final String TAG = "welsdec";
|
mBtnStartSW.setOnClickListener (OnClickEvent);
|
||||||
static {
|
|
||||||
try {
|
System.out.println ("Done!");
|
||||||
System.loadLibrary("openh264");
|
//if you want to run the demo manually, just comment following 2 lines
|
||||||
System.loadLibrary("stlport_shared");
|
runAutoDec();
|
||||||
System.loadLibrary("welsdecdemo");
|
}
|
||||||
Log.v(TAG, "Load libwelsdec successful");
|
public void runAutoDec() {
|
||||||
|
Thread thread = new Thread() {
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
Log.i (TAG, "decoder performance test begin");
|
||||||
|
|
||||||
|
File bitstreams = new File (mStreamPath);
|
||||||
|
String[] list = bitstreams.list();
|
||||||
|
if (list == null || list.length == 0) {
|
||||||
|
Log.i (TAG, "have not find any coder resourse");
|
||||||
|
finish();
|
||||||
}
|
}
|
||||||
catch(Exception e) {
|
for (int i = 0; i < list.length; i++) {
|
||||||
Log.e(TAG, "Failed to load welsdec"+e.getMessage());
|
|
||||||
|
String inFile = list[i];
|
||||||
|
inFile = mStreamPath + inFile;
|
||||||
|
String outFile = inFile + ".yuv";
|
||||||
|
DoDecoderTest (inFile, outFile);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Log.i (TAG, "decoder performance test finish");
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
thread.start();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
Log.i ("WSE_DEC", "welsdecdemo onStart");
|
||||||
|
super.onStart();
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
|
||||||
|
Log.i (TAG, "OnDestroy");
|
||||||
|
|
||||||
|
Process.killProcess (Process.myPid());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onKeyDown (int keyCode, KeyEvent event) {
|
||||||
|
switch (keyCode) {
|
||||||
|
case KeyEvent.KEYCODE_BACK:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return super.onKeyDown (keyCode, event);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public native void DoDecoderTest (String infilename, String outfilename);
|
||||||
|
private static final String TAG = "welsdec";
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
System.loadLibrary ("openh264");
|
||||||
|
System.loadLibrary ("stlport_shared");
|
||||||
|
System.loadLibrary ("welsdecdemo");
|
||||||
|
Log.v (TAG, "Load libwelsdec successful");
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e (TAG, "Failed to load welsdec" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,27 @@
|
|||||||
|
|
||||||
extern "C" int EncMain (int argc, char* argv[]);
|
extern "C" int EncMain (int argc, char* argv[]);
|
||||||
extern "C"
|
extern "C"
|
||||||
|
JNIEXPORT void JNICALL Java_com_wels_enc_WelsEncTest_DoEncoderAutoTest
|
||||||
|
(JNIEnv* env, jobject thiz, jstring jsIncfgName, jstring jsInlayerName, jstring jsInyuvName, jstring jsOutbitName) {
|
||||||
|
/**************** Add the native codes/API *****************/
|
||||||
|
const char* argv[]={
|
||||||
|
(char*)("encConsole.exe"),
|
||||||
|
(char*) ((*env).GetStringUTFChars (jsIncfgName, NULL)),
|
||||||
|
(char*)("-org"),
|
||||||
|
(char*) ((*env).GetStringUTFChars (jsInyuvName, NULL)),
|
||||||
|
(char*)("-bf"),
|
||||||
|
(char*) ((*env).GetStringUTFChars (jsOutbitName, NULL)),
|
||||||
|
(char*)("-numl"),
|
||||||
|
(char*)("1"),
|
||||||
|
(char*)("-lconfig"),
|
||||||
|
(char*)("0"),
|
||||||
|
(char*) ((*env).GetStringUTFChars (jsInlayerName, NULL))
|
||||||
|
};
|
||||||
|
LOGI ("Start to run JNI module!+++");
|
||||||
|
EncMain(sizeof(argv)/sizeof(argv[0]),(char**)&argv[0]);
|
||||||
|
LOGI ("End to run JNI module!+++");
|
||||||
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_com_wels_enc_WelsEncTest_DoEncoderTest
|
JNIEXPORT void JNICALL Java_com_wels_enc_WelsEncTest_DoEncoderTest
|
||||||
(JNIEnv* env, jobject thiz, jstring jsFileNameIn) {
|
(JNIEnv* env, jobject thiz, jstring jsFileNameIn) {
|
||||||
/**************** Add the native codes/API *****************/
|
/**************** Add the native codes/API *****************/
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.wels.enc;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
import android.os.Process;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
@@ -15,104 +16,158 @@ import java.io.*;
|
|||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
public class WelsEncTest extends Activity {
|
public class WelsEncTest extends Activity {
|
||||||
/** Called when the activity is first created. */
|
/** Called when the activity is first created. */
|
||||||
private OnClickListener OnClickEvent;
|
private OnClickListener OnClickEvent;
|
||||||
private Button mBtnLoad, mBtnStartSW;
|
private Button mBtnLoad, mBtnStartSW;
|
||||||
|
|
||||||
final String mStreamPath = "/sdcard/wels-seq/";
|
final String mStreamPath = "/sdcard/welsenc/";
|
||||||
Vector<String> mCfgFiles = new Vector<String>();
|
Vector<String> mCfgFiles = new Vector<String>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate (Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate (savedInstanceState);
|
||||||
final TextView tv = new TextView(this);
|
final TextView tv = new TextView (this);
|
||||||
System.out.println("Here we go ...");
|
System.out.println ("Here we go ...");
|
||||||
Log.i(TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
|
Log.i (TAG, "sdcard path:" + Environment.getExternalStorageDirectory().getAbsolutePath());
|
||||||
setContentView(R.layout.main);
|
setContentView (R.layout.main);
|
||||||
|
|
||||||
mBtnLoad = (Button)findViewById(R.id.cfg);
|
mBtnLoad = (Button)findViewById (R.id.cfg);
|
||||||
mBtnStartSW = (Button)findViewById(R.id.buttonSW);
|
mBtnStartSW = (Button)findViewById (R.id.buttonSW);
|
||||||
|
|
||||||
|
|
||||||
OnClickEvent = new OnClickListener()
|
OnClickEvent = new OnClickListener() {
|
||||||
{
|
public void onClick (View v) {
|
||||||
public void onClick(View v)
|
switch (v.getId()) {
|
||||||
{
|
case R.id.cfg: {
|
||||||
switch(v.getId())
|
String cfgFile = mStreamPath + "cfgs.txt";
|
||||||
{
|
try {
|
||||||
case R.id.cfg:
|
BufferedReader bufferedReader = new BufferedReader (new FileReader (cfgFile));
|
||||||
{
|
String text;
|
||||||
String cfgFile = mStreamPath + "cfgs.txt";
|
while ((text = bufferedReader.readLine()) != null) {
|
||||||
try {
|
mCfgFiles.add (mStreamPath + text);
|
||||||
BufferedReader bufferedReader = new BufferedReader(new FileReader(cfgFile));
|
Log.i (TAG, mStreamPath + text);
|
||||||
String text;
|
|
||||||
while((text = bufferedReader.readLine()) != null) {
|
|
||||||
mCfgFiles.add(mStreamPath + text);
|
|
||||||
Log.i(TAG, mStreamPath + text);
|
|
||||||
}
|
|
||||||
bufferedReader.close();
|
|
||||||
} catch(IOException e) {
|
|
||||||
Log.e(TAG, e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case R.id.buttonSW:
|
|
||||||
{
|
|
||||||
System.out.println("decode sequence number = " + mCfgFiles.size());
|
|
||||||
Log.i(TAG,"after click");
|
|
||||||
try {
|
|
||||||
for (int k=0; k < mCfgFiles.size(); k++) {
|
|
||||||
String cfgFile = mCfgFiles.get(k);
|
|
||||||
DoEncoderTest(cfgFile);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
Log.e(TAG, e.getMessage());
|
|
||||||
}
|
|
||||||
mCfgFiles.clear();
|
|
||||||
tv.setText( "Decoder is completed!" );
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
bufferedReader.close();
|
||||||
|
} catch (IOException e) {
|
||||||
mBtnLoad.setOnClickListener(OnClickEvent);
|
Log.e (TAG, e.getMessage());
|
||||||
mBtnStartSW.setOnClickListener(OnClickEvent);
|
}
|
||||||
|
|
||||||
System.out.println("Done!");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onStart()
|
|
||||||
{
|
|
||||||
Log.i(TAG,"welsdecdemo onStart");
|
|
||||||
super.onStart();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
|
||||||
switch (keyCode) {
|
|
||||||
case KeyEvent.KEYCODE_BACK:
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return super.onKeyDown(keyCode, event);
|
|
||||||
}
|
}
|
||||||
}
|
break;
|
||||||
|
case R.id.buttonSW: {
|
||||||
|
System.out.println ("encode sequence number = " + mCfgFiles.size());
|
||||||
|
Log.i (TAG, "after click");
|
||||||
|
try {
|
||||||
|
for (int k = 0; k < mCfgFiles.size(); k++) {
|
||||||
|
String cfgFile = mCfgFiles.get (k);
|
||||||
|
DoEncoderTest (cfgFile);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e (TAG, e.getMessage());
|
||||||
|
}
|
||||||
|
mCfgFiles.clear();
|
||||||
|
tv.setText ("Encoder is completed!");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
public native void DoEncoderTest(String cfgFileName);
|
mBtnLoad.setOnClickListener (OnClickEvent);
|
||||||
private static final String TAG = "welsenc";
|
mBtnStartSW.setOnClickListener (OnClickEvent);
|
||||||
static {
|
|
||||||
try {
|
System.out.println ("Done!");
|
||||||
System.loadLibrary("openh264");
|
//run the test automatically,if you not want to autotest, just comment this line
|
||||||
System.loadLibrary("stlport_shared");
|
runAutoEnc();
|
||||||
System.loadLibrary("welsencdemo");
|
}
|
||||||
Log.v(TAG, "Load libwelsencdemo.so successful");
|
|
||||||
|
public void runAutoEnc() {
|
||||||
|
Thread thread = new Thread() {
|
||||||
|
|
||||||
|
public void run() {
|
||||||
|
Log.i (TAG, "encoder performance test begin");
|
||||||
|
String inYuvfile = null, outBitfile = null, inOrgfile = null, inLayerfile = null;
|
||||||
|
File encCase = new File (mStreamPath);
|
||||||
|
String[] caseNum = encCase.list();
|
||||||
|
if (caseNum == null || caseNum.length == 0) {
|
||||||
|
Log.i (TAG, "have not find any encoder resourse");
|
||||||
|
finish();
|
||||||
}
|
}
|
||||||
catch(Exception e) {
|
|
||||||
Log.e(TAG, "Failed to load welsdec"+e.getMessage());
|
for (int i = 0; i < caseNum.length; i++) {
|
||||||
|
String[] yuvName = null;
|
||||||
|
File yuvPath = null;
|
||||||
|
File encCaseNo = new File (mStreamPath + caseNum[i]);
|
||||||
|
String[] encFile = encCaseNo.list();
|
||||||
|
|
||||||
|
for (int k = 0; k < encFile.length; k++) {
|
||||||
|
if (encFile[k].compareToIgnoreCase ("welsenc.cfg") == 0)
|
||||||
|
|
||||||
|
inOrgfile = encCaseNo + File.separator + encFile[k];
|
||||||
|
|
||||||
|
else if (encFile[k].compareToIgnoreCase ("layer2.cfg") == 0)
|
||||||
|
inLayerfile = encCaseNo + File.separator + encFile[k];
|
||||||
|
else if (encFile[k].compareToIgnoreCase ("yuv") == 0) {
|
||||||
|
yuvPath = new File (encCaseNo + File.separator + encFile[k]);
|
||||||
|
yuvName = yuvPath.list();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int m = 0; m < yuvName.length; m++) {
|
||||||
|
inYuvfile = yuvPath + File.separator + yuvName[m];
|
||||||
|
outBitfile = inYuvfile + ".264";
|
||||||
|
Log.i (TAG, "enc yuv file:" + yuvName[m]);
|
||||||
|
DoEncoderAutoTest (inOrgfile, inLayerfile, inYuvfile, outBitfile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Log.i (TAG, "encoder performance test finish");
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
thread.start();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
Log.i (TAG, "welsencdemo onStart");
|
||||||
|
super.onStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
super.onDestroy();
|
||||||
|
|
||||||
|
Log.i (TAG, "OnDestroy");
|
||||||
|
|
||||||
|
Process.killProcess (Process.myPid());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onKeyDown (int keyCode, KeyEvent event) {
|
||||||
|
switch (keyCode) {
|
||||||
|
case KeyEvent.KEYCODE_BACK:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return super.onKeyDown (keyCode, event);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public native void DoEncoderTest (String cfgFileName);
|
||||||
|
public native void DoEncoderAutoTest (String cfgFileName, String layerFileName, String yuvFileName,
|
||||||
|
String outBitsName);
|
||||||
|
private static final String TAG = "welsenc";
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
System.loadLibrary ("openh264");
|
||||||
|
System.loadLibrary ("stlport_shared");
|
||||||
|
System.loadLibrary ("welsencdemo");
|
||||||
|
Log.v (TAG, "Load libwelsencdemo.so successful");
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e (TAG, "Failed to load welsenc" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,9 @@
|
|||||||
F5AC94FF193EB7D800F58154 /* deblocking_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */; };
|
F5AC94FF193EB7D800F58154 /* deblocking_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */; };
|
||||||
F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5B8D82C190757290037849A /* mc_aarch64_neon.S */; };
|
F5B8D82D190757290037849A /* mc_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5B8D82C190757290037849A /* mc_aarch64_neon.S */; };
|
||||||
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */; };
|
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */; };
|
||||||
|
F791965419D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F791965319D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S */; };
|
||||||
|
F791965619D3B8A600F60C6B /* intra_pred_common_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F791965519D3B8A600F60C6B /* intra_pred_common_neon.S */; };
|
||||||
|
F791965919D3BE2200F60C6B /* intra_pred_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F791965819D3BE2200F60C6B /* intra_pred_common.cpp */; };
|
||||||
FAABAA1818E9354A00D4186F /* sad_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAABAA1718E9354A00D4186F /* sad_common.cpp */; };
|
FAABAA1818E9354A00D4186F /* sad_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAABAA1718E9354A00D4186F /* sad_common.cpp */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
@@ -74,6 +77,10 @@
|
|||||||
F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = deblocking_aarch64_neon.S; path = arm64/deblocking_aarch64_neon.S; sourceTree = "<group>"; };
|
F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = deblocking_aarch64_neon.S; path = arm64/deblocking_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
F5B8D82C190757290037849A /* mc_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = mc_aarch64_neon.S; path = arm64/mc_aarch64_neon.S; sourceTree = "<group>"; };
|
F5B8D82C190757290037849A /* mc_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = mc_aarch64_neon.S; path = arm64/mc_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = copy_mb_aarch64_neon.S; path = arm64/copy_mb_aarch64_neon.S; sourceTree = "<group>"; };
|
F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = copy_mb_aarch64_neon.S; path = arm64/copy_mb_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
|
F791965319D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_common_aarch64_neon.S; path = arm64/intra_pred_common_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
|
F791965519D3B8A600F60C6B /* intra_pred_common_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_common_neon.S; sourceTree = "<group>"; };
|
||||||
|
F791965719D3BA9300F60C6B /* intra_pred_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = intra_pred_common.h; sourceTree = "<group>"; };
|
||||||
|
F791965819D3BE2200F60C6B /* intra_pred_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = intra_pred_common.cpp; sourceTree = "<group>"; };
|
||||||
FAABAA1618E9353F00D4186F /* sad_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sad_common.h; sourceTree = "<group>"; };
|
FAABAA1618E9353F00D4186F /* sad_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sad_common.h; sourceTree = "<group>"; };
|
||||||
FAABAA1718E9354A00D4186F /* sad_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sad_common.cpp; sourceTree = "<group>"; };
|
FAABAA1718E9354A00D4186F /* sad_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sad_common.cpp; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
@@ -93,6 +100,7 @@
|
|||||||
4C3406B118D96EA600DFA14A /* arm */ = {
|
4C3406B118D96EA600DFA14A /* arm */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
F791965519D3B8A600F60C6B /* intra_pred_common_neon.S */,
|
||||||
4CC61F0818FF6B4B00E56EAB /* copy_mb_neon.S */,
|
4CC61F0818FF6B4B00E56EAB /* copy_mb_neon.S */,
|
||||||
4C3406B218D96EA600DFA14A /* arm_arch_common_macro.S */,
|
4C3406B218D96EA600DFA14A /* arm_arch_common_macro.S */,
|
||||||
4C3406B318D96EA600DFA14A /* deblocking_neon.S */,
|
4C3406B318D96EA600DFA14A /* deblocking_neon.S */,
|
||||||
@@ -105,6 +113,7 @@
|
|||||||
4C3406B618D96EA600DFA14A /* inc */ = {
|
4C3406B618D96EA600DFA14A /* inc */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
F791965719D3BA9300F60C6B /* intra_pred_common.h */,
|
||||||
F0B204F718FD23B6005DA23F /* copy_mb.h */,
|
F0B204F718FD23B6005DA23F /* copy_mb.h */,
|
||||||
FAABAA1618E9353F00D4186F /* sad_common.h */,
|
FAABAA1618E9353F00D4186F /* sad_common.h */,
|
||||||
4C3406B718D96EA600DFA14A /* cpu.h */,
|
4C3406B718D96EA600DFA14A /* cpu.h */,
|
||||||
@@ -126,6 +135,7 @@
|
|||||||
4C3406C318D96EA600DFA14A /* src */ = {
|
4C3406C318D96EA600DFA14A /* src */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
F791965819D3BE2200F60C6B /* intra_pred_common.cpp */,
|
||||||
5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */,
|
5BA8F2BF19603F5F00011CE4 /* common_tables.cpp */,
|
||||||
F0B204F818FD23BF005DA23F /* copy_mb.cpp */,
|
F0B204F818FD23BF005DA23F /* copy_mb.cpp */,
|
||||||
FAABAA1718E9354A00D4186F /* sad_common.cpp */,
|
FAABAA1718E9354A00D4186F /* sad_common.cpp */,
|
||||||
@@ -179,6 +189,7 @@
|
|||||||
F556A81D1906669F00E156A8 /* arm64 */ = {
|
F556A81D1906669F00E156A8 /* arm64 */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
F791965319D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S */,
|
||||||
F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */,
|
F5BB0BB7196BB5960072D50D /* copy_mb_aarch64_neon.S */,
|
||||||
F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */,
|
F5AC94FE193EB7D800F58154 /* deblocking_aarch64_neon.S */,
|
||||||
F5B8D82C190757290037849A /* mc_aarch64_neon.S */,
|
F5B8D82C190757290037849A /* mc_aarch64_neon.S */,
|
||||||
@@ -244,12 +255,15 @@
|
|||||||
F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */,
|
F556A8241906673900E156A8 /* arm_arch64_common_macro.S in Sources */,
|
||||||
F5AC94FF193EB7D800F58154 /* deblocking_aarch64_neon.S in Sources */,
|
F5AC94FF193EB7D800F58154 /* deblocking_aarch64_neon.S in Sources */,
|
||||||
4C3406CE18D96EA600DFA14A /* crt_util_safe_x.cpp in Sources */,
|
4C3406CE18D96EA600DFA14A /* crt_util_safe_x.cpp in Sources */,
|
||||||
|
F791965919D3BE2200F60C6B /* intra_pred_common.cpp in Sources */,
|
||||||
4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */,
|
4C3406CF18D96EA600DFA14A /* deblocking_common.cpp in Sources */,
|
||||||
5BA8F2C019603F5F00011CE4 /* common_tables.cpp in Sources */,
|
5BA8F2C019603F5F00011CE4 /* common_tables.cpp in Sources */,
|
||||||
|
F791965419D3B89D00F60C6B /* intra_pred_common_aarch64_neon.S in Sources */,
|
||||||
4C3406D118D96EA600DFA14A /* WelsThreadLib.cpp in Sources */,
|
4C3406D118D96EA600DFA14A /* WelsThreadLib.cpp in Sources */,
|
||||||
4C3406CC18D96EA600DFA14A /* mc_neon.S in Sources */,
|
4C3406CC18D96EA600DFA14A /* mc_neon.S in Sources */,
|
||||||
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */,
|
F5BB0BB8196BB5960072D50D /* copy_mb_aarch64_neon.S in Sources */,
|
||||||
4C3406CB18D96EA600DFA14A /* expand_picture_neon.S in Sources */,
|
4C3406CB18D96EA600DFA14A /* expand_picture_neon.S in Sources */,
|
||||||
|
F791965619D3B8A600F60C6B /* intra_pred_common_neon.S in Sources */,
|
||||||
4CC61F0918FF6B4B00E56EAB /* copy_mb_neon.S in Sources */,
|
4CC61F0918FF6B4B00E56EAB /* copy_mb_neon.S in Sources */,
|
||||||
53C1C9BC193F0FB000404D8F /* expand_pic.cpp in Sources */,
|
53C1C9BC193F0FB000404D8F /* expand_pic.cpp in Sources */,
|
||||||
4C3406CD18D96EA600DFA14A /* cpu.cpp in Sources */,
|
4C3406CD18D96EA600DFA14A /* cpu.cpp in Sources */,
|
||||||
@@ -294,7 +308,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
};
|
};
|
||||||
@@ -325,7 +339,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
@@ -354,8 +368,6 @@
|
|||||||
HAVE_NEON,
|
HAVE_NEON,
|
||||||
);
|
);
|
||||||
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
@@ -383,7 +395,6 @@
|
|||||||
HAVE_NEON,
|
HAVE_NEON,
|
||||||
);
|
);
|
||||||
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
|
|||||||
@@ -42,6 +42,20 @@
|
|||||||
remoteGlobalIDString = 4CE4427918B6FC360017DF25;
|
remoteGlobalIDString = 4CE4427918B6FC360017DF25;
|
||||||
remoteInfo = welsdec;
|
remoteInfo = welsdec;
|
||||||
};
|
};
|
||||||
|
541044A6199888F800B44931 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 4CE444FA18B72AD70017DF25 /* welsdec.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 4CE4427818B6FC360017DF25;
|
||||||
|
remoteInfo = welsdec;
|
||||||
|
};
|
||||||
|
541044A8199888F800B44931 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 4CE444F018B72A8F0017DF25 /* common.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
|
||||||
|
remoteInfo = common;
|
||||||
|
};
|
||||||
/* End PBXContainerItemProxy section */
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
@@ -53,7 +67,7 @@
|
|||||||
F0E6634D1810EFA5000C888E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
F0E6634D1810EFA5000C888E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||||
F0E663511810EFA5000C888E /* demo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "demo-Info.plist"; sourceTree = "<group>"; };
|
F0E663511810EFA5000C888E /* demo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "demo-Info.plist"; sourceTree = "<group>"; };
|
||||||
F0E663531810EFA5000C888E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
F0E663531810EFA5000C888E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
F0E663551810EFA5000C888E /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
F0E663551810EFA5000C888E /* main.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = main.m; sourceTree = "<group>"; };
|
||||||
F0E663581810EFA5000C888E /* DEMOAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DEMOAppDelegate.h; sourceTree = "<group>"; };
|
F0E663581810EFA5000C888E /* DEMOAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DEMOAppDelegate.h; sourceTree = "<group>"; };
|
||||||
F0E663591810EFA5000C888E /* DEMOAppDelegate.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; path = DEMOAppDelegate.m; sourceTree = "<group>"; };
|
F0E663591810EFA5000C888E /* DEMOAppDelegate.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; path = DEMOAppDelegate.m; sourceTree = "<group>"; };
|
||||||
F0E6635B1810EFA5000C888E /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
|
F0E6635B1810EFA5000C888E /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
|
||||||
@@ -206,6 +220,8 @@
|
|||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
dependencies = (
|
dependencies = (
|
||||||
|
541044A7199888F800B44931 /* PBXTargetDependency */,
|
||||||
|
541044A9199888F800B44931 /* PBXTargetDependency */,
|
||||||
);
|
);
|
||||||
name = demo;
|
name = demo;
|
||||||
productName = demo;
|
productName = demo;
|
||||||
@@ -299,6 +315,19 @@
|
|||||||
};
|
};
|
||||||
/* End PBXSourcesBuildPhase section */
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
541044A7199888F800B44931 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = welsdec;
|
||||||
|
targetProxy = 541044A6199888F800B44931 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
541044A9199888F800B44931 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = common;
|
||||||
|
targetProxy = 541044A8199888F800B44931 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
/* Begin PBXVariantGroup section */
|
/* Begin PBXVariantGroup section */
|
||||||
F0E663521810EFA5000C888E /* InfoPlist.strings */ = {
|
F0E663521810EFA5000C888E /* InfoPlist.strings */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
@@ -352,7 +381,7 @@
|
|||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
@@ -377,7 +406,7 @@
|
|||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
@@ -398,6 +427,7 @@
|
|||||||
APPLE_IOS,
|
APPLE_IOS,
|
||||||
);
|
);
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||||
);
|
);
|
||||||
@@ -417,6 +447,7 @@
|
|||||||
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
GCC_C_LANGUAGE_STANDARD = "compiler-default";
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -34,9 +34,91 @@
|
|||||||
|
|
||||||
#import "DEMOAppDelegate.h"
|
#import "DEMOAppDelegate.h"
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
extern int DecMain (int argc, char* argv[]);
|
||||||
{
|
|
||||||
@autoreleasepool {
|
//redirect NSLog and stdout to logfile
|
||||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([DEMOAppDelegate class]));
|
void redirectLogToDocumentFile() {
|
||||||
}
|
NSArray* path = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
|
||||||
|
NSString* document = [path objectAtIndex:0];
|
||||||
|
NSString* fileName = [NSString stringWithFormat:@"decPerf.log"];
|
||||||
|
NSString* logPath = [document stringByAppendingPathComponent:fileName];
|
||||||
|
|
||||||
|
NSFileManager* defaultManager = [NSFileManager defaultManager];
|
||||||
|
[defaultManager removeItemAtPath:logPath error:nil];
|
||||||
|
|
||||||
|
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
|
||||||
|
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//run auto test to get encoder performance
|
||||||
|
int AutoTestDec() {
|
||||||
|
|
||||||
|
|
||||||
|
NSString* document = [[NSString alloc] init];
|
||||||
|
NSArray* paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
|
||||||
|
if ([paths count] == 0) {
|
||||||
|
NSLog (@"could not find document path");
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
document = [paths objectAtIndex:0];
|
||||||
|
|
||||||
|
|
||||||
|
NSString* decFilePath = [document stringByAppendingString:@"/DecoderPerfTestRes"];
|
||||||
|
NSFileManager* manage = [NSFileManager defaultManager];
|
||||||
|
|
||||||
|
NSString* outYuvPath = [decFilePath stringByAppendingString:@"/yuv"];
|
||||||
|
[manage removeItemAtPath:outYuvPath error:nil];
|
||||||
|
[manage createDirectoryAtPath:outYuvPath withIntermediateDirectories:YES attributes:nil error: nil];
|
||||||
|
|
||||||
|
|
||||||
|
NSArray* bitstreams = [manage subpathsAtPath:decFilePath];
|
||||||
|
if (bitstreams == nil) {
|
||||||
|
NSLog (@"could not find any bitstream under decoderperfpath");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
redirectLogToDocumentFile(); //output to console, just comment this line
|
||||||
|
|
||||||
|
for (int caseNO = 0; caseNO < [bitstreams count]; caseNO++) {
|
||||||
|
|
||||||
|
NSString* caseName = [bitstreams objectAtIndex:caseNO];
|
||||||
|
if ([caseName isEqual: @"yuv"]) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
NSString* bitstream = [decFilePath stringByAppendingString:@"/"];
|
||||||
|
bitstream = [bitstream stringByAppendingString:caseName];
|
||||||
|
NSString* yuvFileName = [caseName stringByAppendingString:@".yuv"];
|
||||||
|
NSString* tmpyuvFileName = [outYuvPath stringByAppendingString:@"/"];
|
||||||
|
yuvFileName = [tmpyuvFileName stringByAppendingString:yuvFileName];
|
||||||
|
|
||||||
|
[manage createFileAtPath:yuvFileName contents:nil attributes:nil];
|
||||||
|
|
||||||
|
const char* argvv[] = {
|
||||||
|
"decConsole.exe",
|
||||||
|
[bitstream UTF8String],
|
||||||
|
[yuvFileName UTF8String]
|
||||||
|
};
|
||||||
|
DecMain (sizeof (argvv) / sizeof (argvv[0]), (char**)&argvv[0]);
|
||||||
|
[manage removeItemAtPath:yuvFileName error:nil];//FOR limited devices spaces
|
||||||
|
fflush (stdout); // flush the content of stdout instantly
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main (int argc, char* argv[]) {
|
||||||
|
//***For auto testing of decoder performance, call auto test here, if you not want to do auto test, you can comment it manualy
|
||||||
|
|
||||||
|
if (AutoTestDec() == 0)
|
||||||
|
NSLog (@"Auto testing running sucessfully");
|
||||||
|
else
|
||||||
|
NSLog (@"Auto testing running failed");
|
||||||
|
abort();
|
||||||
|
//********
|
||||||
|
|
||||||
|
@autoreleasepool {
|
||||||
|
return UIApplicationMain (argc, argv, nil, NSStringFromClass ([DEMOAppDelegate class]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
4CE4469F18BC5EAB0017DF25 /* welsDecoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */; };
|
4CE4469F18BC5EAB0017DF25 /* welsDecoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */; };
|
||||||
4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A718BC6BE90017DF25 /* block_add_neon.S */; };
|
4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A718BC6BE90017DF25 /* block_add_neon.S */; };
|
||||||
4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */; };
|
4CE447AE18BC6BE90017DF25 /* intra_pred_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */; };
|
||||||
|
6C749B6A197CC6E600A111F9 /* block_add_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C749B69197CC6E600A111F9 /* block_add_aarch64_neon.S */; };
|
||||||
9ABF4382193EB60900A6BD61 /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9ABF4381193EB60900A6BD61 /* expand_pic.cpp */; };
|
9ABF4382193EB60900A6BD61 /* expand_pic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9ABF4381193EB60900A6BD61 /* expand_pic.cpp */; };
|
||||||
9AED66561946A1DE009A3567 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */; };
|
9AED66561946A1DE009A3567 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */; };
|
||||||
9AED66591946A203009A3567 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66581946A203009A3567 /* utils.cpp */; };
|
9AED66591946A203009A3567 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66581946A203009A3567 /* utils.cpp */; };
|
||||||
@@ -49,6 +50,7 @@
|
|||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
04FE0680196FD8BE0004D7CE /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../../../common/inc/version.h; sourceTree = "<group>"; };
|
||||||
4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_aarch64_neon.S; path = arm64/intra_pred_aarch64_neon.S; sourceTree = "<group>"; };
|
4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_aarch64_neon.S; path = arm64/intra_pred_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
4CE4427918B6FC360017DF25 /* libwelsdec.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwelsdec.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
4CE4427918B6FC360017DF25 /* libwelsdec.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libwelsdec.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
4CE4427C18B6FC360017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
4CE4427C18B6FC360017DF25 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
@@ -107,6 +109,7 @@
|
|||||||
4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsDecoderExt.cpp; sourceTree = "<group>"; };
|
4CE4468518BC5EAB0017DF25 /* welsDecoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsDecoderExt.cpp; sourceTree = "<group>"; };
|
||||||
4CE447A718BC6BE90017DF25 /* block_add_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = block_add_neon.S; sourceTree = "<group>"; };
|
4CE447A718BC6BE90017DF25 /* block_add_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = block_add_neon.S; sourceTree = "<group>"; };
|
||||||
4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; };
|
4CE447A918BC6BE90017DF25 /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; };
|
||||||
|
6C749B69197CC6E600A111F9 /* block_add_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = block_add_aarch64_neon.S; path = arm64/block_add_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
9ABF4380193EB5F700A6BD61 /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = expand_pic.h; path = ../../../common/inc/expand_pic.h; sourceTree = "<group>"; };
|
9ABF4380193EB5F700A6BD61 /* expand_pic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = expand_pic.h; path = ../../../common/inc/expand_pic.h; sourceTree = "<group>"; };
|
||||||
9ABF4381193EB60900A6BD61 /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = expand_pic.cpp; path = ../../../common/src/expand_pic.cpp; sourceTree = "<group>"; };
|
9ABF4381193EB60900A6BD61 /* expand_pic.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = expand_pic.cpp; path = ../../../common/src/expand_pic.cpp; sourceTree = "<group>"; };
|
||||||
9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = welsCodecTrace.cpp; path = ../../../common/src/welsCodecTrace.cpp; sourceTree = "<group>"; };
|
9AED66551946A1DE009A3567 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = welsCodecTrace.cpp; path = ../../../common/src/welsCodecTrace.cpp; sourceTree = "<group>"; };
|
||||||
@@ -132,6 +135,7 @@
|
|||||||
4CBC1B7F194AC4A400214D9E /* arm64 */ = {
|
4CBC1B7F194AC4A400214D9E /* arm64 */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
6C749B69197CC6E600A111F9 /* block_add_aarch64_neon.S */,
|
||||||
4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */,
|
4CBC1B80194AC4E100214D9E /* intra_pred_aarch64_neon.S */,
|
||||||
);
|
);
|
||||||
name = arm64;
|
name = arm64;
|
||||||
@@ -265,6 +269,7 @@
|
|||||||
4CE4467C18BC5EAA0017DF25 /* inc */ = {
|
4CE4467C18BC5EAA0017DF25 /* inc */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
04FE0680196FD8BE0004D7CE /* version.h */,
|
||||||
9AED66571946A1EB009A3567 /* welsCodecTrace.h */,
|
9AED66571946A1EB009A3567 /* welsCodecTrace.h */,
|
||||||
4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */,
|
4CE4467E18BC5EAA0017DF25 /* welsDecoderExt.h */,
|
||||||
);
|
);
|
||||||
@@ -351,6 +356,7 @@
|
|||||||
4CE4468A18BC5EAB0017DF25 /* au_parser.cpp in Sources */,
|
4CE4468A18BC5EAB0017DF25 /* au_parser.cpp in Sources */,
|
||||||
4CE4469918BC5EAB0017DF25 /* mv_pred.cpp in Sources */,
|
4CE4469918BC5EAB0017DF25 /* mv_pred.cpp in Sources */,
|
||||||
4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */,
|
4CE447AC18BC6BE90017DF25 /* block_add_neon.S in Sources */,
|
||||||
|
6C749B6A197CC6E600A111F9 /* block_add_aarch64_neon.S in Sources */,
|
||||||
4CE4469418BC5EAB0017DF25 /* get_intra_predictor.cpp in Sources */,
|
4CE4469418BC5EAB0017DF25 /* get_intra_predictor.cpp in Sources */,
|
||||||
9AED66561946A1DE009A3567 /* welsCodecTrace.cpp in Sources */,
|
9AED66561946A1DE009A3567 /* welsCodecTrace.cpp in Sources */,
|
||||||
F0B204FC18FD23D8005DA23F /* error_concealment.cpp in Sources */,
|
F0B204FC18FD23D8005DA23F /* error_concealment.cpp in Sources */,
|
||||||
@@ -404,7 +410,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
};
|
};
|
||||||
@@ -435,7 +441,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
@@ -464,13 +470,12 @@
|
|||||||
);
|
);
|
||||||
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../../../../common/inc",
|
"$(SRCROOT)/../../../../common/inc",
|
||||||
"$(SRCROOT)/../../../../api/svc",
|
"$(SRCROOT)/../../../../api/svc",
|
||||||
"$(SRCROOT)/../../../../common/arm",
|
"$(SRCROOT)/../../../../common/arm",
|
||||||
"$(SRCROOT)/../../../../common/arm64",
|
"$(SRCROOT)/../../../../common/arm64",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
@@ -499,13 +504,12 @@
|
|||||||
);
|
);
|
||||||
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../../../../common/inc",
|
"$(SRCROOT)/../../../../common/inc",
|
||||||
"$(SRCROOT)/../../../../api/svc",
|
"$(SRCROOT)/../../../../api/svc",
|
||||||
"$(SRCROOT)/../../../../common/arm",
|
"$(SRCROOT)/../../../../common/arm",
|
||||||
"$(SRCROOT)/../../../../common/arm64",
|
"$(SRCROOT)/../../../../common/arm64",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
|
544F0DC4196F86F50092FC6F /* libprocessing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 544F0DC3196F86EF0092FC6F /* libprocessing.a */; };
|
||||||
FAA3D9D318BD729500BCD52D /* welsenc_ios.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */; };
|
FAA3D9D318BD729500BCD52D /* welsenc_ios.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */; };
|
||||||
FAA3D9D818BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */; };
|
FAA3D9D818BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */; };
|
||||||
FAA3D9DD18BD8A5600BCD52D /* layer2.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */; };
|
FAA3D9DD18BD8A5600BCD52D /* layer2.cfg in Resources */ = {isa = PBXBuildFile; fileRef = FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */; };
|
||||||
@@ -21,13 +22,26 @@
|
|||||||
FAFB4FC218BC8DD700315438 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFB4FC118BC8DD700315438 /* ViewController.m */; };
|
FAFB4FC218BC8DD700315438 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = FAFB4FC118BC8DD700315438 /* ViewController.m */; };
|
||||||
FAFB4FC418BC8DD700315438 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FAFB4FC318BC8DD700315438 /* Images.xcassets */; };
|
FAFB4FC418BC8DD700315438 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FAFB4FC318BC8DD700315438 /* Images.xcassets */; };
|
||||||
FAFB500318BC8F0D00315438 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FF118BC8E8600315438 /* libcommon.a */; };
|
FAFB500318BC8F0D00315438 /* libcommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FF118BC8E8600315438 /* libcommon.a */; };
|
||||||
FAFB500418BC8F1100315438 /* libprocessing.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FFA18BC8E9A00315438 /* libprocessing.a */; };
|
|
||||||
FAFB500518BC8F1500315438 /* libwelsenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FE818BC8E7D00315438 /* libwelsenc.a */; };
|
FAFB500518BC8F1500315438 /* libwelsenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAFB4FE818BC8E7D00315438 /* libwelsenc.a */; };
|
||||||
FAFB500B18BC8F6C00315438 /* welsenc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAFB500A18BC8F6C00315438 /* welsenc.cpp */; };
|
FAFB500B18BC8F6C00315438 /* welsenc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAFB500A18BC8F6C00315438 /* welsenc.cpp */; };
|
||||||
FAFB502F18BCA50900315438 /* read_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAFB502E18BCA50900315438 /* read_config.cpp */; };
|
FAFB502F18BCA50900315438 /* read_config.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FAFB502E18BCA50900315438 /* read_config.cpp */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
/* Begin PBXContainerItemProxy section */
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
544F0DBF196F86EF0092FC6F /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 544F0DB9196F85F20092FC6F /* processing.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 5499477B196A3F3900BA3D87;
|
||||||
|
remoteInfo = processing;
|
||||||
|
};
|
||||||
|
544F0DC2196F86EF0092FC6F /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 544F0DB9196F85F20092FC6F /* processing.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 5499477C196A3F3900BA3D87;
|
||||||
|
remoteInfo = processing;
|
||||||
|
};
|
||||||
FAFB4FE718BC8E7D00315438 /* PBXContainerItemProxy */ = {
|
FAFB4FE718BC8E7D00315438 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
|
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
|
||||||
@@ -42,13 +56,6 @@
|
|||||||
remoteGlobalIDString = 4CE443D518B722CD0017DF25;
|
remoteGlobalIDString = 4CE443D518B722CD0017DF25;
|
||||||
remoteInfo = common;
|
remoteInfo = common;
|
||||||
};
|
};
|
||||||
FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */ = {
|
|
||||||
isa = PBXContainerItemProxy;
|
|
||||||
containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
|
|
||||||
proxyType = 2;
|
|
||||||
remoteGlobalIDString = 4CE4443118B724B60017DF25;
|
|
||||||
remoteInfo = processing;
|
|
||||||
};
|
|
||||||
FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */ = {
|
FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
|
containerPortal = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
|
||||||
@@ -56,13 +63,6 @@
|
|||||||
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
|
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
|
||||||
remoteInfo = common;
|
remoteInfo = common;
|
||||||
};
|
};
|
||||||
FAFB4FFF18BC8EAF00315438 /* PBXContainerItemProxy */ = {
|
|
||||||
isa = PBXContainerItemProxy;
|
|
||||||
containerPortal = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
|
|
||||||
proxyType = 1;
|
|
||||||
remoteGlobalIDString = 4CE4443018B724B60017DF25;
|
|
||||||
remoteInfo = processing;
|
|
||||||
};
|
|
||||||
FAFB500118BC8EB200315438 /* PBXContainerItemProxy */ = {
|
FAFB500118BC8EB200315438 /* PBXContainerItemProxy */ = {
|
||||||
isa = PBXContainerItemProxy;
|
isa = PBXContainerItemProxy;
|
||||||
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
|
containerPortal = FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */;
|
||||||
@@ -73,6 +73,7 @@
|
|||||||
/* End PBXContainerItemProxy section */
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
544F0DB9196F85F20092FC6F /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../../processing/processing.xcodeproj; sourceTree = "<group>"; };
|
||||||
FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = welsenc_ios.cfg; path = ../../../../../../testbin/welsenc_ios.cfg; sourceTree = "<group>"; };
|
FAA3D9D218BD729500BCD52D /* welsenc_ios.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = welsenc_ios.cfg; path = ../../../../../../testbin/welsenc_ios.cfg; sourceTree = "<group>"; };
|
||||||
FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CiscoVT2people_320x192_12fps.yuv; path = ../../../../../../res/CiscoVT2people_320x192_12fps.yuv; sourceTree = "<group>"; };
|
FAA3D9D718BD777100BCD52D /* CiscoVT2people_320x192_12fps.yuv */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CiscoVT2people_320x192_12fps.yuv; path = ../../../../../../res/CiscoVT2people_320x192_12fps.yuv; sourceTree = "<group>"; };
|
||||||
FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = layer2.cfg; path = ../../../../../../testbin/layer2.cfg; sourceTree = "<group>"; };
|
FAA3D9DC18BD8A5600BCD52D /* layer2.cfg */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = layer2.cfg; path = ../../../../../../testbin/layer2.cfg; sourceTree = "<group>"; };
|
||||||
@@ -93,7 +94,6 @@
|
|||||||
FAFB4FC318BC8DD700315438 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
FAFB4FC318BC8DD700315438 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
|
||||||
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsenc.xcodeproj; path = ../welsenc/welsenc.xcodeproj; sourceTree = "<group>"; };
|
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsenc.xcodeproj; path = ../welsenc/welsenc.xcodeproj; sourceTree = "<group>"; };
|
||||||
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../../common/common.xcodeproj; sourceTree = "<group>"; };
|
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../../common/common.xcodeproj; sourceTree = "<group>"; };
|
||||||
FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../../../../processing/build/iOS/processing.xcodeproj; sourceTree = "<group>"; };
|
|
||||||
FAFB500918BC8F6600315438 /* read_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = read_config.h; sourceTree = "<group>"; };
|
FAFB500918BC8F6600315438 /* read_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = read_config.h; sourceTree = "<group>"; };
|
||||||
FAFB500A18BC8F6C00315438 /* welsenc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsenc.cpp; sourceTree = "<group>"; };
|
FAFB500A18BC8F6C00315438 /* welsenc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsenc.cpp; sourceTree = "<group>"; };
|
||||||
FAFB502E18BCA50900315438 /* read_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = read_config.cpp; path = ../../common/src/read_config.cpp; sourceTree = "<group>"; };
|
FAFB502E18BCA50900315438 /* read_config.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = read_config.cpp; path = ../../common/src/read_config.cpp; sourceTree = "<group>"; };
|
||||||
@@ -104,8 +104,8 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
544F0DC4196F86F50092FC6F /* libprocessing.a in Frameworks */,
|
||||||
FAFB500518BC8F1500315438 /* libwelsenc.a in Frameworks */,
|
FAFB500518BC8F1500315438 /* libwelsenc.a in Frameworks */,
|
||||||
FAFB500418BC8F1100315438 /* libprocessing.a in Frameworks */,
|
|
||||||
FAFB500318BC8F0D00315438 /* libcommon.a in Frameworks */,
|
FAFB500318BC8F0D00315438 /* libcommon.a in Frameworks */,
|
||||||
FAFB4FAB18BC8DD700315438 /* CoreGraphics.framework in Frameworks */,
|
FAFB4FAB18BC8DD700315438 /* CoreGraphics.framework in Frameworks */,
|
||||||
FAFB4FAD18BC8DD700315438 /* UIKit.framework in Frameworks */,
|
FAFB4FAD18BC8DD700315438 /* UIKit.framework in Frameworks */,
|
||||||
@@ -116,6 +116,14 @@
|
|||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
544F0DBA196F85F20092FC6F /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
544F0DC3196F86EF0092FC6F /* libprocessing.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
FAFB4F9C18BC8DD700315438 = {
|
FAFB4F9C18BC8DD700315438 = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -136,7 +144,7 @@
|
|||||||
FAFB4FA718BC8DD700315438 /* Frameworks */ = {
|
FAFB4FA718BC8DD700315438 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */,
|
544F0DB9196F85F20092FC6F /* processing.xcodeproj */,
|
||||||
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */,
|
FAFB4FEB18BC8E8600315438 /* common.xcodeproj */,
|
||||||
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */,
|
FAFB4FE218BC8E7C00315438 /* welsenc.xcodeproj */,
|
||||||
FAFB4FA818BC8DD700315438 /* Foundation.framework */,
|
FAFB4FA818BC8DD700315438 /* Foundation.framework */,
|
||||||
@@ -192,14 +200,6 @@
|
|||||||
name = Products;
|
name = Products;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
FAFB4FF518BC8E9A00315438 /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
FAFB4FFA18BC8E9A00315438 /* libprocessing.a */,
|
|
||||||
);
|
|
||||||
name = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
FAFB500618BC8F2800315438 /* console */ = {
|
FAFB500618BC8F2800315438 /* console */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -242,8 +242,8 @@
|
|||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
dependencies = (
|
dependencies = (
|
||||||
|
544F0DC0196F86EF0092FC6F /* PBXTargetDependency */,
|
||||||
FAFB500218BC8EB200315438 /* PBXTargetDependency */,
|
FAFB500218BC8EB200315438 /* PBXTargetDependency */,
|
||||||
FAFB500018BC8EAF00315438 /* PBXTargetDependency */,
|
|
||||||
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */,
|
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */,
|
||||||
);
|
);
|
||||||
name = encDemo;
|
name = encDemo;
|
||||||
@@ -277,8 +277,8 @@
|
|||||||
ProjectRef = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
|
ProjectRef = FAFB4FEB18BC8E8600315438 /* common.xcodeproj */;
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ProductGroup = FAFB4FF518BC8E9A00315438 /* Products */;
|
ProductGroup = 544F0DBA196F85F20092FC6F /* Products */;
|
||||||
ProjectRef = FAFB4FF418BC8E9A00315438 /* processing.xcodeproj */;
|
ProjectRef = 544F0DB9196F85F20092FC6F /* processing.xcodeproj */;
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ProductGroup = FAFB4FE318BC8E7C00315438 /* Products */;
|
ProductGroup = FAFB4FE318BC8E7C00315438 /* Products */;
|
||||||
@@ -293,6 +293,13 @@
|
|||||||
/* End PBXProject section */
|
/* End PBXProject section */
|
||||||
|
|
||||||
/* Begin PBXReferenceProxy section */
|
/* Begin PBXReferenceProxy section */
|
||||||
|
544F0DC3196F86EF0092FC6F /* libprocessing.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = libprocessing.a;
|
||||||
|
remoteRef = 544F0DC2196F86EF0092FC6F /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
FAFB4FE818BC8E7D00315438 /* libwelsenc.a */ = {
|
FAFB4FE818BC8E7D00315438 /* libwelsenc.a */ = {
|
||||||
isa = PBXReferenceProxy;
|
isa = PBXReferenceProxy;
|
||||||
fileType = archive.ar;
|
fileType = archive.ar;
|
||||||
@@ -307,13 +314,6 @@
|
|||||||
remoteRef = FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */;
|
remoteRef = FAFB4FF018BC8E8600315438 /* PBXContainerItemProxy */;
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
};
|
};
|
||||||
FAFB4FFA18BC8E9A00315438 /* libprocessing.a */ = {
|
|
||||||
isa = PBXReferenceProxy;
|
|
||||||
fileType = archive.ar;
|
|
||||||
path = libprocessing.a;
|
|
||||||
remoteRef = FAFB4FF918BC8E9A00315438 /* PBXContainerItemProxy */;
|
|
||||||
sourceTree = BUILT_PRODUCTS_DIR;
|
|
||||||
};
|
|
||||||
/* End PBXReferenceProxy section */
|
/* End PBXReferenceProxy section */
|
||||||
|
|
||||||
/* Begin PBXResourcesBuildPhase section */
|
/* Begin PBXResourcesBuildPhase section */
|
||||||
@@ -349,16 +349,16 @@
|
|||||||
/* End PBXSourcesBuildPhase section */
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXTargetDependency section */
|
/* Begin PBXTargetDependency section */
|
||||||
|
544F0DC0196F86EF0092FC6F /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = processing;
|
||||||
|
targetProxy = 544F0DBF196F86EF0092FC6F /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */ = {
|
FAFB4FFE18BC8EAA00315438 /* PBXTargetDependency */ = {
|
||||||
isa = PBXTargetDependency;
|
isa = PBXTargetDependency;
|
||||||
name = common;
|
name = common;
|
||||||
targetProxy = FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */;
|
targetProxy = FAFB4FFD18BC8EAA00315438 /* PBXContainerItemProxy */;
|
||||||
};
|
};
|
||||||
FAFB500018BC8EAF00315438 /* PBXTargetDependency */ = {
|
|
||||||
isa = PBXTargetDependency;
|
|
||||||
name = processing;
|
|
||||||
targetProxy = FAFB4FFF18BC8EAF00315438 /* PBXContainerItemProxy */;
|
|
||||||
};
|
|
||||||
FAFB500218BC8EB200315438 /* PBXTargetDependency */ = {
|
FAFB500218BC8EB200315438 /* PBXTargetDependency */ = {
|
||||||
isa = PBXTargetDependency;
|
isa = PBXTargetDependency;
|
||||||
name = welsenc;
|
name = welsenc;
|
||||||
@@ -426,14 +426,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = (
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
"$(inherited)",
|
|
||||||
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
|
|
||||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
|
||||||
"\"$(SRCROOT)/../../../../processing/interface\"",
|
|
||||||
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
|
|
||||||
);
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
@@ -466,14 +459,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
HEADER_SEARCH_PATHS = (
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
"$(inherited)",
|
|
||||||
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
|
|
||||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
|
||||||
"\"$(SRCROOT)/../../../../processing/interface\"",
|
|
||||||
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
|
|
||||||
);
|
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
@@ -488,9 +474,10 @@
|
|||||||
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
|
|
||||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||||
|
"\"$(SRCROOT)/../../../../processing/interface\"",
|
||||||
|
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
|
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
@@ -506,9 +493,10 @@
|
|||||||
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
GCC_PREPROCESSOR_DEFINITIONS = APPLE_IOS;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"/Applications/Xcode\\ 5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include",
|
|
||||||
"\"$(SRCROOT)/../../../../api/svc\"",
|
"\"$(SRCROOT)/../../../../api/svc\"",
|
||||||
"\"$(SRCROOT)/../../../../common/inc\"",
|
"\"$(SRCROOT)/../../../../common/inc\"",
|
||||||
|
"\"$(SRCROOT)/../../../../processing/interface\"",
|
||||||
|
"\"$(SRCROOT)/../../../../encoder/core/inc\"",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
|
INFOPLIST_FILE = "encDemo/encDemo-Info.plist";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
|||||||
@@ -70,6 +70,8 @@ extern int EncMain(int argc, char **argv);
|
|||||||
[bsfile UTF8String],
|
[bsfile UTF8String],
|
||||||
"-numl",
|
"-numl",
|
||||||
"1",
|
"1",
|
||||||
|
"-lconfig",
|
||||||
|
"0",
|
||||||
[dlayerCfg UTF8String],
|
[dlayerCfg UTF8String],
|
||||||
};
|
};
|
||||||
NSLog(@"WELS_INFO: enc config file: %@", encCfg);
|
NSLog(@"WELS_INFO: enc config file: %@", encCfg);
|
||||||
|
|||||||
@@ -35,9 +35,141 @@
|
|||||||
|
|
||||||
#import "AppDelegate.h"
|
#import "AppDelegate.h"
|
||||||
|
|
||||||
int main(int argc, char * argv[])
|
extern int EncMain (int argc, char** argv);
|
||||||
{
|
|
||||||
@autoreleasepool {
|
//redirect NSLog and stdout to logfile
|
||||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
|
void redirectLogToDocumentFile() {
|
||||||
}
|
NSArray* path = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
|
||||||
|
NSString* document = [path objectAtIndex:0];
|
||||||
|
NSString* fileName = [NSString stringWithFormat:@"encPerf.log"];
|
||||||
|
NSString* logPath = [document stringByAppendingPathComponent:fileName];
|
||||||
|
|
||||||
|
NSFileManager* defaultManager = [NSFileManager defaultManager];
|
||||||
|
[defaultManager removeItemAtPath:logPath error:nil];
|
||||||
|
|
||||||
|
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
|
||||||
|
freopen ([logPath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
|
||||||
|
}
|
||||||
|
|
||||||
|
//to judge whether the path is needed case path
|
||||||
|
bool IsOneDeptDir (NSString* path) {
|
||||||
|
BOOL isDir = NO;
|
||||||
|
BOOL isOneDeptDir = NO;
|
||||||
|
NSFileManager* fileManager = [NSFileManager defaultManager];
|
||||||
|
NSArray* dirPathArray = [fileManager subpathsAtPath:path];
|
||||||
|
if ([dirPathArray count] == 0 || dirPathArray == nil)
|
||||||
|
isOneDeptDir = NO;
|
||||||
|
else {
|
||||||
|
for (NSString * dirPath in dirPathArray) {
|
||||||
|
NSString* tmpPath = [path stringByAppendingString:@"/"];
|
||||||
|
tmpPath = [tmpPath stringByAppendingString:dirPath];
|
||||||
|
[fileManager fileExistsAtPath:tmpPath isDirectory:&isDir];
|
||||||
|
if (isDir) {
|
||||||
|
isOneDeptDir = YES;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return isOneDeptDir;
|
||||||
|
}
|
||||||
|
|
||||||
|
//run auto test to get encoder performance
|
||||||
|
int AutoTestEnc() {
|
||||||
|
NSString* document = [[NSString alloc] init];
|
||||||
|
NSArray* paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
|
||||||
|
if ([paths count] == 0) {
|
||||||
|
NSLog (@"could not find document path");
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
document = [paths objectAtIndex:0];
|
||||||
|
|
||||||
|
NSString* encFilePath = [document stringByAppendingString:@"/EncoderPerfTestRes"];
|
||||||
|
NSFileManager* manage = [NSFileManager defaultManager];
|
||||||
|
|
||||||
|
NSArray* cases = [manage subpathsAtPath:encFilePath];
|
||||||
|
if (cases == nil) {
|
||||||
|
NSLog (@"could not find any test case under encoderperftest");
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
redirectLogToDocumentFile();
|
||||||
|
NSMutableArray* dirArray = [[NSMutableArray alloc] init];
|
||||||
|
for (NSString * casePath in cases) {
|
||||||
|
|
||||||
|
NSString* path = [encFilePath stringByAppendingPathComponent:casePath];
|
||||||
|
if (IsOneDeptDir (path)) {
|
||||||
|
[dirArray addObject:casePath];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
for (int caseNO = 0; caseNO < [dirArray count]; caseNO++) {
|
||||||
|
|
||||||
|
NSString* caseName = [dirArray objectAtIndex:caseNO];
|
||||||
|
NSString* caseFilePath = [encFilePath stringByAppendingString:@"/"];
|
||||||
|
caseFilePath = [caseFilePath stringByAppendingString:caseName];
|
||||||
|
[manage changeCurrentDirectoryPath:[caseFilePath stringByExpandingTildeInPath]];
|
||||||
|
|
||||||
|
NSString* welscfg = [caseFilePath stringByAppendingString:@"/welsenc.cfg"];
|
||||||
|
NSString* layercfg = [caseFilePath stringByAppendingString:@"/layer2.cfg"];
|
||||||
|
NSString* yuvFilePath = [caseFilePath stringByAppendingString:@"/yuv"];
|
||||||
|
NSString* bitFilePath = [caseFilePath stringByAppendingString:@"/bit"];
|
||||||
|
[manage removeItemAtPath:bitFilePath error:nil];
|
||||||
|
[manage createDirectoryAtPath:bitFilePath withIntermediateDirectories:YES attributes:nil error:nil];
|
||||||
|
|
||||||
|
|
||||||
|
NSArray* files = [manage subpathsAtPath:yuvFilePath];
|
||||||
|
|
||||||
|
[manage changeCurrentDirectoryPath:[bitFilePath stringByExpandingTildeInPath]];
|
||||||
|
|
||||||
|
for (int i = 0; i < [files count]; i++) {
|
||||||
|
NSString* yuvFileName = [files objectAtIndex:i];
|
||||||
|
NSString* bitFileName = [yuvFileName stringByAppendingString:@".264"];
|
||||||
|
|
||||||
|
NSString* bitFileNamePath = [bitFilePath stringByAppendingString:@"/"];
|
||||||
|
bitFileName = [bitFileNamePath stringByAppendingString:bitFileName];
|
||||||
|
|
||||||
|
|
||||||
|
[manage createFileAtPath:bitFileName contents:nil attributes:nil];
|
||||||
|
[manage changeCurrentDirectoryPath:[yuvFilePath stringByExpandingTildeInPath]];
|
||||||
|
const char* argvv[] = {
|
||||||
|
"dummy",
|
||||||
|
[welscfg UTF8String],
|
||||||
|
"-org",
|
||||||
|
[yuvFileName UTF8String],
|
||||||
|
"-bf",
|
||||||
|
[bitFileName UTF8String],
|
||||||
|
"-numl",
|
||||||
|
"1",
|
||||||
|
"-lconfig",
|
||||||
|
"0",
|
||||||
|
[layercfg UTF8String]
|
||||||
|
};
|
||||||
|
|
||||||
|
NSLog (@"WELS_INFO: enc config file: %@", welscfg);
|
||||||
|
NSLog (@"WELS_INFO: enc yuv file: %@", yuvFileName);
|
||||||
|
EncMain (sizeof (argvv) / sizeof (argvv[0]), (char**)&argvv[0]);
|
||||||
|
fflush (stdout); // flush the content of stdout instantly
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main (int argc, char* argv[]) {
|
||||||
|
|
||||||
|
|
||||||
|
//***For auto testing of encoder performance, call auto test here, if you not want to do auto test, you can comment it manualy
|
||||||
|
|
||||||
|
if (AutoTestEnc() == 0)
|
||||||
|
NSLog (@"Auto testing running sucessfully");
|
||||||
|
else
|
||||||
|
NSLog (@"Auto testing running failed");
|
||||||
|
abort();
|
||||||
|
//************************
|
||||||
|
@autoreleasepool {
|
||||||
|
return UIApplicationMain (argc, argv, nil, NSStringFromClass ([AppDelegate class]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,8 @@
|
|||||||
4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */; };
|
4CE4472918BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446F818BC605C0017DF25 /* svc_set_mb_syn_cavlc.cpp */; };
|
||||||
4CE4472B18BC605C0017DF25 /* wels_preprocess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */; };
|
4CE4472B18BC605C0017DF25 /* wels_preprocess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE446FA18BC605C0017DF25 /* wels_preprocess.cpp */; };
|
||||||
4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */; };
|
4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */; };
|
||||||
|
6CA38DA31991CACE003EAAE0 /* svc_motion_estimation.S in Sources */ = {isa = PBXBuildFile; fileRef = 6CA38DA21991CACE003EAAE0 /* svc_motion_estimation.S */; };
|
||||||
|
6CA38DA51991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 6CA38DA41991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S */; };
|
||||||
9AED665019469FC1009A3567 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */; };
|
9AED665019469FC1009A3567 /* welsCodecTrace.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */; };
|
||||||
9AED66661946A2B3009A3567 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66651946A2B3009A3567 /* utils.cpp */; };
|
9AED66661946A2B3009A3567 /* utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AED66651946A2B3009A3567 /* utils.cpp */; };
|
||||||
F5617A50196A833A006E2B20 /* reconstruct_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5617A4F196A833A006E2B20 /* reconstruct_aarch64_neon.S */; };
|
F5617A50196A833A006E2B20 /* reconstruct_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = F5617A4F196A833A006E2B20 /* reconstruct_aarch64_neon.S */; };
|
||||||
@@ -64,6 +66,7 @@
|
|||||||
/* End PBXCopyFilesBuildPhase section */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
|
04FE0684196FD9370004D7CE /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = version.h; path = ../../../common/inc/version.h; sourceTree = "<group>"; };
|
||||||
4C23BC5F195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_sad_3_opt_aarch64_neon.S; path = arm64/intra_pred_sad_3_opt_aarch64_neon.S; sourceTree = "<group>"; };
|
4C23BC5F195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = intra_pred_sad_3_opt_aarch64_neon.S; path = arm64/intra_pred_sad_3_opt_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
4C34066618C57D0400DFA14A /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; };
|
4C34066618C57D0400DFA14A /* intra_pred_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_neon.S; sourceTree = "<group>"; };
|
||||||
4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_sad_3_opt_neon.S; sourceTree = "<group>"; };
|
4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = intra_pred_sad_3_opt_neon.S; sourceTree = "<group>"; };
|
||||||
@@ -153,6 +156,8 @@
|
|||||||
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsEncoderExt.h; sourceTree = "<group>"; };
|
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = welsEncoderExt.h; sourceTree = "<group>"; };
|
||||||
4CE4470418BC605C0017DF25 /* wels_enc_export.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wels_enc_export.def; sourceTree = "<group>"; };
|
4CE4470418BC605C0017DF25 /* wels_enc_export.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wels_enc_export.def; sourceTree = "<group>"; };
|
||||||
4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsEncoderExt.cpp; sourceTree = "<group>"; };
|
4CE4470618BC605C0017DF25 /* welsEncoderExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = welsEncoderExt.cpp; sourceTree = "<group>"; };
|
||||||
|
6CA38DA21991CACE003EAAE0 /* svc_motion_estimation.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = svc_motion_estimation.S; sourceTree = "<group>"; };
|
||||||
|
6CA38DA41991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = svc_motion_estimation_aarch64_neon.S; path = arm64/svc_motion_estimation_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
9AED664819469FAF009A3567 /* welsCodecTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = welsCodecTrace.h; path = ../../../common/inc/welsCodecTrace.h; sourceTree = "<group>"; };
|
9AED664819469FAF009A3567 /* welsCodecTrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = welsCodecTrace.h; path = ../../../common/inc/welsCodecTrace.h; sourceTree = "<group>"; };
|
||||||
9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = welsCodecTrace.cpp; path = ../../../common/src/welsCodecTrace.cpp; sourceTree = "<group>"; };
|
9AED664C19469FC1009A3567 /* welsCodecTrace.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = welsCodecTrace.cpp; path = ../../../common/src/welsCodecTrace.cpp; sourceTree = "<group>"; };
|
||||||
9AED66651946A2B3009A3567 /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utils.cpp; path = ../../../common/src/utils.cpp; sourceTree = "<group>"; };
|
9AED66651946A2B3009A3567 /* utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utils.cpp; path = ../../../common/src/utils.cpp; sourceTree = "<group>"; };
|
||||||
@@ -176,6 +181,7 @@
|
|||||||
4C34066418C57D0400DFA14A /* arm */ = {
|
4C34066418C57D0400DFA14A /* arm */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
6CA38DA21991CACE003EAAE0 /* svc_motion_estimation.S */,
|
||||||
4C34066618C57D0400DFA14A /* intra_pred_neon.S */,
|
4C34066618C57D0400DFA14A /* intra_pred_neon.S */,
|
||||||
4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */,
|
4C34066718C57D0400DFA14A /* intra_pred_sad_3_opt_neon.S */,
|
||||||
4C34066918C57D0400DFA14A /* memory_neon.S */,
|
4C34066918C57D0400DFA14A /* memory_neon.S */,
|
||||||
@@ -188,6 +194,7 @@
|
|||||||
4CB8F2B219235FAC005D6386 /* arm64 */ = {
|
4CB8F2B219235FAC005D6386 /* arm64 */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
6CA38DA41991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S */,
|
||||||
F5BE8004196B913200ED02ED /* memory_aarch64_neon.S */,
|
F5BE8004196B913200ED02ED /* memory_aarch64_neon.S */,
|
||||||
F5617A4F196A833A006E2B20 /* reconstruct_aarch64_neon.S */,
|
F5617A4F196A833A006E2B20 /* reconstruct_aarch64_neon.S */,
|
||||||
4C23BC5F195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S */,
|
4C23BC5F195A77E0003B81FC /* intra_pred_sad_3_opt_aarch64_neon.S */,
|
||||||
@@ -347,6 +354,7 @@
|
|||||||
4CE446FC18BC605C0017DF25 /* inc */ = {
|
4CE446FC18BC605C0017DF25 /* inc */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
04FE0684196FD9370004D7CE /* version.h */,
|
||||||
9AED664819469FAF009A3567 /* welsCodecTrace.h */,
|
9AED664819469FAF009A3567 /* welsCodecTrace.h */,
|
||||||
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */,
|
4CE446FE18BC605C0017DF25 /* welsEncoderExt.h */,
|
||||||
);
|
);
|
||||||
@@ -421,6 +429,7 @@
|
|||||||
4CE4471D18BC605C0017DF25 /* property.cpp in Sources */,
|
4CE4471D18BC605C0017DF25 /* property.cpp in Sources */,
|
||||||
4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */,
|
4CE4471018BC605C0017DF25 /* decode_mb_aux.cpp in Sources */,
|
||||||
4CE4472018BC605C0017DF25 /* sample.cpp in Sources */,
|
4CE4472018BC605C0017DF25 /* sample.cpp in Sources */,
|
||||||
|
6CA38DA31991CACE003EAAE0 /* svc_motion_estimation.S in Sources */,
|
||||||
4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */,
|
4CE4471318BC605C0017DF25 /* encoder_data_tables.cpp in Sources */,
|
||||||
4C34067118C57D0400DFA14A /* pixel_neon.S in Sources */,
|
4C34067118C57D0400DFA14A /* pixel_neon.S in Sources */,
|
||||||
9AED665019469FC1009A3567 /* welsCodecTrace.cpp in Sources */,
|
9AED665019469FC1009A3567 /* welsCodecTrace.cpp in Sources */,
|
||||||
@@ -453,6 +462,7 @@
|
|||||||
4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */,
|
4CE4471218BC605C0017DF25 /* encoder.cpp in Sources */,
|
||||||
4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */,
|
4CE4471618BC605C0017DF25 /* get_intra_predictor.cpp in Sources */,
|
||||||
4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */,
|
4CE4472E18BC605C0017DF25 /* welsEncoderExt.cpp in Sources */,
|
||||||
|
6CA38DA51991D31A003EAAE0 /* svc_motion_estimation_aarch64_neon.S in Sources */,
|
||||||
4CE4471418BC605C0017DF25 /* encoder_ext.cpp in Sources */,
|
4CE4471418BC605C0017DF25 /* encoder_ext.cpp in Sources */,
|
||||||
4C34067218C57D0400DFA14A /* reconstruct_neon.S in Sources */,
|
4C34067218C57D0400DFA14A /* reconstruct_neon.S in Sources */,
|
||||||
);
|
);
|
||||||
@@ -492,7 +502,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
};
|
};
|
||||||
@@ -523,7 +533,7 @@
|
|||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
VALIDATE_PRODUCT = YES;
|
VALIDATE_PRODUCT = YES;
|
||||||
};
|
};
|
||||||
@@ -553,14 +563,13 @@
|
|||||||
);
|
);
|
||||||
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../../../../common/inc",
|
"$(SRCROOT)/../../../../common/inc",
|
||||||
"$(SRCROOT)/../../../../processing/interface",
|
"$(SRCROOT)/../../../../processing/interface",
|
||||||
"$(SRCROOT)/../../../../api/svc",
|
"$(SRCROOT)/../../../../api/svc",
|
||||||
"$(SRCROOT)/../../../../common/arm",
|
"$(SRCROOT)/../../../../common/arm",
|
||||||
"$(SRCROOT)/../../../../common/arm64",
|
"$(SRCROOT)/../../../../common/arm64",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
@@ -591,13 +600,13 @@
|
|||||||
);
|
);
|
||||||
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
||||||
HEADER_SEARCH_PATHS = (
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
"$(SRCROOT)/../../../../common/inc",
|
"$(SRCROOT)/../../../../common/inc",
|
||||||
"$(SRCROOT)/../../../../processing/interface",
|
"$(SRCROOT)/../../../../processing/interface",
|
||||||
"$(SRCROOT)/../../../../api/svc",
|
"$(SRCROOT)/../../../../api/svc",
|
||||||
"$(SRCROOT)/../../../../common/arm",
|
"$(SRCROOT)/../../../../common/arm",
|
||||||
"$(SRCROOT)/../../../../common/arm64",
|
"$(SRCROOT)/../../../../common/arm64",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 6.1;
|
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
|
|||||||
356
codec/build/iOS/openh264/openh264.xcodeproj/project.pbxproj
Normal file
356
codec/build/iOS/openh264/openh264.xcodeproj/project.pbxproj
Normal file
@@ -0,0 +1,356 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXAggregateTarget section */
|
||||||
|
54D5364C196CC907005442F9 /* openh264 */ = {
|
||||||
|
isa = PBXAggregateTarget;
|
||||||
|
buildConfigurationList = 54D5364D196CC907005442F9 /* Build configuration list for PBXAggregateTarget "openh264" */;
|
||||||
|
buildPhases = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
54D53651196CCC40005442F9 /* PBXTargetDependency */,
|
||||||
|
54D53653196CCC40005442F9 /* PBXTargetDependency */,
|
||||||
|
54D53655196CCC40005442F9 /* PBXTargetDependency */,
|
||||||
|
54D53657196CCC40005442F9 /* PBXTargetDependency */,
|
||||||
|
);
|
||||||
|
name = openh264;
|
||||||
|
productName = openh264;
|
||||||
|
};
|
||||||
|
/* End PBXAggregateTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXContainerItemProxy section */
|
||||||
|
54D53638196CC8CB005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D53634196CC8CB005442F9 /* common.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 4CE443D518B722CD0017DF25;
|
||||||
|
remoteInfo = common;
|
||||||
|
};
|
||||||
|
54D5363E196CC8DA005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 4CE4427918B6FC360017DF25;
|
||||||
|
remoteInfo = welsdec;
|
||||||
|
};
|
||||||
|
54D53644196CC8E6005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D53640196CC8E6005442F9 /* welsenc.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 4CE4431118B6FFA00017DF25;
|
||||||
|
remoteInfo = welsenc;
|
||||||
|
};
|
||||||
|
54D5364A196CC8F3005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D53646196CC8F3005442F9 /* processing.xcodeproj */;
|
||||||
|
proxyType = 2;
|
||||||
|
remoteGlobalIDString = 5499477C196A3F3900BA3D87;
|
||||||
|
remoteInfo = processing;
|
||||||
|
};
|
||||||
|
54D53650196CCC40005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D53646196CC8F3005442F9 /* processing.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 5499477B196A3F3900BA3D87;
|
||||||
|
remoteInfo = processing;
|
||||||
|
};
|
||||||
|
54D53652196CCC40005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D53640196CC8E6005442F9 /* welsenc.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 4CE4431018B6FFA00017DF25;
|
||||||
|
remoteInfo = welsenc;
|
||||||
|
};
|
||||||
|
54D53654196CCC40005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 4CE4427818B6FC360017DF25;
|
||||||
|
remoteInfo = welsdec;
|
||||||
|
};
|
||||||
|
54D53656196CCC40005442F9 /* PBXContainerItemProxy */ = {
|
||||||
|
isa = PBXContainerItemProxy;
|
||||||
|
containerPortal = 54D53634196CC8CB005442F9 /* common.xcodeproj */;
|
||||||
|
proxyType = 1;
|
||||||
|
remoteGlobalIDString = 4CE443D418B722CD0017DF25;
|
||||||
|
remoteInfo = common;
|
||||||
|
};
|
||||||
|
/* End PBXContainerItemProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
54D53634196CC8CB005442F9 /* common.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = common.xcodeproj; path = ../common/common.xcodeproj; sourceTree = "<group>"; };
|
||||||
|
54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsdec.xcodeproj; path = ../dec/welsdec/welsdec.xcodeproj; sourceTree = "<group>"; };
|
||||||
|
54D53640196CC8E6005442F9 /* welsenc.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = welsenc.xcodeproj; path = ../enc/welsenc/welsenc.xcodeproj; sourceTree = "<group>"; };
|
||||||
|
54D53646196CC8F3005442F9 /* processing.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = processing.xcodeproj; path = ../processing/processing.xcodeproj; sourceTree = "<group>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
54D53602196CC76D005442F9 = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
54D5360D196CC76D005442F9 /* Frameworks */,
|
||||||
|
54D5360C196CC76D005442F9 /* Products */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
54D5360C196CC76D005442F9 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
54D5360D196CC76D005442F9 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
54D53646196CC8F3005442F9 /* processing.xcodeproj */,
|
||||||
|
54D53640196CC8E6005442F9 /* welsenc.xcodeproj */,
|
||||||
|
54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */,
|
||||||
|
54D53634196CC8CB005442F9 /* common.xcodeproj */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
54D53635196CC8CB005442F9 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
54D53639196CC8CB005442F9 /* libcommon.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
54D5363B196CC8DA005442F9 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
54D5363F196CC8DA005442F9 /* libwelsdec.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
54D53641196CC8E6005442F9 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
54D53645196CC8E6005442F9 /* libwelsenc.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
54D53647196CC8F3005442F9 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
54D5364B196CC8F3005442F9 /* libprocessing.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
54D53603196CC76D005442F9 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0510;
|
||||||
|
ORGANIZATIONNAME = com.cisco;
|
||||||
|
};
|
||||||
|
buildConfigurationList = 54D53606196CC76D005442F9 /* Build configuration list for PBXProject "openh264" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = 54D53602196CC76D005442F9;
|
||||||
|
productRefGroup = 54D5360C196CC76D005442F9 /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectReferences = (
|
||||||
|
{
|
||||||
|
ProductGroup = 54D53635196CC8CB005442F9 /* Products */;
|
||||||
|
ProjectRef = 54D53634196CC8CB005442F9 /* common.xcodeproj */;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ProductGroup = 54D53647196CC8F3005442F9 /* Products */;
|
||||||
|
ProjectRef = 54D53646196CC8F3005442F9 /* processing.xcodeproj */;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ProductGroup = 54D5363B196CC8DA005442F9 /* Products */;
|
||||||
|
ProjectRef = 54D5363A196CC8DA005442F9 /* welsdec.xcodeproj */;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ProductGroup = 54D53641196CC8E6005442F9 /* Products */;
|
||||||
|
ProjectRef = 54D53640196CC8E6005442F9 /* welsenc.xcodeproj */;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
54D5364C196CC907005442F9 /* openh264 */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXReferenceProxy section */
|
||||||
|
54D53639196CC8CB005442F9 /* libcommon.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = libcommon.a;
|
||||||
|
remoteRef = 54D53638196CC8CB005442F9 /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
|
54D5363F196CC8DA005442F9 /* libwelsdec.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = libwelsdec.a;
|
||||||
|
remoteRef = 54D5363E196CC8DA005442F9 /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
|
54D53645196CC8E6005442F9 /* libwelsenc.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = libwelsenc.a;
|
||||||
|
remoteRef = 54D53644196CC8E6005442F9 /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
|
54D5364B196CC8F3005442F9 /* libprocessing.a */ = {
|
||||||
|
isa = PBXReferenceProxy;
|
||||||
|
fileType = archive.ar;
|
||||||
|
path = libprocessing.a;
|
||||||
|
remoteRef = 54D5364A196CC8F3005442F9 /* PBXContainerItemProxy */;
|
||||||
|
sourceTree = BUILT_PRODUCTS_DIR;
|
||||||
|
};
|
||||||
|
/* End PBXReferenceProxy section */
|
||||||
|
|
||||||
|
/* Begin PBXTargetDependency section */
|
||||||
|
54D53651196CCC40005442F9 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = processing;
|
||||||
|
targetProxy = 54D53650196CCC40005442F9 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
54D53653196CCC40005442F9 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = welsenc;
|
||||||
|
targetProxy = 54D53652196CCC40005442F9 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
54D53655196CCC40005442F9 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = welsdec;
|
||||||
|
targetProxy = 54D53654196CCC40005442F9 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
54D53657196CCC40005442F9 /* PBXTargetDependency */ = {
|
||||||
|
isa = PBXTargetDependency;
|
||||||
|
name = common;
|
||||||
|
targetProxy = 54D53656196CCC40005442F9 /* PBXContainerItemProxy */;
|
||||||
|
};
|
||||||
|
/* End PBXTargetDependency section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
54D5362C196CC76D005442F9 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
|
ONLY_ACTIVE_ARCH = NO;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
54D5362D196CC76D005442F9 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
VALIDATE_PRODUCT = YES;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
54D5364E196CC907005442F9 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
54D5364F196CC907005442F9 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
54D53606196CC76D005442F9 /* Build configuration list for PBXProject "openh264" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
54D5362C196CC76D005442F9 /* Debug */,
|
||||||
|
54D5362D196CC76D005442F9 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
54D5364D196CC907005442F9 /* Build configuration list for PBXAggregateTarget "openh264" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
54D5364E196CC907005442F9 /* Debug */,
|
||||||
|
54D5364F196CC907005442F9 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 54D53603196CC76D005442F9 /* Project object */;
|
||||||
|
}
|
||||||
542
codec/build/iOS/processing/processing.xcodeproj/project.pbxproj
Normal file
542
codec/build/iOS/processing/processing.xcodeproj/project.pbxproj
Normal file
@@ -0,0 +1,542 @@
|
|||||||
|
// !$*UTF8*$!
|
||||||
|
{
|
||||||
|
archiveVersion = 1;
|
||||||
|
classes = {
|
||||||
|
};
|
||||||
|
objectVersion = 46;
|
||||||
|
objects = {
|
||||||
|
|
||||||
|
/* Begin PBXBuildFile section */
|
||||||
|
4CC6094F197E009D00BE8B8B /* down_sample_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6094E197E009D00BE8B8B /* down_sample_aarch64_neon.S */; };
|
||||||
|
4CC6095A1980F34F00BE8B8B /* vaa_calc_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CC609591980F34F00BE8B8B /* vaa_calc_aarch64_neon.S */; };
|
||||||
|
4CD0FE36199082AD00375C9A /* pixel_sad_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 4CD0FE35199082AD00375C9A /* pixel_sad_aarch64_neon.S */; };
|
||||||
|
54994780196A3F3900BA3D87 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5499477F196A3F3900BA3D87 /* Foundation.framework */; };
|
||||||
|
549947DF196A3FB400BA3D87 /* AdaptiveQuantization.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947A9196A3FB400BA3D87 /* AdaptiveQuantization.cpp */; };
|
||||||
|
549947E0196A3FB400BA3D87 /* adaptive_quantization.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AC196A3FB400BA3D87 /* adaptive_quantization.S */; };
|
||||||
|
549947E1196A3FB400BA3D87 /* down_sample_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AD196A3FB400BA3D87 /* down_sample_neon.S */; };
|
||||||
|
549947E2196A3FB400BA3D87 /* pixel_sad_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AE196A3FB400BA3D87 /* pixel_sad_neon.S */; };
|
||||||
|
549947E3196A3FB400BA3D87 /* vaa_calc_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 549947AF196A3FB400BA3D87 /* vaa_calc_neon.S */; };
|
||||||
|
549947E4196A3FB400BA3D87 /* BackgroundDetection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947B1196A3FB400BA3D87 /* BackgroundDetection.cpp */; };
|
||||||
|
549947E6196A3FB400BA3D87 /* memory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947B6196A3FB400BA3D87 /* memory.cpp */; };
|
||||||
|
549947E7196A3FB400BA3D87 /* WelsFrameWork.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947BB196A3FB400BA3D87 /* WelsFrameWork.cpp */; };
|
||||||
|
549947E8196A3FB400BA3D87 /* WelsFrameWorkEx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947BD196A3FB400BA3D87 /* WelsFrameWorkEx.cpp */; };
|
||||||
|
549947E9196A3FB400BA3D87 /* ComplexityAnalysis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C1196A3FB400BA3D87 /* ComplexityAnalysis.cpp */; };
|
||||||
|
549947EA196A3FB400BA3D87 /* denoise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C4196A3FB400BA3D87 /* denoise.cpp */; };
|
||||||
|
549947EB196A3FB400BA3D87 /* denoise_filter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C6196A3FB400BA3D87 /* denoise_filter.cpp */; };
|
||||||
|
549947EC196A3FB400BA3D87 /* downsample.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947C8196A3FB400BA3D87 /* downsample.cpp */; };
|
||||||
|
549947ED196A3FB400BA3D87 /* downsamplefuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947CA196A3FB400BA3D87 /* downsamplefuncs.cpp */; };
|
||||||
|
549947EE196A3FB400BA3D87 /* imagerotate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947CC196A3FB400BA3D87 /* imagerotate.cpp */; };
|
||||||
|
549947EF196A3FB400BA3D87 /* imagerotatefuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947CE196A3FB400BA3D87 /* imagerotatefuncs.cpp */; };
|
||||||
|
549947F0196A3FB400BA3D87 /* SceneChangeDetection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D0196A3FB400BA3D87 /* SceneChangeDetection.cpp */; };
|
||||||
|
549947F1196A3FB400BA3D87 /* ScrollDetection.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D3196A3FB400BA3D87 /* ScrollDetection.cpp */; };
|
||||||
|
549947F2196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D5196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp */; };
|
||||||
|
549947F3196A3FB400BA3D87 /* vaacalcfuncs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D8196A3FB400BA3D87 /* vaacalcfuncs.cpp */; };
|
||||||
|
549947F4196A3FB400BA3D87 /* vaacalculation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 549947D9196A3FB400BA3D87 /* vaacalculation.cpp */; };
|
||||||
|
6C749B78197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 6C749B77197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S */; };
|
||||||
|
F791965B19D3BF6B00F60C6B /* intra_pred_common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F791965A19D3BF6B00F60C6B /* intra_pred_common.cpp */; };
|
||||||
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
|
/* Begin PBXCopyFilesBuildPhase section */
|
||||||
|
5499477A196A3F3900BA3D87 /* CopyFiles */ = {
|
||||||
|
isa = PBXCopyFilesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
dstPath = "include/$(PRODUCT_NAME)";
|
||||||
|
dstSubfolderSpec = 16;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXFileReference section */
|
||||||
|
4CC6094E197E009D00BE8B8B /* down_sample_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = down_sample_aarch64_neon.S; path = arm64/down_sample_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
|
4CC609591980F34F00BE8B8B /* vaa_calc_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = vaa_calc_aarch64_neon.S; path = arm64/vaa_calc_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
|
4CD0FE35199082AD00375C9A /* pixel_sad_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = pixel_sad_aarch64_neon.S; path = arm64/pixel_sad_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
|
5499477C196A3F3900BA3D87 /* libprocessing.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libprocessing.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
5499477F196A3F3900BA3D87 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
|
54994790196A3F3900BA3D87 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
|
549947A6196A3FB400BA3D87 /* IWelsVP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IWelsVP.h; sourceTree = "<group>"; };
|
||||||
|
549947A9196A3FB400BA3D87 /* AdaptiveQuantization.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AdaptiveQuantization.cpp; sourceTree = "<group>"; };
|
||||||
|
549947AA196A3FB400BA3D87 /* AdaptiveQuantization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdaptiveQuantization.h; sourceTree = "<group>"; };
|
||||||
|
549947AC196A3FB400BA3D87 /* adaptive_quantization.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = adaptive_quantization.S; sourceTree = "<group>"; };
|
||||||
|
549947AD196A3FB400BA3D87 /* down_sample_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = down_sample_neon.S; sourceTree = "<group>"; };
|
||||||
|
549947AE196A3FB400BA3D87 /* pixel_sad_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = pixel_sad_neon.S; sourceTree = "<group>"; };
|
||||||
|
549947AF196A3FB400BA3D87 /* vaa_calc_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = vaa_calc_neon.S; sourceTree = "<group>"; };
|
||||||
|
549947B1196A3FB400BA3D87 /* BackgroundDetection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BackgroundDetection.cpp; sourceTree = "<group>"; };
|
||||||
|
549947B2196A3FB400BA3D87 /* BackgroundDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BackgroundDetection.h; sourceTree = "<group>"; };
|
||||||
|
549947B5196A3FB400BA3D87 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = "<group>"; };
|
||||||
|
549947B6196A3FB400BA3D87 /* memory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = memory.cpp; sourceTree = "<group>"; };
|
||||||
|
549947B7196A3FB400BA3D87 /* memory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memory.h; sourceTree = "<group>"; };
|
||||||
|
549947B8196A3FB400BA3D87 /* resource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = resource.h; sourceTree = "<group>"; };
|
||||||
|
549947B9196A3FB400BA3D87 /* typedef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = typedef.h; sourceTree = "<group>"; };
|
||||||
|
549947BA196A3FB400BA3D87 /* util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = util.h; sourceTree = "<group>"; };
|
||||||
|
549947BB196A3FB400BA3D87 /* WelsFrameWork.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsFrameWork.cpp; sourceTree = "<group>"; };
|
||||||
|
549947BC196A3FB400BA3D87 /* WelsFrameWork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelsFrameWork.h; sourceTree = "<group>"; };
|
||||||
|
549947BD196A3FB400BA3D87 /* WelsFrameWorkEx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WelsFrameWorkEx.cpp; sourceTree = "<group>"; };
|
||||||
|
549947BE196A3FB400BA3D87 /* WelsVP.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WelsVP.def; sourceTree = "<group>"; };
|
||||||
|
549947BF196A3FB400BA3D87 /* WelsVP.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = WelsVP.rc; sourceTree = "<group>"; };
|
||||||
|
549947C1196A3FB400BA3D87 /* ComplexityAnalysis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComplexityAnalysis.cpp; sourceTree = "<group>"; };
|
||||||
|
549947C2196A3FB400BA3D87 /* ComplexityAnalysis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComplexityAnalysis.h; sourceTree = "<group>"; };
|
||||||
|
549947C4196A3FB400BA3D87 /* denoise.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = denoise.cpp; sourceTree = "<group>"; };
|
||||||
|
549947C5196A3FB400BA3D87 /* denoise.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = denoise.h; sourceTree = "<group>"; };
|
||||||
|
549947C6196A3FB400BA3D87 /* denoise_filter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = denoise_filter.cpp; sourceTree = "<group>"; };
|
||||||
|
549947C8196A3FB400BA3D87 /* downsample.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = downsample.cpp; sourceTree = "<group>"; };
|
||||||
|
549947C9196A3FB400BA3D87 /* downsample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = downsample.h; sourceTree = "<group>"; };
|
||||||
|
549947CA196A3FB400BA3D87 /* downsamplefuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = downsamplefuncs.cpp; sourceTree = "<group>"; };
|
||||||
|
549947CC196A3FB400BA3D87 /* imagerotate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = imagerotate.cpp; sourceTree = "<group>"; };
|
||||||
|
549947CD196A3FB400BA3D87 /* imagerotate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imagerotate.h; sourceTree = "<group>"; };
|
||||||
|
549947CE196A3FB400BA3D87 /* imagerotatefuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = imagerotatefuncs.cpp; sourceTree = "<group>"; };
|
||||||
|
549947D0196A3FB400BA3D87 /* SceneChangeDetection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SceneChangeDetection.cpp; sourceTree = "<group>"; };
|
||||||
|
549947D1196A3FB400BA3D87 /* SceneChangeDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SceneChangeDetection.h; sourceTree = "<group>"; };
|
||||||
|
549947D3196A3FB400BA3D87 /* ScrollDetection.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollDetection.cpp; sourceTree = "<group>"; };
|
||||||
|
549947D4196A3FB400BA3D87 /* ScrollDetection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollDetection.h; sourceTree = "<group>"; };
|
||||||
|
549947D5196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ScrollDetectionFuncs.cpp; sourceTree = "<group>"; };
|
||||||
|
549947D6196A3FB400BA3D87 /* ScrollDetectionFuncs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScrollDetectionFuncs.h; sourceTree = "<group>"; };
|
||||||
|
549947D8196A3FB400BA3D87 /* vaacalcfuncs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vaacalcfuncs.cpp; sourceTree = "<group>"; };
|
||||||
|
549947D9196A3FB400BA3D87 /* vaacalculation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vaacalculation.cpp; sourceTree = "<group>"; };
|
||||||
|
549947DA196A3FB400BA3D87 /* vaacalculation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vaacalculation.h; sourceTree = "<group>"; };
|
||||||
|
6C749B77197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; name = adaptive_quantization_aarch64_neon.S; path = arm64/adaptive_quantization_aarch64_neon.S; sourceTree = "<group>"; };
|
||||||
|
F791965A19D3BF6B00F60C6B /* intra_pred_common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = intra_pred_common.cpp; path = ../../../common/src/intra_pred_common.cpp; sourceTree = "<group>"; };
|
||||||
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
|
54994779196A3F3900BA3D87 /* Frameworks */ = {
|
||||||
|
isa = PBXFrameworksBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
54994780196A3F3900BA3D87 /* Foundation.framework in Frameworks */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin PBXGroup section */
|
||||||
|
4CC6094D197E008B00BE8B8B /* arm64 */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4CD0FE35199082AD00375C9A /* pixel_sad_aarch64_neon.S */,
|
||||||
|
6C749B77197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S */,
|
||||||
|
4CC609591980F34F00BE8B8B /* vaa_calc_aarch64_neon.S */,
|
||||||
|
4CC6094E197E009D00BE8B8B /* down_sample_aarch64_neon.S */,
|
||||||
|
);
|
||||||
|
name = arm64;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
54994773196A3F3900BA3D87 = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947A5196A3FB400BA3D87 /* interface */,
|
||||||
|
549947A7196A3FB400BA3D87 /* src */,
|
||||||
|
5499477E196A3F3900BA3D87 /* Frameworks */,
|
||||||
|
5499477D196A3F3900BA3D87 /* Products */,
|
||||||
|
);
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
5499477D196A3F3900BA3D87 /* Products */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
5499477C196A3F3900BA3D87 /* libprocessing.a */,
|
||||||
|
);
|
||||||
|
name = Products;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
5499477E196A3F3900BA3D87 /* Frameworks */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
5499477F196A3F3900BA3D87 /* Foundation.framework */,
|
||||||
|
54994790196A3F3900BA3D87 /* UIKit.framework */,
|
||||||
|
);
|
||||||
|
name = Frameworks;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947A5196A3FB400BA3D87 /* interface */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947A6196A3FB400BA3D87 /* IWelsVP.h */,
|
||||||
|
);
|
||||||
|
name = interface;
|
||||||
|
path = ../../../processing/interface;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947A7196A3FB400BA3D87 /* src */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
4CC6094D197E008B00BE8B8B /* arm64 */,
|
||||||
|
549947A8196A3FB400BA3D87 /* adaptivequantization */,
|
||||||
|
549947AB196A3FB400BA3D87 /* arm */,
|
||||||
|
549947B0196A3FB400BA3D87 /* backgrounddetection */,
|
||||||
|
549947B3196A3FB400BA3D87 /* common */,
|
||||||
|
549947C0196A3FB400BA3D87 /* complexityanalysis */,
|
||||||
|
549947C3196A3FB400BA3D87 /* denoise */,
|
||||||
|
549947C7196A3FB400BA3D87 /* downsample */,
|
||||||
|
549947CB196A3FB400BA3D87 /* imagerotate */,
|
||||||
|
549947CF196A3FB400BA3D87 /* scenechangedetection */,
|
||||||
|
549947D2196A3FB400BA3D87 /* scrolldetection */,
|
||||||
|
549947D7196A3FB400BA3D87 /* vaacalc */,
|
||||||
|
);
|
||||||
|
name = src;
|
||||||
|
path = ../../../processing/src;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947A8196A3FB400BA3D87 /* adaptivequantization */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947A9196A3FB400BA3D87 /* AdaptiveQuantization.cpp */,
|
||||||
|
549947AA196A3FB400BA3D87 /* AdaptiveQuantization.h */,
|
||||||
|
);
|
||||||
|
path = adaptivequantization;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947AB196A3FB400BA3D87 /* arm */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947AC196A3FB400BA3D87 /* adaptive_quantization.S */,
|
||||||
|
549947AD196A3FB400BA3D87 /* down_sample_neon.S */,
|
||||||
|
549947AE196A3FB400BA3D87 /* pixel_sad_neon.S */,
|
||||||
|
549947AF196A3FB400BA3D87 /* vaa_calc_neon.S */,
|
||||||
|
);
|
||||||
|
path = arm;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947B0196A3FB400BA3D87 /* backgrounddetection */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947B1196A3FB400BA3D87 /* BackgroundDetection.cpp */,
|
||||||
|
549947B2196A3FB400BA3D87 /* BackgroundDetection.h */,
|
||||||
|
);
|
||||||
|
path = backgrounddetection;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947B3196A3FB400BA3D87 /* common */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
F791965A19D3BF6B00F60C6B /* intra_pred_common.cpp */,
|
||||||
|
549947B5196A3FB400BA3D87 /* common.h */,
|
||||||
|
549947B6196A3FB400BA3D87 /* memory.cpp */,
|
||||||
|
549947B7196A3FB400BA3D87 /* memory.h */,
|
||||||
|
549947B8196A3FB400BA3D87 /* resource.h */,
|
||||||
|
549947B9196A3FB400BA3D87 /* typedef.h */,
|
||||||
|
549947BA196A3FB400BA3D87 /* util.h */,
|
||||||
|
549947BB196A3FB400BA3D87 /* WelsFrameWork.cpp */,
|
||||||
|
549947BC196A3FB400BA3D87 /* WelsFrameWork.h */,
|
||||||
|
549947BD196A3FB400BA3D87 /* WelsFrameWorkEx.cpp */,
|
||||||
|
549947BE196A3FB400BA3D87 /* WelsVP.def */,
|
||||||
|
549947BF196A3FB400BA3D87 /* WelsVP.rc */,
|
||||||
|
);
|
||||||
|
path = common;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947C0196A3FB400BA3D87 /* complexityanalysis */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947C1196A3FB400BA3D87 /* ComplexityAnalysis.cpp */,
|
||||||
|
549947C2196A3FB400BA3D87 /* ComplexityAnalysis.h */,
|
||||||
|
);
|
||||||
|
path = complexityanalysis;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947C3196A3FB400BA3D87 /* denoise */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947C4196A3FB400BA3D87 /* denoise.cpp */,
|
||||||
|
549947C5196A3FB400BA3D87 /* denoise.h */,
|
||||||
|
549947C6196A3FB400BA3D87 /* denoise_filter.cpp */,
|
||||||
|
);
|
||||||
|
path = denoise;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947C7196A3FB400BA3D87 /* downsample */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947C8196A3FB400BA3D87 /* downsample.cpp */,
|
||||||
|
549947C9196A3FB400BA3D87 /* downsample.h */,
|
||||||
|
549947CA196A3FB400BA3D87 /* downsamplefuncs.cpp */,
|
||||||
|
);
|
||||||
|
path = downsample;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947CB196A3FB400BA3D87 /* imagerotate */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947CC196A3FB400BA3D87 /* imagerotate.cpp */,
|
||||||
|
549947CD196A3FB400BA3D87 /* imagerotate.h */,
|
||||||
|
549947CE196A3FB400BA3D87 /* imagerotatefuncs.cpp */,
|
||||||
|
);
|
||||||
|
path = imagerotate;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947CF196A3FB400BA3D87 /* scenechangedetection */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947D0196A3FB400BA3D87 /* SceneChangeDetection.cpp */,
|
||||||
|
549947D1196A3FB400BA3D87 /* SceneChangeDetection.h */,
|
||||||
|
);
|
||||||
|
path = scenechangedetection;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947D2196A3FB400BA3D87 /* scrolldetection */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947D3196A3FB400BA3D87 /* ScrollDetection.cpp */,
|
||||||
|
549947D4196A3FB400BA3D87 /* ScrollDetection.h */,
|
||||||
|
549947D5196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp */,
|
||||||
|
549947D6196A3FB400BA3D87 /* ScrollDetectionFuncs.h */,
|
||||||
|
);
|
||||||
|
path = scrolldetection;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
549947D7196A3FB400BA3D87 /* vaacalc */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
549947D8196A3FB400BA3D87 /* vaacalcfuncs.cpp */,
|
||||||
|
549947D9196A3FB400BA3D87 /* vaacalculation.cpp */,
|
||||||
|
549947DA196A3FB400BA3D87 /* vaacalculation.h */,
|
||||||
|
);
|
||||||
|
path = vaacalc;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
|
/* End PBXGroup section */
|
||||||
|
|
||||||
|
/* Begin PBXNativeTarget section */
|
||||||
|
5499477B196A3F3900BA3D87 /* processing */ = {
|
||||||
|
isa = PBXNativeTarget;
|
||||||
|
buildConfigurationList = 5499479F196A3F3900BA3D87 /* Build configuration list for PBXNativeTarget "processing" */;
|
||||||
|
buildPhases = (
|
||||||
|
54994778196A3F3900BA3D87 /* Sources */,
|
||||||
|
54994779196A3F3900BA3D87 /* Frameworks */,
|
||||||
|
5499477A196A3F3900BA3D87 /* CopyFiles */,
|
||||||
|
);
|
||||||
|
buildRules = (
|
||||||
|
);
|
||||||
|
dependencies = (
|
||||||
|
);
|
||||||
|
name = processing;
|
||||||
|
productName = processing;
|
||||||
|
productReference = 5499477C196A3F3900BA3D87 /* libprocessing.a */;
|
||||||
|
productType = "com.apple.product-type.library.static";
|
||||||
|
};
|
||||||
|
/* End PBXNativeTarget section */
|
||||||
|
|
||||||
|
/* Begin PBXProject section */
|
||||||
|
54994774196A3F3900BA3D87 /* Project object */ = {
|
||||||
|
isa = PBXProject;
|
||||||
|
attributes = {
|
||||||
|
LastUpgradeCheck = 0510;
|
||||||
|
ORGANIZATIONNAME = com.cisco;
|
||||||
|
};
|
||||||
|
buildConfigurationList = 54994777196A3F3900BA3D87 /* Build configuration list for PBXProject "processing" */;
|
||||||
|
compatibilityVersion = "Xcode 3.2";
|
||||||
|
developmentRegion = English;
|
||||||
|
hasScannedForEncodings = 0;
|
||||||
|
knownRegions = (
|
||||||
|
en,
|
||||||
|
);
|
||||||
|
mainGroup = 54994773196A3F3900BA3D87;
|
||||||
|
productRefGroup = 5499477D196A3F3900BA3D87 /* Products */;
|
||||||
|
projectDirPath = "";
|
||||||
|
projectRoot = "";
|
||||||
|
targets = (
|
||||||
|
5499477B196A3F3900BA3D87 /* processing */,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
/* End PBXProject section */
|
||||||
|
|
||||||
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
54994778196A3F3900BA3D87 /* Sources */ = {
|
||||||
|
isa = PBXSourcesBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
6C749B78197E2A2000A111F9 /* adaptive_quantization_aarch64_neon.S in Sources */,
|
||||||
|
549947F4196A3FB400BA3D87 /* vaacalculation.cpp in Sources */,
|
||||||
|
549947E9196A3FB400BA3D87 /* ComplexityAnalysis.cpp in Sources */,
|
||||||
|
549947E3196A3FB400BA3D87 /* vaa_calc_neon.S in Sources */,
|
||||||
|
549947EE196A3FB400BA3D87 /* imagerotate.cpp in Sources */,
|
||||||
|
549947EA196A3FB400BA3D87 /* denoise.cpp in Sources */,
|
||||||
|
549947E7196A3FB400BA3D87 /* WelsFrameWork.cpp in Sources */,
|
||||||
|
549947F1196A3FB400BA3D87 /* ScrollDetection.cpp in Sources */,
|
||||||
|
549947E4196A3FB400BA3D87 /* BackgroundDetection.cpp in Sources */,
|
||||||
|
549947F3196A3FB400BA3D87 /* vaacalcfuncs.cpp in Sources */,
|
||||||
|
4CD0FE36199082AD00375C9A /* pixel_sad_aarch64_neon.S in Sources */,
|
||||||
|
549947E0196A3FB400BA3D87 /* adaptive_quantization.S in Sources */,
|
||||||
|
549947EB196A3FB400BA3D87 /* denoise_filter.cpp in Sources */,
|
||||||
|
549947ED196A3FB400BA3D87 /* downsamplefuncs.cpp in Sources */,
|
||||||
|
549947E6196A3FB400BA3D87 /* memory.cpp in Sources */,
|
||||||
|
549947E2196A3FB400BA3D87 /* pixel_sad_neon.S in Sources */,
|
||||||
|
549947F0196A3FB400BA3D87 /* SceneChangeDetection.cpp in Sources */,
|
||||||
|
4CC6094F197E009D00BE8B8B /* down_sample_aarch64_neon.S in Sources */,
|
||||||
|
4CC6095A1980F34F00BE8B8B /* vaa_calc_aarch64_neon.S in Sources */,
|
||||||
|
549947F2196A3FB400BA3D87 /* ScrollDetectionFuncs.cpp in Sources */,
|
||||||
|
F791965B19D3BF6B00F60C6B /* intra_pred_common.cpp in Sources */,
|
||||||
|
549947EF196A3FB400BA3D87 /* imagerotatefuncs.cpp in Sources */,
|
||||||
|
549947DF196A3FB400BA3D87 /* AdaptiveQuantization.cpp in Sources */,
|
||||||
|
549947EC196A3FB400BA3D87 /* downsample.cpp in Sources */,
|
||||||
|
549947E8196A3FB400BA3D87 /* WelsFrameWorkEx.cpp in Sources */,
|
||||||
|
549947E1196A3FB400BA3D87 /* down_sample_neon.S in Sources */,
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
};
|
||||||
|
/* End PBXSourcesBuildPhase section */
|
||||||
|
|
||||||
|
/* Begin XCBuildConfiguration section */
|
||||||
|
5499479D196A3F3900BA3D87 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_DYNAMIC_NO_PIC = NO;
|
||||||
|
GCC_OPTIMIZATION_LEVEL = 0;
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[arch=*]" = (
|
||||||
|
"DEBUG=1",
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
|
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
5499479E196A3F3900BA3D87 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||||
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
|
CLANG_ENABLE_MODULES = YES;
|
||||||
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||||
|
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||||
|
CLANG_WARN_EMPTY_BODY = YES;
|
||||||
|
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||||
|
CLANG_WARN_INT_CONVERSION = YES;
|
||||||
|
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||||
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
|
COPY_PHASE_STRIP = YES;
|
||||||
|
ENABLE_NS_ASSERTIONS = NO;
|
||||||
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||||
|
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||||
|
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||||
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||||
|
SDKROOT = iphoneos;
|
||||||
|
VALIDATE_PRODUCT = YES;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
549947A0196A3F3900BA3D87 /* Debug */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
DSTROOT = /tmp/processing.dst;
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = "";
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=arm64]" = (
|
||||||
|
APPLE_IOS,
|
||||||
|
HAVE_NEON_AARCH64,
|
||||||
|
);
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7]" = (
|
||||||
|
APPLE_IOS,
|
||||||
|
HAVE_NEON,
|
||||||
|
);
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7s]" = (
|
||||||
|
APPLE_IOS,
|
||||||
|
HAVE_NEON,
|
||||||
|
);
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]" = APPLE_IOS;
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(SRCROOT)/../../../processing/interface",
|
||||||
|
"$(SRCROOT)/../../../processing/src/common",
|
||||||
|
"$(SRCROOT)/../../../common/inc",
|
||||||
|
"$(SRCROOT)/../../../common/arm64",
|
||||||
|
"$(SRCROOT)/../../../common/arm",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
};
|
||||||
|
name = Debug;
|
||||||
|
};
|
||||||
|
549947A1196A3F3900BA3D87 /* Release */ = {
|
||||||
|
isa = XCBuildConfiguration;
|
||||||
|
buildSettings = {
|
||||||
|
DSTROOT = /tmp/processing.dst;
|
||||||
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
|
GCC_PREFIX_HEADER = "";
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=arm64]" = (
|
||||||
|
APPLE_IOS,
|
||||||
|
HAVE_NEON_AARCH64,
|
||||||
|
);
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7]" = (
|
||||||
|
APPLE_IOS,
|
||||||
|
HAVE_NEON,
|
||||||
|
);
|
||||||
|
"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*][arch=armv7s]" = (
|
||||||
|
APPLE_IOS,
|
||||||
|
HAVE_NEON,
|
||||||
|
);
|
||||||
|
HEADER_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"$(SRCROOT)/../../../processing/interface",
|
||||||
|
"$(SRCROOT)/../../../processing/src/common",
|
||||||
|
"$(SRCROOT)/../../../common/inc",
|
||||||
|
"$(SRCROOT)/../../../common/arm64",
|
||||||
|
"$(SRCROOT)/../../../common/arm",
|
||||||
|
);
|
||||||
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
|
SKIP_INSTALL = YES;
|
||||||
|
};
|
||||||
|
name = Release;
|
||||||
|
};
|
||||||
|
/* End XCBuildConfiguration section */
|
||||||
|
|
||||||
|
/* Begin XCConfigurationList section */
|
||||||
|
54994777196A3F3900BA3D87 /* Build configuration list for PBXProject "processing" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
5499479D196A3F3900BA3D87 /* Debug */,
|
||||||
|
5499479E196A3F3900BA3D87 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
5499479F196A3F3900BA3D87 /* Build configuration list for PBXNativeTarget "processing" */ = {
|
||||||
|
isa = XCConfigurationList;
|
||||||
|
buildConfigurations = (
|
||||||
|
549947A0196A3F3900BA3D87 /* Debug */,
|
||||||
|
549947A1196A3F3900BA3D87 /* Release */,
|
||||||
|
);
|
||||||
|
defaultConfigurationIsVisible = 0;
|
||||||
|
defaultConfigurationName = Release;
|
||||||
|
};
|
||||||
|
/* End XCConfigurationList section */
|
||||||
|
};
|
||||||
|
rootObject = 54994774196A3F3900BA3D87 /* Project object */;
|
||||||
|
}
|
||||||
3
codec/build/win32/.gitignore
vendored
3
codec/build/win32/.gitignore
vendored
@@ -3,6 +3,9 @@
|
|||||||
*.ncb
|
*.ncb
|
||||||
*.suo
|
*.suo
|
||||||
|
|
||||||
|
Win32
|
||||||
|
x64
|
||||||
|
|
||||||
# Files generated by upgrading the project files
|
# Files generated by upgrading the project files
|
||||||
*.vcxproj*
|
*.vcxproj*
|
||||||
Backup
|
Backup
|
||||||
|
|||||||
@@ -23,8 +23,8 @@
|
|||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\core\release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -59,12 +59,8 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\release/WelsDecCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\core\release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\core\release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="0"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
@@ -89,7 +85,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
@@ -100,8 +95,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\core\release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -137,12 +132,8 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\release/WelsDecCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\core\release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\core\release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="0"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
@@ -167,7 +158,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecCore.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
@@ -178,8 +168,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\core\debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -212,10 +202,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\debug/WelsDecCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\core\debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\core\debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
/>
|
/>
|
||||||
@@ -242,7 +228,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
@@ -253,8 +238,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\core\debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -288,10 +273,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\core\debug/WelsDecCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\core\debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\core\debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\core\debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -318,7 +299,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecCore.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\plus\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -43,11 +43,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -58,10 +53,6 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\Release/WelsDecPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\plus\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -78,15 +69,11 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies=".\..\..\..\..\bin\win32\Release\welsdcore.lib"
|
AdditionalDependencies="$(OutDir)\welsdcore.lib"
|
||||||
OutputFile="$(OutDir)\welsdec.dll"
|
OutputFile="$(OutDir)\welsdec.dll"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories=".\..\..\..\libs\Release\"
|
|
||||||
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsdec.pdb"
|
|
||||||
GenerateMapFile="true"
|
|
||||||
MapFileName="$(OutDir)\welsdec.map"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsdec.lib"
|
ImportLibrary="$(OutDir)\welsdec.lib"
|
||||||
@@ -103,7 +90,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
@@ -117,8 +103,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\plus\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -140,11 +126,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\win32\Release/WelsDecPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -155,10 +136,6 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\Release/WelsDecPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\plus\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -175,15 +152,11 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies=".\..\..\..\..\bin\win64\Release\welsdcore.lib"
|
AdditionalDependencies="$(OutDir)\welsdcore.lib"
|
||||||
OutputFile="$(OutDir)\welsdec.dll"
|
OutputFile="$(OutDir)\welsdec.dll"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories=".\..\..\..\libs\Release\"
|
|
||||||
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsdec.pdb"
|
|
||||||
GenerateMapFile="true"
|
|
||||||
MapFileName="$(OutDir)\welsdec.map"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsdec.lib"
|
ImportLibrary="$(OutDir)\welsdec.lib"
|
||||||
@@ -200,7 +173,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Release/WelsDecPlus.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
@@ -214,8 +186,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\plus\debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -236,11 +208,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -250,10 +217,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\debug/WelsDecPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\plus\debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
/>
|
/>
|
||||||
@@ -270,13 +233,11 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies=".\..\..\..\..\bin\win32\Debug\welsdcore.lib"
|
AdditionalDependencies="$(OutDir)\welsdcore.lib"
|
||||||
OutputFile="$(OutDir)\welsdec.dll"
|
OutputFile="$(OutDir)\welsdec.dll"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\libs\debug"
|
|
||||||
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsdec.pdb"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsdec.lib"
|
ImportLibrary="$(OutDir)\welsdec.lib"
|
||||||
@@ -293,7 +254,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
@@ -307,8 +267,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decoder\plus\debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -329,11 +289,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\win32\Debug/WelsDecPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -343,10 +298,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decoder\plus\debug/WelsDecPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decoder\plus\debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decoder\plus\debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decoder\plus\debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -363,13 +314,11 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies=".\..\..\..\..\bin\win64\Debug\welsdcore.lib"
|
AdditionalDependencies="$(OutDir)\welsdcore.lib"
|
||||||
OutputFile="$(OutDir)\welsdec.dll"
|
OutputFile="$(OutDir)\welsdec.dll"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\libs\debug"
|
|
||||||
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
ModuleDefinitionFile="..\..\..\decoder\plus\src\wels_dec_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsdec.pdb"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsdec.lib"
|
ImportLibrary="$(OutDir)\welsdec.lib"
|
||||||
@@ -386,7 +335,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
OutputFile=".\..\..\..\..\bin\win32\Debug/WelsDecPlus.bsc"
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decConsole\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -42,8 +42,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TypeLibraryName=".\..\..\..\..\bin\win32\Release/decConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -54,11 +52,8 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Release/decConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decConsole\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decConsole\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
@@ -76,9 +71,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
||||||
OutputFile="$(OutDir)\decConsole.exe"
|
OutputFile="$(OutDir)\decConsole.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\bin\win32"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\decConsole.pdb"
|
|
||||||
GenerateMapFile="false"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
@@ -109,8 +102,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decConsole\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -131,9 +124,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\bin\win32\Release/decConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -144,11 +134,8 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Release/decConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decConsole\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decConsole\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
@@ -166,9 +153,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
||||||
OutputFile="$(OutDir)\decConsole.exe"
|
OutputFile="$(OutDir)\decConsole.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\bin\win64"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\decConsole.pdb"
|
|
||||||
GenerateMapFile="false"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
@@ -199,8 +184,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decConsole\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -221,8 +206,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TypeLibraryName=".\..\..\..\..\bin\win32\Debug/decConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -232,11 +215,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Debug/decConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decConsole\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decConsole\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/"
|
|
||||||
BrowseInformation="1"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
/>
|
/>
|
||||||
@@ -256,9 +234,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
||||||
OutputFile="$(OutDir)\decConsoled.exe"
|
OutputFile="$(OutDir)\decConsoled.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\bin\win32"
|
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\decConsoled.pdb"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
@@ -289,8 +265,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\decConsole\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -311,9 +287,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\bin\win32\Debug/decConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -323,11 +296,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\decConsole\Debug/decConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\decConsole\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\decConsole\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\decConsole\Debug/"
|
|
||||||
BrowseInformation="1"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -347,9 +315,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
AdditionalDependencies="$(OutDir)\welsdec.lib"
|
||||||
OutputFile="$(OutDir)\decConsoled.exe"
|
OutputFile="$(OutDir)\decConsoled.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\bin\win64"
|
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\decConsoled.pdb"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
|
|||||||
@@ -23,8 +23,8 @@
|
|||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\core\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -57,10 +57,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\core\Debug/WelsEncCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\core\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\core\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\core\Debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
/>
|
/>
|
||||||
@@ -99,8 +95,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\core\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -134,10 +130,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\core\Debug/WelsEncCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\core\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\core\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\core\Debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -176,8 +168,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\core\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -213,10 +205,6 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\core\Release/WelsEncCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\core\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\core\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\core\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -255,8 +243,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\core\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="4"
|
ConfigurationType="4"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -293,10 +281,6 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\core\Release/WelsEncCore.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\core\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\core\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\core\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -397,6 +381,10 @@
|
|||||||
RelativePath="..\..\..\encoder\core\src\get_intra_predictor.cpp"
|
RelativePath="..\..\..\encoder\core\src\get_intra_predictor.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\common\src\intra_pred_common.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\encoder\core\src\mc.cpp"
|
RelativePath="..\..\..\encoder\core\src\mc.cpp"
|
||||||
>
|
>
|
||||||
@@ -743,7 +731,7 @@
|
|||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
Outputs="$(IntDir)\$(InputName).obj"
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -761,7 +749,7 @@
|
|||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
Outputs="$(IntDir)\$(InputName).obj"
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -783,7 +771,7 @@
|
|||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
CommandLine="nasm -I$(InputDir) -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
Outputs="$(IntDir)\$(InputName).obj"
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -975,6 +963,46 @@
|
|||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\..\common\x86\intra_pred_com.asm"
|
||||||
|
>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win64 -DWIN64 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\..\encoder\core\x86\matrix_transpose.asm"
|
RelativePath="..\..\..\encoder\core\x86\matrix_transpose.asm"
|
||||||
>
|
>
|
||||||
@@ -1343,7 +1371,7 @@
|
|||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
Outputs="$(IntDir)\$(InputName).obj"
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
@@ -1361,7 +1389,7 @@
|
|||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
CommandLine="nasm -I$(InputDir) -I$(InputDir)/../../../common/x86/ -f win32 -DPREFIX -DX86_32 -o $(IntDir)\$(InputName).obj $(InputPath)
"
|
||||||
Outputs="$(IntDir)\$(InputName).obj"
|
Outputs="$(IntDir)\$(InputName).obj"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -42,11 +42,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -56,10 +51,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Debug/WelsEncPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\plus\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
/>
|
/>
|
||||||
@@ -79,12 +70,8 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
||||||
OutputFile="$(OutDir)\welsenc.dll"
|
OutputFile="$(OutDir)\welsenc.dll"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\libs"
|
|
||||||
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
|
|
||||||
GenerateMapFile="true"
|
|
||||||
MapFileName="$(OutDir)\welsenc.map"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsenc.lib"
|
ImportLibrary="$(OutDir)\welsenc.lib"
|
||||||
@@ -115,8 +102,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -137,11 +124,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="_DEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Debug/WelsEncPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -151,10 +133,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Debug/WelsEncPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\plus\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -174,12 +152,8 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
||||||
OutputFile="$(OutDir)\welsenc.dll"
|
OutputFile="$(OutDir)\welsenc.dll"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\libs"
|
|
||||||
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
|
|
||||||
GenerateMapFile="true"
|
|
||||||
MapFileName="$(OutDir)\welsenc.map"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsenc.lib"
|
ImportLibrary="$(OutDir)\welsenc.lib"
|
||||||
@@ -210,8 +184,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -233,27 +207,17 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="1"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="3"
|
Optimization="3"
|
||||||
InlineFunctionExpansion="2"
|
InlineFunctionExpansion="2"
|
||||||
FavorSizeOrSpeed="1"
|
FavorSizeOrSpeed="1"
|
||||||
EnableFiberSafeOptimizations="true"
|
|
||||||
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
|
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
|
||||||
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
|
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Release/WelsEncPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\plus\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -273,13 +237,8 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
||||||
OutputFile="$(OutDir)\welsenc.dll"
|
OutputFile="$(OutDir)\welsenc.dll"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\libs"
|
|
||||||
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
|
|
||||||
GenerateMapFile="false"
|
|
||||||
MapFileName=""
|
|
||||||
MapExports="false"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsenc.lib"
|
ImportLibrary="$(OutDir)\welsenc.lib"
|
||||||
@@ -310,8 +269,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encoder\plus\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="2"
|
ConfigurationType="2"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -333,27 +292,17 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
|
||||||
MkTypLibCompatible="true"
|
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Release/WelsEncPlus.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="3"
|
Optimization="3"
|
||||||
InlineFunctionExpansion="2"
|
InlineFunctionExpansion="2"
|
||||||
FavorSizeOrSpeed="1"
|
FavorSizeOrSpeed="1"
|
||||||
EnableFiberSafeOptimizations="true"
|
|
||||||
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
|
AdditionalIncludeDirectories="..\..\..\encoder\plus\inc;..\..\..\encoder\core\inc;..\..\..\api\svc;..\..\..\common\inc;..\..\..\processing\interface"
|
||||||
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
|
PreprocessorDefinitions="NDEBUG;_USRDLL;X86_ASM"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encoder\plus\Release/WelsEncPlus.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encoder\plus\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encoder\plus\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encoder\plus\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -373,13 +322,8 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
AdditionalDependencies="$(OutDir)\welsecore.lib $(OutDir)\welsvp.lib"
|
||||||
OutputFile="$(OutDir)\welsenc.dll"
|
OutputFile="$(OutDir)\welsenc.dll"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="..\..\..\..\libs"
|
|
||||||
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
ModuleDefinitionFile="..\..\..\encoder\plus\src\wels_enc_export.def"
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\welsenc.pdb"
|
|
||||||
GenerateMapFile="false"
|
|
||||||
MapFileName=""
|
|
||||||
MapExports="false"
|
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
ImportLibrary="$(OutDir)\welsenc.lib"
|
ImportLibrary="$(OutDir)\welsenc.lib"
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encConsole\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -42,8 +42,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Debug/encConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -53,10 +51,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Debug/encConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encConsole\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encConsole\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="4"
|
DebugInformationFormat="4"
|
||||||
/>
|
/>
|
||||||
@@ -76,11 +70,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
||||||
OutputFile="$(OutDir)\encConsole.exe"
|
OutputFile="$(OutDir)\encConsole.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\bin"
|
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
|
|
||||||
GenerateMapFile="true"
|
|
||||||
MapFileName="$(OutDir)\encConsole.map"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
@@ -111,8 +101,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Debug"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encConsole\Debug"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -133,9 +123,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Debug/encConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -145,10 +132,6 @@
|
|||||||
MinimalRebuild="true"
|
MinimalRebuild="true"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
RuntimeLibrary="1"
|
RuntimeLibrary="1"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Debug/encConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encConsole\Debug/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encConsole\Debug/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Debug/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -168,11 +151,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
||||||
OutputFile="$(OutDir)\encConsole.exe"
|
OutputFile="$(OutDir)\encConsole.exe"
|
||||||
LinkIncremental="2"
|
LinkIncremental="2"
|
||||||
AdditionalLibraryDirectories="..\..\..\bin"
|
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
|
|
||||||
GenerateMapFile="true"
|
|
||||||
MapFileName="$(OutDir)\encConsole.map"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
@@ -203,8 +182,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win32\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encConsole\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -225,8 +204,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Release/encConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -237,10 +214,6 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Release/encConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encConsole\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encConsole\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -260,11 +233,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
||||||
OutputFile="$(OutDir)\encConsole.exe"
|
OutputFile="$(OutDir)\encConsole.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="..\..\..\bin"
|
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
|
|
||||||
GenerateMapFile="false"
|
|
||||||
MapExports="false"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
@@ -295,8 +264,8 @@
|
|||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory=".\..\..\..\..\bin\win64\Release"
|
OutputDirectory=".\..\..\..\..\bin\$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory=".\..\..\..\obj\encConsole\Release"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
@@ -317,9 +286,6 @@
|
|||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
|
||||||
TypeLibraryName=".\..\..\..\..\..\bin\Release/encConsole.tlb"
|
|
||||||
HeaderFileName=""
|
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
@@ -330,10 +296,6 @@
|
|||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
PrecompiledHeaderFile=".\..\..\..\obj\encConsole\Release/encConsole.pch"
|
|
||||||
AssemblerListingLocation=".\..\..\..\obj\encConsole\Release/"
|
|
||||||
ObjectFile=".\..\..\..\obj\encConsole\Release/"
|
|
||||||
ProgramDataBaseFileName=".\..\..\..\obj\encConsole\Release/"
|
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
DebugInformationFormat="3"
|
DebugInformationFormat="3"
|
||||||
/>
|
/>
|
||||||
@@ -353,11 +315,7 @@
|
|||||||
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
AdditionalDependencies="$(OutDir)\welsenc.lib"
|
||||||
OutputFile="$(OutDir)\encConsole.exe"
|
OutputFile="$(OutDir)\encConsole.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
AdditionalLibraryDirectories="..\..\..\bin"
|
|
||||||
GenerateDebugInformation="true"
|
GenerateDebugInformation="true"
|
||||||
ProgramDatabaseFile="$(OutDir)\encConsole.pdb"
|
|
||||||
GenerateMapFile="false"
|
|
||||||
MapExports="false"
|
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="2"
|
DataExecutionPrevention="2"
|
||||||
|
|||||||
@@ -30,6 +30,10 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_NEON
|
||||||
|
|
||||||
|
.syntax unified
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
|
||||||
.macro WELS_ASM_FUNC_BEGIN
|
.macro WELS_ASM_FUNC_BEGIN
|
||||||
@@ -44,7 +48,6 @@ mov pc, lr
|
|||||||
.endm
|
.endm
|
||||||
#else
|
#else
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
.section .note.GNU-stack,"",%progbits // Mark stack as non-executable
|
.section .note.GNU-stack,"",%progbits // Mark stack as non-executable
|
||||||
.text
|
.text
|
||||||
|
|
||||||
@@ -62,3 +65,5 @@ mov pc, lr
|
|||||||
.endfunc
|
.endfunc
|
||||||
.endm
|
.endm
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -855,7 +855,7 @@ WELS_ASM_FUNC_END
|
|||||||
beq bs_nzc_check_jump0
|
beq bs_nzc_check_jump0
|
||||||
|
|
||||||
sub r6, $0, $2, lsl #4
|
sub r6, $0, $2, lsl #4
|
||||||
sub r6, $2, lsl #3
|
sub r6, r6, $2, lsl #3
|
||||||
add r6, #12
|
add r6, #12
|
||||||
vld1.32 d3[1], [r6]
|
vld1.32 d3[1], [r6]
|
||||||
|
|
||||||
|
|||||||
83
codec/common/arm/intra_pred_common_neon.S
Normal file
83
codec/common/arm/intra_pred_common_neon.S
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
/*!
|
||||||
|
* \copy
|
||||||
|
* Copyright (c) 2013, Cisco Systems
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_NEON
|
||||||
|
.text
|
||||||
|
#include "arm_arch_common_macro.S"
|
||||||
|
|
||||||
|
WELS_ASM_FUNC_BEGIN WelsI16x16LumaPredV_neon
|
||||||
|
//Get the top line data to 'q0'
|
||||||
|
sub r3, r1, r2
|
||||||
|
vldm r3, {d0, d1}
|
||||||
|
|
||||||
|
//mov r2, #16
|
||||||
|
mov r3, #4
|
||||||
|
//Set the top line to the each line of MB(16*16)
|
||||||
|
loop_0_get_i16x16_luma_pred_v:
|
||||||
|
vst1.8 {d0,d1}, [r0]!
|
||||||
|
vst1.8 {d0,d1}, [r0]!
|
||||||
|
vst1.8 {d0,d1}, [r0]!
|
||||||
|
vst1.8 {d0,d1}, [r0]!
|
||||||
|
subs r3, #1
|
||||||
|
bne loop_0_get_i16x16_luma_pred_v
|
||||||
|
WELS_ASM_FUNC_END
|
||||||
|
|
||||||
|
|
||||||
|
WELS_ASM_FUNC_BEGIN WelsI16x16LumaPredH_neon
|
||||||
|
//stmdb sp!, {r4, lr}
|
||||||
|
sub r1, r1, #1
|
||||||
|
mov r3, #4
|
||||||
|
loop_0_get_i16x16_luma_pred_h:
|
||||||
|
//Get one byte data from left side
|
||||||
|
vld1.8 {d0[],d1[]}, [r1], r2
|
||||||
|
vld1.8 {d2[],d3[]}, [r1], r2
|
||||||
|
vld1.8 {d4[],d5[]}, [r1], r2
|
||||||
|
vld1.8 {d6[],d7[]}, [r1], r2
|
||||||
|
|
||||||
|
//Set the line of MB using the left side byte data
|
||||||
|
vst1.8 {d0,d1}, [r0]!
|
||||||
|
//add r0, #16
|
||||||
|
vst1.8 {d2,d3}, [r0]!
|
||||||
|
//add r0, #16
|
||||||
|
vst1.8 {d4,d5}, [r0]!
|
||||||
|
//add r0, #16
|
||||||
|
vst1.8 {d6,d7}, [r0]!
|
||||||
|
//add r0, #16
|
||||||
|
|
||||||
|
subs r3, #1
|
||||||
|
bne loop_0_get_i16x16_luma_pred_h
|
||||||
|
|
||||||
|
WELS_ASM_FUNC_END
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -67,11 +67,4 @@ ret
|
|||||||
mov \arg0\().8b, \arg1\().8b
|
mov \arg0\().8b, \arg1\().8b
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro ext.16b arg0, arg1, arg2, arg3
|
|
||||||
ext \arg0\().16b, \arg1\().16b, \arg2\().16b, \arg3
|
|
||||||
.endm
|
|
||||||
|
|
||||||
.macro ext.8b arg0, arg1, arg2, arg3
|
|
||||||
ext \arg0\().8b, \arg1\().8b, \arg2\().8b, \arg3
|
|
||||||
.endm
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -212,7 +212,7 @@
|
|||||||
ld1 {v1.s} [3], [x6]
|
ld1 {v1.s} [3], [x6]
|
||||||
|
|
||||||
bs_nzc_check_jump0:
|
bs_nzc_check_jump0:
|
||||||
ext.16b v1, v1, v0, #12
|
ext v1.16b, v1.16b, v0.16b, #12
|
||||||
add $3.16b, v0.16b, v1.16b
|
add $3.16b, v0.16b, v1.16b
|
||||||
|
|
||||||
// Arrange the input data --- LEFT
|
// Arrange the input data --- LEFT
|
||||||
@@ -233,7 +233,7 @@ bs_nzc_check_jump1:
|
|||||||
zip1 v0.16b, v0.16b, v2.16b
|
zip1 v0.16b, v0.16b, v2.16b
|
||||||
ins v2.d[0], v0.d[1]
|
ins v2.d[0], v0.d[1]
|
||||||
zip1 v0.16b, v0.16b, v2.16b
|
zip1 v0.16b, v0.16b, v2.16b
|
||||||
ext.16b v1, v1, v0, #12
|
ext v1.16b, v1.16b, v0.16b, #12
|
||||||
add $4.16b, v0.16b, v1.16b
|
add $4.16b, v0.16b, v1.16b
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@@ -470,7 +470,7 @@ bs_mv_check_jump1:
|
|||||||
ld1 {v1.s} [3], [x6]
|
ld1 {v1.s} [3], [x6]
|
||||||
|
|
||||||
bs_nzc_check_jump0:
|
bs_nzc_check_jump0:
|
||||||
ext.16b v1, v1, v0, #12
|
ext v1.16b, v1.16b, v0.16b, #12
|
||||||
add \arg3\().16b, v0.16b, v1.16b
|
add \arg3\().16b, v0.16b, v1.16b
|
||||||
|
|
||||||
// Arrange the input data --- LEFT
|
// Arrange the input data --- LEFT
|
||||||
@@ -491,7 +491,7 @@ bs_nzc_check_jump1:
|
|||||||
zip1 v0.16b, v0.16b, v2.16b
|
zip1 v0.16b, v0.16b, v2.16b
|
||||||
ins v2.d[0], v0.d[1]
|
ins v2.d[0], v0.d[1]
|
||||||
zip1 v0.16b, v0.16b, v2.16b
|
zip1 v0.16b, v0.16b, v2.16b
|
||||||
ext.16b v1, v1, v0, #12
|
ext v1.16b, v1.16b, v0.16b, #12
|
||||||
add \arg4\().16b, v0.16b, v1.16b
|
add \arg4\().16b, v0.16b, v1.16b
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|||||||
55
codec/common/arm64/intra_pred_common_aarch64_neon.S
Normal file
55
codec/common/arm64/intra_pred_common_aarch64_neon.S
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
/*!
|
||||||
|
* \copy
|
||||||
|
* Copyright (c) 2013, Cisco Systems
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_NEON_AARCH64
|
||||||
|
.text
|
||||||
|
#include "arm_arch64_common_macro.S"
|
||||||
|
|
||||||
|
//for Luma 16x16
|
||||||
|
WELS_ASM_AARCH64_FUNC_BEGIN WelsI16x16LumaPredV_AArch64_neon
|
||||||
|
sub x3, x1, x2
|
||||||
|
ld1 {v0.16b}, [x3]
|
||||||
|
.rept 16
|
||||||
|
st1 {v0.16b}, [x0], 16
|
||||||
|
.endr
|
||||||
|
WELS_ASM_AARCH64_FUNC_END
|
||||||
|
|
||||||
|
WELS_ASM_AARCH64_FUNC_BEGIN WelsI16x16LumaPredH_AArch64_neon
|
||||||
|
sub x3, x1, #1
|
||||||
|
.rept 16
|
||||||
|
ld1r {v0.16b}, [x3], x2
|
||||||
|
st1 {v0.16b}, [x0], 16
|
||||||
|
.endr
|
||||||
|
WELS_ASM_AARCH64_FUNC_END
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
#ifdef HAVE_NEON_AARCH64
|
#ifdef HAVE_NEON_AARCH64
|
||||||
.text
|
.text
|
||||||
#include "arm_arch64_common_macro.S"
|
#include "arm_arch64_common_macro.S"
|
||||||
.align 16
|
.align 4
|
||||||
filter_para: .short 0, 1, -5, 20, 0, 0, 0, 0
|
filter_para: .short 0, 1, -5, 20, 0, 0, 0, 0
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
@@ -197,8 +197,8 @@ filter_para: .short 0, 1, -5, 20, 0, 0, 0, 0
|
|||||||
|
|
||||||
.macro UNPACK_FILTER_SINGLE_TAG_16BITS // v0, v1, v22, v23
|
.macro UNPACK_FILTER_SINGLE_TAG_16BITS // v0, v1, v22, v23
|
||||||
// { // each 16bits; input: d_dst, d_src[0:5], para, working, working, d(low part of d_dst)
|
// { // each 16bits; input: d_dst, d_src[0:5], para, working, working, d(low part of d_dst)
|
||||||
ext.16b $3, $1, $1, #14 // X[0][1][2][3][4][5]O
|
ext $3.16b, $1.16b, $1.16b, #14 // X[0][1][2][3][4][5]O
|
||||||
ext.16b $4, $3, $3, #8 // [3][4][5]OX[0][1][2]
|
ext $4.16b, $3.16b, $3.16b, #8 // [3][4][5]OX[0][1][2]
|
||||||
rev64 $4.8h, $4.8h // X[5][4][3][2][1][0]O
|
rev64 $4.8h, $4.8h // X[5][4][3][2][1][0]O
|
||||||
add $3.8h, $3.8h, $4.8h // each 16bits, *[50][41][32][23][14][05]*
|
add $3.8h, $3.8h, $4.8h // each 16bits, *[50][41][32][23][14][05]*
|
||||||
smull $3.4s, $3.4h, $2.4h // 0+1*[50]-5*[41]+20[32]
|
smull $3.4s, $3.4h, $2.4h // 0+1*[50]-5*[41]+20[32]
|
||||||
@@ -413,8 +413,8 @@ WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20WidthEq8_AArch64_neon
|
|||||||
movi v0.8h, #20, lsl #0
|
movi v0.8h, #20, lsl #0
|
||||||
movi v1.8h, #5, lsl #0
|
movi v1.8h, #5, lsl #0
|
||||||
w8_h_mc_luma_loop:
|
w8_h_mc_luma_loop:
|
||||||
ld1 {v2.8b, v3.8b}, [x0], x1 //only use 13(8+5); v2=src[-2]
|
ld1 {v2.16b}, [x0], x1 //only use 13(8+5); v2=src[-2]
|
||||||
trn1 v2.2d, v2.2d, v3.2d
|
|
||||||
//prfm pldl1strm, [x0]
|
//prfm pldl1strm, [x0]
|
||||||
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
||||||
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
||||||
@@ -492,8 +492,8 @@ WELS_ASM_AARCH64_FUNC_BEGIN McHorVer10WidthEq8_AArch64_neon
|
|||||||
movi v0.8h, #20, lsl #0
|
movi v0.8h, #20, lsl #0
|
||||||
movi v1.8h, #5, lsl #0
|
movi v1.8h, #5, lsl #0
|
||||||
w8_xy_10_mc_luma_loop:
|
w8_xy_10_mc_luma_loop:
|
||||||
ld1 {v2.8b, v3.8b}, [x0], x1 //only use 13(8+5); v2=src[-2]
|
ld1 {v2.16b}, [x0], x1 //only use 13(8+5); v2=src[-2]
|
||||||
trn1 v2.2d, v2.2d, v3.2d
|
|
||||||
//prfm pldl1strm, [x0]
|
//prfm pldl1strm, [x0]
|
||||||
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
||||||
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
||||||
@@ -572,8 +572,8 @@ WELS_ASM_AARCH64_FUNC_BEGIN McHorVer30WidthEq8_AArch64_neon
|
|||||||
movi v0.8h, #20, lsl #0
|
movi v0.8h, #20, lsl #0
|
||||||
movi v1.8h, #5, lsl #0
|
movi v1.8h, #5, lsl #0
|
||||||
w8_xy_30_mc_luma_loop:
|
w8_xy_30_mc_luma_loop:
|
||||||
ld1 {v2.8b, v3.8b}, [x0], x1 //only use 13(8+5); v2=src[-2]
|
ld1 {v2.16b}, [x0], x1 //only use 13(8+5); v2=src[-2]
|
||||||
trn1 v2.2d, v2.2d, v3.2d
|
|
||||||
//prfm pldl1strm, [x0]
|
//prfm pldl1strm, [x0]
|
||||||
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
||||||
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
||||||
@@ -1713,12 +1713,12 @@ WELS_ASM_AARCH64_FUNC_END
|
|||||||
WELS_ASM_AARCH64_FUNC_BEGIN McChromaWidthEq8_AArch64_neon
|
WELS_ASM_AARCH64_FUNC_BEGIN McChromaWidthEq8_AArch64_neon
|
||||||
ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D
|
ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D
|
||||||
ld1 {v0.16b}, [x0], x1 // src[x]
|
ld1 {v0.16b}, [x0], x1 // src[x]
|
||||||
ext.16b v1, v0, v0, #1 // src[x+1]
|
ext v1.16b, v0.16b, v0.16b, #1 // src[x+1]
|
||||||
w8_mc_chroma_loop:
|
w8_mc_chroma_loop:
|
||||||
ld1 {v2.16b}, [x0], x1 // src[x+stride]
|
ld1 {v2.16b}, [x0], x1 // src[x+stride]
|
||||||
ext.16b v3, v2, v2, #1 // src[x+stride+1]
|
ext v3.16b, v2.16b, v2.16b, #1 // src[x+stride+1]
|
||||||
ld1 {v18.16b}, [x0], x1 // src[x+2*stride]
|
ld1 {v18.16b}, [x0], x1 // src[x+2*stride]
|
||||||
ext.16b v19, v18, v18, #1 // src[x+2*stride+1]
|
ext v19.16b, v18.16b, v18.16b, #1 // src[x+2*stride+1]
|
||||||
|
|
||||||
umull v16.8h, v0.8b, v4.8b
|
umull v16.8h, v0.8b, v4.8b
|
||||||
umlal v16.8h, v1.8b, v5.8b
|
umlal v16.8h, v1.8b, v5.8b
|
||||||
@@ -1744,12 +1744,12 @@ WELS_ASM_AARCH64_FUNC_END
|
|||||||
WELS_ASM_AARCH64_FUNC_BEGIN McChromaWidthEq4_AArch64_neon
|
WELS_ASM_AARCH64_FUNC_BEGIN McChromaWidthEq4_AArch64_neon
|
||||||
ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D
|
ld4r {v4.8b, v5.8b, v6.8b, v7.8b}, [x4] //load A/B/C/D
|
||||||
ld1 {v0.8b}, [x0], x1 // src[x]
|
ld1 {v0.8b}, [x0], x1 // src[x]
|
||||||
ext.8b v1, v0, v0, #1 // src[x+1]
|
ext v1.8b, v0.8b, v0.8b, #1 // src[x+1]
|
||||||
w4_mc_chroma_loop:
|
w4_mc_chroma_loop:
|
||||||
ld1 {v2.8b}, [x0], x1 // src[x+stride]
|
ld1 {v2.8b}, [x0], x1 // src[x+stride]
|
||||||
ext.8b v3, v2, v2, #1 // src[x+stride+1]
|
ext v3.8b, v2.8b, v2.8b, #1 // src[x+stride+1]
|
||||||
ld1 {v18.8b}, [x0], x1 // src[x+2*stride]
|
ld1 {v18.8b}, [x0], x1 // src[x+2*stride]
|
||||||
ext.8b v19, v18, v18, #1 // src[x+2*stride+1]
|
ext v19.8b, v18.8b, v18.8b, #1 // src[x+2*stride+1]
|
||||||
|
|
||||||
zip1 v0.4s, v0.4s, v2.4s
|
zip1 v0.4s, v0.4s, v2.4s
|
||||||
zip1 v1.4s, v1.4s, v3.4s
|
zip1 v1.4s, v1.4s, v3.4s
|
||||||
@@ -1779,20 +1779,20 @@ WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20Width17_AArch64_neon
|
|||||||
movi v1.8h, #5, lsl #0
|
movi v1.8h, #5, lsl #0
|
||||||
ldr q22, filter_para
|
ldr q22, filter_para
|
||||||
w17_h_mc_luma_loop:
|
w17_h_mc_luma_loop:
|
||||||
ld1 {v2.8b, v3.8b, v4.8b}, [x0], x1 //only use 22(17+5); v2=src[-2]
|
ld1 {v2.16b, v3.16b}, [x0], x1 //only use 22(17+5); v2=src[-2]
|
||||||
trn1 v2.2d, v2.2d, v3.2d
|
|
||||||
//prfm pldl1strm, [x0]
|
//prfm pldl1strm, [x0]
|
||||||
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
ext v5.16b, v2.16b, v3.16b, #1 //v5=src[-1]
|
||||||
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
ext v6.16b, v2.16b, v3.16b, #2 //v6=src[0]
|
||||||
ext v7.16b, v2.16b, v4.16b, #3 //v7=src[1]
|
ext v7.16b, v2.16b, v3.16b, #3 //v7=src[1]
|
||||||
ext v16.16b, v2.16b, v4.16b, #4 //v16=src[2]
|
ext v16.16b, v2.16b, v3.16b, #4 //v16=src[2]
|
||||||
ext v17.16b, v2.16b, v4.16b, #5 //v17=src[3]
|
ext v17.16b, v2.16b, v3.16b, #5 //v17=src[3]
|
||||||
|
|
||||||
FILTER_6TAG_8BITS1 v2, v5, v6, v7, v16, v17, v20, v0, v1
|
FILTER_6TAG_8BITS1 v2, v5, v6, v7, v16, v17, v20, v0, v1
|
||||||
FILTER_6TAG_8BITS2 v2, v5, v6, v7, v16, v17, v20, v0, v1
|
FILTER_6TAG_8BITS2 v2, v5, v6, v7, v16, v17, v20, v0, v1
|
||||||
st1 {v20.16b}, [x2], x5 //write 16Byte
|
st1 {v20.16b}, [x2], x5 //write 16Byte
|
||||||
|
|
||||||
ext.8b v21, v4, v4, #7 // [0][1][2][3][4][5]XY-->O[0][1][2][3][4][5]X
|
ext v21.8b, v3.8b, v3.8b, #7 // [0][1][2][3][4][5]XY-->O[0][1][2][3][4][5]X
|
||||||
FILTER_SINGLE_TAG_8BITS v21, v22, v23, h21
|
FILTER_SINGLE_TAG_8BITS v21, v22, v23, h21
|
||||||
st1 {v21.b}[0], [x2], x3 //write 16th Byte
|
st1 {v21.b}[0], [x2], x3 //write 16th Byte
|
||||||
|
|
||||||
@@ -1808,8 +1808,8 @@ WELS_ASM_AARCH64_FUNC_BEGIN McHorVer20Width9_AArch64_neon
|
|||||||
movi v1.8h, #5, lsl #0
|
movi v1.8h, #5, lsl #0
|
||||||
ldr q22, filter_para
|
ldr q22, filter_para
|
||||||
w9_h_mc_luma_loop:
|
w9_h_mc_luma_loop:
|
||||||
ld1 {v2.8b, v3.8b}, [x0], x1 //only use 14(9+5); v2=src[-2]
|
ld1 {v2.16b}, [x0], x1 //only use 14(9+5); v2=src[-2]
|
||||||
trn1 v2.2d, v2.2d, v3.2d
|
mov v3.d[0], v2.d[1]
|
||||||
//prfm pldl1strm, [x0]
|
//prfm pldl1strm, [x0]
|
||||||
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
ext v5.16b, v2.16b, v4.16b, #1 //v5=src[-1]
|
||||||
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
ext v6.16b, v2.16b, v4.16b, #2 //v6=src[0]
|
||||||
@@ -1820,7 +1820,7 @@ w9_h_mc_luma_loop:
|
|||||||
FILTER_6TAG_8BITS1 v2, v5, v6, v7, v16, v17, v20, v0, v1
|
FILTER_6TAG_8BITS1 v2, v5, v6, v7, v16, v17, v20, v0, v1
|
||||||
st1 {v20.8b}, [x2], x5 //write 8Byte
|
st1 {v20.8b}, [x2], x5 //write 8Byte
|
||||||
|
|
||||||
ext.8b v21, v3, v3, #7 // [0][1][2][3][4][5]XY-->O[0][1][2][3][4][5]X
|
ext v21.8b, v3.8b, v3.8b, #7 // [0][1][2][3][4][5]XY-->O[0][1][2][3][4][5]X
|
||||||
FILTER_SINGLE_TAG_8BITS v21, v22, v23, h21
|
FILTER_SINGLE_TAG_8BITS v21, v22, v23, h21
|
||||||
st1 {v21.b}[0], [x2], x3 //write 9th Byte
|
st1 {v21.b}[0], [x2], x3 //write 9th Byte
|
||||||
|
|
||||||
|
|||||||
20
codec/common/generate_version.sh
Executable file
20
codec/common/generate_version.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
rm -f codec/common/inc/version.h
|
||||||
|
git rev-list HEAD | sort > config.git-hash
|
||||||
|
LOCALVER=`wc -l config.git-hash | awk '{print $1}'`
|
||||||
|
if [ $LOCALVER \> 1 ] ; then
|
||||||
|
VER="$(git rev-list HEAD -n 1 | cut -c 1-7)"
|
||||||
|
if git status | grep -q "modified:" ; then
|
||||||
|
VER="${VER}+M"
|
||||||
|
fi
|
||||||
|
GIT_VERSION=$VER
|
||||||
|
else
|
||||||
|
GIT_VERSION=
|
||||||
|
VER="x"
|
||||||
|
fi
|
||||||
|
GIT_VERSION='"'$GIT_VERSION'"'
|
||||||
|
rm -f config.git-hash
|
||||||
|
|
||||||
|
cat codec/common/inc/version.h.template | sed "s/\$FULL_VERSION/$GIT_VERSION/g" > codec/common/inc/version.h
|
||||||
|
|
||||||
|
echo "Generated codec/common/inc/version.h"
|
||||||
@@ -117,6 +117,8 @@ WELS_THREAD_ERROR_CODE WelsMultipleEventsWaitAllBlocking (uint32_t nCount, WE
|
|||||||
WELS_THREAD_ERROR_CODE WelsThreadCreate (WELS_THREAD_HANDLE* thread, LPWELS_THREAD_ROUTINE routine,
|
WELS_THREAD_ERROR_CODE WelsThreadCreate (WELS_THREAD_HANDLE* thread, LPWELS_THREAD_ROUTINE routine,
|
||||||
void* arg, WELS_THREAD_ATTR attr);
|
void* arg, WELS_THREAD_ATTR attr);
|
||||||
|
|
||||||
|
WELS_THREAD_ERROR_CODE WelsThreadSetName (const char* thread_name);
|
||||||
|
|
||||||
WELS_THREAD_ERROR_CODE WelsThreadJoin (WELS_THREAD_HANDLE thread);
|
WELS_THREAD_ERROR_CODE WelsThreadJoin (WELS_THREAD_HANDLE thread);
|
||||||
|
|
||||||
WELS_THREAD_HANDLE WelsThreadSelf();
|
WELS_THREAD_HANDLE WelsThreadSelf();
|
||||||
|
|||||||
@@ -52,7 +52,6 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/timeb.h>
|
#include <sys/timeb.h>
|
||||||
#else
|
#else
|
||||||
#include <sys/timeb.h>
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include "typedefs.h"
|
#include "typedefs.h"
|
||||||
#endif//_WIN32
|
#endif//_WIN32
|
||||||
@@ -72,7 +71,10 @@ typedef FILE WelsFileHandle;
|
|||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
typedef struct _timeb SWelsTime;
|
typedef struct _timeb SWelsTime;
|
||||||
#else
|
#else
|
||||||
typedef struct timeb SWelsTime;
|
typedef struct TagWelsTime {
|
||||||
|
time_t time;
|
||||||
|
unsigned short millitm;
|
||||||
|
} SWelsTime;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int32_t WelsSnprintf (char* buffer, int32_t sizeOfBuffer, const char* format, ...);
|
int32_t WelsSnprintf (char* buffer, int32_t sizeOfBuffer, const char* format, ...);
|
||||||
|
|||||||
76
codec/common/inc/intra_pred_common.h
Normal file
76
codec/common/inc/intra_pred_common.h
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
/*!
|
||||||
|
* \copy
|
||||||
|
* Copyright (c) 2009-2013, Cisco Systems
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* \file intra_pred_common.h
|
||||||
|
*
|
||||||
|
* \brief interfaces for intra predictor about 16x16.
|
||||||
|
*
|
||||||
|
* \date 4/2/2014 Created
|
||||||
|
*
|
||||||
|
*************************************************************************************
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef INTRA_PRED_COMMON_H
|
||||||
|
#define INTRA_PRED_COMMON_H
|
||||||
|
|
||||||
|
#include "typedefs.h"
|
||||||
|
|
||||||
|
|
||||||
|
void WelsI16x16LumaPredV_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
void WelsI16x16LumaPredH_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
extern "C" {
|
||||||
|
#endif//__cplusplus
|
||||||
|
|
||||||
|
#if defined(X86_ASM)
|
||||||
|
//for intra-prediction ASM functions
|
||||||
|
void WelsI16x16LumaPredV_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
void WelsI16x16LumaPredH_sse2 (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
#endif//X86_ASM
|
||||||
|
|
||||||
|
#if defined(HAVE_NEON)
|
||||||
|
void WelsI16x16LumaPredV_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
void WelsI16x16LumaPredH_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
#endif//HAVE_NEON
|
||||||
|
|
||||||
|
#if defined(HAVE_NEON_AARCH64)
|
||||||
|
void WelsI16x16LumaPredV_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
void WelsI16x16LumaPredH_AArch64_neon (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride);
|
||||||
|
#endif//HAVE_NEON_AARCH64
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
}
|
||||||
|
#endif//__cplusplus
|
||||||
|
#endif//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -40,13 +40,13 @@
|
|||||||
|
|
||||||
struct tagUnaligned_64 {
|
struct tagUnaligned_64 {
|
||||||
uint64_t l;
|
uint64_t l;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed)) __attribute__ ((may_alias));
|
||||||
struct tagUnaligned_32 {
|
struct tagUnaligned_32 {
|
||||||
uint32_t l;
|
uint32_t l;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed)) __attribute__ ((may_alias));
|
||||||
struct tagUnaligned_16 {
|
struct tagUnaligned_16 {
|
||||||
uint16_t l;
|
uint16_t l;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed)) __attribute__ ((may_alias));
|
||||||
|
|
||||||
#define LD16(a) (((struct tagUnaligned_16 *) (a))->l)
|
#define LD16(a) (((struct tagUnaligned_16 *) (a))->l)
|
||||||
#define LD32(a) (((struct tagUnaligned_32 *) (a))->l)
|
#define LD32(a) (((struct tagUnaligned_32 *) (a))->l)
|
||||||
@@ -54,7 +54,7 @@ struct tagUnaligned_16 {
|
|||||||
|
|
||||||
#define STRUCTA(size, align) struct tagUnaligned_##size##_##align {\
|
#define STRUCTA(size, align) struct tagUnaligned_##size##_##align {\
|
||||||
uint##size##_t l; \
|
uint##size##_t l; \
|
||||||
} __attribute__ ((aligned(align)))
|
} __attribute__ ((aligned(align))) __attribute__ ((may_alias))
|
||||||
STRUCTA (16, 2);
|
STRUCTA (16, 2);
|
||||||
STRUCTA (32, 2);
|
STRUCTA (32, 2);
|
||||||
STRUCTA (32, 4);
|
STRUCTA (32, 4);
|
||||||
|
|||||||
@@ -47,7 +47,6 @@
|
|||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#else
|
#else
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <sys/timeb.h>
|
|
||||||
#endif
|
#endif
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,9 @@
|
|||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include "typedefs.h"
|
#include "typedefs.h"
|
||||||
|
|
||||||
|
#define MAX_LOG_SIZE 1024
|
||||||
|
#define MAX_WIDTH (4096)
|
||||||
|
#define MAX_HEIGHT (2304)//MAX_FS_LEVEL51 (36864); MAX_FS_LEVEL51*256/4096 = 2304
|
||||||
/*
|
/*
|
||||||
* Function pointer declaration for various tool sets
|
* Function pointer declaration for various tool sets
|
||||||
*/
|
*/
|
||||||
@@ -56,7 +58,8 @@ typedef struct TagLogContext {
|
|||||||
|
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
extern void WelsLog (SLogContext* pCtx, int32_t iLevel, const char* kpFmt, ...) __attribute__ ((__format__ (__printf__, 3,
|
extern void WelsLog (SLogContext* pCtx, int32_t iLevel, const char* kpFmt, ...) __attribute__ ((__format__ (__printf__,
|
||||||
|
3,
|
||||||
4)));
|
4)));
|
||||||
#else
|
#else
|
||||||
extern void WelsLog (SLogContext* pCtx, int32_t iLevel, const char* kpFmt, ...);
|
extern void WelsLog (SLogContext* pCtx, int32_t iLevel, const char* kpFmt, ...);
|
||||||
|
|||||||
6
codec/common/inc/version.h
Normal file
6
codec/common/inc/version.h
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef VERSION_H
|
||||||
|
#define VERSION_H
|
||||||
|
|
||||||
|
#define VERSION_NUMBER "openh264 default: 1.2"
|
||||||
|
|
||||||
|
#endif // VERSION_H
|
||||||
6
codec/common/inc/version.h.template
Normal file
6
codec/common/inc/version.h.template
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
#ifndef VERSION_H
|
||||||
|
#define VERSION_H
|
||||||
|
|
||||||
|
#define VERSION_NUMBER $FULL_VERSION
|
||||||
|
|
||||||
|
#endif // VERSION_H
|
||||||
@@ -42,6 +42,21 @@
|
|||||||
namespace WelsCommon {
|
namespace WelsCommon {
|
||||||
/*common use table*/
|
/*common use table*/
|
||||||
|
|
||||||
|
#define LEVEL_NUMBER 17
|
||||||
|
typedef struct TagLevelLimits {
|
||||||
|
uint8_t uiLevelIdc; // level idc
|
||||||
|
uint32_t uiMaxMBPS; // Max macroblock processing rate(MB/s)
|
||||||
|
uint32_t uiMaxFS; // Max frame sizea(MBs)
|
||||||
|
uint32_t uiMaxDPBMbs;// Max decoded picture buffer size(MBs)
|
||||||
|
uint32_t uiMaxBR; // Max video bit rate
|
||||||
|
uint32_t uiMaxCPB; // Max CPB size
|
||||||
|
int16_t iMinVmv; // Vertical MV component range upper bound
|
||||||
|
int16_t iMaxVmv; // Vertical MV component range lower bound
|
||||||
|
uint16_t uiMinCR; // Min compression ration
|
||||||
|
int16_t iMaxMvsPer2Mb; // Max number of motion vectors per two consecutive MBs
|
||||||
|
} SLevelLimits;
|
||||||
|
|
||||||
|
extern const SLevelLimits g_ksLevelLimits[LEVEL_NUMBER];
|
||||||
extern const uint8_t g_kuiMbCountScan4Idx[24];
|
extern const uint8_t g_kuiMbCountScan4Idx[24];
|
||||||
extern const uint8_t g_kuiCache30ScanIdx[16];
|
extern const uint8_t g_kuiCache30ScanIdx[16];
|
||||||
extern const uint8_t g_kuiCache48CountScan4Idx[24];
|
extern const uint8_t g_kuiCache48CountScan4Idx[24];
|
||||||
@@ -53,38 +68,38 @@ extern const uint8_t g_kuiChromaQpTable[52];
|
|||||||
* NAL Unit Type (5 Bits)
|
* NAL Unit Type (5 Bits)
|
||||||
*/
|
*/
|
||||||
enum EWelsNalUnitType {
|
enum EWelsNalUnitType {
|
||||||
NAL_UNIT_UNSPEC_0 = 0,
|
NAL_UNIT_UNSPEC_0 = 0,
|
||||||
NAL_UNIT_CODED_SLICE = 1,
|
NAL_UNIT_CODED_SLICE = 1,
|
||||||
NAL_UNIT_CODED_SLICE_DPA = 2,
|
NAL_UNIT_CODED_SLICE_DPA = 2,
|
||||||
NAL_UNIT_CODED_SLICE_DPB = 3,
|
NAL_UNIT_CODED_SLICE_DPB = 3,
|
||||||
NAL_UNIT_CODED_SLICE_DPC = 4,
|
NAL_UNIT_CODED_SLICE_DPC = 4,
|
||||||
NAL_UNIT_CODED_SLICE_IDR = 5,
|
NAL_UNIT_CODED_SLICE_IDR = 5,
|
||||||
NAL_UNIT_SEI = 6,
|
NAL_UNIT_SEI = 6,
|
||||||
NAL_UNIT_SPS = 7,
|
NAL_UNIT_SPS = 7,
|
||||||
NAL_UNIT_PPS = 8,
|
NAL_UNIT_PPS = 8,
|
||||||
NAL_UNIT_AU_DELIMITER = 9,
|
NAL_UNIT_AU_DELIMITER = 9,
|
||||||
NAL_UNIT_END_OF_SEQ = 10,
|
NAL_UNIT_END_OF_SEQ = 10,
|
||||||
NAL_UNIT_END_OF_STR = 11,
|
NAL_UNIT_END_OF_STR = 11,
|
||||||
NAL_UNIT_FILLER_DATA = 12,
|
NAL_UNIT_FILLER_DATA = 12,
|
||||||
NAL_UNIT_SPS_EXT = 13,
|
NAL_UNIT_SPS_EXT = 13,
|
||||||
NAL_UNIT_PREFIX = 14,
|
NAL_UNIT_PREFIX = 14,
|
||||||
NAL_UNIT_SUBSET_SPS = 15,
|
NAL_UNIT_SUBSET_SPS = 15,
|
||||||
NAL_UNIT_RESV_16 = 16,
|
NAL_UNIT_RESV_16 = 16,
|
||||||
NAL_UNIT_RESV_17 = 17,
|
NAL_UNIT_RESV_17 = 17,
|
||||||
NAL_UNIT_RESV_18 = 18,
|
NAL_UNIT_RESV_18 = 18,
|
||||||
NAL_UNIT_AUX_CODED_SLICE = 19,
|
NAL_UNIT_AUX_CODED_SLICE = 19,
|
||||||
NAL_UNIT_CODED_SLICE_EXT = 20,
|
NAL_UNIT_CODED_SLICE_EXT = 20,
|
||||||
NAL_UNIT_RESV_21 = 21,
|
NAL_UNIT_RESV_21 = 21,
|
||||||
NAL_UNIT_RESV_22 = 22,
|
NAL_UNIT_RESV_22 = 22,
|
||||||
NAL_UNIT_RESV_23 = 23,
|
NAL_UNIT_RESV_23 = 23,
|
||||||
NAL_UNIT_UNSPEC_24 = 24,
|
NAL_UNIT_UNSPEC_24 = 24,
|
||||||
NAL_UNIT_UNSPEC_25 = 25,
|
NAL_UNIT_UNSPEC_25 = 25,
|
||||||
NAL_UNIT_UNSPEC_26 = 26,
|
NAL_UNIT_UNSPEC_26 = 26,
|
||||||
NAL_UNIT_UNSPEC_27 = 27,
|
NAL_UNIT_UNSPEC_27 = 27,
|
||||||
NAL_UNIT_UNSPEC_28 = 28,
|
NAL_UNIT_UNSPEC_28 = 28,
|
||||||
NAL_UNIT_UNSPEC_29 = 29,
|
NAL_UNIT_UNSPEC_29 = 29,
|
||||||
NAL_UNIT_UNSPEC_30 = 30,
|
NAL_UNIT_UNSPEC_30 = 30,
|
||||||
NAL_UNIT_UNSPEC_31 = 31
|
NAL_UNIT_UNSPEC_31 = 31
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -92,10 +107,10 @@ NAL_UNIT_UNSPEC_31 = 31
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
enum EWelsNalRefIdc {
|
enum EWelsNalRefIdc {
|
||||||
NRI_PRI_LOWEST = 0,
|
NRI_PRI_LOWEST = 0,
|
||||||
NRI_PRI_LOW = 1,
|
NRI_PRI_LOW = 1,
|
||||||
NRI_PRI_HIGH = 2,
|
NRI_PRI_HIGH = 2,
|
||||||
NRI_PRI_HIGHEST = 3
|
NRI_PRI_HIGHEST = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -103,9 +118,9 @@ NRI_PRI_HIGHEST = 3
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
enum EVclType {
|
enum EVclType {
|
||||||
NON_VCL = 0,
|
NON_VCL = 0,
|
||||||
VCL = 1,
|
VCL = 1,
|
||||||
NOT_APP = 2
|
NOT_APP = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -132,43 +147,43 @@ extern const EVclType g_keTypeMap[32][2];
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
enum EWelsSliceType {
|
enum EWelsSliceType {
|
||||||
P_SLICE = 0,
|
P_SLICE = 0,
|
||||||
B_SLICE = 1,
|
B_SLICE = 1,
|
||||||
I_SLICE = 2,
|
I_SLICE = 2,
|
||||||
SP_SLICE = 3,
|
SP_SLICE = 3,
|
||||||
SI_SLICE = 4,
|
SI_SLICE = 4,
|
||||||
UNKNOWN_SLICE = 5
|
UNKNOWN_SLICE = 5
|
||||||
};
|
};
|
||||||
|
|
||||||
/* SSlice Types in scalable extension */ ;
|
/* SSlice Types in scalable extension */
|
||||||
enum ESliceTypeExt {
|
enum ESliceTypeExt {
|
||||||
EP_SLICE = 0, // EP_SLICE: 0, 5
|
EP_SLICE = 0, // EP_SLICE: 0, 5
|
||||||
EB_SLICE = 1, // EB_SLICE: 1, 6
|
EB_SLICE = 1, // EB_SLICE: 1, 6
|
||||||
EI_SLICE = 2 // EI_SLICE: 2, 7
|
EI_SLICE = 2 // EI_SLICE: 2, 7
|
||||||
};
|
};
|
||||||
|
|
||||||
/* List Index */
|
/* List Index */
|
||||||
enum EListIndex {
|
enum EListIndex {
|
||||||
LIST_0 = 0,
|
LIST_0 = 0,
|
||||||
LIST_1 = 1,
|
LIST_1 = 1,
|
||||||
LIST_A = 2
|
LIST_A = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Motion Vector components */
|
/* Motion Vector components */
|
||||||
enum EMvComp {
|
enum EMvComp {
|
||||||
MV_X = 0,
|
MV_X = 0,
|
||||||
MV_Y = 1,
|
MV_Y = 1,
|
||||||
MV_A = 2
|
MV_A = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Chroma Components */
|
/* Chroma Components */
|
||||||
|
|
||||||
enum EChromaComp {
|
enum EChromaComp {
|
||||||
CHROMA_CB = 0,
|
CHROMA_CB = 0,
|
||||||
CHROMA_CR = 1,
|
CHROMA_CR = 1,
|
||||||
CHROMA_A = 2
|
CHROMA_A = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -177,13 +192,13 @@ CHROMA_A = 2
|
|||||||
* Memory Management Control Operation (MMCO) code
|
* Memory Management Control Operation (MMCO) code
|
||||||
*/
|
*/
|
||||||
enum EMmcoCode {
|
enum EMmcoCode {
|
||||||
MMCO_END = 0,
|
MMCO_END = 0,
|
||||||
MMCO_SHORT2UNUSED = 1,
|
MMCO_SHORT2UNUSED = 1,
|
||||||
MMCO_LONG2UNUSED = 2,
|
MMCO_LONG2UNUSED = 2,
|
||||||
MMCO_SHORT2LONG = 3,
|
MMCO_SHORT2LONG = 3,
|
||||||
MMCO_SET_MAX_LONG = 4,
|
MMCO_SET_MAX_LONG = 4,
|
||||||
MMCO_RESET = 5,
|
MMCO_RESET = 5,
|
||||||
MMCO_LONG = 6
|
MMCO_LONG = 6
|
||||||
};
|
};
|
||||||
|
|
||||||
/////////intra16x16 Luma
|
/////////intra16x16 Luma
|
||||||
|
|||||||
@@ -58,6 +58,9 @@
|
|||||||
#ifdef ANDROID_NDK
|
#ifdef ANDROID_NDK
|
||||||
#include <cpu-features.h>
|
#include <cpu-features.h>
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef __ANDROID__
|
||||||
|
#include <android/api-level.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "WelsThreadLib.h"
|
#include "WelsThreadLib.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -195,6 +198,12 @@ WELS_THREAD_ERROR_CODE WelsThreadCreate (WELS_THREAD_HANDLE* thread, LPWELS_
|
|||||||
return WELS_THREAD_ERROR_OK;
|
return WELS_THREAD_ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WELS_THREAD_ERROR_CODE WelsThreadSetName (const char* thread_name) {
|
||||||
|
// do nothing
|
||||||
|
return WELS_THREAD_ERROR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
WELS_THREAD_ERROR_CODE WelsThreadJoin (WELS_THREAD_HANDLE thread) {
|
WELS_THREAD_ERROR_CODE WelsThreadJoin (WELS_THREAD_HANDLE thread) {
|
||||||
WaitForSingleObject (thread, INFINITE);
|
WaitForSingleObject (thread, INFINITE);
|
||||||
CloseHandle (thread);
|
CloseHandle (thread);
|
||||||
@@ -242,6 +251,17 @@ WELS_THREAD_ERROR_CODE WelsThreadCreate (WELS_THREAD_HANDLE* thread, LPWELS_
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WELS_THREAD_ERROR_CODE WelsThreadSetName (const char* thread_name) {
|
||||||
|
#ifdef APPLE_IOS
|
||||||
|
pthread_setname_np(thread_name);
|
||||||
|
#endif
|
||||||
|
#if defined(__ANDROID__) && __ANDROID_API__ >= 9
|
||||||
|
pthread_setname_np(pthread_self(), thread_name);
|
||||||
|
#endif
|
||||||
|
// do nothing
|
||||||
|
return WELS_THREAD_ERROR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
WELS_THREAD_ERROR_CODE WelsThreadJoin (WELS_THREAD_HANDLE thread) {
|
WELS_THREAD_ERROR_CODE WelsThreadJoin (WELS_THREAD_HANDLE thread) {
|
||||||
return pthread_join (thread, NULL);
|
return pthread_join (thread, NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,5 +149,29 @@ ALIGNED_DECLARE (const uint16_t, g_kuiDequantCoeff[52][8], 16) = {
|
|||||||
/*50*/{ 3328, 4096, 3328, 4096, 4096, 5120, 4096, 5120 }, /*51*/{ 3584, 4608, 3584, 4608, 4608, 5888, 4608, 5888 },
|
/*50*/{ 3328, 4096, 3328, 4096, 4096, 5120, 4096, 5120 }, /*51*/{ 3584, 4608, 3584, 4608, 4608, 5888, 4608, 5888 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// table A-1 - Level limits
|
||||||
|
const SLevelLimits g_ksLevelLimits[LEVEL_NUMBER] = {
|
||||||
|
{10, 1485, 99, 396, 64, 175, -256, 255, 2, 0x7fff}, /* level 1 */
|
||||||
|
{9, 1485, 99, 396, 128, 350, -256, 255, 2, 0x7fff}, /* level 1.b */
|
||||||
|
{11, 3000, 396, 900, 192, 500, -512, 511, 2, 0x7fff}, /* level 1.1 */
|
||||||
|
{12, 6000, 396, 2376, 384, 1000, -512, 511, 2, 0x7fff}, /* level 1.2 */
|
||||||
|
{13, 11880, 396, 2376, 768, 2000, -512, 511, 2, 0x7fff}, /* level 1.3 */
|
||||||
|
|
||||||
|
{20, 11880, 396, 2376, 2000, 2000, -512, 511, 2, 0x7fff}, /* level 2 */
|
||||||
|
{21, 19800, 792, 4752, 4000, 4000, -1024, 1023, 2, 0x7fff}, /* level 2.1 */
|
||||||
|
{22, 20250, 1620, 8100, 4000, 4000, -1024, 1023, 2, 0x7fff}, /* level 2.2 */
|
||||||
|
|
||||||
|
{30, 40500, 1620, 8100, 10000, 10000, -1024, 1023, 2, 32 }, /* level 3 */
|
||||||
|
{31, 108000, 3600, 18000, 14000, 14000, -2048, 2047, 4, 16}, /* level 3.1 */
|
||||||
|
{32, 216000, 5120, 20480, 20000, 20000, -2048, 2047, 4, 16}, /* level 3.2 */
|
||||||
|
|
||||||
|
{40, 245760, 8192, 32768, 20000, 25000, -2048, 2047, 4, 16}, /* level 4 */
|
||||||
|
{41, 245760, 8192, 32768, 50000, 62500, -2048, 2047, 2, 16}, /* level 4.1 */
|
||||||
|
{42, 522240, 8704, 34816, 50000, 62500, -2048, 2047, 2, 16}, /* level 4.2 */
|
||||||
|
|
||||||
|
{50, 589824, 22080, 110400, 135000, 135000, -2048, 2047, 2, 16}, /* level 5 */
|
||||||
|
{51, 983040, 36864, 184320, 240000, 240000, -2048, 2047, 2, 16}, /* level 5.1 */
|
||||||
|
{52, 2073600, 36864, 184320, 240000, 240000, -2048, 2047, 2, 16} /* level 5.2 */
|
||||||
|
};
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,6 @@
|
|||||||
#endif //!_MSC_VER
|
#endif //!_MSC_VER
|
||||||
#else
|
#else
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/timeb.h>
|
|
||||||
#endif //_WIN32
|
#endif //_WIN32
|
||||||
|
|
||||||
#include "macros.h"
|
#include "macros.h"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/*!
|
/*!
|
||||||
* \copy
|
* \copy
|
||||||
* Copyright (c) 2013, Cisco Systems
|
* Copyright (c) 2009-2013, Cisco Systems
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -28,12 +28,21 @@
|
|||||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
* POSSIBILITY OF SUCH DAMAGE.
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
|
*
|
||||||
|
* \file get_intra_predictor.c
|
||||||
|
*
|
||||||
|
* \brief implementation for get intra predictor about 16x16, 4x4, chroma.
|
||||||
|
*
|
||||||
|
* \date 4/2/2009 Created
|
||||||
|
* 9/14/2009 C level based optimization with high performance gained.
|
||||||
|
* [const, using ST32/ST64 to replace memset, memcpy and memmove etc.]
|
||||||
|
*
|
||||||
|
*************************************************************************************
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
|
||||||
#include "ls_defines.h"
|
#include "ls_defines.h"
|
||||||
|
#include "cpu_core.h"
|
||||||
|
#include "intra_pred_common.h"
|
||||||
|
|
||||||
WELSVP_NAMESPACE_BEGIN
|
|
||||||
|
|
||||||
void WelsI16x16LumaPredV_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride) {
|
void WelsI16x16LumaPredV_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStride) {
|
||||||
uint8_t i = 15;
|
uint8_t i = 15;
|
||||||
@@ -66,4 +75,3 @@ void WelsI16x16LumaPredH_c (uint8_t* pPred, uint8_t* pRef, const int32_t kiStrid
|
|||||||
} while (i-- > 0);
|
} while (i-- > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
WELSVP_NAMESPACE_END
|
|
||||||
@@ -136,4 +136,4 @@ void WelsSampleSadFour4x4_c (uint8_t* iSample1, int32_t iStride1, uint8_t* iSamp
|
|||||||
* (pSad + 1) = WelsSampleSad4x4_c (iSample1, iStride1, (iSample2 + iStride2), iStride2);
|
* (pSad + 1) = WelsSampleSad4x4_c (iSample1, iStride1, (iSample2 + iStride2), iStride2);
|
||||||
* (pSad + 2) = WelsSampleSad4x4_c (iSample1, iStride1, (iSample2 - 1), iStride2);
|
* (pSad + 2) = WelsSampleSad4x4_c (iSample1, iStride1, (iSample2 - 1), iStride2);
|
||||||
* (pSad + 3) = WelsSampleSad4x4_c (iSample1, iStride1, (iSample2 + 1), iStride2);
|
* (pSad + 3) = WelsSampleSad4x4_c (iSample1, iStride1, (iSample2 + 1), iStride2);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "crt_util_safe_x.h" // Safe CRT routines like utils for cross platforms
|
#include "crt_util_safe_x.h" // Safe CRT routines like utils for cross platforms
|
||||||
|
#include "codec_app_def.h"
|
||||||
float WelsCalcPsnr (const void* kpTarPic,
|
float WelsCalcPsnr (const void* kpTarPic,
|
||||||
const int32_t kiTarStride,
|
const int32_t kiTarStride,
|
||||||
const void* kpRefPic,
|
const void* kpRefPic,
|
||||||
@@ -50,8 +50,27 @@ float WelsCalcPsnr (const void* kpTarPic,
|
|||||||
|
|
||||||
void WelsLog (SLogContext* logCtx, int32_t iLevel, const char* kpFmt, ...) {
|
void WelsLog (SLogContext* logCtx, int32_t iLevel, const char* kpFmt, ...) {
|
||||||
va_list vl;
|
va_list vl;
|
||||||
|
char pTraceTag[MAX_LOG_SIZE];
|
||||||
|
switch (iLevel) {
|
||||||
|
case WELS_LOG_ERROR:
|
||||||
|
WelsSnprintf (pTraceTag, MAX_LOG_SIZE, "[OpenH264] Error:");
|
||||||
|
break;
|
||||||
|
case WELS_LOG_WARNING:
|
||||||
|
WelsSnprintf (pTraceTag, MAX_LOG_SIZE, "[OpenH264] Warning:");
|
||||||
|
break;
|
||||||
|
case WELS_LOG_INFO:
|
||||||
|
WelsSnprintf (pTraceTag, MAX_LOG_SIZE, "[OpenH264] Info:");
|
||||||
|
break;
|
||||||
|
case WELS_LOG_DEBUG:
|
||||||
|
WelsSnprintf (pTraceTag, MAX_LOG_SIZE, "[OpenH264] Debug:");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
WelsSnprintf (pTraceTag, MAX_LOG_SIZE, "[OpenH264] Detail:");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
WelsStrcat (pTraceTag, MAX_LOG_SIZE, kpFmt);
|
||||||
va_start (vl, kpFmt);
|
va_start (vl, kpFmt);
|
||||||
logCtx->pfLog (logCtx->pLogCtx, iLevel, kpFmt, vl);
|
logCtx->pfLog (logCtx->pLogCtx, iLevel, pTraceTag, vl);
|
||||||
va_end (vl);
|
va_end (vl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
|
|
||||||
|
|
||||||
static void welsStderrTrace (void* ctx, int level, const char* string) {
|
static void welsStderrTrace (void* ctx, int level, const char* string) {
|
||||||
fprintf (stderr, "%s", string);
|
fprintf (stderr, "%s\n", string);
|
||||||
}
|
}
|
||||||
|
|
||||||
welsCodecTrace::welsCodecTrace() {
|
welsCodecTrace::welsCodecTrace() {
|
||||||
@@ -64,7 +64,7 @@ welsCodecTrace::~welsCodecTrace() {
|
|||||||
m_fpTrace = NULL;
|
m_fpTrace = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_LOG_SIZE 1024
|
|
||||||
|
|
||||||
void welsCodecTrace::StaticCodecTrace (void* pCtx, const int32_t iLevel, const char* Str_Format, va_list vl) {
|
void welsCodecTrace::StaticCodecTrace (void* pCtx, const int32_t iLevel, const char* Str_Format, va_list vl) {
|
||||||
welsCodecTrace* self = (welsCodecTrace*) pCtx;
|
welsCodecTrace* self = (welsCodecTrace*) pCtx;
|
||||||
@@ -78,8 +78,9 @@ void welsCodecTrace::CodecTrace (const int32_t iLevel, const char* Str_Format, v
|
|||||||
|
|
||||||
char pBuf[MAX_LOG_SIZE] = {0};
|
char pBuf[MAX_LOG_SIZE] = {0};
|
||||||
WelsVsnprintf (pBuf, MAX_LOG_SIZE, Str_Format, vl); // confirmed_safe_unsafe_usage
|
WelsVsnprintf (pBuf, MAX_LOG_SIZE, Str_Format, vl); // confirmed_safe_unsafe_usage
|
||||||
|
if (m_fpTrace) {
|
||||||
m_fpTrace (m_pTraceCtx, iLevel, pBuf);
|
m_fpTrace (m_pTraceCtx, iLevel, pBuf);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void welsCodecTrace::SetTraceLevel (const int32_t iLevel) {
|
void welsCodecTrace::SetTraceLevel (const int32_t iLevel) {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ COMMON_CPP_SRCS=\
|
|||||||
$(COMMON_SRCDIR)/src/crt_util_safe_x.cpp\
|
$(COMMON_SRCDIR)/src/crt_util_safe_x.cpp\
|
||||||
$(COMMON_SRCDIR)/src/deblocking_common.cpp\
|
$(COMMON_SRCDIR)/src/deblocking_common.cpp\
|
||||||
$(COMMON_SRCDIR)/src/expand_pic.cpp\
|
$(COMMON_SRCDIR)/src/expand_pic.cpp\
|
||||||
|
$(COMMON_SRCDIR)/src/intra_pred_common.cpp\
|
||||||
$(COMMON_SRCDIR)/src/sad_common.cpp\
|
$(COMMON_SRCDIR)/src/sad_common.cpp\
|
||||||
$(COMMON_SRCDIR)/src/utils.cpp\
|
$(COMMON_SRCDIR)/src/utils.cpp\
|
||||||
$(COMMON_SRCDIR)/src/welsCodecTrace.cpp\
|
$(COMMON_SRCDIR)/src/welsCodecTrace.cpp\
|
||||||
@@ -13,41 +14,51 @@ COMMON_CPP_SRCS=\
|
|||||||
|
|
||||||
COMMON_OBJS += $(COMMON_CPP_SRCS:.cpp=.$(OBJ))
|
COMMON_OBJS += $(COMMON_CPP_SRCS:.cpp=.$(OBJ))
|
||||||
|
|
||||||
ifeq ($(ASM_ARCH), x86)
|
|
||||||
COMMON_ASM_SRCS=\
|
COMMON_ASM_SRCS=\
|
||||||
$(COMMON_SRCDIR)/x86/cpuid.asm\
|
$(COMMON_SRCDIR)/x86/cpuid.asm\
|
||||||
$(COMMON_SRCDIR)/x86/deblock.asm\
|
$(COMMON_SRCDIR)/x86/deblock.asm\
|
||||||
$(COMMON_SRCDIR)/x86/expand_picture.asm\
|
$(COMMON_SRCDIR)/x86/expand_picture.asm\
|
||||||
|
$(COMMON_SRCDIR)/x86/intra_pred_com.asm\
|
||||||
$(COMMON_SRCDIR)/x86/mb_copy.asm\
|
$(COMMON_SRCDIR)/x86/mb_copy.asm\
|
||||||
$(COMMON_SRCDIR)/x86/mc_chroma.asm\
|
$(COMMON_SRCDIR)/x86/mc_chroma.asm\
|
||||||
$(COMMON_SRCDIR)/x86/mc_luma.asm\
|
$(COMMON_SRCDIR)/x86/mc_luma.asm\
|
||||||
$(COMMON_SRCDIR)/x86/satd_sad.asm\
|
$(COMMON_SRCDIR)/x86/satd_sad.asm\
|
||||||
$(COMMON_SRCDIR)/x86/vaa.asm\
|
$(COMMON_SRCDIR)/x86/vaa.asm\
|
||||||
|
|
||||||
COMMON_OBJS += $(COMMON_ASM_SRCS:.asm=.$(OBJ))
|
COMMON_OBJSASM += $(COMMON_ASM_SRCS:.asm=.$(OBJ))
|
||||||
|
ifeq ($(ASM_ARCH), x86)
|
||||||
|
COMMON_OBJS += $(COMMON_OBJSASM)
|
||||||
endif
|
endif
|
||||||
|
OBJS += $(COMMON_OBJSASM)
|
||||||
|
|
||||||
ifeq ($(ASM_ARCH), arm)
|
|
||||||
COMMON_ASM_ARM_SRCS=\
|
COMMON_ASM_ARM_SRCS=\
|
||||||
$(COMMON_SRCDIR)/arm/copy_mb_neon.S\
|
$(COMMON_SRCDIR)/arm/copy_mb_neon.S\
|
||||||
$(COMMON_SRCDIR)/arm/deblocking_neon.S\
|
$(COMMON_SRCDIR)/arm/deblocking_neon.S\
|
||||||
$(COMMON_SRCDIR)/arm/expand_picture_neon.S\
|
$(COMMON_SRCDIR)/arm/expand_picture_neon.S\
|
||||||
|
$(COMMON_SRCDIR)/arm/intra_pred_common_neon.S\
|
||||||
$(COMMON_SRCDIR)/arm/mc_neon.S\
|
$(COMMON_SRCDIR)/arm/mc_neon.S\
|
||||||
|
|
||||||
COMMON_OBJS += $(COMMON_ASM_ARM_SRCS:.S=.$(OBJ))
|
COMMON_OBJSARM += $(COMMON_ASM_ARM_SRCS:.S=.$(OBJ))
|
||||||
|
ifeq ($(ASM_ARCH), arm)
|
||||||
|
COMMON_OBJS += $(COMMON_OBJSARM)
|
||||||
endif
|
endif
|
||||||
|
OBJS += $(COMMON_OBJSARM)
|
||||||
|
|
||||||
ifeq ($(ASM_ARCH), arm64)
|
|
||||||
COMMON_ASM_ARM64_SRCS=\
|
COMMON_ASM_ARM64_SRCS=\
|
||||||
$(COMMON_SRCDIR)/arm64/copy_mb_aarch64_neon.S\
|
$(COMMON_SRCDIR)/arm64/copy_mb_aarch64_neon.S\
|
||||||
$(COMMON_SRCDIR)/arm64/deblocking_aarch64_neon.S\
|
$(COMMON_SRCDIR)/arm64/deblocking_aarch64_neon.S\
|
||||||
$(COMMON_SRCDIR)/arm64/expand_picture_aarch64_neon.S\
|
$(COMMON_SRCDIR)/arm64/expand_picture_aarch64_neon.S\
|
||||||
|
$(COMMON_SRCDIR)/arm64/intra_pred_common_aarch64_neon.S\
|
||||||
$(COMMON_SRCDIR)/arm64/mc_aarch64_neon.S\
|
$(COMMON_SRCDIR)/arm64/mc_aarch64_neon.S\
|
||||||
|
|
||||||
COMMON_OBJS += $(COMMON_ASM_ARM64_SRCS:.S=.$(OBJ))
|
COMMON_OBJSARM64 += $(COMMON_ASM_ARM64_SRCS:.S=.$(OBJ))
|
||||||
|
ifeq ($(ASM_ARCH), arm64)
|
||||||
|
COMMON_OBJS += $(COMMON_OBJSARM64)
|
||||||
endif
|
endif
|
||||||
|
OBJS += $(COMMON_OBJSARM64)
|
||||||
|
|
||||||
OBJS += $(COMMON_OBJS)
|
OBJS += $(COMMON_OBJS)
|
||||||
|
|
||||||
$(COMMON_SRCDIR)/%.$(OBJ): $(COMMON_SRCDIR)/%.cpp
|
$(COMMON_SRCDIR)/%.$(OBJ): $(COMMON_SRCDIR)/%.cpp
|
||||||
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(COMMON_CFLAGS) $(COMMON_INCLUDES) -c $(CXX_O) $<
|
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(COMMON_CFLAGS) $(COMMON_INCLUDES) -c $(CXX_O) $<
|
||||||
|
|
||||||
|
|||||||
@@ -116,6 +116,10 @@ BITS 64
|
|||||||
|
|
||||||
BITS 64
|
BITS 64
|
||||||
|
|
||||||
|
%ifidn __OUTPUT_FORMAT__,elf64
|
||||||
|
SECTION .note.GNU-stack noalloc noexec nowrite progbits ; Mark the stack as non-executable
|
||||||
|
%endif
|
||||||
|
|
||||||
%define arg1 rdi
|
%define arg1 rdi
|
||||||
%define arg2 rsi
|
%define arg2 rsi
|
||||||
%define arg3 rdx
|
%define arg3 rdx
|
||||||
@@ -166,6 +170,10 @@ BITS 64
|
|||||||
|
|
||||||
BITS 32
|
BITS 32
|
||||||
|
|
||||||
|
%ifidn __OUTPUT_FORMAT__,elf
|
||||||
|
SECTION .note.GNU-stack noalloc noexec nowrite progbits ; Mark the stack as non-executable
|
||||||
|
%endif
|
||||||
|
|
||||||
%define arg1 [esp + push_num*4 + 4]
|
%define arg1 [esp + push_num*4 + 4]
|
||||||
%define arg2 [esp + push_num*4 + 8]
|
%define arg2 [esp + push_num*4 + 8]
|
||||||
%define arg3 [esp + push_num*4 + 12]
|
%define arg3 [esp + push_num*4 + 12]
|
||||||
|
|||||||
117
codec/common/x86/intra_pred_com.asm
Normal file
117
codec/common/x86/intra_pred_com.asm
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
;*!
|
||||||
|
;* \copy
|
||||||
|
;* Copyright (c) 2009-2013, Cisco Systems
|
||||||
|
;* All rights reserved.
|
||||||
|
;*
|
||||||
|
;* Redistribution and use in source and binary forms, with or without
|
||||||
|
;* modification, are permitted provided that the following conditions
|
||||||
|
;* are met:
|
||||||
|
;*
|
||||||
|
;* * Redistributions of source code must retain the above copyright
|
||||||
|
;* notice, this list of conditions and the following disclaimer.
|
||||||
|
;*
|
||||||
|
;* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
;* notice, this list of conditions and the following disclaimer in
|
||||||
|
;* the documentation and/or other materials provided with the
|
||||||
|
;* distribution.
|
||||||
|
;*
|
||||||
|
;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
;* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
;* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
;* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
;* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
;* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
;* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
;* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
;* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
;* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
;* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
;*
|
||||||
|
;*
|
||||||
|
;* intra_pred_common.asm
|
||||||
|
;*
|
||||||
|
;* Abstract
|
||||||
|
;* sse2 function for intra predict operations
|
||||||
|
;*
|
||||||
|
;* History
|
||||||
|
;* 18/09/2009 Created
|
||||||
|
;*
|
||||||
|
;*
|
||||||
|
;*************************************************************************/
|
||||||
|
%include "asm_inc.asm"
|
||||||
|
|
||||||
|
;***********************************************************************
|
||||||
|
; Code
|
||||||
|
;***********************************************************************
|
||||||
|
|
||||||
|
SECTION .text
|
||||||
|
|
||||||
|
;***********************************************************************
|
||||||
|
; void WelsI16x16LumaPredH_sse2(uint8_t *pred, uint8_t *pRef, int32_t stride);
|
||||||
|
;***********************************************************************
|
||||||
|
|
||||||
|
%macro SSE2_PRED_H_16X16_ONE_LINE 0
|
||||||
|
add r0, 16
|
||||||
|
add r1, r2
|
||||||
|
movzx r3, byte [r1]
|
||||||
|
SSE2_Copy16Times xmm0, r3d
|
||||||
|
movdqa [r0], xmm0
|
||||||
|
%endmacro
|
||||||
|
|
||||||
|
WELS_EXTERN WelsI16x16LumaPredH_sse2
|
||||||
|
push r3
|
||||||
|
%assign push_num 1
|
||||||
|
LOAD_3_PARA
|
||||||
|
SIGN_EXTENSION r2, r2d
|
||||||
|
dec r1
|
||||||
|
movzx r3, byte [r1]
|
||||||
|
SSE2_Copy16Times xmm0, r3d
|
||||||
|
movdqa [r0], xmm0
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
SSE2_PRED_H_16X16_ONE_LINE
|
||||||
|
pop r3
|
||||||
|
ret
|
||||||
|
|
||||||
|
;***********************************************************************
|
||||||
|
; void WelsI16x16LumaPredV_sse2(uint8_t *pred, uint8_t *pRef, int32_t stride);
|
||||||
|
;***********************************************************************
|
||||||
|
WELS_EXTERN WelsI16x16LumaPredV_sse2
|
||||||
|
%assign push_num 0
|
||||||
|
LOAD_3_PARA
|
||||||
|
SIGN_EXTENSION r2, r2d
|
||||||
|
sub r1, r2
|
||||||
|
movdqa xmm0, [r1]
|
||||||
|
|
||||||
|
movdqa [r0], xmm0
|
||||||
|
movdqa [r0+10h], xmm0
|
||||||
|
movdqa [r0+20h], xmm0
|
||||||
|
movdqa [r0+30h], xmm0
|
||||||
|
movdqa [r0+40h], xmm0
|
||||||
|
movdqa [r0+50h], xmm0
|
||||||
|
movdqa [r0+60h], xmm0
|
||||||
|
movdqa [r0+70h], xmm0
|
||||||
|
movdqa [r0+80h], xmm0
|
||||||
|
movdqa [r0+90h], xmm0
|
||||||
|
movdqa [r0+160], xmm0
|
||||||
|
movdqa [r0+176], xmm0
|
||||||
|
movdqa [r0+192], xmm0
|
||||||
|
movdqa [r0+208], xmm0
|
||||||
|
movdqa [r0+224], xmm0
|
||||||
|
movdqa [r0+240], xmm0
|
||||||
|
|
||||||
|
ret
|
||||||
|
|
||||||
@@ -42,26 +42,25 @@
|
|||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
|
|
||||||
class CReadConfig {
|
class CReadConfig {
|
||||||
public:
|
public:
|
||||||
CReadConfig();
|
CReadConfig();
|
||||||
CReadConfig (const char* pConfigFileName);
|
CReadConfig (const char* pConfigFileName);
|
||||||
CReadConfig (const string& pConfigFileName);
|
CReadConfig (const std::string& pConfigFileName);
|
||||||
virtual ~CReadConfig();
|
virtual ~CReadConfig();
|
||||||
|
|
||||||
void Openf (const char* strFile);
|
void Openf (const char* strFile);
|
||||||
long ReadLine (string* strVal, const int iValSize = 4);
|
long ReadLine (std::string* strVal, const int iValSize = 4);
|
||||||
const bool EndOfFile();
|
const bool EndOfFile();
|
||||||
const int GetLines();
|
const int GetLines();
|
||||||
const bool ExistFile();
|
const bool ExistFile();
|
||||||
const string& GetFileName();
|
const std::string& GetFileName();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FILE* m_pCfgFile;
|
FILE* m_pCfgFile;
|
||||||
string m_strCfgFileName;
|
std::string m_strCfgFileName;
|
||||||
unsigned int m_iLines;
|
unsigned int m_iLines;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ CReadConfig::CReadConfig (const char* kpConfigFileName)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CReadConfig::CReadConfig (const string& kpConfigFileName)
|
CReadConfig::CReadConfig (const std::string& kpConfigFileName)
|
||||||
: m_pCfgFile (0)
|
: m_pCfgFile (0)
|
||||||
, m_strCfgFileName (kpConfigFileName)
|
, m_strCfgFileName (kpConfigFileName)
|
||||||
, m_iLines (0) {
|
, m_iLines (0) {
|
||||||
@@ -81,11 +81,11 @@ void CReadConfig::Openf (const char* kpStrFile) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
long CReadConfig::ReadLine (string* pVal, const int kiValSize/* = 4*/) {
|
long CReadConfig::ReadLine (std::string* pVal, const int kiValSize/* = 4*/) {
|
||||||
if (m_pCfgFile == NULL || pVal == NULL || kiValSize <= 1)
|
if (m_pCfgFile == NULL || pVal == NULL || kiValSize <= 1)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
string* strTags = &pVal[0];
|
std::string* strTags = &pVal[0];
|
||||||
int nTagNum = 0, n = 0;
|
int nTagNum = 0, n = 0;
|
||||||
bool bCommentFlag = false;
|
bool bCommentFlag = false;
|
||||||
|
|
||||||
@@ -134,6 +134,6 @@ const bool CReadConfig::ExistFile() {
|
|||||||
return (m_pCfgFile != NULL);
|
return (m_pCfgFile != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
const string& CReadConfig::GetFileName() {
|
const std::string& CReadConfig::GetFileName() {
|
||||||
return m_strCfgFileName;
|
return m_strCfgFileName;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ CONSOLE_COMMON_CPP_SRCS=\
|
|||||||
CONSOLE_COMMON_OBJS += $(CONSOLE_COMMON_CPP_SRCS:.cpp=.$(OBJ))
|
CONSOLE_COMMON_OBJS += $(CONSOLE_COMMON_CPP_SRCS:.cpp=.$(OBJ))
|
||||||
|
|
||||||
OBJS += $(CONSOLE_COMMON_OBJS)
|
OBJS += $(CONSOLE_COMMON_OBJS)
|
||||||
|
|
||||||
$(CONSOLE_COMMON_SRCDIR)/%.$(OBJ): $(CONSOLE_COMMON_SRCDIR)/%.cpp
|
$(CONSOLE_COMMON_SRCDIR)/%.$(OBJ): $(CONSOLE_COMMON_SRCDIR)/%.cpp
|
||||||
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(CONSOLE_COMMON_CFLAGS) $(CONSOLE_COMMON_INCLUDES) -c $(CXX_O) $<
|
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(CONSOLE_COMMON_CFLAGS) $(CONSOLE_COMMON_INCLUDES) -c $(CXX_O) $<
|
||||||
|
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ void H264DecodeInstance (ISVCDecoder* pDecoder, const char* kpH264FileName, cons
|
|||||||
pDecoder->GetOption (DECODER_OPTION_VCL_NAL, &iFeedbackVclNalInAu);
|
pDecoder->GetOption (DECODER_OPTION_VCL_NAL, &iFeedbackVclNalInAu);
|
||||||
int32_t iFeedbackTidInAu;
|
int32_t iFeedbackTidInAu;
|
||||||
pDecoder->GetOption (DECODER_OPTION_TEMPORAL_ID, &iFeedbackTidInAu);
|
pDecoder->GetOption (DECODER_OPTION_TEMPORAL_ID, &iFeedbackTidInAu);
|
||||||
int32_t iErrorConMethod = ERROR_CON_SLICE_COPY;
|
int32_t iErrorConMethod = (int32_t) ERROR_CON_SLICE_COPY;
|
||||||
pDecoder->SetOption (DECODER_OPTION_ERROR_CON_IDC, &iErrorConMethod);
|
pDecoder->SetOption (DECODER_OPTION_ERROR_CON_IDC, &iErrorConMethod);
|
||||||
//~end for
|
//~end for
|
||||||
|
|
||||||
@@ -349,9 +349,9 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
|
|||||||
} else if (strTag[0].compare ("TargetDQID") == 0) {
|
} else if (strTag[0].compare ("TargetDQID") == 0) {
|
||||||
sDecParam.uiTargetDqLayer = (uint8_t)atol (strTag[1].c_str());
|
sDecParam.uiTargetDqLayer = (uint8_t)atol (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("OutColorFormat") == 0) {
|
} else if (strTag[0].compare ("OutColorFormat") == 0) {
|
||||||
sDecParam.iOutputColorFormat = atoi (strTag[1].c_str());
|
sDecParam.eOutputColorFormat = (EVideoFormatType) atoi (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("ErrorConcealmentFlag") == 0) {
|
} else if (strTag[0].compare ("ErrorConcealmentIdc") == 0) {
|
||||||
sDecParam.uiEcActiveFlag = (uint8_t)atol (strTag[1].c_str());
|
sDecParam.eEcActiveIdc = (ERROR_CON_IDC)atol (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("CPULoad") == 0) {
|
} else if (strTag[0].compare ("CPULoad") == 0) {
|
||||||
sDecParam.uiCpuLoad = (uint32_t)atol (strTag[1].c_str());
|
sDecParam.uiCpuLoad = (uint32_t)atol (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("VideoBitstreamType") == 0) {
|
} else if (strTag[0].compare ("VideoBitstreamType") == 0) {
|
||||||
@@ -366,17 +366,17 @@ int32_t main (int32_t iArgC, char* pArgV[]) {
|
|||||||
} else if (strstr (pArgV[1],
|
} else if (strstr (pArgV[1],
|
||||||
".264")) { // no output dump yuv file, just try to render the decoded pictures //confirmed_safe_unsafe_usage
|
".264")) { // no output dump yuv file, just try to render the decoded pictures //confirmed_safe_unsafe_usage
|
||||||
strInputFile = pArgV[1];
|
strInputFile = pArgV[1];
|
||||||
sDecParam.iOutputColorFormat = videoFormatI420;
|
sDecParam.eOutputColorFormat = videoFormatI420;
|
||||||
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
||||||
sDecParam.uiEcActiveFlag = 1;
|
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
}
|
}
|
||||||
} else { //iArgC > 2
|
} else { //iArgC > 2
|
||||||
strInputFile = pArgV[1];
|
strInputFile = pArgV[1];
|
||||||
strOutputFile = pArgV[2];
|
strOutputFile = pArgV[2];
|
||||||
sDecParam.iOutputColorFormat = videoFormatI420;
|
sDecParam.eOutputColorFormat = videoFormatI420;
|
||||||
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
sDecParam.uiTargetDqLayer = (uint8_t) - 1;
|
||||||
sDecParam.uiEcActiveFlag = 1;
|
sDecParam.eEcActiveIdc = ERROR_CON_SLICE_COPY;
|
||||||
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
sDecParam.sVideoProperty.eVideoBsType = VIDEO_BITSTREAM_DEFAULT;
|
||||||
if (iArgC > 3) {
|
if (iArgC > 3) {
|
||||||
for (int i = 3; i < iArgC; i++) {
|
for (int i = 3; i < iArgC; i++) {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ H264DEC_CPP_SRCS=\
|
|||||||
H264DEC_OBJS += $(H264DEC_CPP_SRCS:.cpp=.$(OBJ))
|
H264DEC_OBJS += $(H264DEC_CPP_SRCS:.cpp=.$(OBJ))
|
||||||
|
|
||||||
OBJS += $(H264DEC_OBJS)
|
OBJS += $(H264DEC_OBJS)
|
||||||
|
|
||||||
$(H264DEC_SRCDIR)/%.$(OBJ): $(H264DEC_SRCDIR)/%.cpp
|
$(H264DEC_SRCDIR)/%.$(OBJ): $(H264DEC_SRCDIR)/%.cpp
|
||||||
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(H264DEC_CFLAGS) $(H264DEC_INCLUDES) -c $(CXX_O) $<
|
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(H264DEC_CFLAGS) $(H264DEC_INCLUDES) -c $(CXX_O) $<
|
||||||
|
|
||||||
|
|||||||
@@ -84,7 +84,7 @@
|
|||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
using namespace std;
|
using namespace std;
|
||||||
using namespace WelsSVCEnc;
|
using namespace WelsEnc;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Layer Context
|
* Layer Context
|
||||||
@@ -99,6 +99,7 @@ typedef struct tagFilesSet {
|
|||||||
string strSeqFile; // for cmd lines
|
string strSeqFile; // for cmd lines
|
||||||
string strLayerCfgFile[MAX_DEPENDENCY_LAYER];
|
string strLayerCfgFile[MAX_DEPENDENCY_LAYER];
|
||||||
char sRecFileName[MAX_DEPENDENCY_LAYER][MAX_FNAME_LEN];
|
char sRecFileName[MAX_DEPENDENCY_LAYER][MAX_FNAME_LEN];
|
||||||
|
uint32_t uiFrameToBeCoded;
|
||||||
} SFilesSet;
|
} SFilesSet;
|
||||||
|
|
||||||
|
|
||||||
@@ -224,7 +225,7 @@ int ParseConfig (CReadConfig& cRdCfg, SSourcePicture* pSrcPic, SEncParamExt& pSv
|
|||||||
} else if (strTag[0].compare ("MaxFrameRate") == 0) {
|
} else if (strTag[0].compare ("MaxFrameRate") == 0) {
|
||||||
pSvcParam.fMaxFrameRate = (float)atof (strTag[1].c_str());
|
pSvcParam.fMaxFrameRate = (float)atof (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("FramesToBeEncoded") == 0) {
|
} else if (strTag[0].compare ("FramesToBeEncoded") == 0) {
|
||||||
pSvcParam.uiFrameToBeCoded = atoi (strTag[1].c_str());
|
sFileSet.uiFrameToBeCoded = atoi (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("TemporalLayerNum") == 0) {
|
} else if (strTag[0].compare ("TemporalLayerNum") == 0) {
|
||||||
pSvcParam.iTemporalLayerNum = atoi (strTag[1].c_str());
|
pSvcParam.iTemporalLayerNum = atoi (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("IntraPeriod") == 0) {
|
} else if (strTag[0].compare ("IntraPeriod") == 0) {
|
||||||
@@ -293,6 +294,8 @@ int ParseConfig (CReadConfig& cRdCfg, SSourcePicture* pSrcPic, SEncParamExt& pSv
|
|||||||
pSvcParam.iLTRRefNum = atoi (strTag[1].c_str());
|
pSvcParam.iLTRRefNum = atoi (strTag[1].c_str());
|
||||||
} else if (strTag[0].compare ("LtrMarkPeriod") == 0) {
|
} else if (strTag[0].compare ("LtrMarkPeriod") == 0) {
|
||||||
pSvcParam.iLtrMarkPeriod = (uint32_t)atoi (strTag[1].c_str());
|
pSvcParam.iLtrMarkPeriod = (uint32_t)atoi (strTag[1].c_str());
|
||||||
|
} else if (strTag[0].compare ("LosslessLink") == 0) {
|
||||||
|
pSvcParam.bIsLosslessLink = atoi (strTag[1].c_str()) ? true : false;
|
||||||
} else if (strTag[0].compare ("NumLayers") == 0) {
|
} else if (strTag[0].compare ("NumLayers") == 0) {
|
||||||
pSvcParam.iSpatialLayerNum = (int8_t)atoi (strTag[1].c_str());
|
pSvcParam.iSpatialLayerNum = (int8_t)atoi (strTag[1].c_str());
|
||||||
if (pSvcParam.iSpatialLayerNum > MAX_DEPENDENCY_LAYER || pSvcParam.iSpatialLayerNum <= 0) {
|
if (pSvcParam.iSpatialLayerNum > MAX_DEPENDENCY_LAYER || pSvcParam.iSpatialLayerNum <= 0) {
|
||||||
@@ -347,7 +350,7 @@ void PrintHelp() {
|
|||||||
printf (" -sw the source width\n");
|
printf (" -sw the source width\n");
|
||||||
printf (" -sh the source height\n");
|
printf (" -sh the source height\n");
|
||||||
printf (" -frms Number of total frames to be encoded\n");
|
printf (" -frms Number of total frames to be encoded\n");
|
||||||
printf (" -gop GOPSize - GOP size (1,2,4,8, default: 1)\n");
|
printf (" -numtl Temporal layer number (default: 1)\n");
|
||||||
printf (" -iper Intra period (default: -1) : must be a power of 2 of GOP size (or -1)\n");
|
printf (" -iper Intra period (default: -1) : must be a power of 2 of GOP size (or -1)\n");
|
||||||
printf (" -nalsize the Maximum NAL size. which should be larger than the each layer slicesize when slice mode equals to SM_DYN_SLICE\n");
|
printf (" -nalsize the Maximum NAL size. which should be larger than the each layer slicesize when slice mode equals to SM_DYN_SLICE\n");
|
||||||
printf (" -spsid Enable id adding in SPS/PPS per IDR \n");
|
printf (" -spsid Enable id adding in SPS/PPS per IDR \n");
|
||||||
@@ -381,7 +384,7 @@ void PrintHelp() {
|
|||||||
|
|
||||||
int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamExt& pSvcParam, SFilesSet& sFileSet) {
|
int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamExt& pSvcParam, SFilesSet& sFileSet) {
|
||||||
char* pCommand = NULL;
|
char* pCommand = NULL;
|
||||||
SLayerPEncCtx sLayerCtx[3];
|
SLayerPEncCtx sLayerCtx[MAX_SPATIAL_LAYER_NUM];
|
||||||
int n = 0;
|
int n = 0;
|
||||||
string str_ ("SlicesAssign");
|
string str_ ("SlicesAssign");
|
||||||
|
|
||||||
@@ -403,7 +406,7 @@ int ParseCommandLine (int argc, char** argv, SSourcePicture* pSrcPic, SEncParamE
|
|||||||
pSrcPic->iPicHeight = atoi (argv[n++]);
|
pSrcPic->iPicHeight = atoi (argv[n++]);
|
||||||
|
|
||||||
else if (!strcmp (pCommand, "-frms") && (n < argc))
|
else if (!strcmp (pCommand, "-frms") && (n < argc))
|
||||||
pSvcParam.uiFrameToBeCoded = atoi (argv[n++]);
|
sFileSet.uiFrameToBeCoded = atoi (argv[n++]);
|
||||||
|
|
||||||
else if (!strcmp (pCommand, "-numtl") && (n < argc))
|
else if (!strcmp (pCommand, "-numtl") && (n < argc))
|
||||||
pSvcParam.iTemporalLayerNum = atoi (argv[n++]);
|
pSvcParam.iTemporalLayerNum = atoi (argv[n++]);
|
||||||
@@ -581,11 +584,10 @@ int FillSpecificParameters (SEncParamExt& sParam) {
|
|||||||
sParam.bEnableFrameSkip = 1; // frame skipping
|
sParam.bEnableFrameSkip = 1; // frame skipping
|
||||||
sParam.bEnableLongTermReference = 0; // long term reference control
|
sParam.bEnableLongTermReference = 0; // long term reference control
|
||||||
sParam.iLtrMarkPeriod = 30;
|
sParam.iLtrMarkPeriod = 30;
|
||||||
sParam.iInputCsp = videoFormatI420; // color space of input sequence
|
|
||||||
sParam.uiIntraPeriod = 320; // period of Intra frame
|
sParam.uiIntraPeriod = 320; // period of Intra frame
|
||||||
sParam.bEnableSpsPpsIdAddition = 1;
|
sParam.bEnableSpsPpsIdAddition = 1;
|
||||||
sParam.bPrefixNalAddingCtrl = 0;
|
sParam.bPrefixNalAddingCtrl = 0;
|
||||||
|
sParam.iComplexityMode = MEDIUM_COMPLEXITY;
|
||||||
int iIndexLayer = 0;
|
int iIndexLayer = 0;
|
||||||
sParam.sSpatialLayers[iIndexLayer].uiProfileIdc = PRO_BASELINE;
|
sParam.sSpatialLayers[iIndexLayer].uiProfileIdc = PRO_BASELINE;
|
||||||
sParam.sSpatialLayers[iIndexLayer].iVideoWidth = 160;
|
sParam.sSpatialLayers[iIndexLayer].iVideoWidth = 160;
|
||||||
@@ -736,7 +738,7 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
|
|||||||
sSvcParam.iPicWidth = (!sSvcParam.iPicWidth) ? iSourceWidth : sSvcParam.iPicWidth;
|
sSvcParam.iPicWidth = (!sSvcParam.iPicWidth) ? iSourceWidth : sSvcParam.iPicWidth;
|
||||||
sSvcParam.iPicHeight = (!sSvcParam.iPicHeight) ? iSourceHeight : sSvcParam.iPicHeight;
|
sSvcParam.iPicHeight = (!sSvcParam.iPicHeight) ? iSourceHeight : sSvcParam.iPicHeight;
|
||||||
|
|
||||||
iTotalFrameMax = (int32_t)sSvcParam.uiFrameToBeCoded;
|
iTotalFrameMax = (int32_t)fs.uiFrameToBeCoded;
|
||||||
|
|
||||||
if (cmResultSuccess != pPtrEnc->InitializeExt (&sSvcParam)) { // SVC encoder initialization
|
if (cmResultSuccess != pPtrEnc->InitializeExt (&sSvcParam)) { // SVC encoder initialization
|
||||||
fprintf (stderr, "SVC encoder Initialize failed\n");
|
fprintf (stderr, "SVC encoder Initialize failed\n");
|
||||||
@@ -789,8 +791,8 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
|
|||||||
}
|
}
|
||||||
|
|
||||||
iFrameIdx = 0;
|
iFrameIdx = 0;
|
||||||
while (iFrameIdx < iTotalFrameMax && (((int32_t)sSvcParam.uiFrameToBeCoded <= 0)
|
while (iFrameIdx < iTotalFrameMax && (((int32_t)fs.uiFrameToBeCoded <= 0)
|
||||||
|| (iFrameIdx < (int32_t)sSvcParam.uiFrameToBeCoded))) {
|
|| (iFrameIdx < (int32_t)fs.uiFrameToBeCoded))) {
|
||||||
|
|
||||||
#ifdef ONLY_ENC_FRAMES_NUM
|
#ifdef ONLY_ENC_FRAMES_NUM
|
||||||
// Only encoded some limited frames here
|
// Only encoded some limited frames here
|
||||||
@@ -805,10 +807,10 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
|
|||||||
break;
|
break;
|
||||||
// To encoder this frame
|
// To encoder this frame
|
||||||
iStart = WelsTime();
|
iStart = WelsTime();
|
||||||
|
pSrcPic->uiTimeStamp = WELS_ROUND (iFrameIdx * (1000 / sSvcParam.fMaxFrameRate));
|
||||||
int iEncFrames = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
|
int iEncFrames = pPtrEnc->EncodeFrame (pSrcPic, &sFbi);
|
||||||
iTotal += WelsTime() - iStart;
|
iTotal += WelsTime() - iStart;
|
||||||
|
++ iFrameIdx;
|
||||||
// fixed issue in case dismatch source picture introduced by frame skipped, 1/12/2010
|
|
||||||
if (videoFrameTypeSkip == sFbi.eFrameType) {
|
if (videoFrameTypeSkip == sFbi.eFrameType) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -859,7 +861,6 @@ int ProcessEncoding (ISVCEncoder* pPtrEnc, int argc, char** argv, bool bConfigFi
|
|||||||
fprintf (stderr, "EncodeFrame(), ret: %d, frame index: %d.\n", iEncFrames, iFrameIdx);
|
fprintf (stderr, "EncodeFrame(), ret: %d, frame index: %d.\n", iEncFrames, iFrameIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
++ iFrameIdx;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iActualFrameEncodedCount > 0) {
|
if (iActualFrameEncodedCount > 0) {
|
||||||
@@ -891,7 +892,7 @@ INSIDE_MEM_FREE:
|
|||||||
pFileYUV = NULL;
|
pFileYUV = NULL;
|
||||||
}
|
}
|
||||||
if (pYUV) {
|
if (pYUV) {
|
||||||
delete pYUV;
|
delete[] pYUV;
|
||||||
pYUV = NULL;
|
pYUV = NULL;
|
||||||
}
|
}
|
||||||
if (pSrcPic) {
|
if (pSrcPic) {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ H264ENC_CPP_SRCS=\
|
|||||||
H264ENC_OBJS += $(H264ENC_CPP_SRCS:.cpp=.$(OBJ))
|
H264ENC_OBJS += $(H264ENC_CPP_SRCS:.cpp=.$(OBJ))
|
||||||
|
|
||||||
OBJS += $(H264ENC_OBJS)
|
OBJS += $(H264ENC_OBJS)
|
||||||
|
|
||||||
$(H264ENC_SRCDIR)/%.$(OBJ): $(H264ENC_SRCDIR)/%.cpp
|
$(H264ENC_SRCDIR)/%.$(OBJ): $(H264ENC_SRCDIR)/%.cpp
|
||||||
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(H264ENC_CFLAGS) $(H264ENC_INCLUDES) -c $(CXX_O) $<
|
$(QUIET_CXX)$(CXX) $(CFLAGS) $(CXXFLAGS) $(INCLUDES) $(H264ENC_CFLAGS) $(H264ENC_INCLUDES) -c $(CXX_O) $<
|
||||||
|
|
||||||
|
|||||||
161
codec/decoder/core/arm64/block_add_aarch64_neon.S
Normal file
161
codec/decoder/core/arm64/block_add_aarch64_neon.S
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
/*!
|
||||||
|
* \copy
|
||||||
|
* Copyright (c) 2013, Cisco Systems
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* * Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* * Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||||
|
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||||
|
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||||
|
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||||
|
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef HAVE_NEON_AARCH64
|
||||||
|
.text
|
||||||
|
#include "arm_arch64_common_macro.S"
|
||||||
|
#ifdef __APPLE__
|
||||||
|
.macro ROW_TRANSFORM_1_STEP
|
||||||
|
// { // input: src_d[0]~[3], output: e_q[0]~[3]; working: $8 $9
|
||||||
|
|
||||||
|
saddl $4.4s, $0.4h, $2.4h //int32 e[i][0] = src[0] + src[2];
|
||||||
|
ssubl $5.4s, $0.4h, $2.4h //int32 e[i][1] = src[0] - src[2];
|
||||||
|
sshr $8.4h, $1.4h, #1
|
||||||
|
sshr $9.4h, $3.4h, #1
|
||||||
|
ssubl $6.4s, $8.4h, $3.4h //int32 e[i][2] = (src[1]>>1)-src[3];
|
||||||
|
saddl $7.4s, $1.4h, $9.4h //int32 e[i][3] = src[1] + (src[3]>>1);
|
||||||
|
// }
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro TRANSFORM_4BYTES // both row & col transform used
|
||||||
|
// { // output: f_q[0]~[3], input: e_q[0]~[3];
|
||||||
|
add $0.4s, $4.4s, $7.4s //int16 f[i][0] = e[i][0] + e[i][3];
|
||||||
|
add $1.4s, $5.4s, $6.4s //int16 f[i][1] = e[i][1] + e[i][2];
|
||||||
|
sub $2.4s, $5.4s, $6.4s //int16 f[i][2] = e[i][1] - e[i][2];
|
||||||
|
sub $3.4s, $4.4s, $7.4s //int16 f[i][3] = e[i][0] - e[i][3];
|
||||||
|
// }
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro COL_TRANSFORM_1_STEP
|
||||||
|
// { // input: src_q[0]~[3], output: e_q[0]~[3];
|
||||||
|
add $4.4s, $0.4s, $2.4s //int32 e[0][j] = f[0][j] + f[2][j];
|
||||||
|
sub $5.4s, $0.4s, $2.4s //int32 e[1][j] = f[0][j] - f[2][j];
|
||||||
|
sshr $6.4s, $1.4s, #1
|
||||||
|
sshr $7.4s, $3.4s, #1
|
||||||
|
sub $6.4s, $6.4s, $3.4s //int32 e[2][j] = (f[1][j]>>1) - f[3][j];
|
||||||
|
add $7.4s, $1.4s, $7.4s //int32 e[3][j] = f[1][j] + (f[3][j]>>1);
|
||||||
|
// }
|
||||||
|
.endm
|
||||||
|
|
||||||
|
#else
|
||||||
|
.macro ROW_TRANSFORM_1_STEP arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9
|
||||||
|
// { // input: src_d[0]~[3], output: e_q[0]~[3]; working: \arg8\() \arg9\()
|
||||||
|
|
||||||
|
saddl \arg4\().4s, \arg0\().4h, \arg2\().4h //int32 e[i][0] = src[0] + src[2];
|
||||||
|
ssubl \arg5\().4s, \arg0\().4h, \arg2\().4h //int32 e[i][1] = src[0] - src[2];
|
||||||
|
sshr \arg8\().4h, \arg1\().4h, #1
|
||||||
|
sshr \arg9\().4h, \arg3\().4h, #1
|
||||||
|
ssubl \arg6\().4s, \arg8\().4h, \arg3\().4h //int32 e[i][2] = (src[1]>>1)-src[3];
|
||||||
|
saddl \arg7\().4s, \arg1\().4h, \arg9\().4h //int32 e[i][3] = src[1] + (src[3]>>1);
|
||||||
|
// }
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro TRANSFORM_4BYTES arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7
|
||||||
|
// both row & col transform used
|
||||||
|
// { // output: f_q[0]~[3], input: e_q[0]~[3];
|
||||||
|
add \arg0\().4s, \arg4\().4s, \arg7\().4s //int16 f[i][0] = e[i][0] + e[i][3];
|
||||||
|
add \arg1\().4s, \arg5\().4s, \arg6\().4s //int16 f[i][1] = e[i][1] + e[i][2];
|
||||||
|
sub \arg2\().4s, \arg5\().4s, \arg6\().4s //int16 f[i][2] = e[i][1] - e[i][2];
|
||||||
|
sub \arg3\().4s, \arg4\().4s, \arg7\().4s //int16 f[i][3] = e[i][0] - e[i][3];
|
||||||
|
// }
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro COL_TRANSFORM_1_STEP arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7
|
||||||
|
// { // input: src_q[0]~[3], output: e_q[0]~[3];
|
||||||
|
add \arg4\().4s, \arg0\().4s, \arg2\().4s //int32 e[0][j] = f[0][j] + f[2][j];
|
||||||
|
sub \arg5\().4s, \arg0\().4s, \arg2\().4s //int32 e[1][j] = f[0][j] - f[2][j];
|
||||||
|
sshr \arg6\().4s, \arg1\().4s, #1
|
||||||
|
sshr \arg7\().4s, \arg3\().4s, #1
|
||||||
|
sub \arg6\().4s, \arg6\().4s, \arg3\().4s //int32 e[2][j] = (f[1][j]>>1) - f[3][j];
|
||||||
|
add \arg7\().4s, \arg1\().4s, \arg7\().4s //int32 e[3][j] = f[1][j] + (f[3][j]>>1);
|
||||||
|
// }
|
||||||
|
.endm
|
||||||
|
#endif
|
||||||
|
// x0 int8_t* non_zero_count,
|
||||||
|
WELS_ASM_AARCH64_FUNC_BEGIN SetNonZeroCount_AArch64_neon
|
||||||
|
mov x1, x0
|
||||||
|
ld1 {v0.16b}, [x1], #16
|
||||||
|
ld1 {v1.8b}, [x1]
|
||||||
|
cmeq v0.16b, v0.16b, #0
|
||||||
|
cmeq v1.8b, v1.8b, #0
|
||||||
|
mvn v0.16b, v0.16b
|
||||||
|
mvn v1.8b, v1.8b
|
||||||
|
abs v0.16b, v0.16b
|
||||||
|
abs v1.8b, v1.8b
|
||||||
|
st1 {v0.16b}, [x0], #16
|
||||||
|
st1 {v1.8b}, [x0]
|
||||||
|
WELS_ASM_AARCH64_FUNC_END
|
||||||
|
|
||||||
|
// uint8_t *pred, const int32_t stride, int16_t *rs
|
||||||
|
WELS_ASM_AARCH64_FUNC_BEGIN IdctResAddPred_AArch64_neon
|
||||||
|
|
||||||
|
ld4 {v0.4h, v1.4h, v2.4h, v3.4h}, [x2] // cost 3 cycles!
|
||||||
|
ROW_TRANSFORM_1_STEP v0, v1, v2, v3, v16, v17, v18, v19, v4, v5
|
||||||
|
TRANSFORM_4BYTES v0, v1, v2, v3, v16, v17, v18, v19
|
||||||
|
// transform element 32bits
|
||||||
|
trn1 v16.4s, v0.4s, v1.4s //[0 1 2 3]+[4 5 6 7]-->[0 4 2 6]
|
||||||
|
trn2 v17.4s, v0.4s, v1.4s //[0 1 2 3]+[4 5 6 7]-->[1 5 3 7]
|
||||||
|
trn1 v18.4s, v2.4s, v3.4s //[8 9 10 11]+[12 13 14 15]-->[8 12 10 14]
|
||||||
|
trn2 v19.4s, v2.4s, v3.4s //[8 9 10 11]+[12 13 14 15]-->[9 13 11 15]
|
||||||
|
trn1 v0.2d, v16.2d, v18.2d //[0 4 2 6]+[8 12 10 14]-->[0 4 8 12]
|
||||||
|
trn2 v2.2d, v16.2d, v18.2d //[0 4 2 6]+[8 12 10 14]-->[2 6 10 14]
|
||||||
|
trn1 v1.2d, v17.2d, v19.2d //[1 5 3 7]+[9 13 11 15]-->[1 5 9 13]
|
||||||
|
trn2 v3.2d, v17.2d, v19.2d //[1 5 3 7]+[9 13 11 15]-->[3 7 11 15]
|
||||||
|
COL_TRANSFORM_1_STEP v0, v1, v2, v3, v16, v17, v18, v19
|
||||||
|
|
||||||
|
TRANSFORM_4BYTES v0, v1, v2, v3, v16, v17, v18, v19
|
||||||
|
//after clip_table[MAX_NEG_CROP] into [0, 255]
|
||||||
|
mov x2, x0
|
||||||
|
ld1 {v16.s}[0],[x0],x1
|
||||||
|
ld1 {v16.s}[1],[x0],x1
|
||||||
|
ld1 {v17.s}[0],[x0],x1
|
||||||
|
ld1 {v17.s}[1],[x0]
|
||||||
|
|
||||||
|
rshrn v0.4h, v0.4s, #6
|
||||||
|
rshrn2 v0.8h, v1.4s, #6
|
||||||
|
rshrn v1.4h, v2.4s, #6
|
||||||
|
rshrn2 v1.8h, v3.4s, #6
|
||||||
|
|
||||||
|
uxtl v2.8h,v16.8b
|
||||||
|
uxtl v3.8h,v17.8b
|
||||||
|
add v2.8h, v2.8h, v0.8h
|
||||||
|
add v3.8h, v3.8h, v1.8h
|
||||||
|
|
||||||
|
sqxtun v0.8b,v2.8h
|
||||||
|
sqxtun v1.8b,v3.8h
|
||||||
|
|
||||||
|
st1 {v0.s}[0],[x2],x1
|
||||||
|
st1 {v0.s}[1],[x2],x1
|
||||||
|
st1 {v1.s}[0],[x2],x1
|
||||||
|
st1 {v1.s}[1],[x2]
|
||||||
|
WELS_ASM_AARCH64_FUNC_END
|
||||||
|
#endif
|
||||||
@@ -308,7 +308,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderIChromaPredDcTop_AArch64_neon
|
|||||||
.endr
|
.endr
|
||||||
WELS_ASM_AARCH64_FUNC_END
|
WELS_ASM_AARCH64_FUNC_END
|
||||||
|
|
||||||
.align 16
|
.align 4
|
||||||
intra_1_to_4: .short 17*1, 17*2, 17*3, 17*4, 17*1, 17*2, 17*3, 17*4
|
intra_1_to_4: .short 17*1, 17*2, 17*3, 17*4, 17*1, 17*2, 17*3, 17*4
|
||||||
intra_m3_to_p4: .short -3, -2, -1, 0, 1, 2, 3, 4
|
intra_m3_to_p4: .short -3, -2, -1, 0, 1, 2, 3, 4
|
||||||
|
|
||||||
@@ -457,7 +457,7 @@ WELS_ASM_AARCH64_FUNC_BEGIN WelsDecoderI16x16LumaPredDcLeft_AArch64_neon
|
|||||||
WELS_ASM_AARCH64_FUNC_END
|
WELS_ASM_AARCH64_FUNC_END
|
||||||
|
|
||||||
|
|
||||||
.align 16
|
.align 4
|
||||||
intra_1_to_8: .short 5, 10, 15, 20, 25, 30, 35, 40
|
intra_1_to_8: .short 5, 10, 15, 20, 25, 30, 35, 40
|
||||||
intra_m7_to_p8: .short -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8
|
intra_m7_to_p8: .short -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8
|
||||||
|
|
||||||
|
|||||||
@@ -233,21 +233,21 @@ static inline int32_t BsGetTrailingBits (uint8_t* pBuf) {
|
|||||||
//define macros to check syntax elements
|
//define macros to check syntax elements
|
||||||
#define WELS_CHECK_SE_BOTH_ERROR(val, lower_bound, upper_bound, syntax_name, ret_code) do {\
|
#define WELS_CHECK_SE_BOTH_ERROR(val, lower_bound, upper_bound, syntax_name, ret_code) do {\
|
||||||
if ((val < lower_bound) || (val > upper_bound)) {\
|
if ((val < lower_bound) || (val > upper_bound)) {\
|
||||||
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\
|
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d", val);\
|
||||||
return ret_code;\
|
return ret_code;\
|
||||||
}\
|
}\
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
#define WELS_CHECK_SE_LOWER_ERROR(val, lower_bound, syntax_name, ret_code) do {\
|
#define WELS_CHECK_SE_LOWER_ERROR(val, lower_bound, syntax_name, ret_code) do {\
|
||||||
if (val < lower_bound) {\
|
if (val < lower_bound) {\
|
||||||
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\
|
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d", val);\
|
||||||
return ret_code;\
|
return ret_code;\
|
||||||
}\
|
}\
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
#define WELS_CHECK_SE_UPPER_ERROR(val, upper_bound, syntax_name, ret_code) do {\
|
#define WELS_CHECK_SE_UPPER_ERROR(val, upper_bound, syntax_name, ret_code) do {\
|
||||||
if (val > upper_bound) {\
|
if (val > upper_bound) {\
|
||||||
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d\n", val);\
|
WelsLog(&(pCtx->sLogCtx), WELS_LOG_ERROR, "invalid syntax " syntax_name " %d", val);\
|
||||||
return ret_code;\
|
return ret_code;\
|
||||||
}\
|
}\
|
||||||
}while(0)
|
}while(0)
|
||||||
@@ -273,19 +273,19 @@ if (val > upper_bound) {\
|
|||||||
|
|
||||||
#define WELS_CHECK_SE_BOTH_WARNING(val, lower_bound, upper_bound, syntax_name) do {\
|
#define WELS_CHECK_SE_BOTH_WARNING(val, lower_bound, upper_bound, syntax_name) do {\
|
||||||
if ((val < lower_bound) || (val > upper_bound)) {\
|
if ((val < lower_bound) || (val > upper_bound)) {\
|
||||||
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\
|
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d", val);\
|
||||||
}\
|
}\
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
#define WELS_CHECK_SE_LOWER_WARNING(val, lower_bound, syntax_name) do {\
|
#define WELS_CHECK_SE_LOWER_WARNING(val, lower_bound, syntax_name) do {\
|
||||||
if (val < lower_bound) {\
|
if (val < lower_bound) {\
|
||||||
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\
|
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d", val);\
|
||||||
}\
|
}\
|
||||||
}while(0)
|
}while(0)
|
||||||
|
|
||||||
#define WELS_CHECK_SE_UPPER_WARNING(val, upper_bound, syntax_name) do {\
|
#define WELS_CHECK_SE_UPPER_WARNING(val, upper_bound, syntax_name) do {\
|
||||||
if (val > upper_bound) {\
|
if (val > upper_bound) {\
|
||||||
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d\n", val);\
|
WelsLog(&(pCtx->sLogCtx), WELS_LOG_WARNING, "invalid syntax " syntax_name " %d", val);\
|
||||||
}\
|
}\
|
||||||
}while(0)
|
}while(0)
|
||||||
// below define syntax element offset
|
// below define syntax element offset
|
||||||
|
|||||||
@@ -52,6 +52,11 @@ void IdctResAddPred_mmx (uint8_t* pPred, const int32_t kiStride, int16_t* pRs);
|
|||||||
void IdctResAddPred_neon (uint8_t* pred, const int32_t stride, int16_t* rs);
|
void IdctResAddPred_neon (uint8_t* pred, const int32_t stride, int16_t* rs);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_NEON_AARCH64)
|
||||||
|
void IdctResAddPred_AArch64_neon (uint8_t* pred, const int32_t stride, int16_t* rs);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
}
|
}
|
||||||
#endif//__cplusplus
|
#endif//__cplusplus
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ extern "C" {
|
|||||||
void SetNonZeroCount_neon (int8_t* pNonZeroCount);
|
void SetNonZeroCount_neon (int8_t* pNonZeroCount);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_NEON_AARCH64)
|
||||||
|
void SetNonZeroCount_AArch64_neon (int8_t* pNonZeroCount);
|
||||||
|
#endif
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif//__cplusplus
|
#endif//__cplusplus
|
||||||
|
|||||||
@@ -168,15 +168,14 @@ SLogContext sLogCtx;
|
|||||||
// Input
|
// Input
|
||||||
void* pArgDec; // structured arguments for decoder, reserved here for extension in the future
|
void* pArgDec; // structured arguments for decoder, reserved here for extension in the future
|
||||||
|
|
||||||
SDataBuffer sRawData;
|
SDataBuffer sRawData;
|
||||||
|
|
||||||
// Configuration
|
// Configuration
|
||||||
SDecodingParam* pParam;
|
SDecodingParam* pParam;
|
||||||
uint32_t uiCpuFlag; // CPU compatibility detected
|
uint32_t uiCpuFlag; // CPU compatibility detected
|
||||||
|
|
||||||
int32_t iOutputColorFormat; // color space format to be outputed
|
EVideoFormatType eOutputColorFormat; // color space format to be outputed
|
||||||
VIDEO_BITSTREAM_TYPE eVideoType; //indicate the type of video to decide whether or not to do qp_delta error detection.
|
VIDEO_BITSTREAM_TYPE eVideoType; //indicate the type of video to decide whether or not to do qp_delta error detection.
|
||||||
bool bErrorResilienceFlag; // error resilience flag
|
|
||||||
bool bHaveGotMemory; // global memory for decoder context related ever requested?
|
bool bHaveGotMemory; // global memory for decoder context related ever requested?
|
||||||
|
|
||||||
int32_t iImgWidthInPixel; // width of image in pixel reconstruction picture to be output
|
int32_t iImgWidthInPixel; // width of image in pixel reconstruction picture to be output
|
||||||
@@ -287,7 +286,7 @@ uint16_t uiCurIdrPicId;
|
|||||||
bool bNewSeqBegin;
|
bool bNewSeqBegin;
|
||||||
bool bNextNewSeqBegin;
|
bool bNextNewSeqBegin;
|
||||||
int iOverwriteFlags;
|
int iOverwriteFlags;
|
||||||
int32_t iErrorConMethod; //
|
ERROR_CON_IDC eErrorConMethod; //
|
||||||
PPicture pPreviousDecodedPictureInDpb; //pointer to previously decoded picture in DPB for error concealment
|
PPicture pPreviousDecodedPictureInDpb; //pointer to previously decoded picture in DPB for error concealment
|
||||||
PGetIntraPredFunc pGetI16x16LumaPredFunc[7]; //h264_predict_copy_16x16;
|
PGetIntraPredFunc pGetI16x16LumaPredFunc[7]; //h264_predict_copy_16x16;
|
||||||
PGetIntraPredFunc pGetI4x4LumaPredFunc[14]; // h264_predict_4x4_t
|
PGetIntraPredFunc pGetI4x4LumaPredFunc[14]; // h264_predict_4x4_t
|
||||||
@@ -317,7 +316,6 @@ int32_t iFeedbackVclNalInAu;
|
|||||||
int32_t iFeedbackTidInAu;
|
int32_t iFeedbackTidInAu;
|
||||||
|
|
||||||
bool bAuReadyFlag; // true: one au is ready for decoding; false: default value
|
bool bAuReadyFlag; // true: one au is ready for decoding; false: default value
|
||||||
bool bDecErrorConedFlag; //true: current decoder is error coned
|
|
||||||
|
|
||||||
bool bPrintFrameErrorTraceFlag; //true: can print info for upper layer
|
bool bPrintFrameErrorTraceFlag; //true: can print info for upper layer
|
||||||
int32_t iIgnoredErrorInfoPacketCount; //store the packet number with error decoding info
|
int32_t iIgnoredErrorInfoPacketCount; //store the packet number with error decoding info
|
||||||
|
|||||||
@@ -144,8 +144,7 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf
|
|||||||
/*
|
/*
|
||||||
* Check if frame is completed and EC is required
|
* Check if frame is completed and EC is required
|
||||||
*/
|
*/
|
||||||
bool CheckAndDoEC (PWelsDecoderContext pCtx, uint8_t** pDst, SBufferInfo* pDstInfo);
|
bool CheckAndFinishLastPic (PWelsDecoderContext pCtx, uint8_t** pDst, SBufferInfo* pDstInfo);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Prepare current dq layer context initialization.
|
* Prepare current dq layer context initialization.
|
||||||
*/
|
*/
|
||||||
@@ -158,6 +157,7 @@ void WelsDecodeAccessUnitEnd (PWelsDecoderContext pCtx);
|
|||||||
void ForceResetCurrentAccessUnit (PAccessUnit pAu);
|
void ForceResetCurrentAccessUnit (PAccessUnit pAu);
|
||||||
void ForceClearCurrentNal (PAccessUnit pAu);
|
void ForceClearCurrentNal (PAccessUnit pAu);
|
||||||
|
|
||||||
|
bool bCheckRefPicturesComplete (PWelsDecoderContext pCtx); // Check whether all ref pictures are complete
|
||||||
} // namespace WelsDec
|
} // namespace WelsDec
|
||||||
|
|
||||||
#endif//WELS_DECODER_CORE_H__
|
#endif//WELS_DECODER_CORE_H__
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ ERR_INVALID_PARAMETERS = 1,
|
|||||||
ERR_MALLOC_FAILED = 2,
|
ERR_MALLOC_FAILED = 2,
|
||||||
ERR_API_FAILED = 3,
|
ERR_API_FAILED = 3,
|
||||||
|
|
||||||
ERR_BOUND = 31,
|
ERR_BOUND = 31
|
||||||
} EWelsErr;
|
} EWelsErr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -68,7 +68,7 @@ ERR_LEVEL_PREFIX_NAL,
|
|||||||
ERR_LEVEL_PARAM_SETS,
|
ERR_LEVEL_PARAM_SETS,
|
||||||
ERR_LEVEL_SLICE_HEADER,
|
ERR_LEVEL_SLICE_HEADER,
|
||||||
ERR_LEVEL_SLICE_DATA,
|
ERR_LEVEL_SLICE_DATA,
|
||||||
ERR_LEVEL_MB_DATA,
|
ERR_LEVEL_MB_DATA
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------
|
||||||
@@ -180,7 +180,7 @@ EER_INFO_INVALID_MMCO_LONG2UNUSED,
|
|||||||
ERR_INFO_INVALID_MMCO_SHOART2LONG,
|
ERR_INFO_INVALID_MMCO_SHOART2LONG,
|
||||||
ERR_INFO_INVALID_MMCO_REF_NUM_OVERFLOW,
|
ERR_INFO_INVALID_MMCO_REF_NUM_OVERFLOW,
|
||||||
ERR_INFO_INVALID_MMCO_REF_NUM_NOT_ENOUGH,
|
ERR_INFO_INVALID_MMCO_REF_NUM_NOT_ENOUGH,
|
||||||
ERR_INFO_INVALID_MMCO_LONG_TERM_IDX_EXCEED_MAX,
|
ERR_INFO_INVALID_MMCO_LONG_TERM_IDX_EXCEED_MAX
|
||||||
};
|
};
|
||||||
//-----------------------------------------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -39,67 +39,56 @@
|
|||||||
|
|
||||||
namespace WelsDec {
|
namespace WelsDec {
|
||||||
|
|
||||||
typedef struct TagLevelLimits {
|
|
||||||
int32_t iMaxMBPS; // Max macroblock processing rate(MB/s)
|
|
||||||
int32_t iMaxFS; // Max frame sizea(MBs)
|
|
||||||
int32_t iMaxDPBMbs;// Max decoded picture buffer size(MBs)
|
|
||||||
int32_t iMaxBR; // Max video bit rate
|
|
||||||
int32_t iMaxCPB; // Max CPB size
|
|
||||||
int16_t iMinVmv; // Vertical MV component range upper bound
|
|
||||||
int16_t iMaxVmv; // Vertical MV component range lower bound
|
|
||||||
int16_t iMinCR; // Min compression ration
|
|
||||||
int16_t iMaxMvsPer2Mb; // Max number of motion vectors per two consecutive MBs
|
|
||||||
} SLevelLimits;
|
|
||||||
|
|
||||||
/* Sequence Parameter Set, refer to Page 57 in JVT X201wcm */
|
/* Sequence Parameter Set, refer to Page 57 in JVT X201wcm */
|
||||||
typedef struct TagSps {
|
typedef struct TagSps {
|
||||||
int32_t iSpsId;
|
int32_t iSpsId;
|
||||||
uint32_t iMbWidth;
|
uint32_t iMbWidth;
|
||||||
uint32_t iMbHeight;
|
uint32_t iMbHeight;
|
||||||
uint32_t uiTotalMbCount; //used in decode_slice_data()
|
uint32_t uiTotalMbCount; //used in decode_slice_data()
|
||||||
|
|
||||||
uint32_t uiLog2MaxFrameNum;
|
uint32_t uiLog2MaxFrameNum;
|
||||||
uint32_t uiPocType;
|
uint32_t uiPocType;
|
||||||
/* POC type 0 */
|
/* POC type 0 */
|
||||||
int32_t iLog2MaxPocLsb;
|
int32_t iLog2MaxPocLsb;
|
||||||
/* POC type 1 */
|
/* POC type 1 */
|
||||||
int32_t iOffsetForNonRefPic;
|
int32_t iOffsetForNonRefPic;
|
||||||
|
|
||||||
int32_t iOffsetForTopToBottomField;
|
int32_t iOffsetForTopToBottomField;
|
||||||
int32_t iNumRefFramesInPocCycle;
|
int32_t iNumRefFramesInPocCycle;
|
||||||
int8_t iOffsetForRefFrame[256];
|
int8_t iOffsetForRefFrame[256];
|
||||||
int32_t iNumRefFrames;
|
int32_t iNumRefFrames;
|
||||||
|
|
||||||
SPosOffset sFrameCrop;
|
SPosOffset sFrameCrop;
|
||||||
|
|
||||||
ProfileIdc uiProfileIdc;
|
ProfileIdc uiProfileIdc;
|
||||||
uint8_t uiLevelIdc;
|
uint8_t uiLevelIdc;
|
||||||
uint8_t uiChromaFormatIdc;
|
uint8_t uiChromaFormatIdc;
|
||||||
uint8_t uiChromaArrayType;
|
uint8_t uiChromaArrayType;
|
||||||
|
|
||||||
uint8_t uiBitDepthLuma;
|
uint8_t uiBitDepthLuma;
|
||||||
uint8_t uiBitDepthChroma;
|
uint8_t uiBitDepthChroma;
|
||||||
/* TO BE CONTINUE: POC type 1 */
|
/* TO BE CONTINUE: POC type 1 */
|
||||||
bool bDeltaPicOrderAlwaysZeroFlag;
|
bool bDeltaPicOrderAlwaysZeroFlag;
|
||||||
bool bGapsInFrameNumValueAllowedFlag;
|
bool bGapsInFrameNumValueAllowedFlag;
|
||||||
|
|
||||||
bool bFrameMbsOnlyFlag;
|
bool bFrameMbsOnlyFlag;
|
||||||
bool bMbaffFlag; // MB Adapative Frame Field
|
bool bMbaffFlag; // MB Adapative Frame Field
|
||||||
bool bDirect8x8InferenceFlag;
|
bool bDirect8x8InferenceFlag;
|
||||||
bool bFrameCroppingFlag;
|
bool bFrameCroppingFlag;
|
||||||
|
|
||||||
bool bVuiParamPresentFlag;
|
bool bVuiParamPresentFlag;
|
||||||
// bool bTimingInfoPresentFlag;
|
// bool bTimingInfoPresentFlag;
|
||||||
// bool bFixedFrameRateFlag;
|
// bool bFixedFrameRateFlag;
|
||||||
bool bConstraintSet0Flag;
|
bool bConstraintSet0Flag;
|
||||||
bool bConstraintSet1Flag;
|
bool bConstraintSet1Flag;
|
||||||
bool bConstraintSet2Flag;
|
bool bConstraintSet2Flag;
|
||||||
bool bConstraintSet3Flag;
|
bool bConstraintSet3Flag;
|
||||||
bool bSeparateColorPlaneFlag;
|
bool bSeparateColorPlaneFlag;
|
||||||
bool bQpPrimeYZeroTransfBypassFlag;
|
bool bQpPrimeYZeroTransfBypassFlag;
|
||||||
bool bSeqScalingMatrixPresentFlag;
|
bool bSeqScalingMatrixPresentFlag;
|
||||||
bool bSeqScalingListPresentFlag[12];
|
bool bSeqScalingListPresentFlag[12];
|
||||||
const SLevelLimits* pSLevelLimits;
|
const SLevelLimits* pSLevelLimits;
|
||||||
} SSps, *PSps;
|
} SSps, *PSps;
|
||||||
|
|
||||||
|
|
||||||
@@ -117,63 +106,63 @@ const SLevelLimits* pSLevelLimits;
|
|||||||
|
|
||||||
/* Sequence Parameter Set extension syntax, refer to Page 391 in JVT X201wcm */
|
/* Sequence Parameter Set extension syntax, refer to Page 391 in JVT X201wcm */
|
||||||
typedef struct TagSpsSvcExt {
|
typedef struct TagSpsSvcExt {
|
||||||
SPosOffset sSeqScaledRefLayer;
|
SPosOffset sSeqScaledRefLayer;
|
||||||
|
|
||||||
uint8_t uiExtendedSpatialScalability; // ESS
|
uint8_t uiExtendedSpatialScalability; // ESS
|
||||||
uint8_t uiChromaPhaseXPlus1Flag;
|
uint8_t uiChromaPhaseXPlus1Flag;
|
||||||
uint8_t uiChromaPhaseYPlus1;
|
uint8_t uiChromaPhaseYPlus1;
|
||||||
uint8_t uiSeqRefLayerChromaPhaseXPlus1Flag;
|
uint8_t uiSeqRefLayerChromaPhaseXPlus1Flag;
|
||||||
uint8_t uiSeqRefLayerChromaPhaseYPlus1;
|
uint8_t uiSeqRefLayerChromaPhaseYPlus1;
|
||||||
bool bInterLayerDeblockingFilterCtrlPresentFlag;
|
bool bInterLayerDeblockingFilterCtrlPresentFlag;
|
||||||
bool bSeqTCoeffLevelPredFlag;
|
bool bSeqTCoeffLevelPredFlag;
|
||||||
bool bAdaptiveTCoeffLevelPredFlag;
|
bool bAdaptiveTCoeffLevelPredFlag;
|
||||||
bool bSliceHeaderRestrictionFlag;
|
bool bSliceHeaderRestrictionFlag;
|
||||||
} SSpsSvcExt, *PSpsSvcExt;
|
} SSpsSvcExt, *PSpsSvcExt;
|
||||||
|
|
||||||
/* Subset sequence parameter set syntax, refer to Page 391 in JVT X201wcm */
|
/* Subset sequence parameter set syntax, refer to Page 391 in JVT X201wcm */
|
||||||
typedef struct TagSubsetSps {
|
typedef struct TagSubsetSps {
|
||||||
SSps sSps;
|
SSps sSps;
|
||||||
SSpsSvcExt sSpsSvcExt;
|
SSpsSvcExt sSpsSvcExt;
|
||||||
bool bSvcVuiParamPresentFlag;
|
bool bSvcVuiParamPresentFlag;
|
||||||
bool bAdditionalExtension2Flag;
|
bool bAdditionalExtension2Flag;
|
||||||
bool bAdditionalExtension2DataFlag;
|
bool bAdditionalExtension2DataFlag;
|
||||||
} SSubsetSps, *PSubsetSps;
|
} SSubsetSps, *PSubsetSps;
|
||||||
|
|
||||||
/* Picture parameter set syntax, refer to Page 59 in JVT X201wcm */
|
/* Picture parameter set syntax, refer to Page 59 in JVT X201wcm */
|
||||||
typedef struct TagPps {
|
typedef struct TagPps {
|
||||||
int32_t iSpsId;
|
int32_t iSpsId;
|
||||||
int32_t iPpsId;
|
int32_t iPpsId;
|
||||||
|
|
||||||
uint32_t uiNumSliceGroups;
|
uint32_t uiNumSliceGroups;
|
||||||
uint32_t uiSliceGroupMapType;
|
uint32_t uiSliceGroupMapType;
|
||||||
/* slice_group_map_type = 0 */
|
/* slice_group_map_type = 0 */
|
||||||
uint32_t uiRunLength[MAX_SLICEGROUP_IDS];
|
uint32_t uiRunLength[MAX_SLICEGROUP_IDS];
|
||||||
/* slice_group_map_type = 2 */
|
/* slice_group_map_type = 2 */
|
||||||
uint32_t uiTopLeft[MAX_SLICEGROUP_IDS];
|
uint32_t uiTopLeft[MAX_SLICEGROUP_IDS];
|
||||||
uint32_t uiBottomRight[MAX_SLICEGROUP_IDS];
|
uint32_t uiBottomRight[MAX_SLICEGROUP_IDS];
|
||||||
/* slice_group_map_type = 3, 4 or 5 */
|
/* slice_group_map_type = 3, 4 or 5 */
|
||||||
uint32_t uiSliceGroupChangeRate;
|
uint32_t uiSliceGroupChangeRate;
|
||||||
/* slice_group_map_type = 6 */
|
/* slice_group_map_type = 6 */
|
||||||
uint32_t uiPicSizeInMapUnits;
|
uint32_t uiPicSizeInMapUnits;
|
||||||
uint32_t uiSliceGroupId[MAX_SLICEGROUP_IDS];
|
uint32_t uiSliceGroupId[MAX_SLICEGROUP_IDS];
|
||||||
|
|
||||||
uint32_t uiNumRefIdxL0Active;
|
uint32_t uiNumRefIdxL0Active;
|
||||||
uint32_t uiNumRefIdxL1Active;
|
uint32_t uiNumRefIdxL1Active;
|
||||||
|
|
||||||
int32_t iPicInitQp;
|
int32_t iPicInitQp;
|
||||||
int32_t iPicInitQs;
|
int32_t iPicInitQs;
|
||||||
int32_t iChromaQpIndexOffset;
|
int32_t iChromaQpIndexOffset;
|
||||||
|
|
||||||
bool bEntropyCodingModeFlag;
|
bool bEntropyCodingModeFlag;
|
||||||
bool bPicOrderPresentFlag;
|
bool bPicOrderPresentFlag;
|
||||||
/* slice_group_map_type = 3, 4 or 5 */
|
/* slice_group_map_type = 3, 4 or 5 */
|
||||||
bool bSliceGroupChangeDirectionFlag;
|
bool bSliceGroupChangeDirectionFlag;
|
||||||
bool bDeblockingFilterControlPresentFlag;
|
bool bDeblockingFilterControlPresentFlag;
|
||||||
|
|
||||||
bool bConstainedIntraPredFlag;
|
bool bConstainedIntraPredFlag;
|
||||||
bool bRedundantPicCntPresentFlag;
|
bool bRedundantPicCntPresentFlag;
|
||||||
bool bWeightedPredFlag;
|
bool bWeightedPredFlag;
|
||||||
uint8_t uiWeightedBipredIdc;
|
uint8_t uiWeightedBipredIdc;
|
||||||
|
|
||||||
} SPps, *PPps;
|
} SPps, *PPps;
|
||||||
|
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ bool bIsLongRef; // long term reference frame flag //for ref pic management
|
|||||||
uint8_t uiRefCount;
|
uint8_t uiRefCount;
|
||||||
bool bAvailableFlag; // indicate whether it is available in this picture memory block.
|
bool bAvailableFlag; // indicate whether it is available in this picture memory block.
|
||||||
|
|
||||||
|
bool bIsComplete; // indicate whether current picture is complete, not from EC
|
||||||
/*******************************for future use****************************/
|
/*******************************for future use****************************/
|
||||||
uint8_t uiTemporalId;
|
uint8_t uiTemporalId;
|
||||||
uint8_t uiSpatialId;
|
uint8_t uiSpatialId;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user