Compare commits
30 Commits
750ccff58b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 91bdb3f96b | |||
| c625898f61 | |||
| f068eb716f | |||
| 6135649835 | |||
| a0d5c81814 | |||
| fc47a42c6a | |||
| 24d6d2e0a5 | |||
| f7f356c044 | |||
| 0e203eef99 | |||
| 57cc8e0a56 | |||
| 97d814936d | |||
| 00f6e2f852 | |||
| 7e772f76bc | |||
| 9f0a10a4c8 | |||
| adf32da2a2 | |||
| 0925aa1d63 | |||
| 3418090042 | |||
| 51fe507dfd | |||
| 2de11c4b0c | |||
| 247c91db50 | |||
| a47ea25e8b | |||
| fcc985efb9 | |||
| a63feab0ff | |||
| 2abfd6e87c | |||
| 308843bc6b | |||
| 8d2db78cee | |||
| 7cb0b3930e | |||
| 8bb4f49b09 | |||
| 6c72751a14 | |||
| 53a82da74a |
@@ -1,178 +1,101 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(find C:ProjectsCLionProjectsANSCORE -type f \\\\\\(-name *.h -o -name *.hpp -o -name *.cpp -o -name *.cc \\\\\\))",
|
||||
"Bash(xargs grep:*)",
|
||||
"Bash(grep -n \"~Engine\\\\|TRTEngineCache::release\\\\|EnginePoolManager::release\\\\|destructor\" /c/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/*.inl /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.h)",
|
||||
"Bash(grep -l \"EnginePoolManager\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.cpp)",
|
||||
"Bash(grep -n \"g_processExiting\" /c/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/*.h /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/engine.h)",
|
||||
"Bash(ssh -T git@anscenter.ddns.net -p 2222)",
|
||||
"Bash(ssh-add -l)",
|
||||
"Bash(dotnet build:*)",
|
||||
"Bash(grep -n \"struct Object\\\\|class Object\" /c/Projects/CLionProjects/ANSCORE/modules/ANSLPR/*.h /c/Projects/CLionProjects/ANSCORE/modules/ANSLPR/include/*.h)",
|
||||
"Bash(grep -n \"cudaStream\\\\|cudaMalloc\\\\|cudaFree\\\\|queue\\\\|Task\\\\|mutex\" /c/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/*.inl)",
|
||||
"Bash(grep -n \"~Engine\\\\|destructor\\\\|cleanup\\\\|~\" /c/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/*.inl)",
|
||||
"Bash(grep -n \"for.*cudaFree\\\\|m_buffers\\\\[\" /c/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/*.inl)",
|
||||
"Bash(find /c/Projects/CLionProjects/ANSCORE -name ANSGpuFrameRegistry* -type f)",
|
||||
"Bash(ls -la /c/Projects/CLionProjects/ANSCORE/modules/ANSLPR/*.h)",
|
||||
"Bash(\"C:\\\\Users\\\\nghia\\\\AppData\\\\Local\\\\Programs\\\\CLion 2026.1\\\\bin\\\\cmake\\\\win\\\\x64\\\\bin\\\\cmake.exe\" --build cmake-build-release --target all -j 30)",
|
||||
"Bash(cmake --build build --target ANSLPR-UnitTest --config Release)",
|
||||
"Bash(ls -d C:/Projects/CLionProjects/ANSCORE/cmake-build-*)",
|
||||
"Bash(ls -d C:/Projects/CLionProjects/ANSCORE/out/*)",
|
||||
"Bash(cmake --build C:/Projects/CLionProjects/ANSCORE/cmake-build-release --target ANSLPR-UnitTest --config Release)",
|
||||
"Bash(cmake --build C:/Projects/CLionProjects/ANSCORE/cmake-build-release --target ANSLPR-UnitTest)",
|
||||
"Bash('C:/Program Files/Microsoft Visual Studio/2022/Community/Common7/Tools/VsDevCmd.bat' -arch=amd64)",
|
||||
"Bash(cmake -B C:/Projects/CLionProjects/ANSCORE/cmake-build-release -S C:/Projects/CLionProjects/ANSCORE -G Ninja -DCMAKE_BUILD_TYPE=Release)",
|
||||
"Bash(cmd //C \"call \"\"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\VC\\\\Auxiliary\\\\Build\\\\vcvarsall.bat\"\" amd64 >nul 2>&1 && cmake --build C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release --target ANSLPR-UnitTest\")",
|
||||
"Bash(1 EOF cmd /C C:tmpbuild.bat)",
|
||||
"Read(//tmp/**)",
|
||||
"Bash(\"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat\" amd64)",
|
||||
"Bash(export INCLUDE=\"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/include;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/ucrt;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/um;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/shared;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/winrt;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/cppwinrt\" export LIB=\"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/lib/x64;C:/Program Files \\(x86\\)/Windows Kits/10/Lib/10.0.26100.0/ucrt/x64;C:/Program Files \\(x86\\)/Windows Kits/10/Lib/10.0.26100.0/um/x64\" cmake --build \"C:/Projects/CLionProjects/ANSCORE/cmake-build-release\" --target ANSLPR-UnitTest)",
|
||||
"Bash(tasklist)",
|
||||
"Bash(taskkill /F /IM ANSLPR-UnitTest.exe)",
|
||||
"Bash(export \"INCLUDE=C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/include;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/ucrt;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/um;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/shared;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/winrt;C:/Program Files \\(x86\\)/Windows Kits/10/Include/10.0.26100.0/cppwinrt\")",
|
||||
"Bash(export \"LIB=C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.44.35207/lib/x64;C:/Program Files \\(x86\\)/Windows Kits/10/Lib/10.0.26100.0/ucrt/x64;C:/Program Files \\(x86\\)/Windows Kits/10/Lib/10.0.26100.0/um/x64\")",
|
||||
"Bash(grep -E \"\\\\.\\(cpp|h|hpp\\)$\")",
|
||||
"Bash(find /c/Projects/CLionProjects/ANSCORE -name *Logger* -type f)",
|
||||
"Bash(find /c/Projects/CLionProjects/ANSCORE -name *SPDLogger* -o -name *ANSLogger*)",
|
||||
"Bash(grep -v \"\\\\[EzMemoryManagerPlugin\\\\]\\\\|filesystem_win\\\\|at System\\\\|at NationalInstruments\\\\|Memory Leak Tracking\\\\|System\\\\.Argument\\\\|DNError\\\\|Parameter name\\\\|Inner Exception\\\\|^[0-9]*\t[0-9.]*\t[0-9]*\t$\" \"C:/Users/nghia/Downloads/ANSLEGION1.log\")",
|
||||
"Bash(grep -v \"^$\")",
|
||||
"Bash(grep -v \"^[^\t]*\t[^\t]*\t18924\t *$\")",
|
||||
"Bash(dumpbin //EXPORTS \"C:/ProgramData/ANSCENTER/Shared/ANSLicensingSystem.dll\")",
|
||||
"Bash(\"/c/Program Files \\(x86\\)/Windows Kits/10/bin/10.0.26100.0/x64/dumpbin.exe\" //EXPORTS \"C:/ProgramData/ANSCENTER/Shared/ANSLicensingSystem.dll\")",
|
||||
"Bash(\"/c/Program Files \\(x86\\)/Windows Kits/10/bin/10.0.26100.0/x64/dumpbin.exe\" /EXPORTS \"C:/ProgramData/ANSCENTER/Shared/ANSLicensingSystem.dll\")",
|
||||
"Bash(\"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/dumpbin.exe\" /EXPORTS \"C:/ProgramData/ANSCENTER/Shared/ANSLicensingSystem.dll\")",
|
||||
"Bash(\"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.16.27023/bin/HostX64/x64/dumpbin.exe\" //EXPORTS \"C:/ProgramData/ANSCENTER/Shared/ANSLicensingSystem.dll\")",
|
||||
"Read(//c/Program Files/ANSCENTER/**)",
|
||||
"Bash(powershell.exe -NoProfile -Command \"[System.Environment]::GetEnvironmentVariable\\('PATH','Machine'\\) -split ';' | Select-String -Pattern 'ANSCENTER|Shared'\")",
|
||||
"Bash(cmd.exe //c 'dir /AL \"C:\\\\Program Files\\\\ANSCENTER\\\\ANSVIS\\\\data\" 2>&1 | findstr /i \"junction symlink\"')",
|
||||
"Bash(cmd.exe //c 'dir /AL \"C:\\\\Program Files\\\\ANSCENTER\\\\ANSVIS\\\\data\"')",
|
||||
"PowerShell(Get-ChildItem \"C:\\\\Program Files\\\\ANSCENTER\\\\ANSVIS\\\\data\" -Force | Where-Object { $_.LinkType } | Select-Object Name, LinkType, Target | Format-Table -AutoSize)",
|
||||
"Bash(awk '{print \"start: \"$2\"s\"}')",
|
||||
"Bash(awk '{print \"end: \"$2\"s\"}')",
|
||||
"Bash(awk '{ *)",
|
||||
"Bash(awk '{v[NR]=$1} END {asort\\(v\\); n=length\\(v\\); printf \"count=%d\\\\nmedian=%.1fms\\\\np90=%.1fms\\\\np95=%.1fms\\\\np99=%.1fms\\\\nmax=%.1fms\\\\n\", n, v[int\\(n*0.5\\)], v[int\\(n*0.9\\)], v[int\\(n*0.95\\)], v[int\\(n*0.99\\)], v[n]}')",
|
||||
"Bash(awk '{v[NR]=$1} END {asort\\(v\\); n=length\\(v\\); printf \"slow_inf_count=%d \\(over %d total inferences = %.1f%%\\)\\\\nmedian=%.1fms max=%.1fms\\\\n\", n, 10456, 100.0*n/10456, v[int\\(n*0.5\\)], v[n]}')",
|
||||
"Bash(awk '{v[NR]=$1} END {asort\\(v\\); n=length\\(v\\); if\\(n>0\\){printf \"slow_getImage_count=%d median=%.1fms max=%.1fms\\\\n\", n, v[int\\(n*0.5\\)], v[n]}}')",
|
||||
"Bash(awk -F= '{print $2}')",
|
||||
"Bash(git -C \"C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\" status --short engines/ONNXEngine/ONNXEngine.cpp)",
|
||||
"Bash(git -C \"C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\" diff engines/ONNXEngine/ONNXEngine.cpp)",
|
||||
"Bash(git -C \"C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\" status --short)",
|
||||
"Bash(grep -E \"\\\\.\\(cpp|h\\)$\")",
|
||||
"Bash(awk '{print \"MEDIA_Leak heartbeats: \"$1}')",
|
||||
"Bash(awk '{print \"ANSMOT heartbeats: \"$1}')",
|
||||
"Bash(awk '{print \"PROC_MEM samples: \"$1}')",
|
||||
"Bash(awk 'NR==1 || NR%15==0 { *)",
|
||||
"Bash(awk 'NR==1 || NR%10==0 || NR==78 {print}')",
|
||||
"Bash(sort -t= -k2 -n)",
|
||||
"Bash(awk ' *)",
|
||||
"Bash(sort -k3 -t= -n)",
|
||||
"Bash(awk '{print \"MEDIA_Leak: \"$1}')",
|
||||
"Bash(awk '{print \"BYTETracker heartbeats: \"$1}')",
|
||||
"Bash(awk '{print \"PROC_MEM: \"$1}')",
|
||||
"Bash(sort -k2 -t= -n)",
|
||||
"Bash(awk 'NR==1 || NR%30==0 || NR==571 { *)",
|
||||
"Bash(awk 'NR==2 || NR==80 || NR==160 || NR==240 || NR==285 {print}')",
|
||||
"Bash(grep -n \"^\\\\s*return\\\\s\\\\+\\\\\\(true\\\\|false\\\\\\);$\\\\|^}\\\\s*$\" C:/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/EngineRunInference.inl)",
|
||||
"Bash(awk '$1 > 267 && $1 < 1100')",
|
||||
"Bash(awk 'NR>267 && /^}/ {print NR\": \"$0; c++; if\\(c>=3\\)exit}' C:/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/EngineRunInference.inl)",
|
||||
"Bash(awk '{print \"TRT_Leak: \"$1}')",
|
||||
"Bash(awk '{print \"Pool_Leak: \"$1}')",
|
||||
"Bash(awk '{print \"BYTETracker: \"$1}')",
|
||||
"Bash(awk 'NR==1 || NR%70==0 || NR==889 { *)",
|
||||
"Read(//c/Users/nghia/Downloads/**)",
|
||||
"Bash(find C:ProjectsCLionProjectsANSCORE -name *NV12* -type f)",
|
||||
"Bash(find C:ProjectsCLionProjectsANSCORE -name *GpuFrame* -type f)",
|
||||
"mcp__desktop-commander__get_file_info",
|
||||
"mcp__desktop-commander__interact_with_process",
|
||||
"Bash(sort -t= -k2 -rn)",
|
||||
"Bash(sort -t= -k3 -rn)",
|
||||
"Bash(powershell -Command \"Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logdebug.txt'' | Select-Object -Last 30\")",
|
||||
"Bash(powershell -Command \"\\(Select-String -Path ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logdebug.txt'' -Pattern ''POOL FULL''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Select-String -Path ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logdebug.txt'' -Pattern ''Cam\\(\\\\d+\\)'' -AllMatches | ForEach-Object { $_Matches } | ForEach-Object { $_Groups[1].Value } | Sort-Object -Unique\\)\")",
|
||||
"Bash(powershell -Command \"Select-String -Path ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logdebug.txt'' -Pattern ''Cam\\(\\\\d+\\)'' -AllMatches | ForEach-Object { $_Matches[0].Groups[1].Value } | Sort-Object | Get-Unique\")",
|
||||
"Bash(powershell -Command \"$lines = Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logdebug.txt''; $first = \\($lines | Select-String ''07:1'' | Select-Object -First 1\\).Line; $last = \\($lines | Select-String ''07:1'' | Select-Object -Last 1\\).Line; Write-Host ''First: '' $first; Write-Host ''Last: '' $last; Write-Host ''Total lines: '' $lines.Count\")",
|
||||
"Bash(powershell -Command \"$c = \\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logdebug.txt''\\).Count; Write-Host ''Total lines:'' $c\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logdebug1.txt''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION20.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION21.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"Select-String ''NEW slot'' ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION22.log'' | ForEach-Object { if \\($_-match ''\\(\\\\d+x\\\\d+\\)''\\) { $matches[1] } } | Group-Object | Sort-Object Count -Descending | Format-Table Name, Count\")",
|
||||
"Bash(ls -la /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.cpp /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.h)",
|
||||
"Bash(grep -r \"cudaMalloc\\\\|cudaFree\\\\|cudaStreamCreate\\\\|cudaStreamDestroy\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.cpp)",
|
||||
"Bash(grep -n \"cudaStreamCreate\\\\|cudaEventCreate\\\\|cudaEventDestroy\\\\|cudaStreamDestroy\\\\|cudaStreamSynchronize\" /c/Projects/CLionProjects/ANSCORE/engines/TensorRTAPI/include/engine/*.inl)",
|
||||
"Bash(dir \"C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\engines\\\\TensorRTAPI\\\\include\\\\engine\\\\*.h\" /b)",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION26.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION27.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION28.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION29.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION30.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\logging4.txt''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION31.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\loging5.txt''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION32.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION33.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION34.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION35.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION36.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION37.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION38.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION39.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION40.log''\\).Count\")",
|
||||
"Bash(python -c \":*)",
|
||||
"Bash(find /c/Projects/CLionProjects/ANSCORE -type d -name *ANSODEngine*)",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION41.log''\\).Count\")",
|
||||
"Bash(powershell -Command \"\\(Get-Content ''C:\\\\Users\\\\nghia\\\\Downloads\\\\ANSLEGION42.log''\\).Count\")",
|
||||
"Bash(grep -rn \"ApplyTracking\\\\|_trackerEnabled\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.cpp)",
|
||||
"Bash(cmake --build build --target ANSUtilities)",
|
||||
"Bash(ls -d /c/Projects/CLionProjects/ANSCORE/cmake-build-* /c/Projects/CLionProjects/ANSCORE/out/*)",
|
||||
"Bash(cmake --build /c/Projects/CLionProjects/ANSCORE/cmake-build-release --target ANSUtilities)",
|
||||
"Bash(find /c/Projects/CLionProjects/ANSCORE -name *json* -o -name *Json*)",
|
||||
"Bash(grep -n \"CreateANSALPRHandle\\\\|LoadANSALPREngineHandle\\\\|CreateANSRTSPHandle\\\\|ReleaseANSALPRHandle\\\\|ANSALPR_RunInference\" C:ProjectsCLionProjectsANSCOREsrc*)",
|
||||
"Bash(find C:ProjectsCLionProjectsANSCORE -name ANSLibsLoader* -type f)",
|
||||
"Bash(find \"/c/Projects/CLionProjects/ANSCORE\" -type f \\\\\\( -name \"*.cpp\" -o -name \"*.h\" \\\\\\) -exec grep -l \"DML\\\\|DirectML\" {} \\\\;)",
|
||||
"Read(//c/ANSLibs/onnxruntime/lib//**)",
|
||||
"Read(//c/ANSLibs/onnxruntime/include//**)",
|
||||
"Read(//c/ANSLibs/onnxruntime/lib/**)",
|
||||
"Read(//c/ANSLibs/onnxruntime/**)",
|
||||
"Bash(python -c ':*)",
|
||||
"Bash(grep -oE \"WATCHDOG-[0-9-]+\\\\.dmp|Minidump\\\\\\\\\\\\\\\\[0-9-]+\\\\.dmp\" \"C:\\\\Users\\\\nghia\\\\Downloads\\\\AMDeventlog3.xml\")",
|
||||
"Bash(grep -oE \"\\\\\\\\\\\\\\\\Minidump\\\\\\\\\\\\\\\\[^<]+\\\\.dmp\" \"C:\\\\Users\\\\nghia\\\\Downloads\\\\AMDeventlog3.xml\")",
|
||||
"mcp__desktop-commander__start_search",
|
||||
"mcp__desktop-commander__get_more_search_results",
|
||||
"mcp__desktop-commander__list_searches",
|
||||
"Bash(grep -oE \"Faulting[^<]{1,500}|APPLICATION CRASHING[^<]{1,300}|EventID[^>]*>1000[^<]*|ExceptionCode[^<]{1,100}|onnxruntime[^<]{1,300}\" \"C:\\\\Users\\\\nghia\\\\Downloads\\\\Evenlog.xml\")",
|
||||
"mcp__desktop-commander__start_process",
|
||||
"Bash(grep -oE \"Faulting[^<]{1,600}|ExceptionCode[^<]{1,100}|FaultingOffset[^<]{1,60}|FaultingModule[^<]{1,200}\" \"C:\\\\Users\\\\nghia\\\\Downloads\\\\Evenlog2.xml\")",
|
||||
"Bash(grep -aoE \"Faulting[^<]{1,600}\" \"C:\\\\Users\\\\nghia\\\\Downloads\\\\Evenlog2.xml\")",
|
||||
"Bash(where python:*)",
|
||||
"Bash(grep -aoE \"Faulting[^<]{1,700}|ExceptionCode'[^<]{1,60}|FaultingOffset'[^<]{1,60}\" 'C:/Users/nghia/Downloads/Evenlog3.xml')",
|
||||
"Bash(ls modules/ANSLPR/*.cpp modules/ANSLPR/*.h)",
|
||||
"Bash(grep -l \"ANSALPR_RT\\\\|ANSALPR_OV\" modules/ANSLPR/*.vcxproj)",
|
||||
"Bash(grep -l \"anscv_vendor_gate::IsNvidiaGpuAvailable\\\\|ANSCVVendorGate.h\" modules/ANSCV/*.cpp modules/ANSCV/*.h)",
|
||||
"Bash(grep -l \"CUDA_V2\\\\|CUDAExecutionProvider\" modules/ANSODEngine/*.cpp)",
|
||||
"Bash(python3 -c \"x=3522082959360; print\\('bytes:', x\\); print\\('/3:', x//3\\); print\\('sqrt\\(x/3\\):', int\\(\\(x//3\\)**0.5\\)\\); print\\('/\\(640*3\\):', x//\\(640*3\\)\\); print\\('/\\(640*640*3\\):', x//\\(640*640*3\\)\\); print\\('hex:', hex\\(x\\)\\)\")",
|
||||
"Bash(grep -rn \"catch.*cv::Exception\" modules/ANSODEngine/*.cpp)",
|
||||
"Bash(grep -l \"ANS_DBG\" modules/ANSLPR/*.cpp modules/ANSCV/*.cpp modules/ANSODEngine/*.cpp)",
|
||||
"Bash(grep -h \"ANS_DBG\\(\\\\\"\" modules/ANSLPR/*.cpp modules/ANSCV/ANSRTSP.cpp modules/ANSODEngine/ANSONNXYOLO.cpp modules/ANSODEngine/ANSRTYOLO.cpp modules/ANSODEngine/NV12PreprocessHelper.cpp)",
|
||||
"Bash(grep -v \"DNError\\\\|ViewerConfigPath\\\\|Failed to get\\\\|RecursiveDirectory\\\\|qt.qpa\\\\|DispBroker\\\\|SyncInvokeTable\\\\|Created new AppDomain\\\\|Destroying AppDomain\\\\|Trace Start\\\\|ExpandNode\\\\|PublisherMetadata\\\\|at System\\\\.\\\\|at NationalInstruments\\\\|at Mscorlib\\\\|Parameter name\\\\|^[[:space:]]*$\\\\|ArgumentException\\\\|Wrong type\\\\|Concerning target\\\\|Unable to get\\\\|RenderEventToBuffer\\\\|Getting next\\\\|Fetching Next\\\\|Image.Dispose\\\\|Graphics.Dispose\\\\|Image.FromStream\\\\|Inner Exception\\\\|FontFamily\\\\|InitHash\\\\|get_Item\\\\|MethodHandle.InvokeMethod\\\\|RuntimeMethodInfo\\\\|TargetInvocationException\\\\|Hashtable\\\\|LookupControl\\\\|RemoveControl\\\\|CloseInstance\\\\|FreeInstance\\\\|CrossDomainServer\" \"C:/Users/nghia/Downloads/AVNET-8845HS1.log\")",
|
||||
"Bash(grep -E \"\\\\.\\(h|cpp\\)$\")",
|
||||
"WebSearch",
|
||||
"WebFetch(domain:forums.ni.com)",
|
||||
"WebFetch(domain:www.ni.com)",
|
||||
"WebFetch(domain:lavag.org)",
|
||||
"Read(//c/ProgramData/**)",
|
||||
"Read(//c/Users/nghia/**)",
|
||||
"Bash(dir /s /b \"C:\\\\Program Files\\\\National Instruments\\\\*NIImage*\" \"C:\\\\Program Files\\\\National Instruments\\\\*OpenCV*\")",
|
||||
"Bash(dir /s /b \"C:\\\\Program Files \\(x86\\)\\\\National Instruments\\\\Vision\\\\*OpenCV*\")",
|
||||
"Bash(dir /s /b \"C:\\\\Program Files \\(x86\\)\\\\National Instruments\\\\Vision\\\\Help\\\\*\")",
|
||||
"Bash(findstr /i \"opencv\")",
|
||||
"WebFetch(domain:documentation.help)",
|
||||
"Bash(python /tmp/apply_guards.py)",
|
||||
"Bash(python /tmp/apply_all_guards.py)",
|
||||
"Bash(python /tmp/cleanup_redundant_checks.py)",
|
||||
"Bash(python /tmp/final_cleanup.py)",
|
||||
"Bash(grep -n \"ANSFRBase\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.h /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.cpp)",
|
||||
"Bash(grep -n \"class.*public ANSFRBase\\\\|class.*: public ANSFRBase\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.h)",
|
||||
"Bash(grep -n \"class.*public.*FaceDetector\\\\|class.*public ANSFDBase\\\\|struct.*public\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.h)",
|
||||
"Bash(grep -l \"ANSFRBase\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.h)",
|
||||
"Bash(grep -rn \"public ANSFRBase\" /c/Projects/CLionProjects/ANSCORE/modules/ANSODEngine/*.h)",
|
||||
"Bash(python /tmp/apply_fd_guards.py)",
|
||||
"Bash(python /tmp/apply_fd_precheck.py)",
|
||||
"Bash(ls /c/Projects/CLionProjects/ANSCORE/modules/ANSFR/*.cpp /c/Projects/CLionProjects/ANSCORE/modules/ANSFR/*.h)",
|
||||
"Bash(grep -rn \"lock_guard.*_mutex\\\\|lock_guard.*mutex\" /c/Projects/CLionProjects/ANSCORE/modules/ANSFR/*.cpp)",
|
||||
"Bash(grep -l \"TensorRT\\\\|tensorrt_provider_factory\\\\|OrtTensorRTProviderOptionsV2\\\\|CreateTensorRTProviderOptions\\\\|UpdateTensorRTProviderOptions\" \"C:/ANSLibs/onnxruntime/include/\"*.h)",
|
||||
"Bash(cmake --build . --target ONNXEngine ANSOCR ANSLPR ANSLPR-UnitTest --config Release -- -j 4)",
|
||||
"Bash(cmake --build . --target help)",
|
||||
"Bash(cmake --build . --target ANSLPR-UnitTest)",
|
||||
"Bash(cmd.exe /c \"call \\\\\"C:\\\\\\\\Program Files\\\\\\\\Microsoft Visual Studio\\\\\\\\2022\\\\\\\\Community\\\\\\\\VC\\\\\\\\Auxiliary\\\\\\\\Build\\\\\\\\vcvars64.bat\\\\\" >nul 2>&1 && cmake --build . --target ANSLPR-UnitTest 2>&1\")",
|
||||
"Bash(cmd.exe //c \"cd /d C:\\\\\\\\Projects\\\\\\\\CLionProjects\\\\\\\\ANSCORE\\\\\\\\cmake-build-release && call \\\\\"C:\\\\\\\\Program Files\\\\\\\\Microsoft Visual Studio\\\\\\\\2022\\\\\\\\Community\\\\\\\\VC\\\\\\\\Auxiliary\\\\\\\\Build\\\\\\\\vcvars64.bat\\\\\" && cmake --build . --target ANSLPR-UnitTest\")",
|
||||
"Bash(cmd.exe //c \"C:\\\\\\\\Projects\\\\\\\\CLionProjects\\\\\\\\ANSCORE\\\\\\\\cmake-build-release\\\\\\\\__build_check.bat\")",
|
||||
"Bash(cmd.exe //c \"tasklist\")",
|
||||
"Bash(cmd.exe //c \"taskkill /F /PID 45704\")",
|
||||
"Bash(ls CMakeLists.txt cmake-build-* build)",
|
||||
"Bash(cmake --build . --target ANSOCR)",
|
||||
"Bash(cmd.exe /c '\"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\VC\\\\Auxiliary\\\\Build\\\\vcvars64.bat\" >nul 2>&1 && cd cmake-build-release && cmake --build . --target ANSOCR 2>&1')",
|
||||
"Bash(cmd.exe /c 'call \"C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\VC\\\\Auxiliary\\\\Build\\\\vcvars64.bat\" && cd cmake-build-release && cmake --build . --target ANSOCR 2>&1')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; Set-Location '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release'\\\\''; cmake --build . --target ANSOCR 2>&1 | Select-Object -Last 60 }')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; Set-Location '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release'\\\\''; cmake --build . --target ANSLPR 2>&1 | Select-Object -Last 40 }')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; Set-Location '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release'\\\\''; cmake --build . --target ANSLPR 2>&1 | Select-Object -Last 30 }')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; dumpbin /exports '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release\\\\bin\\\\ANSLPR.dll'\\\\'' 2>&1 | Select-String '\\\\''RunInferencesBatch'\\\\'' }')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; dumpbin /exports '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release\\\\bin\\\\ANSLPR.dll'\\\\'' 2>&1 | Select-String '\\\\''RunInferencesBatch|RectifyPlateROI|RecoverKanaFromBottomHalf'\\\\'' }')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; Set-Location '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release'\\\\''; cmake --build . --target ANSLPR 2>&1 | Select-Object -Last 20 }')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; Set-Location '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release'\\\\''; \\(Get-Item '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\modules\\\\ANSLPR\\\\ANSLPR_OCR.cpp'\\\\''\\).LastWriteTime; \\(Get-Item '\\\\''.\\\\bin\\\\ANSLPR.dll'\\\\''\\).LastWriteTime }')",
|
||||
"Bash(powershell -Command \"\\(Get-Item 'C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\modules\\\\ANSLPR\\\\ANSLPR_OCR.cpp'\\).LastWriteTime = Get-Date\")",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; Set-Location '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release'\\\\''; cmake --build . --target ANSLPR 2>&1 | Select-Object -Last 8 }')",
|
||||
"Bash(powershell -Command '& { & '\\\\''C:\\\\Program Files\\\\Microsoft Visual Studio\\\\2022\\\\Community\\\\Common7\\\\Tools\\\\Launch-VsDevShell.ps1'\\\\'' -Arch amd64 -HostArch amd64 > $null 2>&1; Set-Location '\\\\''C:\\\\Projects\\\\CLionProjects\\\\ANSCORE\\\\cmake-build-release'\\\\''; cmake --build . --target ANSLPR 2>&1 | Select-Object -Last 6 }')",
|
||||
"Bash(tasklist /M ANSLPR.dll)",
|
||||
"Bash(cmd.exe /c \"tasklist /M ANSLPR.dll\")",
|
||||
"Read(//c/ANSLibs/**)",
|
||||
"Read(//c/ANSLibs/ffmpeg/**)",
|
||||
"Bash(where ffmpeg:*)",
|
||||
"Bash(grep -n \"ImagesToMP4FF\\\\|//bool ANSOPENCV::ImagesToMP4\" \"C:/Projects/CLionProjects/ANSCORE/modules/ANSCV/ANSOpenCV.cpp\")",
|
||||
"Read(//c/Windows/System32/**)",
|
||||
"Read(//c//**)",
|
||||
"Bash(\"C:/ANSLibs/ffmpeg-n8.1/bin/ffmpeg.exe\" -version)",
|
||||
"Bash(\"C:/ANSLibs/ffmpeg-n8.1/bin/ffmpeg.exe\" -hide_banner -encoders)",
|
||||
"Bash(find \"C:/Projects/CLionProjects/ANSCORE/MediaClient\" -name \"*.h\" -exec grep -l \"AVFrame\\\\|AVCodec[A-Z]\\\\|AVFormatContext\\\\|AVPacket\\\\|AVStream\\\\b\" {} \\\\;)",
|
||||
"Bash(grep -l \"AVFrame\\\\|AVCodecContext\\\\|AVFormatContext\\\\|AVPacket\\\\|AVStream\" \"C:/Projects/CLionProjects/ANSCORE/MediaClient/media/\"*.h)",
|
||||
"Bash(\"C:/ANSLibs/ffmpeg-n8.1/bin/ffmpeg.exe\" -hide_banner -decoders)",
|
||||
"Bash(\"C:/ANSLibs/ffmpeg-n8.1/bin/ffmpeg.exe\" -hide_banner -protocols)",
|
||||
"Bash(\"C:/ANSLibs/ffmpeg-n8.1/bin/ffmpeg.exe\" -hide_banner -formats)"
|
||||
"Bash(awk '{print \"OCR_Leak: \"$1}')",
|
||||
"Bash(awk 'NR==1 || NR%20==0 || NR==157 { *)",
|
||||
"Bash(xargs file *)",
|
||||
"Bash(xargs grep *)",
|
||||
"Bash(awk '{print \"BYTETracker heartbeat: \"$1}')",
|
||||
"Bash(awk 'NR==1 || NR%30==0 || NR==352 { *)",
|
||||
"Bash(awk '{for\\(i=1;i<=NF;i++\\){if\\($i~/total=/\\)print substr\\($i, index\\($i,\"=\"\\)+1\\)}}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"YOLO_Timing total ms: n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk '{for\\(i=1;i<=NF;i++\\){if\\($i~/preproc=/\\)print substr\\($i, index\\($i,\"=\"\\)+1\\)}}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"YOLO_Timing preproc ms: n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk '{for\\(i=1;i<=NF;i++\\){if\\($i~/inf=/\\)print substr\\($i, index\\($i,\"=\"\\)+1\\)}}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"YOLO_Timing inference ms: n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"MEDIA_Timing getImage total ms: n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk '{for\\(i=1;i<=NF;i++\\){if\\($i~/pull=/\\)print substr\\($i, index\\($i,\"=\"\\)+1\\)}}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"MEDIA_Timing pull ms: n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk '{for\\(i=1;i<=NF;i++\\){if\\($i~/convert=/\\)print substr\\($i, index\\($i,\"=\"\\)+1\\)}}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"MEDIA_Timing convert ms: n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk '{print $2}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"TRT_Slow timestamps \\(sec\\): n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk -F'total=' '{print $2}')",
|
||||
"Bash(awk '{print $1}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"TRT_Slow total ms: n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{p50=int\\(c*0.50\\); p95=int\\(c*0.95\\); p99=int\\(c*0.99\\); print \"SLOW memcpy timestamps \\(sec\\): n=\"c, \"p50=\"a[p50], \"p95=\"a[p95], \"p99=\"a[p99], \"max=\"a[c-1]}')",
|
||||
"Bash(awk -F. '{print int\\($1/100\\)}')",
|
||||
"Bash(awk -F' ' '{print $3}')",
|
||||
"Bash(awk '$1 > 200')",
|
||||
"Bash(awk -F'net=' '{print $2}')",
|
||||
"Bash(awk -F'bytesMB=' '{print $2}')",
|
||||
"Bash(awk -F'bytesMB=' '{gsub\\(/[^0-9.]/,\"\",$2\\); print $2}')",
|
||||
"Bash(awk -F'ids_tot=' '{print $2}')",
|
||||
"Bash(dumpbin /symbols \"C:/Projects/CLionProjects/ANSCORE/cmake-build-release/bin/ANSCV.dll\")",
|
||||
"Bash(mkdir -p \"C:/ProgramData/ANSCENTER\")",
|
||||
"Bash(touch \"C:/ProgramData/ANSCENTER/ansvisdebugview.txt\")",
|
||||
"Read(//c/ProgramData/ANSCENTER/**)",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{printf \"YOLO_total: n=%d p50=%.1f p95=%.1f p99=%.1f max=%.1f\\\\n\", c, a[int\\(c*0.5\\)], a[int\\(c*0.95\\)], a[int\\(c*0.99\\)], a[c-1]}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{printf \"YOLO_preproc: n=%d p50=%.1f p95=%.1f p99=%.1f max=%.1f\\\\n\", c, a[int\\(c*0.5\\)], a[int\\(c*0.95\\)], a[int\\(c*0.99\\)], a[c-1]}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{printf \"YOLO_inf: n=%d p50=%.1f p95=%.1f p99=%.1f max=%.1f\\\\n\", c, a[int\\(c*0.5\\)], a[int\\(c*0.95\\)], a[int\\(c*0.99\\)], a[c-1]}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{printf \"MEDIA_total: n=%d p50=%.2f p95=%.2f p99=%.2f max=%.2f\\\\n\", c, a[int\\(c*0.5\\)], a[int\\(c*0.95\\)], a[int\\(c*0.99\\)], a[c-1]}')",
|
||||
"Bash(awk 'BEGIN{c=0}{a[c++]=$1}END{printf \"MEDIA_convert: n=%d p50=%.2f p95=%.2f p99=%.2f max=%.2f\\\\n\", c, a[int\\(c*0.5\\)], a[int\\(c*0.95\\)], a[int\\(c*0.99\\)], a[c-1]}')",
|
||||
"Bash(python -c ' *)",
|
||||
"Bash(python)",
|
||||
"Bash(git config *)",
|
||||
"Bash(git submodule *)",
|
||||
"Bash(git rm *)",
|
||||
"Bash(rm -rf .git/modules/3rdparty/libyuv)",
|
||||
"Bash(git add *)",
|
||||
"Read(//c/ProgramData/Jh7O7nUe7vS/Models/EngineModels/B-IN_ANS_VehicleDetection_v2.0_67345015/**)",
|
||||
"Bash(xxd)",
|
||||
"Bash(icacls \"C:\\\\ProgramData\\\\Jh7O7nUe7vS\\\\Models\\\\EngineModels\\\\B-IN_ANS_VehicleDetection_v2.0_67345015\\\\train_last.onnx\")"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
6
3rdparty/libyuv/.clang-format
vendored
Normal file
6
3rdparty/libyuv/.clang-format
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# Defines the Chromium style for automatic reformatting.
|
||||
# http://clang.llvm.org/docs/ClangFormatStyleOptions.html
|
||||
BasedOnStyle: Chromium
|
||||
---
|
||||
Language: Java
|
||||
BasedOnStyle: Google
|
||||
37
3rdparty/libyuv/.gitignore
vendored
Normal file
37
3rdparty/libyuv/.gitignore
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
*.pyc
|
||||
.landmines
|
||||
pin-log.txt
|
||||
/base
|
||||
/build
|
||||
/buildtools
|
||||
/google_apis
|
||||
/links
|
||||
/links.db
|
||||
/ios
|
||||
/mojo
|
||||
/native_client
|
||||
/net
|
||||
/out
|
||||
/unit_test/out
|
||||
/source/out
|
||||
/sde-avx-sse-transition-out.txt
|
||||
/testing
|
||||
/third_party
|
||||
/tools
|
||||
|
||||
# Files generated by CMake build
|
||||
cmake_install.cmake
|
||||
CMakeCache.txt
|
||||
CMakeFiles/
|
||||
yuvconvert
|
||||
libgtest.a
|
||||
libyuv.a
|
||||
libyuv_unittest
|
||||
|
||||
# Files generated by winarm.mk build
|
||||
libyuv_arm.lib
|
||||
source/*.o
|
||||
|
||||
# Files generated by perf
|
||||
perf.data
|
||||
perf.data.old
|
||||
40
3rdparty/libyuv/.gn
vendored
Normal file
40
3rdparty/libyuv/.gn
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
# Copyright 2015 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
import("//build/dotfile_settings.gni")
|
||||
|
||||
# The location of the build configuration file.
|
||||
buildconfig = "//build/config/BUILDCONFIG.gn"
|
||||
|
||||
# The python interpreter to use by default. On Windows, this will look
|
||||
# for python3.exe and python3.bat.
|
||||
script_executable = "python3"
|
||||
|
||||
# The secondary source root is a parallel directory tree where
|
||||
# GN build files are placed when they can not be placed directly
|
||||
# in the source tree, e.g. for third party source trees.
|
||||
secondary_source = "//build/secondary/"
|
||||
|
||||
# These are the targets to check headers for by default. The files in targets
|
||||
# matching these patterns (see "gn help label_pattern" for format) will have
|
||||
# their includes checked for proper dependencies when you run either
|
||||
# "gn check" or "gn gen --check".
|
||||
check_targets = [ "//libyuv/*" ]
|
||||
|
||||
# These are the list of GN files that run exec_script. This allowlist exists
|
||||
# to force additional review for new uses of exec_script, which is strongly
|
||||
# discouraged except for gypi_to_gn calls.
|
||||
exec_script_allowlist = build_dotfile_settings.exec_script_allowlist +
|
||||
[ "//build_overrides/build.gni" ]
|
||||
|
||||
default_args = {
|
||||
mac_sdk_min = "10.12"
|
||||
ios_deployment_target = "12.0"
|
||||
# Use Siso instead of Ninja.
|
||||
use_siso = true
|
||||
}
|
||||
410
3rdparty/libyuv/.vpython3
vendored
Normal file
410
3rdparty/libyuv/.vpython3
vendored
Normal file
@@ -0,0 +1,410 @@
|
||||
# This is a vpython "spec" file.
|
||||
#
|
||||
# It describes patterns for python wheel dependencies of the python scripts in
|
||||
# the chromium repo, particularly for dependencies that have compiled components
|
||||
# (since pure-python dependencies can be easily vendored into third_party).
|
||||
#
|
||||
# When vpython is invoked, it finds this file and builds a python VirtualEnv,
|
||||
# containing all of the dependencies described in this file, fetching them from
|
||||
# CIPD (the "Chrome Infrastructure Package Deployer" service). Unlike `pip`,
|
||||
# this never requires the end-user machine to have a working python extension
|
||||
# compilation environment. All of these packages are built using:
|
||||
# https://chromium.googlesource.com/infra/infra/+/main/infra/tools/dockerbuild/
|
||||
#
|
||||
# All python scripts in the repo share this same spec, to avoid dependency
|
||||
# fragmentation.
|
||||
#
|
||||
# If you have depot_tools installed in your $PATH, you can invoke python scripts
|
||||
# in this repo by running them as you normally would run them, except
|
||||
# substituting `vpython` instead of `python` on the command line, e.g.:
|
||||
# vpython path/to/script.py some --arguments
|
||||
#
|
||||
# Read more about `vpython` and how to modify this file here:
|
||||
# https://chromium.googlesource.com/infra/infra/+/main/doc/users/vpython.md
|
||||
|
||||
python_version: "3.11"
|
||||
|
||||
# The default set of platforms vpython checks does not yet include mac-arm64.
|
||||
# Setting `verify_pep425_tag` to the list of platforms we explicitly must support
|
||||
# allows us to ensure that vpython specs stay mac-arm64-friendly
|
||||
verify_pep425_tag: [
|
||||
{python: "cp311", abi: "cp311", platform: "manylinux1_x86_64"},
|
||||
{python: "cp311", abi: "cp311", platform: "linux_arm64"},
|
||||
|
||||
{python: "cp311", abi: "cp311", platform: "macosx_10_10_intel"},
|
||||
{python: "cp311", abi: "cp311", platform: "macosx_11_0_arm64"},
|
||||
|
||||
{python: "cp311", abi: "cp311", platform: "win32"},
|
||||
{python: "cp311", abi: "cp311", platform: "win_amd64"}
|
||||
]
|
||||
|
||||
# Used by:
|
||||
# build/android/pylib/local/emulator/avd.py
|
||||
# components/policy/test_support/policy_testserver.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/protobuf-py3"
|
||||
version: "version:4.25.1"
|
||||
>
|
||||
|
||||
# TODO(https://crbug.com/898348): Add in necessary wheels as Python3 versions
|
||||
# become available.
|
||||
wheel: <
|
||||
name: "infra/python/wheels/six-py2_py3"
|
||||
version: "version:1.15.0"
|
||||
>
|
||||
|
||||
# Common utilities.
|
||||
# Use the same versions specified by //third_party/catapult/.vpython3 so that
|
||||
# Chromium tests using Telemetry function properly.
|
||||
wheel: <
|
||||
name: "infra/python/wheels/numpy/${vpython_platform}"
|
||||
version: "version:1.23.5.chromium.4"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/psutil/${vpython_platform}"
|
||||
version: "version:5.9.8"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/requests-py3"
|
||||
version: "version:2.31.0"
|
||||
>
|
||||
|
||||
# Used by various python unit tests.
|
||||
wheel: <
|
||||
name: "infra/python/wheels/mock-py2_py3"
|
||||
version: "version:2.0.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/parameterized-py2_py3"
|
||||
version: "version:0.7.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pbr-py2_py3"
|
||||
version: "version:3.0.0"
|
||||
>
|
||||
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pyfakefs-py2_py3"
|
||||
version: "version:3.7.2"
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# build/chromeos/test_runner.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/jsonlines-py2_py3"
|
||||
version: "version:1.2.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/python-dateutil-py2_py3"
|
||||
version: "version:2.9.0"
|
||||
>
|
||||
|
||||
# Used by WPT importer
|
||||
wheel: <
|
||||
name: "infra/python/wheels/charset_normalizer-py3"
|
||||
version: "version:2.0.4"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pyasn1-py2_py3"
|
||||
version: "version:0.4.5"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pyasn1_modules-py2_py3"
|
||||
version: "version:0.2.4"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/rsa-py2_py3"
|
||||
version: "version:3.4.2"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/cachetools-py2_py3"
|
||||
version: "version:2.0.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/uritemplate-py2_py3"
|
||||
version: "version:3.0.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/google-auth-py2_py3"
|
||||
version: "version:1.25.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/googleapis-common-protos-py2_py3"
|
||||
version: "version:1.52.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/google-api-core-py2_py3"
|
||||
version: "version:1.25.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/google-auth-httplib2-py2_py3"
|
||||
version: "version:0.1.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/google-api-python-client-py3"
|
||||
version: "version:2.2.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/oauth2client-py2_py3"
|
||||
version: "version:3.0.0"
|
||||
>
|
||||
|
||||
# Used by Web Platform Tests (WPT) codebase in
|
||||
# //third_party/blink/web_tests/external/wpt/tools/
|
||||
wheel: <
|
||||
name: "infra/python/wheels/html5lib-py2_py3"
|
||||
version: "version:1.0.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/mozdebug-py2_py3"
|
||||
version: "version:0.2"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/mozinfo-py2_py3"
|
||||
version: "version:1.2.2"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/mozlog-py2_py3"
|
||||
version: "version:7.1.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/mozprocess-py2_py3"
|
||||
version: "version:1.2.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/urllib3-py2_py3"
|
||||
version: "version:1.26.6"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/brotli/${vpython_platform}"
|
||||
version: "version:1.0.9"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/blessings-py2_py3"
|
||||
version: "version:1.7"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/mozfile-py2_py3"
|
||||
version: "version:2.0.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/mozterm-py2_py3"
|
||||
version: "version:1.0.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/webencodings-py2_py3"
|
||||
version: "version:0.5.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/certifi-py2_py3"
|
||||
version: "version:2020.11.8"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/chardet-py2_py3"
|
||||
version: "version:3.0.4"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/idna-py2_py3"
|
||||
version: "version:2.8"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/distro-py2_py3"
|
||||
version: "version:1.4.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pillow/linux-amd64_cp311_cp311"
|
||||
version: "version:10.4.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/aioquic/${vpython_platform}"
|
||||
version: "version:1.2.0.chromium.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pyopenssl-py3"
|
||||
version: "version:24.2.1"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/service-identity-py3"
|
||||
version: "version:24.1.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/tzdata-py2_py3"
|
||||
version: "version:2023.4"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pylsqpack/${vpython_platform}"
|
||||
version: "version:0.3.12"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/cryptography/${vpython_platform}"
|
||||
version: "version:43.0.0"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/cffi/${vpython_platform}"
|
||||
version: "version:1.15.1.chromium.2"
|
||||
>
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pycparser-py2_py3"
|
||||
version: "version:2.19"
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# chrome/test/chromedriver/test/run_webdriver_tests.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/iniconfig-py3"
|
||||
version: "version:1.1.1"
|
||||
>
|
||||
|
||||
wheel: <
|
||||
name: "infra/python/wheels/packaging-py2_py3"
|
||||
version: "version:16.8"
|
||||
>
|
||||
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pyparsing-py2_py3"
|
||||
version: "version:2.4.7"
|
||||
>
|
||||
|
||||
wheel: <
|
||||
name: "infra/python/wheels/toml-py3"
|
||||
version: "version:0.10.1"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/pytest-py3"
|
||||
version: "version:6.2.2"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/pytest-asyncio-py3"
|
||||
version: "version:0.14.0"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/attrs-py2_py3"
|
||||
version: "version:20.3.0"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/six-py2_py3"
|
||||
version: "version:1.15.0"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/more-itertools-py2_py3"
|
||||
version: "version:4.1.0"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/pluggy-py3"
|
||||
version: "version:0.13.1"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/py-py2_py3"
|
||||
version: "version:1.10.0"
|
||||
>
|
||||
|
||||
wheel <
|
||||
name: "infra/python/wheels/funcsigs-py2_py3"
|
||||
version: "version:1.0.2"
|
||||
>
|
||||
|
||||
wheel: <
|
||||
name: "infra/python/wheels/atomicwrites-py2_py3"
|
||||
version: "version:1.3.0"
|
||||
>
|
||||
|
||||
wheel: <
|
||||
name: "infra/python/wheels/colorama-py2_py3"
|
||||
version: "version:0.4.1"
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# testing/buildbot/generate_buildbot_json_coveragetest.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/coverage/${vpython_platform}"
|
||||
version: "version:7.3.1"
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# //content/test/gpu
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pathos/${vpython_platform}"
|
||||
version: "version:0.3.0.chromium.2"
|
||||
not_match_tag <
|
||||
abi: "cp27mu"
|
||||
platform: "manylinux1_i686"
|
||||
>
|
||||
not_match_tag <
|
||||
abi: "cp27mu"
|
||||
platform: "linux_mips64"
|
||||
>
|
||||
not_match_tag <
|
||||
abi: "cp27mu"
|
||||
platform: "linux_armv6l"
|
||||
>
|
||||
not_match_tag <
|
||||
abi: "cp27mu"
|
||||
platform: "linux_armv7l"
|
||||
>
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# //tools/infra/find_bad_builds.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pytz-py2_py3"
|
||||
version: "version:2024.1"
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# //third_party/blink/tools/blinkpy/web_tests/port/server_process.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pywin32/${vpython_platform}"
|
||||
version: "version:308"
|
||||
match_tag: <
|
||||
platform: "win32"
|
||||
>
|
||||
match_tag: <
|
||||
platform: "win_amd64"
|
||||
>
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# //content/test/gpu/gpu_tests/color_profile_manager_mac.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pyobjc/${vpython_platform}"
|
||||
version: "version:10.0"
|
||||
match_tag: <
|
||||
platform: "macosx_10_10_intel"
|
||||
>
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# tools/perf/core/results_dashboard.py
|
||||
wheel: <
|
||||
name: "infra/python/wheels/httplib2-py3"
|
||||
version: "version:0.19.1"
|
||||
>
|
||||
|
||||
# Used by:
|
||||
# tools/perf/flakiness_cli
|
||||
wheel: <
|
||||
name: "infra/python/wheels/pandas/${vpython_platform}"
|
||||
version: "version:2.2.3.chromium.1"
|
||||
match_tag: <
|
||||
platform: "win32"
|
||||
>
|
||||
match_tag: <
|
||||
platform: "win_amd64"
|
||||
>
|
||||
match_tag: <
|
||||
platform: "manylinux1_i686"
|
||||
>
|
||||
match_tag: <
|
||||
platform: "manylinux1_x86_64"
|
||||
>
|
||||
match_tag: <
|
||||
platform: "macosx_10_6_intel"
|
||||
>
|
||||
>
|
||||
7
3rdparty/libyuv/AUTHORS
vendored
Normal file
7
3rdparty/libyuv/AUTHORS
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
# Names should be added to this file like so:
|
||||
# Name or Organization <email address>
|
||||
|
||||
Google Inc.
|
||||
|
||||
Ho Cheung <uioptt24@gmail.com>
|
||||
Ivan Pavlotskiy <ivan.pavlotskiy@lgepartner.com>
|
||||
202
3rdparty/libyuv/Android.bp
vendored
Normal file
202
3rdparty/libyuv/Android.bp
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
package {
|
||||
default_applicable_licenses: ["external_libyuv_license"],
|
||||
}
|
||||
|
||||
// Added automatically by a large-scale-change
|
||||
//
|
||||
// large-scale-change included anything that looked like it might be a license
|
||||
// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
|
||||
//
|
||||
// Please consider removing redundant or irrelevant files from 'license_text:'.
|
||||
// See: http://go/android-license-faq
|
||||
license {
|
||||
name: "external_libyuv_license",
|
||||
visibility: [":__subpackages__"],
|
||||
license_kinds: [
|
||||
"SPDX-license-identifier-BSD",
|
||||
],
|
||||
license_text: [
|
||||
"LICENSE",
|
||||
"PATENTS",
|
||||
],
|
||||
}
|
||||
|
||||
cc_library {
|
||||
name: "libyuv",
|
||||
vendor_available: true,
|
||||
product_available: true,
|
||||
host_supported: true,
|
||||
vndk: {
|
||||
enabled: true,
|
||||
},
|
||||
|
||||
srcs: [
|
||||
"source/compare.cc",
|
||||
"source/compare_common.cc",
|
||||
"source/compare_gcc.cc",
|
||||
"source/compare_neon.cc",
|
||||
"source/compare_neon64.cc",
|
||||
"source/convert.cc",
|
||||
"source/convert_argb.cc",
|
||||
"source/convert_from.cc",
|
||||
"source/convert_from_argb.cc",
|
||||
"source/convert_jpeg.cc",
|
||||
"source/convert_to_argb.cc",
|
||||
"source/convert_to_i420.cc",
|
||||
"source/cpu_id.cc",
|
||||
"source/mjpeg_decoder.cc",
|
||||
"source/mjpeg_validate.cc",
|
||||
"source/planar_functions.cc",
|
||||
"source/rotate.cc",
|
||||
"source/rotate_any.cc",
|
||||
"source/rotate_argb.cc",
|
||||
"source/rotate_common.cc",
|
||||
"source/rotate_gcc.cc",
|
||||
"source/rotate_neon.cc",
|
||||
"source/rotate_neon64.cc",
|
||||
"source/row_any.cc",
|
||||
"source/row_common.cc",
|
||||
"source/row_gcc.cc",
|
||||
"source/row_neon.cc",
|
||||
"source/row_neon64.cc",
|
||||
"source/row_rvv.cc",
|
||||
"source/scale.cc",
|
||||
"source/scale_any.cc",
|
||||
"source/scale_argb.cc",
|
||||
"source/scale_common.cc",
|
||||
"source/scale_gcc.cc",
|
||||
"source/scale_neon.cc",
|
||||
"source/scale_neon64.cc",
|
||||
"source/scale_rgb.cc",
|
||||
"source/scale_rvv.cc",
|
||||
"source/scale_uv.cc",
|
||||
"source/video_common.cc",
|
||||
],
|
||||
|
||||
cflags: [
|
||||
"-Wall",
|
||||
"-Werror",
|
||||
"-Wno-unused-parameter",
|
||||
"-fexceptions",
|
||||
"-DHAVE_JPEG",
|
||||
"-DLIBYUV_UNLIMITED_DATA",
|
||||
],
|
||||
|
||||
arch: {
|
||||
arm: {
|
||||
cflags: ["-mfpu=neon"],
|
||||
},
|
||||
},
|
||||
|
||||
shared_libs: ["libjpeg"],
|
||||
|
||||
export_include_dirs: ["include"],
|
||||
|
||||
apex_available: [
|
||||
"//apex_available:platform",
|
||||
"com.android.media.swcodec",
|
||||
],
|
||||
min_sdk_version: "29",
|
||||
sanitize: {
|
||||
cfi: true,
|
||||
config: {
|
||||
cfi_assembly_support: true,
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
// compatibilty static library until all uses of libyuv_static are replaced
|
||||
// with libyuv (b/37646797)
|
||||
cc_library_static {
|
||||
name: "libyuv_static",
|
||||
vendor_available: true,
|
||||
whole_static_libs: ["libyuv"],
|
||||
apex_available: [
|
||||
"//apex_available:platform",
|
||||
"com.android.media.swcodec",
|
||||
],
|
||||
min_sdk_version: "29",
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "libyuv_unittest",
|
||||
static_libs: ["libyuv"],
|
||||
shared_libs: ["libjpeg"],
|
||||
cflags: ["-Wall", "-Werror"],
|
||||
srcs: [
|
||||
"unit_test/basictypes_test.cc",
|
||||
"unit_test/color_test.cc",
|
||||
"unit_test/compare_test.cc",
|
||||
"unit_test/convert_test.cc",
|
||||
"unit_test/cpu_test.cc",
|
||||
"unit_test/cpu_thread_test.cc",
|
||||
"unit_test/math_test.cc",
|
||||
"unit_test/planar_test.cc",
|
||||
"unit_test/rotate_argb_test.cc",
|
||||
"unit_test/rotate_test.cc",
|
||||
"unit_test/scale_argb_test.cc",
|
||||
"unit_test/scale_plane_test.cc",
|
||||
"unit_test/scale_rgb_test.cc",
|
||||
"unit_test/scale_test.cc",
|
||||
"unit_test/scale_uv_test.cc",
|
||||
"unit_test/unit_test.cc",
|
||||
"unit_test/video_common_test.cc",
|
||||
],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "compare",
|
||||
gtest: false,
|
||||
srcs: [
|
||||
"util/compare.cc",
|
||||
],
|
||||
static_libs: ["libyuv"],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "cpuid",
|
||||
gtest: false,
|
||||
srcs: [
|
||||
"util/cpuid.c",
|
||||
],
|
||||
static_libs: ["libyuv"],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "i444tonv12_eg",
|
||||
gtest: false,
|
||||
srcs: [
|
||||
"util/i444tonv12_eg.cc",
|
||||
],
|
||||
static_libs: ["libyuv"],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "psnr",
|
||||
gtest: false,
|
||||
srcs: [
|
||||
"util/psnr_main.cc",
|
||||
"util/psnr.cc",
|
||||
"util/ssim.cc",
|
||||
],
|
||||
static_libs: ["libyuv"],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "yuvconstants",
|
||||
gtest: false,
|
||||
srcs: [
|
||||
"util/yuvconstants.c",
|
||||
],
|
||||
static_libs: ["libyuv"],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
name: "yuvconvert",
|
||||
gtest: false,
|
||||
srcs: [
|
||||
"util/yuvconvert.cc",
|
||||
],
|
||||
static_libs: ["libyuv"],
|
||||
shared_libs: ["libjpeg"],
|
||||
}
|
||||
106
3rdparty/libyuv/Android.mk
vendored
Normal file
106
3rdparty/libyuv/Android.mk
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
# This is the Android makefile for libyuv for NDK.
|
||||
LOCAL_PATH:= $(call my-dir)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_CPP_EXTENSION := .cc
|
||||
|
||||
LOCAL_SRC_FILES := \
|
||||
source/compare.cc \
|
||||
source/compare_common.cc \
|
||||
source/compare_gcc.cc \
|
||||
source/compare_neon.cc \
|
||||
source/compare_neon64.cc \
|
||||
source/compare_win.cc \
|
||||
source/convert.cc \
|
||||
source/convert_argb.cc \
|
||||
source/convert_from.cc \
|
||||
source/convert_from_argb.cc \
|
||||
source/convert_to_argb.cc \
|
||||
source/convert_to_i420.cc \
|
||||
source/cpu_id.cc \
|
||||
source/planar_functions.cc \
|
||||
source/rotate.cc \
|
||||
source/rotate_any.cc \
|
||||
source/rotate_argb.cc \
|
||||
source/rotate_common.cc \
|
||||
source/rotate_gcc.cc \
|
||||
source/rotate_neon.cc \
|
||||
source/rotate_neon64.cc \
|
||||
source/rotate_win.cc \
|
||||
source/row_any.cc \
|
||||
source/row_common.cc \
|
||||
source/row_gcc.cc \
|
||||
source/row_neon.cc \
|
||||
source/row_neon64.cc \
|
||||
source/row_win.cc \
|
||||
source/scale.cc \
|
||||
source/scale_any.cc \
|
||||
source/scale_argb.cc \
|
||||
source/scale_common.cc \
|
||||
source/scale_gcc.cc \
|
||||
source/scale_neon.cc \
|
||||
source/scale_neon64.cc \
|
||||
source/scale_rgb.cc \
|
||||
source/scale_uv.cc \
|
||||
source/scale_win.cc \
|
||||
source/video_common.cc
|
||||
|
||||
common_CFLAGS := -Wall -fexceptions
|
||||
ifneq ($(LIBYUV_DISABLE_JPEG), "yes")
|
||||
LOCAL_SRC_FILES += \
|
||||
source/convert_jpeg.cc \
|
||||
source/mjpeg_decoder.cc \
|
||||
source/mjpeg_validate.cc
|
||||
common_CFLAGS += -DHAVE_JPEG
|
||||
LOCAL_SHARED_LIBRARIES := libjpeg
|
||||
endif
|
||||
|
||||
LOCAL_CFLAGS += $(common_CFLAGS)
|
||||
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
|
||||
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
|
||||
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/include
|
||||
|
||||
LOCAL_MODULE := libyuv_static
|
||||
LOCAL_MODULE_TAGS := optional
|
||||
|
||||
include $(BUILD_STATIC_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
|
||||
LOCAL_WHOLE_STATIC_LIBRARIES := libyuv_static
|
||||
LOCAL_MODULE := libyuv
|
||||
ifneq ($(LIBYUV_DISABLE_JPEG), "yes")
|
||||
LOCAL_SHARED_LIBRARIES := libjpeg
|
||||
endif
|
||||
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
||||
include $(CLEAR_VARS)
|
||||
LOCAL_STATIC_LIBRARIES := libyuv_static
|
||||
LOCAL_SHARED_LIBRARIES := libjpeg
|
||||
LOCAL_MODULE_TAGS := tests
|
||||
LOCAL_CPP_EXTENSION := .cc
|
||||
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
|
||||
LOCAL_SRC_FILES := \
|
||||
unit_test/basictypes_test.cc \
|
||||
unit_test/color_test.cc \
|
||||
unit_test/compare_test.cc \
|
||||
unit_test/convert_argb_test.cc \
|
||||
unit_test/convert_test.cc \
|
||||
unit_test/cpu_test.cc \
|
||||
unit_test/cpu_thread_test.cc \
|
||||
unit_test/math_test.cc \
|
||||
unit_test/planar_test.cc \
|
||||
unit_test/rotate_argb_test.cc \
|
||||
unit_test/rotate_test.cc \
|
||||
unit_test/scale_argb_test.cc \
|
||||
unit_test/scale_plane_test.cc \
|
||||
unit_test/scale_rgb_test.cc \
|
||||
unit_test/scale_test.cc \
|
||||
unit_test/scale_uv_test.cc \
|
||||
unit_test/unit_test.cc \
|
||||
unit_test/video_common_test.cc
|
||||
|
||||
LOCAL_MODULE := libyuv_unittest
|
||||
include $(BUILD_NATIVE_TEST)
|
||||
217
3rdparty/libyuv/BUILD.bazel
vendored
Normal file
217
3rdparty/libyuv/BUILD.bazel
vendored
Normal file
@@ -0,0 +1,217 @@
|
||||
# Copyright 2026 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Description:
|
||||
# The libyuv package provides implementation yuv image conversion, rotation
|
||||
# and scaling.
|
||||
|
||||
load("@bazel_skylib//lib:selects.bzl", "selects")
|
||||
load(":libyuv.bzl", "libyuv_hdrs", "libyuv_neon_srcs", "libyuv_srcs", "libyuv_sve_srcs", "libyuv_test_srcs")
|
||||
|
||||
# Detect if we are in Google's internal repository (where source files are
|
||||
# under files/) or open source (where source files are at the root).
|
||||
PREFIX = "files/" if len(native.glob(["files/source/*.cc"])) > 0 else ""
|
||||
|
||||
# We support NEON for all arm processors, as we only support ARMv7a+.
|
||||
SUPPORTS_NEON_COPTS = [
|
||||
"-DLIBYUV_NEON",
|
||||
]
|
||||
|
||||
# ARMv7a requires that we explicitly enable NEON. arm64 enables it implicitly.
|
||||
ENABLE_NEON_COPTS = [
|
||||
"-mfpu=neon",
|
||||
]
|
||||
|
||||
ENABLE_NEON64_COPTS = [
|
||||
"-march=armv8-a+dotprod+i8mm",
|
||||
]
|
||||
|
||||
NEON_COPTS = select({
|
||||
"@platforms//cpu:armv7": ENABLE_NEON_COPTS + SUPPORTS_NEON_COPTS,
|
||||
"@platforms//cpu:aarch64": ENABLE_NEON64_COPTS + SUPPORTS_NEON_COPTS,
|
||||
"//conditions:default": [],
|
||||
})
|
||||
|
||||
SUPPORTS_SVE_COPTS = [
|
||||
"-DLIBYUV_SVE",
|
||||
]
|
||||
|
||||
ENABLE_SVE_COPTS = [
|
||||
"-march=armv9-a+i8mm+sve2",
|
||||
]
|
||||
|
||||
SVE_COPTS = select({
|
||||
"@platforms//cpu:aarch64": ENABLE_SVE_COPTS + SUPPORTS_SVE_COPTS,
|
||||
"//conditions:default": [],
|
||||
})
|
||||
|
||||
PLATFORM_COPTS = select({
|
||||
"@platforms//os:android": ["-DHAVE_JPEG"],
|
||||
"@platforms//os:linux": ["-DHAVE_JPEG"],
|
||||
"@platforms//os:windows": ["-DHAVE_JPEG"],
|
||||
"@platforms//os:macos": ["-DHAVE_JPEG"],
|
||||
"//conditions:default": [],
|
||||
}) + [
|
||||
"-DLIBYUV_DISABLE_SME",
|
||||
"-DLIBYUV_USE_ABSL_FLAGS",
|
||||
"-DGOOGLE_COMMANDLINEFLAGS_FULL_API",
|
||||
]
|
||||
|
||||
ALL_COPTS = PLATFORM_COPTS
|
||||
|
||||
ALL_NEON_COPTS = NEON_COPTS + PLATFORM_COPTS
|
||||
|
||||
ALL_SVE_COPTS = SVE_COPTS + PLATFORM_COPTS
|
||||
|
||||
NEON_DEPS = select({
|
||||
"@platforms//cpu:armv7": [":libyuv_neon_impl"],
|
||||
"@platforms//cpu:aarch64": [":libyuv_neon_impl"],
|
||||
"//conditions:default": [],
|
||||
})
|
||||
|
||||
SVE_DEPS = select({
|
||||
"@platforms//cpu:aarch64": [":libyuv_sve_impl"],
|
||||
"//conditions:default": [],
|
||||
})
|
||||
|
||||
PLATFORM_DEPS = select({
|
||||
"@platforms//os:android": ["@libjpeg_turbo//:jpeg"],
|
||||
"@platforms//os:linux": ["@libjpeg_turbo//:jpeg"],
|
||||
"@platforms//os:windows": ["@libjpeg_turbo//:jpeg"],
|
||||
"@platforms//os:macos": ["@libjpeg_turbo//:jpeg"],
|
||||
"//conditions:default": [],
|
||||
})
|
||||
|
||||
ALL_DEPS = NEON_DEPS + SVE_DEPS + PLATFORM_DEPS
|
||||
|
||||
cc_library(
|
||||
name = "libyuv",
|
||||
hdrs = native.glob([PREFIX + "include/**/*.h"]),
|
||||
strip_include_prefix = PREFIX + "include",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [":libyuv_impl"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "libyuv_impl",
|
||||
srcs = libyuv_srcs(PREFIX),
|
||||
hdrs = libyuv_hdrs(PREFIX),
|
||||
copts = ALL_COPTS + selects.with_or({
|
||||
(
|
||||
"@platforms//os:android",
|
||||
"@platforms//os:ios",
|
||||
"@platforms//os:tvos",
|
||||
"@platforms//os:windows",
|
||||
"@platforms//os:macos",
|
||||
): [],
|
||||
"//conditions:default": [
|
||||
"-fomit-frame-pointer",
|
||||
],
|
||||
}) + selects.with_or({
|
||||
(
|
||||
"@platforms//os:android",
|
||||
"@platforms//os:ios",
|
||||
"@platforms//os:tvos",
|
||||
): ["-O2"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
includes = [PREFIX + "include"],
|
||||
deps = ALL_DEPS,
|
||||
alwayslink = 1,
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "libyuv_neon_impl",
|
||||
srcs = libyuv_neon_srcs(PREFIX),
|
||||
copts = ALL_NEON_COPTS,
|
||||
includes = [PREFIX + "include"],
|
||||
visibility = ["//visibility:private"],
|
||||
alwayslink = 1,
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "libyuv_sve_impl",
|
||||
srcs = libyuv_sve_srcs(PREFIX),
|
||||
copts = ALL_SVE_COPTS,
|
||||
includes = [PREFIX + "include"],
|
||||
visibility = ["//visibility:private"],
|
||||
alwayslink = 1,
|
||||
)
|
||||
|
||||
cc_test(
|
||||
name = "libyuv_test",
|
||||
srcs = libyuv_test_srcs(PREFIX),
|
||||
copts = ALL_COPTS + [
|
||||
"-Wno-unused-variable",
|
||||
],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":libyuv",
|
||||
"@com_google_googletest//:gtest_main",
|
||||
"@com_google_absl//absl/flags:flag",
|
||||
"@com_google_absl//absl/flags:parse",
|
||||
],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "psnr_lib",
|
||||
srcs = [PREFIX + "util/psnr.cc"],
|
||||
hdrs = [PREFIX + "util/psnr.h"],
|
||||
copts = PLATFORM_COPTS,
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "ssim_lib",
|
||||
srcs = [PREFIX + "util/ssim.cc"],
|
||||
hdrs = [PREFIX + "util/ssim.h"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "psnr",
|
||||
srcs = [PREFIX + "util/psnr_main.cc"],
|
||||
copts = PLATFORM_COPTS + [
|
||||
"-Wframe-larger-than=64000",
|
||||
],
|
||||
deps = [
|
||||
":libyuv",
|
||||
":psnr_lib",
|
||||
":ssim_lib",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "i444tonv12_eg",
|
||||
srcs = [PREFIX + "util/i444tonv12_eg.cc"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":libyuv",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "cpuid",
|
||||
srcs = [PREFIX + "util/cpuid.c"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":libyuv",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "yuvconstants",
|
||||
srcs = [PREFIX + "util/yuvconstants.c"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":libyuv",
|
||||
],
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "yuvconvert",
|
||||
srcs = [PREFIX + "util/yuvconvert.cc"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
":libyuv",
|
||||
],
|
||||
)
|
||||
490
3rdparty/libyuv/BUILD.gn
vendored
Normal file
490
3rdparty/libyuv/BUILD.gn
vendored
Normal file
@@ -0,0 +1,490 @@
|
||||
# Copyright 2014 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
import("//build/config/features.gni")
|
||||
import("//testing/test.gni")
|
||||
import("libyuv.gni")
|
||||
|
||||
declare_args() {
|
||||
# Set to false to disable building with absl flags.
|
||||
libyuv_use_absl_flags = true
|
||||
|
||||
# When building a shared library using a target in WebRTC or
|
||||
# Chromium projects that depends on libyuv, setting this flag
|
||||
# to true makes libyuv symbols visible inside that library.
|
||||
libyuv_symbols_visible = false
|
||||
}
|
||||
|
||||
config("libyuv_config") {
|
||||
include_dirs = [ "include" ]
|
||||
if (is_android) {
|
||||
if (target_cpu == "arm" || target_cpu == "x86") {
|
||||
ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker" ]
|
||||
} else {
|
||||
ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64" ]
|
||||
}
|
||||
}
|
||||
|
||||
# Define CHROMIUM to tell cpu_id to avoid sandbox unsafe system calls.
|
||||
defines = [ "CHROMIUM" ]
|
||||
if (libyuv_enable_rowwin) {
|
||||
defines += [ "LIBYUV_ENABLE_ROWWIN=1" ]
|
||||
}
|
||||
if (!libyuv_use_neon) {
|
||||
defines += [ "LIBYUV_DISABLE_NEON" ]
|
||||
}
|
||||
if (!libyuv_use_sve) {
|
||||
defines += [ "LIBYUV_DISABLE_SVE" ]
|
||||
}
|
||||
if (!libyuv_use_sme) {
|
||||
defines += [ "LIBYUV_DISABLE_SME" ]
|
||||
}
|
||||
if (libyuv_disable_rvv) {
|
||||
defines += [ "LIBYUV_DISABLE_RVV" ]
|
||||
}
|
||||
if (!libyuv_use_lsx) {
|
||||
defines += [ "LIBYUV_DISABLE_LSX" ]
|
||||
}
|
||||
if (!libyuv_use_lasx) {
|
||||
defines += [ "LIBYUV_DISABLE_LASX" ]
|
||||
}
|
||||
}
|
||||
|
||||
# This target is built when no specific target is specified on the command line.
|
||||
group("default") {
|
||||
testonly = true
|
||||
deps = [ ":libyuv" ]
|
||||
if (libyuv_include_tests) {
|
||||
deps += [
|
||||
":compare",
|
||||
":cpuid",
|
||||
":i444tonv12_eg",
|
||||
":libyuv_unittest",
|
||||
":psnr",
|
||||
":yuvconstants",
|
||||
":yuvconvert",
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
group("libyuv") {
|
||||
all_dependent_configs = [ ":libyuv_config" ]
|
||||
deps = []
|
||||
|
||||
if (is_win && target_cpu == "x64") {
|
||||
# Compile with clang in order to get inline assembly
|
||||
public_deps = [ ":libyuv_internal(//build/toolchain/win:win_clang_x64)" ]
|
||||
} else {
|
||||
public_deps = [ ":libyuv_internal" ]
|
||||
}
|
||||
|
||||
if (libyuv_use_neon) {
|
||||
deps += [ ":libyuv_neon" ]
|
||||
}
|
||||
|
||||
if (libyuv_use_sve) {
|
||||
deps += [ ":libyuv_sve" ]
|
||||
}
|
||||
|
||||
if (libyuv_use_sme) {
|
||||
deps += [ ":libyuv_sme" ]
|
||||
}
|
||||
|
||||
if (libyuv_use_lsx) {
|
||||
deps += [ ":libyuv_lsx" ]
|
||||
}
|
||||
|
||||
if (libyuv_use_lasx) {
|
||||
deps += [ ":libyuv_lasx" ]
|
||||
}
|
||||
|
||||
if (!is_ios && !libyuv_disable_jpeg) {
|
||||
# Make sure that clients of libyuv link with libjpeg. This can't go in
|
||||
# libyuv_internal because in Windows x64 builds that will generate a clang
|
||||
# build of libjpeg, and we don't want two copies.
|
||||
deps += [ "//third_party:jpeg" ]
|
||||
}
|
||||
}
|
||||
|
||||
static_library("libyuv_internal") {
|
||||
visibility = [ ":*" ]
|
||||
|
||||
sources = [
|
||||
# Headers
|
||||
"include/libyuv.h",
|
||||
"include/libyuv/basic_types.h",
|
||||
"include/libyuv/compare.h",
|
||||
"include/libyuv/compare_row.h",
|
||||
"include/libyuv/convert.h",
|
||||
"include/libyuv/convert_argb.h",
|
||||
"include/libyuv/convert_from.h",
|
||||
"include/libyuv/convert_from_argb.h",
|
||||
"include/libyuv/cpu_id.h",
|
||||
"include/libyuv/loongson_intrinsics.h",
|
||||
"include/libyuv/mjpeg_decoder.h",
|
||||
"include/libyuv/planar_functions.h",
|
||||
"include/libyuv/rotate.h",
|
||||
"include/libyuv/rotate_argb.h",
|
||||
"include/libyuv/rotate_row.h",
|
||||
"include/libyuv/row.h",
|
||||
"include/libyuv/scale.h",
|
||||
"include/libyuv/scale_argb.h",
|
||||
"include/libyuv/scale_rgb.h",
|
||||
"include/libyuv/scale_row.h",
|
||||
"include/libyuv/scale_uv.h",
|
||||
"include/libyuv/version.h",
|
||||
"include/libyuv/video_common.h",
|
||||
|
||||
# Source Files
|
||||
"source/compare.cc",
|
||||
"source/compare_common.cc",
|
||||
"source/compare_gcc.cc",
|
||||
"source/compare_win.cc",
|
||||
"source/convert.cc",
|
||||
"source/convert_argb.cc",
|
||||
"source/convert_from.cc",
|
||||
"source/convert_from_argb.cc",
|
||||
"source/convert_jpeg.cc",
|
||||
"source/convert_to_argb.cc",
|
||||
"source/convert_to_i420.cc",
|
||||
"source/cpu_id.cc",
|
||||
"source/mjpeg_decoder.cc",
|
||||
"source/mjpeg_validate.cc",
|
||||
"source/planar_functions.cc",
|
||||
"source/rotate.cc",
|
||||
"source/rotate_any.cc",
|
||||
"source/rotate_argb.cc",
|
||||
"source/rotate_common.cc",
|
||||
"source/rotate_gcc.cc",
|
||||
"source/rotate_win.cc",
|
||||
"source/row_any.cc",
|
||||
"source/row_common.cc",
|
||||
"source/row_gcc.cc",
|
||||
"source/row_rvv.cc",
|
||||
"source/row_win.cc",
|
||||
"source/scale.cc",
|
||||
"source/scale_any.cc",
|
||||
"source/scale_argb.cc",
|
||||
"source/scale_common.cc",
|
||||
"source/scale_gcc.cc",
|
||||
"source/scale_rgb.cc",
|
||||
"source/scale_rvv.cc",
|
||||
"source/scale_uv.cc",
|
||||
"source/scale_win.cc",
|
||||
"source/video_common.cc",
|
||||
]
|
||||
|
||||
configs += [ ":libyuv_config" ]
|
||||
defines = []
|
||||
deps = []
|
||||
|
||||
if (libyuv_symbols_visible) {
|
||||
configs -= [ "//build/config/gcc:symbol_visibility_hidden" ]
|
||||
configs += [ "//build/config/gcc:symbol_visibility_default" ]
|
||||
}
|
||||
|
||||
if ((!is_ios || use_blink) && !libyuv_disable_jpeg) {
|
||||
defines += [ "HAVE_JPEG" ]
|
||||
|
||||
# Needed to pull in libjpeg headers. Can't add //third_party:jpeg to deps
|
||||
# because in Windows x64 build it will get compiled with clang.
|
||||
deps += [ "//third_party:jpeg_includes" ]
|
||||
}
|
||||
|
||||
if (!is_debug) {
|
||||
configs -= [ "//build/config/compiler:default_optimization" ]
|
||||
|
||||
# Enable optimize for speed (-O2) over size (-Os).
|
||||
configs += [ "//build/config/compiler:optimize_max" ]
|
||||
}
|
||||
|
||||
# To enable AVX2 or other cpu optimization, pass flag here
|
||||
if (!is_win) {
|
||||
cflags = [
|
||||
# "-mpopcnt",
|
||||
# "-mavx2",
|
||||
# "-mfma",
|
||||
"-ffp-contract=fast", # Enable fma vectorization for NEON.
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
if (libyuv_use_neon) {
|
||||
static_library("libyuv_neon") {
|
||||
sources = [
|
||||
# ARM Source Files
|
||||
"source/compare_neon.cc",
|
||||
"source/compare_neon64.cc",
|
||||
"source/rotate_neon.cc",
|
||||
"source/rotate_neon64.cc",
|
||||
"source/row_neon.cc",
|
||||
"source/row_neon64.cc",
|
||||
"source/scale_neon.cc",
|
||||
"source/scale_neon64.cc",
|
||||
]
|
||||
|
||||
deps = [ ":libyuv_internal" ]
|
||||
|
||||
public_configs = [ ":libyuv_config" ]
|
||||
|
||||
if (current_cpu == "arm64") {
|
||||
# The -march arguments below are incompatible with libc++ modules.
|
||||
use_libcxx_modules = false
|
||||
|
||||
# TODO(thakis): Do we get this from global flags already? Is this needed?
|
||||
cflags = [ "-march=armv8-a+dotprod+i8mm" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (libyuv_use_sve) {
|
||||
static_library("libyuv_sve") {
|
||||
sources = [ "source/row_sve.cc" ]
|
||||
|
||||
deps = [ ":libyuv_internal" ]
|
||||
|
||||
public_configs = [ ":libyuv_config" ]
|
||||
|
||||
# The -march arguments below are incompatible with libc++ modules.
|
||||
use_libcxx_modules = false
|
||||
|
||||
# SVE2 is an Armv9-A feature.
|
||||
cflags = [ "-march=armv9-a+i8mm+sve2" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (libyuv_use_sme) {
|
||||
static_library("libyuv_sme") {
|
||||
sources = [
|
||||
"source/rotate_sme.cc",
|
||||
"source/row_sme.cc",
|
||||
"source/scale_sme.cc",
|
||||
]
|
||||
|
||||
deps = [ ":libyuv_internal" ]
|
||||
|
||||
public_configs = [ ":libyuv_config" ]
|
||||
|
||||
# The -march arguments below are incompatible with libc++ modules.
|
||||
use_libcxx_modules = false
|
||||
|
||||
# SME is an Armv9-A feature.
|
||||
cflags = [ "-march=armv9-a+i8mm+sme" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (libyuv_use_lsx) {
|
||||
static_library("libyuv_lsx") {
|
||||
sources = [
|
||||
# LSX Source Files
|
||||
"source/rotate_lsx.cc",
|
||||
"source/row_lsx.cc",
|
||||
"source/scale_lsx.cc",
|
||||
]
|
||||
|
||||
cflags_cc = [
|
||||
"-mlsx",
|
||||
"-Wno-c++11-narrowing",
|
||||
]
|
||||
|
||||
deps = [ ":libyuv_internal" ]
|
||||
|
||||
public_configs = [ ":libyuv_config" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (libyuv_use_lasx) {
|
||||
static_library("libyuv_lasx") {
|
||||
sources = [
|
||||
# LASX Source Files
|
||||
"source/row_lasx.cc",
|
||||
]
|
||||
|
||||
cflags_cc = [
|
||||
"-mlasx",
|
||||
"-Wno-c++11-narrowing",
|
||||
]
|
||||
|
||||
deps = [ ":libyuv_internal" ]
|
||||
|
||||
public_configs = [ ":libyuv_config" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (libyuv_include_tests) {
|
||||
config("libyuv_unittest_warnings_config") {
|
||||
if (!is_win) {
|
||||
cflags = [
|
||||
# TODO(fbarchard): Fix sign and unused variable warnings.
|
||||
"-Wno-sign-compare",
|
||||
"-Wno-unused-variable",
|
||||
]
|
||||
}
|
||||
if (is_win) {
|
||||
cflags = [
|
||||
"/wd4245", # signed/unsigned mismatch
|
||||
"/wd4189", # local variable is initialized but not referenced
|
||||
]
|
||||
}
|
||||
}
|
||||
config("libyuv_unittest_config") {
|
||||
defines = [ "GTEST_RELATIVE_PATH" ]
|
||||
}
|
||||
|
||||
test("libyuv_unittest") {
|
||||
testonly = true
|
||||
|
||||
sources = [
|
||||
"unit_test/basictypes_test.cc",
|
||||
"unit_test/color_test.cc",
|
||||
"unit_test/compare_test.cc",
|
||||
"unit_test/convert_argb_test.cc",
|
||||
"unit_test/convert_test.cc",
|
||||
"unit_test/cpu_test.cc",
|
||||
"unit_test/cpu_thread_test.cc",
|
||||
"unit_test/math_test.cc",
|
||||
"unit_test/planar_test.cc",
|
||||
"unit_test/rotate_argb_test.cc",
|
||||
"unit_test/rotate_test.cc",
|
||||
"unit_test/scale_argb_test.cc",
|
||||
"unit_test/scale_plane_test.cc",
|
||||
"unit_test/scale_rgb_test.cc",
|
||||
"unit_test/scale_test.cc",
|
||||
"unit_test/scale_uv_test.cc",
|
||||
"unit_test/unit_test.cc",
|
||||
"unit_test/unit_test.h",
|
||||
"unit_test/video_common_test.cc",
|
||||
]
|
||||
|
||||
deps = [
|
||||
":libyuv",
|
||||
"//testing/gtest",
|
||||
]
|
||||
|
||||
defines = []
|
||||
if (libyuv_use_absl_flags) {
|
||||
defines += [ "LIBYUV_USE_ABSL_FLAGS" ]
|
||||
deps += [
|
||||
"//third_party/abseil-cpp/absl/flags:flag",
|
||||
"//third_party/abseil-cpp/absl/flags:parse",
|
||||
]
|
||||
}
|
||||
|
||||
configs += [ ":libyuv_unittest_warnings_config" ]
|
||||
|
||||
public_deps = [ "//testing/gtest" ]
|
||||
public_configs = [ ":libyuv_unittest_config" ]
|
||||
|
||||
if (is_linux || is_chromeos) {
|
||||
cflags = [ "-fexceptions" ]
|
||||
|
||||
# For enabling ASLR.
|
||||
ldflags = [ "-pie" ]
|
||||
}
|
||||
if (is_ios) {
|
||||
configs -= [ "//build/config/compiler:default_symbols" ]
|
||||
configs += [ "//build/config/compiler:symbols" ]
|
||||
cflags = [ "-Wno-sometimes-uninitialized" ]
|
||||
}
|
||||
if (!is_ios && !libyuv_disable_jpeg) {
|
||||
defines += [ "HAVE_JPEG" ]
|
||||
}
|
||||
|
||||
# TODO(YangZhang): These lines can be removed when high accuracy
|
||||
# YUV to RGB to Neon is ported.
|
||||
if (target_cpu == "arm" || target_cpu == "arm64") {
|
||||
defines += [ "LIBYUV_NEON" ]
|
||||
}
|
||||
|
||||
defines += [
|
||||
# Enable the following 3 macros to turn off assembly for specified CPU.
|
||||
# "LIBYUV_DISABLE_X86",
|
||||
# "LIBYUV_DISABLE_NEON",
|
||||
# Enable the following macro to build libyuv as a shared library (dll).
|
||||
# "LIBYUV_USING_SHARED_LIBRARY"
|
||||
]
|
||||
}
|
||||
|
||||
executable("compare") {
|
||||
sources = [
|
||||
# sources
|
||||
"util/compare.cc",
|
||||
]
|
||||
deps = [ ":libyuv" ]
|
||||
if (is_linux || is_chromeos) {
|
||||
cflags = [ "-fexceptions" ]
|
||||
}
|
||||
}
|
||||
|
||||
executable("yuvconvert") {
|
||||
sources = [
|
||||
# sources
|
||||
"util/yuvconvert.cc",
|
||||
]
|
||||
deps = [ ":libyuv" ]
|
||||
if (is_linux || is_chromeos) {
|
||||
cflags = [ "-fexceptions" ]
|
||||
}
|
||||
}
|
||||
|
||||
executable("yuvconstants") {
|
||||
sources = [
|
||||
# sources
|
||||
"util/yuvconstants.c",
|
||||
]
|
||||
deps = [ ":libyuv" ]
|
||||
if (is_linux || is_chromeos) {
|
||||
cflags = [ "-fexceptions" ]
|
||||
}
|
||||
}
|
||||
|
||||
executable("psnr") {
|
||||
sources = [
|
||||
# sources
|
||||
"util/psnr.cc",
|
||||
"util/psnr_main.cc",
|
||||
"util/ssim.cc",
|
||||
]
|
||||
deps = [ ":libyuv" ]
|
||||
|
||||
if (!is_ios && !libyuv_disable_jpeg) {
|
||||
defines = [ "HAVE_JPEG" ]
|
||||
}
|
||||
}
|
||||
|
||||
executable("i444tonv12_eg") {
|
||||
sources = [
|
||||
# sources
|
||||
"util/i444tonv12_eg.cc",
|
||||
]
|
||||
deps = [ ":libyuv" ]
|
||||
}
|
||||
|
||||
executable("cpuid") {
|
||||
sources = [
|
||||
# sources
|
||||
"util/cpuid.c",
|
||||
]
|
||||
deps = [ ":libyuv" ]
|
||||
}
|
||||
}
|
||||
|
||||
if (!build_with_chromium) {
|
||||
# GN evaluates each .gn file once per toolchain, so restricting to default
|
||||
# toolchain will ensure write_file() is called only once.
|
||||
if (current_toolchain == default_toolchain) {
|
||||
# Write debug logs to gn_logs.txt.
|
||||
# This is also required for Siso builds.
|
||||
import("//build/gn_logs.gni")
|
||||
lines = [
|
||||
"Generated during 'gn gen' by //BUILD.gn.",
|
||||
"",
|
||||
] + build_gn_logs
|
||||
write_file("$root_build_dir/gn_logs.txt", lines)
|
||||
}
|
||||
}
|
||||
70
3rdparty/libyuv/CM_linux_packages.cmake
vendored
Normal file
70
3rdparty/libyuv/CM_linux_packages.cmake
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
# determine the version number from the #define in libyuv/version.h
|
||||
EXECUTE_PROCESS (
|
||||
COMMAND grep -Eo "LIBYUV_VERSION\ [0-9]+" include/libyuv/version.h
|
||||
COMMAND grep -Eo "[0-9]+"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
OUTPUT_VARIABLE YUV_VERSION_NUMBER
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
SET ( YUV_VER_MAJOR 0 )
|
||||
SET ( YUV_VER_MINOR 0 )
|
||||
SET ( YUV_VER_PATCH ${YUV_VERSION_NUMBER} )
|
||||
SET ( YUV_VERSION ${YUV_VER_MAJOR}.${YUV_VER_MINOR}.${YUV_VER_PATCH} )
|
||||
MESSAGE ( VERBOSE "Building ver.: ${YUV_VERSION}" )
|
||||
|
||||
# is this a 32-bit or 64-bit build?
|
||||
IF ( CMAKE_SIZEOF_VOID_P EQUAL 8 )
|
||||
SET ( YUV_BIT_SIZE 64 )
|
||||
ELSEIF ( CMAKE_SIZEOF_VOID_P EQUAL 4 )
|
||||
SET ( YUV_BIT_SIZE 32 )
|
||||
ELSE ()
|
||||
MESSAGE ( FATAL_ERROR "CMAKE_SIZEOF_VOID_P=${CMAKE_SIZEOF_VOID_P}" )
|
||||
ENDIF ()
|
||||
|
||||
# detect if this is a ARM build
|
||||
STRING (FIND "${CMAKE_CXX_COMPILER}" "arm-linux-gnueabihf-g++" pos)
|
||||
IF ( ${pos} EQUAL -1 )
|
||||
SET ( YUV_CROSS_COMPILE_FOR_ARM7 FALSE )
|
||||
ELSE ()
|
||||
MESSAGE ( "Cross compiling for ARM7" )
|
||||
SET ( YUV_CROSS_COMPILE_FOR_ARM7 TRUE )
|
||||
ENDIF ()
|
||||
STRING (FIND "${CMAKE_SYSTEM_PROCESSOR}" "arm" pos)
|
||||
IF ( ${pos} EQUAL -1 )
|
||||
SET ( YUV_COMPILE_FOR_ARM7 FALSE )
|
||||
ELSE ()
|
||||
MESSAGE ( "Compiling for ARM" )
|
||||
SET ( YUV_COMPILE_FOR_ARM7 TRUE )
|
||||
ENDIF ()
|
||||
|
||||
# setup the sytem name, such as "x86-32", "amd-64", and "arm-32
|
||||
IF ( ${YUV_CROSS_COMPILE_FOR_ARM7} OR ${YUV_COMPILE_FOR_ARM7} )
|
||||
SET ( YUV_SYSTEM_NAME "armhf-${YUV_BIT_SIZE}" )
|
||||
ELSE ()
|
||||
IF ( YUV_BIT_SIZE EQUAL 32 )
|
||||
SET ( YUV_SYSTEM_NAME "x86-${YUV_BIT_SIZE}" )
|
||||
ELSE ()
|
||||
SET ( YUV_SYSTEM_NAME "amd-${YUV_BIT_SIZE}" )
|
||||
ENDIF ()
|
||||
ENDIF ()
|
||||
MESSAGE ( VERBOSE "Packaging for: ${YUV_SYSTEM_NAME}" )
|
||||
|
||||
# define all the variables needed by CPack to create .deb and .rpm packages
|
||||
SET ( CPACK_PACKAGE_VENDOR "Frank Barchard" )
|
||||
SET ( CPACK_PACKAGE_CONTACT "fbarchard@chromium.org" )
|
||||
SET ( CPACK_PACKAGE_VERSION ${YUV_VERSION} )
|
||||
SET ( CPACK_PACKAGE_VERSION_MAJOR ${YUV_VER_MAJOR} )
|
||||
SET ( CPACK_PACKAGE_VERSION_MINOR ${YUV_VER_MINOR} )
|
||||
SET ( CPACK_PACKAGE_VERSION_PATCH ${YUV_VER_PATCH} )
|
||||
SET ( CPACK_RESOURCE_FILE_LICENSE ${PROJECT_SOURCE_DIR}/LICENSE )
|
||||
SET ( CPACK_SYSTEM_NAME "linux-${YUV_SYSTEM_NAME}" )
|
||||
SET ( CPACK_PACKAGE_NAME "libyuv" )
|
||||
SET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "YUV library" )
|
||||
SET ( CPACK_PACKAGE_DESCRIPTION "YUV library and YUV conversion tool" )
|
||||
SET ( CPACK_DEBIAN_PACKAGE_SECTION "other" )
|
||||
SET ( CPACK_DEBIAN_PACKAGE_PRIORITY "optional" )
|
||||
SET ( CPACK_DEBIAN_PACKAGE_MAINTAINER "Frank Barchard <fbarchard@chromium.org>" )
|
||||
SET ( CPACK_GENERATOR "DEB;RPM" )
|
||||
|
||||
# create the .deb and .rpm files (you'll need build-essential and rpm tools)
|
||||
INCLUDE( CPack )
|
||||
|
||||
252
3rdparty/libyuv/CMakeLists.txt
vendored
Normal file
252
3rdparty/libyuv/CMakeLists.txt
vendored
Normal file
@@ -0,0 +1,252 @@
|
||||
# CMakeLists for libyuv
|
||||
# Originally created for "roxlu build system" to compile libyuv on windows
|
||||
# Run with -DUNIT_TEST=ON to build unit tests
|
||||
|
||||
cmake_minimum_required( VERSION 3.16 )
|
||||
project ( YUV C CXX ) # "C" is required even for C++ projects
|
||||
option( UNIT_TEST "Built unit tests" OFF )
|
||||
|
||||
include(CheckCSourceCompiles)
|
||||
|
||||
set ( ly_base_dir ${PROJECT_SOURCE_DIR} )
|
||||
set ( ly_src_dir ${ly_base_dir}/source )
|
||||
set ( ly_inc_dir ${ly_base_dir}/include )
|
||||
set ( ly_tst_dir ${ly_base_dir}/unit_test )
|
||||
set ( ly_lib_name yuv )
|
||||
set ( ly_lib_static ${ly_lib_name} )
|
||||
set ( ly_lib_shared ${ly_lib_name}_shared )
|
||||
|
||||
# We cannot use GLOB here since we want to be able to separate out files that
|
||||
# need particular flags to enable architecture extensions like AArch64's SVE.
|
||||
# TODO: More of these files could be separated out for different architectures.
|
||||
set ( ly_common_source_files
|
||||
${ly_src_dir}/compare.cc
|
||||
${ly_src_dir}/compare_common.cc
|
||||
${ly_src_dir}/compare_gcc.cc
|
||||
${ly_src_dir}/compare_win.cc
|
||||
${ly_src_dir}/convert_argb.cc
|
||||
${ly_src_dir}/convert.cc
|
||||
${ly_src_dir}/convert_from_argb.cc
|
||||
${ly_src_dir}/convert_from.cc
|
||||
${ly_src_dir}/convert_jpeg.cc
|
||||
${ly_src_dir}/convert_to_argb.cc
|
||||
${ly_src_dir}/convert_to_i420.cc
|
||||
${ly_src_dir}/cpu_id.cc
|
||||
${ly_src_dir}/mjpeg_decoder.cc
|
||||
${ly_src_dir}/mjpeg_validate.cc
|
||||
${ly_src_dir}/planar_functions.cc
|
||||
${ly_src_dir}/rotate_any.cc
|
||||
${ly_src_dir}/rotate_argb.cc
|
||||
${ly_src_dir}/rotate.cc
|
||||
${ly_src_dir}/rotate_common.cc
|
||||
${ly_src_dir}/rotate_gcc.cc
|
||||
${ly_src_dir}/rotate_lsx.cc
|
||||
${ly_src_dir}/rotate_win.cc
|
||||
${ly_src_dir}/row_any.cc
|
||||
${ly_src_dir}/row_common.cc
|
||||
${ly_src_dir}/row_gcc.cc
|
||||
${ly_src_dir}/row_lasx.cc
|
||||
${ly_src_dir}/row_lsx.cc
|
||||
${ly_src_dir}/row_rvv.cc
|
||||
${ly_src_dir}/row_win.cc
|
||||
${ly_src_dir}/scale_any.cc
|
||||
${ly_src_dir}/scale_argb.cc
|
||||
${ly_src_dir}/scale.cc
|
||||
${ly_src_dir}/scale_common.cc
|
||||
${ly_src_dir}/scale_gcc.cc
|
||||
${ly_src_dir}/scale_lsx.cc
|
||||
${ly_src_dir}/scale_rgb.cc
|
||||
${ly_src_dir}/scale_rvv.cc
|
||||
${ly_src_dir}/scale_uv.cc
|
||||
${ly_src_dir}/scale_win.cc
|
||||
${ly_src_dir}/video_common.cc)
|
||||
|
||||
file ( GLOB_RECURSE ly_unittest_sources ${ly_tst_dir}/*.cc )
|
||||
list ( SORT ly_unittest_sources )
|
||||
|
||||
include_directories( BEFORE ${ly_inc_dir} )
|
||||
|
||||
if(MSVC)
|
||||
add_definitions ( -D_CRT_SECURE_NO_WARNINGS )
|
||||
endif()
|
||||
|
||||
# Need to set PIC to allow creating shared libraries from object file libraries.
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
# Build the set of objects that do not need to be compiled with flags to enable
|
||||
# particular architecture features.
|
||||
add_library( ${ly_lib_name}_common_objects OBJECT ${ly_common_source_files} )
|
||||
set(ly_lib_parts $<TARGET_OBJECTS:${ly_lib_name}_common_objects>)
|
||||
|
||||
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSPROC)
|
||||
set(LOONGARCH64_ALIASES loongarch64)
|
||||
list(FIND LOONGARCH64_ALIASES "${SYSPROC}" LOONGARCH64MATCH)
|
||||
|
||||
if(LOONGARCH64MATCH GREATER "-1")
|
||||
set(LOONGARCH64 1)
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" arch_lowercase)
|
||||
|
||||
if(arch_lowercase MATCHES "^arm" AND NOT arch_lowercase STREQUAL "arm64")
|
||||
# Enable Arm Neon kernels.
|
||||
add_definitions(-DLIBYUV_NEON=1)
|
||||
add_library(${ly_lib_name}_neon OBJECT
|
||||
${ly_src_dir}/compare_neon.cc
|
||||
${ly_src_dir}/rotate_neon.cc
|
||||
${ly_src_dir}/row_neon.cc
|
||||
${ly_src_dir}/scale_neon.cc)
|
||||
target_compile_options(${ly_lib_name}_neon PRIVATE -mfpu=neon)
|
||||
list(APPEND ly_lib_parts $<TARGET_OBJECTS:${ly_lib_name}_neon>)
|
||||
endif()
|
||||
|
||||
if(arch_lowercase STREQUAL "aarch64" OR arch_lowercase STREQUAL "arm64")
|
||||
# Enable AArch64 Neon dot-product and i8mm kernels.
|
||||
add_library(${ly_lib_name}_neon64 OBJECT
|
||||
${ly_src_dir}/compare_neon64.cc
|
||||
${ly_src_dir}/rotate_neon64.cc
|
||||
${ly_src_dir}/row_neon64.cc
|
||||
${ly_src_dir}/scale_neon64.cc)
|
||||
target_compile_options(${ly_lib_name}_neon64 PRIVATE -march=armv8.2-a+dotprod+i8mm)
|
||||
list(APPEND ly_lib_parts $<TARGET_OBJECTS:${ly_lib_name}_neon64>)
|
||||
|
||||
# Enable AArch64 SVE kernels.
|
||||
add_library(${ly_lib_name}_sve OBJECT
|
||||
${ly_src_dir}/row_sve.cc)
|
||||
target_compile_options(${ly_lib_name}_sve PRIVATE -march=armv8.5-a+i8mm+sve2)
|
||||
list(APPEND ly_lib_parts $<TARGET_OBJECTS:${ly_lib_name}_sve>)
|
||||
|
||||
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
set(OLD_CMAKE_TRY_COMPILE_TARGET_TYPE ${CMAKE_TRY_COMPILE_TARGET_TYPE})
|
||||
set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -march=armv9-a+i8mm+sme")
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
||||
# Check whether the compiler can compile SME functions; this fails
|
||||
# with Clang for Windows.
|
||||
check_c_source_compiles("
|
||||
__arm_locally_streaming void func(void) { }
|
||||
int main(void) { return 0; }
|
||||
" CAN_COMPILE_SME)
|
||||
set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
|
||||
set(CMAKE_TRY_COMPILE_TARGET_TYPE ${OLD_CMAKE_TRY_COMPILE_TARGET_TYPE})
|
||||
|
||||
if (CAN_COMPILE_SME)
|
||||
# Enable AArch64 SME kernels.
|
||||
add_library(${ly_lib_name}_sme OBJECT
|
||||
${ly_src_dir}/rotate_sme.cc
|
||||
${ly_src_dir}/row_sme.cc
|
||||
${ly_src_dir}/scale_sme.cc)
|
||||
target_compile_options(${ly_lib_name}_sme PRIVATE -march=armv9-a+i8mm+sme)
|
||||
list(APPEND ly_lib_parts $<TARGET_OBJECTS:${ly_lib_name}_sme>)
|
||||
else()
|
||||
add_definitions(-DLIBYUV_DISABLE_SME)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(LOONGARCH64)
|
||||
include(CheckCXXSourceCompiles)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wno-narrowing")
|
||||
check_cxx_source_compiles("
|
||||
int main(int argc, char **argv) {
|
||||
__asm__ volatile (
|
||||
\"vadd.w $vr0, $vr1, $vr1\"
|
||||
);
|
||||
return 0; }" SUPPORTS_LSX)
|
||||
|
||||
check_cxx_source_compiles("
|
||||
int main(int argc, char **argv) {
|
||||
__asm__ volatile (
|
||||
\"xvadd.w $xr0, $xr1, $xr1\"
|
||||
);
|
||||
return 0; }" SUPPORTS_LASX)
|
||||
|
||||
if(SUPPORTS_LSX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlsx")
|
||||
endif()
|
||||
if(SUPPORTS_LASX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mlasx")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# this creates the static library (.a)
|
||||
add_library( ${ly_lib_static} STATIC ${ly_lib_parts})
|
||||
|
||||
# this creates the shared library (.so)
|
||||
add_library( ${ly_lib_shared} SHARED ${ly_lib_parts})
|
||||
set_target_properties( ${ly_lib_shared} PROPERTIES OUTPUT_NAME "${ly_lib_name}" )
|
||||
set_target_properties( ${ly_lib_shared} PROPERTIES PREFIX "lib" )
|
||||
if(WIN32)
|
||||
set_target_properties( ${ly_lib_shared} PROPERTIES IMPORT_PREFIX "lib" )
|
||||
endif()
|
||||
|
||||
# this creates the cpuid tool
|
||||
add_executable ( cpuid ${ly_base_dir}/util/cpuid.c )
|
||||
target_link_libraries ( cpuid ${ly_lib_static} )
|
||||
|
||||
# this creates the conversion tool
|
||||
add_executable ( yuvconvert ${ly_base_dir}/util/yuvconvert.cc )
|
||||
target_link_libraries ( yuvconvert ${ly_lib_static} )
|
||||
|
||||
# this creates the yuvconstants tool
|
||||
add_executable ( yuvconstants ${ly_base_dir}/util/yuvconstants.c )
|
||||
target_link_libraries ( yuvconstants ${ly_lib_static} )
|
||||
|
||||
find_package ( JPEG )
|
||||
if (JPEG_FOUND)
|
||||
include_directories( ${JPEG_INCLUDE_DIR} )
|
||||
target_link_libraries( ${ly_lib_shared} ${JPEG_LIBRARY} )
|
||||
add_definitions( -DHAVE_JPEG )
|
||||
endif()
|
||||
|
||||
if(UNIT_TEST)
|
||||
find_library(GTEST_LIBRARY gtest)
|
||||
if(GTEST_LIBRARY STREQUAL "GTEST_LIBRARY-NOTFOUND")
|
||||
set(GTEST_SRC_DIR_DEFAULT /usr/src/gtest)
|
||||
if (CMAKE_CROSSCOMPILING)
|
||||
set(GTEST_SRC_DIR_DEFAULT ${CMAKE_SOURCE_DIR}/third_party/googletest/src/googletest)
|
||||
endif()
|
||||
set(GTEST_SRC_DIR ${GTEST_SRC_DIR_DEFAULT} CACHE STRING "Location of gtest sources")
|
||||
if(EXISTS ${GTEST_SRC_DIR}/src/gtest-all.cc)
|
||||
message(STATUS "building gtest from sources in ${GTEST_SRC_DIR}")
|
||||
set(gtest_sources ${GTEST_SRC_DIR}/src/gtest-all.cc)
|
||||
add_library(gtest STATIC ${gtest_sources})
|
||||
include_directories(${GTEST_SRC_DIR})
|
||||
include_directories(${GTEST_SRC_DIR}/include)
|
||||
set(GTEST_LIBRARY gtest)
|
||||
else()
|
||||
message(FATAL_ERROR "UNIT_TEST is set but unable to find gtest library")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
add_executable(libyuv_unittest ${ly_unittest_sources})
|
||||
target_link_libraries(libyuv_unittest ${ly_lib_name} ${GTEST_LIBRARY})
|
||||
find_library(PTHREAD_LIBRARY pthread)
|
||||
if(NOT PTHREAD_LIBRARY STREQUAL "PTHREAD_LIBRARY-NOTFOUND")
|
||||
target_link_libraries(libyuv_unittest pthread)
|
||||
endif()
|
||||
if (JPEG_FOUND)
|
||||
target_link_libraries(libyuv_unittest ${JPEG_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(NACL AND NACL_LIBC STREQUAL "newlib")
|
||||
target_link_libraries(libyuv_unittest glibc-compat)
|
||||
endif()
|
||||
|
||||
find_library(GFLAGS_LIBRARY gflags)
|
||||
if(NOT GFLAGS_LIBRARY STREQUAL "GFLAGS_LIBRARY-NOTFOUND")
|
||||
target_link_libraries(libyuv_unittest gflags)
|
||||
add_definitions(-DLIBYUV_USE_GFLAGS)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# install the conversion tool, .so, .a, and all the header files
|
||||
install ( TARGETS yuvconvert DESTINATION bin )
|
||||
install ( TARGETS ${ly_lib_static} DESTINATION lib )
|
||||
install ( TARGETS ${ly_lib_shared} LIBRARY DESTINATION lib RUNTIME DESTINATION bin ARCHIVE DESTINATION lib )
|
||||
install ( DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include )
|
||||
|
||||
# create the .deb and .rpm packages using cpack
|
||||
include ( CM_linux_packages.cmake )
|
||||
|
||||
902
3rdparty/libyuv/DEPS
vendored
Normal file
902
3rdparty/libyuv/DEPS
vendored
Normal file
@@ -0,0 +1,902 @@
|
||||
gclient_gn_args_file = 'src/build/config/gclient_args.gni'
|
||||
gclient_gn_args = [
|
||||
'generate_location_tags',
|
||||
]
|
||||
|
||||
vars = {
|
||||
'chromium_git': 'https://chromium.googlesource.com',
|
||||
'chromium_revision': '2fec1883d8c89392206801daa91f95eb2f8ab3e1',
|
||||
'gn_version': 'git_revision:304bbef6c7e9a86630c12986b99c8654eb7fe648',
|
||||
# ninja CIPD package version.
|
||||
# https://chrome-infra-packages.appspot.com/p/infra/3pp/tools/ninja
|
||||
'ninja_version': 'version:3@1.12.1.chromium.4',
|
||||
# reclient CIPD package version
|
||||
'reclient_version': 're_client_version:0.185.0.db415f21-gomaip',
|
||||
# siso CIPD package version.
|
||||
'siso_version': 'git_revision:9863d88c26094a24fb848f8994da81e005810c76',
|
||||
# Fetch configuration files required for the 'use_remoteexec' gn arg
|
||||
'download_remoteexec_cfg': False,
|
||||
# RBE instance to use for running remote builds
|
||||
'rbe_instance': Str('projects/rbe-webrtc-developer/instances/default_instance'),
|
||||
# RBE project to download rewrapper config files for. Only needed if
|
||||
# different from the project used in 'rbe_instance'
|
||||
'rewrapper_cfg_project': Str(''),
|
||||
|
||||
# Keep the Chromium default of generating location tags.
|
||||
'generate_location_tags': True,
|
||||
|
||||
# By default, download the fuchsia sdk from the public sdk directory.
|
||||
'fuchsia_sdk_cipd_prefix': 'fuchsia/sdk/core/',
|
||||
'fuchsia_version': 'version:31.20260204.7.1',
|
||||
# By default, download the fuchsia images from the fuchsia GCS bucket.
|
||||
'fuchsia_images_bucket': 'fuchsia',
|
||||
'checkout_fuchsia': False,
|
||||
# Since the images are hundreds of MB, default to only downloading the image
|
||||
# most commonly useful for developers. Bots and developers that need to use
|
||||
# other images can override this with additional images.
|
||||
'checkout_fuchsia_boot_images': "terminal.x64",
|
||||
'checkout_fuchsia_product_bundles': '"{checkout_fuchsia_boot_images}" != ""',
|
||||
|
||||
# condition to allowlist deps for non-git-source processing.
|
||||
'non_git_source': 'True',
|
||||
|
||||
'android_sdk_build-tools_version': '-jLl4Ibk_WmgTsZaP-ueQwZDhBwkWf5BsQ4UNrkzXF0C',
|
||||
'android_sdk_emulator_version': '9lGp8nTUCRRWGMnI_96HcKfzjnxEJKUcfvfwmA3wXNkC',
|
||||
'android_sdk_platform-tools_version': 'qTD9QdBlBf3dyHsN1lJ0RH6AhHxR42Hmg2Ih-Vj4zIEC',
|
||||
'android_sdk_platforms_version': 'gxwLT70eR_ObwZJzKK8UIS-N549yAocNTmc0JHgO7gUC',
|
||||
}
|
||||
|
||||
deps = {
|
||||
'src/build':
|
||||
Var('chromium_git') + '/chromium/src/build' + '@' + 'bc3e93b3c459cfa0bb6bef8944b6398bbd9a7be8',
|
||||
'src/buildtools':
|
||||
Var('chromium_git') + '/chromium/src/buildtools' + '@' + '6a18683f555b4ac8b05ac8395c29c84483ac9588',
|
||||
'src/testing':
|
||||
Var('chromium_git') + '/chromium/src/testing' + '@' + 'd274a4df83dc1781e42bade23902491faf30a0d2',
|
||||
'src/third_party':
|
||||
Var('chromium_git') + '/chromium/src/third_party' + '@' + '51ac942dd6e95df61e747ad812f410a3c23947a0',
|
||||
|
||||
'src/buildtools/linux64': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'gn/gn/linux-${{arch}}',
|
||||
'version': Var('gn_version'),
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'checkout_linux',
|
||||
},
|
||||
|
||||
'src/buildtools/mac': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'gn/gn/mac-${{arch}}',
|
||||
'version': Var('gn_version'),
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'checkout_mac',
|
||||
},
|
||||
|
||||
'src/buildtools/win': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'gn/gn/windows-amd64',
|
||||
'version': Var('gn_version'),
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
'condition': 'checkout_win',
|
||||
},
|
||||
|
||||
'src/buildtools/reclient': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/rbe/client/${{platform}}',
|
||||
'version': Var('reclient_version'),
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/catapult':
|
||||
Var('chromium_git') + '/catapult.git' + '@' + '520359912034c843ec1903864f88182b1afb88d1',
|
||||
'src/third_party/clang-format/script':
|
||||
Var('chromium_git') + '/external/github.com/llvm/llvm-project/clang/tools/clang-format.git' + '@' + 'c2725e0622e1a86d55f14514f2177a39efea4a0e',
|
||||
'src/third_party/compiler-rt/src':
|
||||
'https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt.git@996704b467befd58a41cda583dfb5d6f75d446e6',
|
||||
'src/third_party/colorama/src':
|
||||
Var('chromium_git') + '/external/colorama.git' + '@' + '3de9f013df4b470069d03d250224062e8cf15c49',
|
||||
'src/third_party/cpu_features/src': {
|
||||
'url': Var('chromium_git') + '/external/github.com/google/cpu_features.git' + '@' + '936b9ab5515dead115606559502e3864958f7f6e',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/depot_tools':
|
||||
Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'ccffb57777dca15a09c9a1029acdd776d4ae9a06',
|
||||
'third_party/fuchsia-gn-sdk': {
|
||||
'url': Var('chromium_git') + '/chromium/src/third_party/fuchsia-gn-sdk.git' + '@' + '0d6902558d92fe3d49ba9a8f638ddea829be595b',
|
||||
'condition': 'checkout_fuchsia',
|
||||
},
|
||||
'src/third_party/googletest/src':
|
||||
Var('chromium_git') + '/external/github.com/google/googletest.git' + '@' + '4fe3307fb2d9f86d19777c7eb0e4809e9694dde7',
|
||||
'src/third_party/harfbuzz-ng/src':
|
||||
Var('chromium_git') + '/external/github.com/harfbuzz/harfbuzz.git' + '@' + 'fa2908bf16d2ccd6623f4d575455fea72a1a722b',
|
||||
'src/third_party/instrumented_libs': {
|
||||
'url': Var('chromium_git') + '/chromium/third_party/instrumented_libraries.git' + '@' + '69015643b3f68dbd438c010439c59adc52cac808',
|
||||
'condition': 'checkout_instrumented_libraries',
|
||||
},
|
||||
'src/third_party/libc++/src':
|
||||
Var('chromium_git') + '/external/github.com/llvm/llvm-project/libcxx.git' + '@' + '7ab65651aed6802d2599dcb7a73b1f82d5179d05',
|
||||
'src/third_party/libc++abi/src':
|
||||
Var('chromium_git') + '/external/github.com/llvm/llvm-project/libcxxabi.git' + '@' + '8f11bb1d4438d0239d0dfc1bd9456a9f31629dda',
|
||||
'src/third_party/llvm-libc/src':
|
||||
Var('chromium_git') + '/external/github.com/llvm/llvm-project/libc.git' + '@' + 'd38523b674e26b7c8d61ed2e48d6cfe248b12da0',
|
||||
|
||||
'src/third_party/libunwind/src':
|
||||
Var('chromium_git') + '/external/github.com/llvm/llvm-project/libunwind.git' + '@' + '17ccf7d110c5526cb77e93cfd8330f491fb2bf18',
|
||||
'src/third_party/libjpeg_turbo':
|
||||
Var('chromium_git') + '/chromium/deps/libjpeg_turbo.git' + '@' + '6bb85251a8382b5e07f635a981ac685cc5ab5053',
|
||||
'src/third_party/nasm':
|
||||
Var('chromium_git') + '/chromium/deps/nasm.git' + '@' + 'af5eeeb054bebadfbb79c7bcd100a95e2ad4525f',
|
||||
'src/tools':
|
||||
Var('chromium_git') + '/chromium/src/tools' + '@' + '73a128cf7335a71785ed9324d6a15b5559ca8050',
|
||||
|
||||
# libyuv-only dependencies (not present in Chromium).
|
||||
'src/third_party/gtest-parallel':
|
||||
Var('chromium_git') + '/external/webrtc/deps/third_party/gtest-parallel' + '@' + '1dad0e9f6d82ff994130b529d7d814b40eb32b0e',
|
||||
|
||||
'src/third_party/lss': {
|
||||
'url': Var('chromium_git') + '/linux-syscall-support.git' + '@' + '29164a80da4d41134950d76d55199ea33fbb9613',
|
||||
'condition': 'checkout_android or checkout_linux',
|
||||
},
|
||||
|
||||
'src/third_party/re2/src':
|
||||
Var('chromium_git') + '/external/github.com/google/re2.git' + '@' + '972a15cedd008d846f1a39b2e88ce48d7f166cbd',
|
||||
|
||||
# Android deps:
|
||||
'src/third_party/kotlin_stdlib/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/kotlin_stdlib',
|
||||
'version': 'FfVJUc4q9S6JB4uqVGPJQ3anrc1Y_W0O-oGK_2MJA5gC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/kotlinc/current': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/kotlinc',
|
||||
'version': 'KZWh3uhuenRgsoGqNYgSo82FO3sMwZjvmuR9TBvanTcC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_toolchain/ndk': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_toolchain/android_toolchain',
|
||||
'version': 'KXOia11cm9lVdUdPlbGLu8sCz6Y4ey_HV2s8_8qeqhgC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/androidx/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/androidx',
|
||||
'version': 'CL9NOUuKPO8ESaAQIKtBbN6MV0jndo4M-vT-Fjf3ZGoC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_support_test_runner': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_support_test_runner',
|
||||
'version': '96d4bf848cd210fdcbca6bcc8c1b4b39cbd93141',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_sdk/public': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_sdk/public/build-tools/36.1.0',
|
||||
'version': Var('android_sdk_build-tools_version'),
|
||||
},
|
||||
{
|
||||
'package': 'chromium/third_party/android_sdk/public/emulator',
|
||||
'version': Var('android_sdk_emulator_version'),
|
||||
},
|
||||
{
|
||||
'package': 'chromium/third_party/android_sdk/public/platform-tools',
|
||||
'version': Var('android_sdk_platform-tools_version'),
|
||||
},
|
||||
{
|
||||
'package': 'chromium/third_party/android_sdk/public/platforms/android-36.1',
|
||||
'version': Var('android_sdk_platforms_version'),
|
||||
},
|
||||
{
|
||||
'package': 'chromium/third_party/android_sdk/public/cmdline-tools/linux',
|
||||
'version': 'LZa8CWNVWS6UUQgQ7IJdFCqRV1Bmx2-alTNqEDJpJkcC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
|
||||
'src/third_party/android_build_tools/aapt2/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_build_tools/aapt2',
|
||||
'version': 'vUP1cs7krVsNHbUJpwSDR7rvWuYLGzINVa9xopPpt74C',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/ced/src': {
|
||||
'url': Var('chromium_git') + '/external/github.com/google/compact_enc_det.git' + '@' + 'ba412eaaacd3186085babcd901679a48863c7dd5',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/errorprone/lib': {
|
||||
'url': Var('chromium_git') + '/chromium/third_party/errorprone.git' + '@' + '980d49e839aa4984015efed34b0134d4b2c9b6d7',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/findbugs': {
|
||||
'url': Var('chromium_git') + '/chromium/deps/findbugs.git' + '@' + '4275d9ac8610db6b1bc9a5e887f97e41b33fac67',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/gson': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/gson',
|
||||
'version': '681931c9778045903a0ed59856ce2dd8dd7bf7ca',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/hamcrest/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/hamcrest',
|
||||
'version': 'dBioOAmFJjqAr_DY7dipbXdVfAxUQwjOBNibMPtX8lQC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
|
||||
'src/third_party/icu': {
|
||||
'url': Var('chromium_git') + '/chromium/deps/icu.git' + '@' + 'a86a32e67b8d1384b33f8fa48c83a6079b86f8cd',
|
||||
},
|
||||
|
||||
'src/third_party/icu4j/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/icu4j',
|
||||
'version': '8dV7WRVX0tTaNNqkLEnCA_dMofr2MJXFK400E7gOFygC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/intellij': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/intellij',
|
||||
'version': '77c2721b024b36ee073402c08e6d8428c0295336',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/jdk/current': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/jdk/linux-amd64',
|
||||
'version': '2iiuF-nKDH3moTImx2op4WTRetbfhzKoZhH7Xo44zGsC',
|
||||
},
|
||||
],
|
||||
# Needed on Linux for use on chromium_presubmit (for checkstyle).
|
||||
'condition': '(checkout_android or checkout_linux) and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/jsr-305/src': {
|
||||
'url': Var('chromium_git') + '/external/jsr-305.git' + '@' + '642c508235471f7220af6d5df2d3210e3bfc0919',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/junit/src': {
|
||||
'url': Var('chromium_git') + '/external/junit.git' + '@' + '0eb5ce72848d730da5bd6d42902fdd6a8a42055d',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/libunwindstack': {
|
||||
'url': Var('chromium_git') + '/chromium/src/third_party/libunwindstack.git' + '@' + '0928ad0d25e4af07c8be5ab06d0ca584f9f4ceb5',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/ninja': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'infra/3pp/tools/ninja/${{platform}}',
|
||||
'version': Var('ninja_version'),
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/siso/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'build/siso/${{platform}}',
|
||||
'version': Var('siso_version'),
|
||||
}
|
||||
],
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/mockito/src': {
|
||||
'url': Var('chromium_git') + '/external/mockito/mockito.git' + '@' + '7c3641bcef717ffa7d765f2c86b847d0aab1aac9',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
'src/third_party/ow2_asm': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/ow2_asm',
|
||||
'version': 'NNAhdJzMdnutUVqfSJm5v0tVazA9l3Dd6CRwH6N4Q5kC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/r8/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/r8',
|
||||
'version': 'MW7AMY0Q5SzgubYVtiVVg4LMjsFBcLKwKyc2dqcArAMC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
# This duplication is intentional, so we avoid updating the r8.jar used by
|
||||
# dexing unless necessary, since each update invalidates all incremental
|
||||
# dexing and unnecessarily slows down all bots.
|
||||
'src/third_party/r8/d8/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/r8',
|
||||
'version': 'MW7AMY0Q5SzgubYVtiVVg4LMjsFBcLKwKyc2dqcArAMC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/proguard': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/proguard',
|
||||
'version': 'Fd91BJFVlmiO6c46YMTsdy7n2f5Sk2hVVGlzPLvqZPsC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/requests/src': {
|
||||
'url': Var('chromium_git') + '/external/github.com/kennethreitz/requests.git' + '@' + 'c7e0fc087ceeadb8b4c84a0953a422c474093d6d',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
|
||||
'src/third_party/robolectric/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/robolectric',
|
||||
'version': 'dr-aJxRAPYDTBJXnjfht-bdxyywD6BP1lrcjZZPnRG0C',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/sqlite4java/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/sqlite4java',
|
||||
'version': 'LofjKH9dgXIAJhRYCPQlMFywSwxYimrfDeBmaHc-Z5EC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/turbine/cipd': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/turbine',
|
||||
'version': 'BMHNhxMhr7uGz1rh_Od_JE4kAdP9K5MXr6GN2R9tQkAC',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
'src/third_party/ub-uiautomator/lib': {
|
||||
'url': Var('chromium_git') + '/chromium/third_party/ub-uiautomator.git' + '@' + '00270549ce3161ae72ceb24712618ea28b4f9434',
|
||||
'condition': 'checkout_android',
|
||||
},
|
||||
|
||||
# iOS deps:
|
||||
'src/ios': {
|
||||
'url': Var('chromium_git') + '/chromium/src/ios' + '@' + '5d7abd83379e442938c885daa681ad8c48c21f63',
|
||||
'condition': 'checkout_ios'
|
||||
},
|
||||
|
||||
'src/third_party/llvm-build/Release+Asserts': {
|
||||
'dep_type': 'gcs',
|
||||
'bucket': 'chromium-browser-clang',
|
||||
'objects': [
|
||||
{
|
||||
# The Android libclang_rt.builtins libraries are currently only included in the Linux clang package.
|
||||
'object_name': 'Linux_x64/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': '9a5dfd23f6d37b21709327aa39562225c01a058cc209d1c629448d6d6d874ab2',
|
||||
'size_bytes': 57775784,
|
||||
'generation': 1770870606052091,
|
||||
'condition': 'host_os == "linux" or checkout_android',
|
||||
},
|
||||
{
|
||||
'object_name': 'Linux_x64/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': '103ba738fb6ebcd290e38458fdec8fa7b95bc3216af1e60ad260bc065b49d447',
|
||||
'size_bytes': 5798432,
|
||||
'generation': 1770870606263889,
|
||||
'condition': '((checkout_linux or checkout_mac or checkout_android) and host_os == "linux")',
|
||||
},
|
||||
{
|
||||
'object_name': 'Mac/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': '0230c7c9a625ceb2d2c650d995fb9cb5cdb6ab7c0c05042f560cc0cda441a2d0',
|
||||
'size_bytes': 54682532,
|
||||
'generation': 1770870608103936,
|
||||
'condition': 'host_os == "mac" and host_cpu == "x64"',
|
||||
},
|
||||
{
|
||||
'object_name': 'Mac/clang-mac-runtime-library-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': 'a7af5d119637f67bff7f390923a78a712b1067157c019aebf2dcddbc4ed7b640',
|
||||
'size_bytes': 1015272,
|
||||
'generation': 1770870616072374,
|
||||
'condition': 'checkout_mac and not host_os == "mac"',
|
||||
},
|
||||
{
|
||||
'object_name': 'Mac/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': '556b8abf3ec08c42769986ea8940ac7f09fa2cfe49328a2ccccee4641efce6c4',
|
||||
'size_bytes': 5703228,
|
||||
'generation': 1770870608115133,
|
||||
'condition': 'host_os == "mac" and host_cpu == "x64"',
|
||||
},
|
||||
{
|
||||
'object_name': 'Mac_arm64/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': '34102ff942cb0d7e2163fada5aeb53f5c2438d07d8caf5ed79970b133adc04be',
|
||||
'size_bytes': 45849908,
|
||||
'generation': 1770870617609650,
|
||||
'condition': 'host_os == "mac" and host_cpu == "arm64"',
|
||||
},
|
||||
{
|
||||
'object_name': 'Mac_arm64/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': 'aea68efe7aeab8eb4d2371e79e7dcb021e1448d8edd0d4851fa34907b93205a6',
|
||||
'size_bytes': 5446112,
|
||||
'generation': 1770870617921094,
|
||||
'condition': 'host_os == "mac" and host_cpu == "arm64"',
|
||||
},
|
||||
{
|
||||
'object_name': 'Win/clang-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': 'cca114f624db433c2ba6458a6de34e6e474bea379f483817dd5dc0a02c59df3c',
|
||||
'size_bytes': 49244312,
|
||||
'generation': 1770870628650736,
|
||||
'condition': 'host_os == "win"',
|
||||
},
|
||||
{
|
||||
'object_name': 'Win/clang-win-runtime-library-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': '3f2ad3f2adb92384ecdcb33385aa8beacd7f38d27bed6179e39b2e971469d028',
|
||||
'size_bytes': 2595252,
|
||||
'generation': 1770870636929948,
|
||||
'condition': 'checkout_win and not host_os == "win"',
|
||||
},
|
||||
{
|
||||
'object_name': 'Win/llvmobjdump-llvmorg-23-init-3706-gfc648683-1.tar.xz',
|
||||
'sha256sum': '7baba8d463b92d16c510d67be60eed89897ba76898121ea709264cbb41066af1',
|
||||
'size_bytes': 5859968,
|
||||
'generation': 1770870628750202,
|
||||
'condition': '(checkout_linux or checkout_mac or checkout_android) and host_os == "win"',
|
||||
},
|
||||
]
|
||||
},
|
||||
|
||||
# Everything coming after this is automatically updated by the auto-roller.
|
||||
# === ANDROID_DEPS Generated Code Start ===
|
||||
# Generated by //third_party/android_deps/fetch_all.py
|
||||
'src/third_party/android_deps/cipd/libs/com_android_tools_common': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_android_tools_common',
|
||||
'version': 'version:2@30.2.0-beta01.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/com_android_tools_layoutlib_layoutlib_api': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_android_tools_layoutlib_layoutlib_api',
|
||||
'version': 'version:2@30.2.0-beta01.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/com_android_tools_sdk_common': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_android_tools_sdk_common',
|
||||
'version': 'version:2@30.2.0-beta01.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_google_android_apps_common_testing_accessibility_framework_accessibility_test_framework',
|
||||
'version': 'version:2@4.0.0.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/com_googlecode_java_diff_utils_diffutils': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_googlecode_java_diff_utils_diffutils',
|
||||
'version': 'version:2@1.3.0.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/com_squareup_javapoet': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/com_squareup_javapoet',
|
||||
'version': 'version:2@1.13.0.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/net_bytebuddy_byte_buddy': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/net_bytebuddy_byte_buddy',
|
||||
'version': 'version:2@1.17.6.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/net_bytebuddy_byte_buddy_agent': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/net_bytebuddy_byte_buddy_agent',
|
||||
'version': 'version:2@1.17.6.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_ccil_cowan_tagsoup_tagsoup': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_ccil_cowan_tagsoup_tagsoup',
|
||||
'version': 'version:2@1.2.1.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_checkerframework_checker_compat_qual': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_checkerframework_checker_compat_qual',
|
||||
'version': 'version:2@2.5.5.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_android_extensions_runtime',
|
||||
'version': 'version:2@1.9.22.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_jetbrains_kotlin_kotlin_parcelize_runtime',
|
||||
'version': 'version:2@1.9.22.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_jsoup_jsoup': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_jsoup_jsoup',
|
||||
'version': 'version:2@1.15.1.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_mockito_mockito_android': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_mockito_mockito_android',
|
||||
'version': 'version:2@5.19.0.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_mockito_mockito_core': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_mockito_mockito_core',
|
||||
'version': 'version:2@5.19.0.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_mockito_mockito_subclass': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_mockito_mockito_subclass',
|
||||
'version': 'version:2@5.19.0.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
'src/third_party/android_deps/cipd/libs/org_objenesis_objenesis': {
|
||||
'packages': [
|
||||
{
|
||||
'package': 'chromium/third_party/android_deps/libs/org_objenesis_objenesis',
|
||||
'version': 'version:2@3.3.cr2',
|
||||
},
|
||||
],
|
||||
'condition': 'checkout_android and non_git_source',
|
||||
'dep_type': 'cipd',
|
||||
},
|
||||
|
||||
# === ANDROID_DEPS Generated Code End ===
|
||||
}
|
||||
|
||||
hooks = [
|
||||
{
|
||||
# This clobbers when necessary (based on get_landmines.py). It should be
|
||||
# an early hook but it will need to be run after syncing Chromium and
|
||||
# setting up the links, so the script actually exists.
|
||||
'name': 'landmines',
|
||||
'pattern': '.',
|
||||
'action': [
|
||||
'python3',
|
||||
'src/build/landmines.py',
|
||||
'--landmine-scripts',
|
||||
'src/tools_libyuv/get_landmines.py',
|
||||
'--src-dir',
|
||||
'src',
|
||||
],
|
||||
},
|
||||
# Downloads the current stable linux sysroot to build/linux/ if needed.
|
||||
{
|
||||
'name': 'sysroot_arm',
|
||||
'pattern': '.',
|
||||
'condition': 'checkout_linux and checkout_arm',
|
||||
'action': ['python3', 'src/build/linux/sysroot_scripts/install-sysroot.py',
|
||||
'--arch=arm'],
|
||||
},
|
||||
{
|
||||
'name': 'sysroot_arm64',
|
||||
'pattern': '.',
|
||||
'condition': 'checkout_linux and checkout_arm64',
|
||||
'action': ['python3', 'src/build/linux/sysroot_scripts/install-sysroot.py',
|
||||
'--arch=arm64'],
|
||||
},
|
||||
{
|
||||
'name': 'sysroot_x86',
|
||||
'pattern': '.',
|
||||
'condition': 'checkout_linux and (checkout_x86 or checkout_x64)',
|
||||
'action': ['python3', 'src/build/linux/sysroot_scripts/install-sysroot.py',
|
||||
'--arch=x86'],
|
||||
},
|
||||
{
|
||||
'name': 'sysroot_x64',
|
||||
'pattern': '.',
|
||||
'condition': 'checkout_linux and checkout_x64',
|
||||
'action': ['python3', 'src/build/linux/sysroot_scripts/install-sysroot.py',
|
||||
'--arch=x64'],
|
||||
},
|
||||
{
|
||||
# Update the Windows toolchain if necessary.
|
||||
'name': 'win_toolchain',
|
||||
'pattern': '.',
|
||||
'action': ['python3', 'src/build/vs_toolchain.py', 'update'],
|
||||
},
|
||||
{
|
||||
# Update the Mac toolchain if necessary.
|
||||
'name': 'mac_toolchain',
|
||||
'pattern': '.',
|
||||
'action': ['python3', 'src/build/mac_toolchain.py'],
|
||||
'condition': 'checkout_mac',
|
||||
},
|
||||
{
|
||||
'name': 'Download Fuchsia SDK from GCS',
|
||||
'pattern': '.',
|
||||
'condition': 'checkout_fuchsia',
|
||||
'action': [
|
||||
'python3',
|
||||
'src/build/fuchsia/update_sdk.py',
|
||||
'--cipd-prefix={fuchsia_sdk_cipd_prefix}',
|
||||
'--version={fuchsia_version}',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'Download Fuchsia system images',
|
||||
'pattern': '.',
|
||||
'condition': 'checkout_fuchsia and checkout_fuchsia_product_bundles',
|
||||
'action': [
|
||||
'python3',
|
||||
'src/build/fuchsia/update_product_bundles.py',
|
||||
'{checkout_fuchsia_boot_images}',
|
||||
],
|
||||
},
|
||||
{
|
||||
# Update LASTCHANGE.
|
||||
'name': 'lastchange',
|
||||
'pattern': '.',
|
||||
'action': ['python3', 'src/build/util/lastchange.py',
|
||||
'-o', 'src/build/util/LASTCHANGE'],
|
||||
},
|
||||
# Pull luci-go binaries (isolate, swarming) using checked-in hashes.
|
||||
{
|
||||
'name': 'luci-go_win',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=win32',
|
||||
'--bucket', 'chromium-luci',
|
||||
'-d', 'src/tools/luci-go/win64',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'luci-go_mac',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=darwin',
|
||||
'--bucket', 'chromium-luci',
|
||||
'-d', 'src/tools/luci-go/mac64',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'luci-go_linux',
|
||||
'pattern': '.',
|
||||
'action': [ 'download_from_google_storage',
|
||||
'--no_resume',
|
||||
'--platform=linux*',
|
||||
'--bucket', 'chromium-luci',
|
||||
'-d', 'src/tools/luci-go/linux64',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'Generate component metadata for tests',
|
||||
'pattern': '.',
|
||||
'action': [
|
||||
'vpython3',
|
||||
'src/testing/generate_location_tags.py',
|
||||
'--out',
|
||||
'src/testing/location_tags.json',
|
||||
],
|
||||
},
|
||||
# Download remote exec cfg files
|
||||
{
|
||||
'name': 'configure_reclient_cfgs',
|
||||
'pattern': '.',
|
||||
'condition': 'download_remoteexec_cfg',
|
||||
'action': ['python3',
|
||||
'src/buildtools/reclient_cfgs/configure_reclient_cfgs.py',
|
||||
'--rbe_instance',
|
||||
Var('rbe_instance'),
|
||||
'--reproxy_cfg_template',
|
||||
'reproxy.cfg.template',
|
||||
'--rewrapper_cfg_project',
|
||||
Var('rewrapper_cfg_project'),
|
||||
'--quiet',
|
||||
],
|
||||
},
|
||||
# Configure Siso for developer builds.
|
||||
{
|
||||
'name': 'configure_siso',
|
||||
'pattern': '.',
|
||||
'action': ['python3',
|
||||
'src/build/config/siso/configure_siso.py',
|
||||
'--rbe_instance',
|
||||
Var('rbe_instance'),
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'dsymutil_mac_arm64',
|
||||
'pattern': '.',
|
||||
'condition': 'host_os == "mac" and host_cpu == "arm64"',
|
||||
'action': [ 'python3',
|
||||
'src/third_party/depot_tools/download_from_google_storage.py',
|
||||
'--no_resume',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-browser-clang',
|
||||
'-s', 'src/tools/clang/dsymutil/bin/dsymutil.arm64.sha1',
|
||||
'-o', 'src/tools/clang/dsymutil/bin/dsymutil',
|
||||
],
|
||||
},
|
||||
{
|
||||
'name': 'dsymutil_mac_x64',
|
||||
'pattern': '.',
|
||||
'condition': 'host_os == "mac" and host_cpu == "x64"',
|
||||
'action': [ 'python3',
|
||||
'src/third_party/depot_tools/download_from_google_storage.py',
|
||||
'--no_resume',
|
||||
'--no_auth',
|
||||
'--bucket', 'chromium-browser-clang',
|
||||
'-s', 'src/tools/clang/dsymutil/bin/dsymutil.x64.sha1',
|
||||
'-o', 'src/tools/clang/dsymutil/bin/dsymutil',
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
recursedeps = [
|
||||
'src/buildtools',
|
||||
'src/third_party/instrumented_libs',
|
||||
]
|
||||
3
3rdparty/libyuv/DIR_METADATA
vendored
Normal file
3
3rdparty/libyuv/DIR_METADATA
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
monorail {
|
||||
component: "Internals>Images>Codecs"
|
||||
}
|
||||
29
3rdparty/libyuv/LICENSE
vendored
Normal file
29
3rdparty/libyuv/LICENSE
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
Copyright 2011 The LibYuv Project Authors. 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.
|
||||
|
||||
* Neither the name of Google nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
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.
|
||||
11
3rdparty/libyuv/OWNERS
vendored
Normal file
11
3rdparty/libyuv/OWNERS
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
mbonadei@chromium.org
|
||||
fbarchard@chromium.org
|
||||
wtc@google.com
|
||||
magjed@chromium.org
|
||||
jansson@google.com
|
||||
|
||||
per-file *.gn=mbonadei@chromium.org,jansson@google.com
|
||||
per-file .gitignore=*
|
||||
per-file AUTHORS=*
|
||||
per-file DEPS=*
|
||||
per-file PRESUBMIT.py=mbonadei@chromium.org,jansson@google.com
|
||||
24
3rdparty/libyuv/PATENTS
vendored
Normal file
24
3rdparty/libyuv/PATENTS
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
Additional IP Rights Grant (Patents)
|
||||
|
||||
"This implementation" means the copyrightable works distributed by
|
||||
Google as part of the LibYuv code package.
|
||||
|
||||
Google hereby grants to you a perpetual, worldwide, non-exclusive,
|
||||
no-charge, irrevocable (except as stated in this section) patent
|
||||
license to make, have made, use, offer to sell, sell, import,
|
||||
transfer, and otherwise run, modify and propagate the contents of this
|
||||
implementation of the LibYuv code package, where such license applies
|
||||
only to those patent claims, both currently owned by Google and
|
||||
acquired in the future, licensable by Google that are necessarily
|
||||
infringed by this implementation of the LibYuv code package. This
|
||||
grant does not include claims that would be infringed only as a
|
||||
consequence of further modification of this implementation. If you or
|
||||
your agent or exclusive licensee institute or order or agree to the
|
||||
institution of patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that this
|
||||
implementation of the LibYuv code package or any code incorporated
|
||||
within this implementation of the LibYuv code package constitutes
|
||||
direct or contributory patent infringement, or inducement of patent
|
||||
infringement, then any patent rights granted to you under this License
|
||||
for this implementation of the LibYuv code package shall terminate as
|
||||
of the date such litigation is filed.
|
||||
65
3rdparty/libyuv/PRESUBMIT.py
vendored
Normal file
65
3rdparty/libyuv/PRESUBMIT.py
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
# Copyright 2017 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
# Runs PRESUBMIT.py in py3 mode by git cl presubmit.
|
||||
USE_PYTHON3 = True
|
||||
|
||||
|
||||
def _CommonChecks(input_api, output_api):
|
||||
"""Checks common to both upload and commit."""
|
||||
results = []
|
||||
results.extend(
|
||||
input_api.canned_checks.RunPylint(
|
||||
input_api,
|
||||
output_api,
|
||||
files_to_skip=(
|
||||
r'^base[\\\/].*\.py$',
|
||||
r'^build[\\\/].*\.py$',
|
||||
r'^buildtools[\\\/].*\.py$',
|
||||
r'^ios[\\\/].*\.py$',
|
||||
r'^out.*[\\\/].*\.py$',
|
||||
r'^testing[\\\/].*\.py$',
|
||||
r'^third_party[\\\/].*\.py$',
|
||||
r'^tools[\\\/].*\.py$',
|
||||
# TODO(kjellander): should arguably be checked.
|
||||
r'^tools_libyuv[\\\/]valgrind[\\\/].*\.py$',
|
||||
r'^xcodebuild.*[\\\/].*\.py$',
|
||||
),
|
||||
disabled_warnings=[
|
||||
'F0401', # Failed to import x
|
||||
'E0611', # No package y in x
|
||||
'W0232', # Class has no __init__ method
|
||||
],
|
||||
pylintrc='pylintrc',
|
||||
version='2.7',
|
||||
)
|
||||
)
|
||||
return results
|
||||
|
||||
|
||||
def CheckChangeOnUpload(input_api, output_api):
|
||||
results = []
|
||||
results.extend(_CommonChecks(input_api, output_api))
|
||||
results.extend(
|
||||
input_api.canned_checks.CheckGNFormatted(input_api, output_api)
|
||||
)
|
||||
return results
|
||||
|
||||
|
||||
def CheckChangeOnCommit(input_api, output_api):
|
||||
results = []
|
||||
results.extend(_CommonChecks(input_api, output_api))
|
||||
results.extend(input_api.canned_checks.CheckOwners(input_api, output_api))
|
||||
results.extend(
|
||||
input_api.canned_checks.CheckChangeWasUploaded(input_api, output_api)
|
||||
)
|
||||
results.extend(
|
||||
input_api.canned_checks.CheckChangeHasDescription(input_api,
|
||||
output_api)
|
||||
)
|
||||
return results
|
||||
13
3rdparty/libyuv/README.chromium
vendored
Normal file
13
3rdparty/libyuv/README.chromium
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
Name: libyuv
|
||||
URL: https://chromium.googlesource.com/libyuv/libyuv/
|
||||
Version: 1929
|
||||
Revision: DEPS
|
||||
License: BSD-3-Clause
|
||||
License File: LICENSE
|
||||
Shipped: yes
|
||||
Security Critical: yes
|
||||
Update Mechanism: Manual
|
||||
|
||||
Description:
|
||||
libyuv is an open source project that includes YUV conversion and scaling functionality.
|
||||
|
||||
19
3rdparty/libyuv/README.md
vendored
Normal file
19
3rdparty/libyuv/README.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
**libyuv** is an open source project that includes YUV scaling and conversion functionality.
|
||||
|
||||
* Scale YUV to prepare content for compression, with point, bilinear or box filter.
|
||||
* Convert to YUV from webcam formats for compression.
|
||||
* Convert to RGB formats for rendering/effects.
|
||||
* Rotate by 90/180/270 degrees to adjust for mobile devices in portrait mode.
|
||||
* Optimized for SSSE3/AVX2 on x86/x64.
|
||||
* Optimized for Neon/SVE2/SME on Arm.
|
||||
* Optimized for MSA on Mips.
|
||||
* Optimized for RVV on RISC-V.
|
||||
|
||||
### Development
|
||||
|
||||
See [Getting started][1] for instructions on how to get started developing.
|
||||
|
||||
You can also browse the [docs directory][2] for more documentation.
|
||||
|
||||
[1]: ./docs/getting_started.md
|
||||
[2]: ./docs/
|
||||
14
3rdparty/libyuv/WORKSPACE.bazel
vendored
Normal file
14
3rdparty/libyuv/WORKSPACE.bazel
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
workspace(name = "libyuv")
|
||||
|
||||
android_sdk_repository(
|
||||
name = "androidsdk",
|
||||
# Bazel will automatically use the ANDROID_HOME environment variable.
|
||||
)
|
||||
|
||||
android_ndk_repository(
|
||||
name = "androidndk",
|
||||
# Bazel will automatically use the ANDROID_NDK_HOME environment variable.
|
||||
)
|
||||
|
||||
# Optional: If you need to fetch specific dependencies (e.g., GoogleTest, libjpeg-turbo)
|
||||
# you can define them here using http_archive.
|
||||
207
3rdparty/libyuv/build-clangcl/ALL_BUILD.vcxproj
vendored
Normal file
207
3rdparty/libyuv/build-clangcl/ALL_BUILD.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
8
3rdparty/libyuv/build-clangcl/ALL_BUILD.vcxproj.filters
vendored
Normal file
8
3rdparty/libyuv/build-clangcl/ALL_BUILD.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\CMakeLists.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
71
3rdparty/libyuv/build-clangcl/CPackConfig.cmake
vendored
Normal file
71
3rdparty/libyuv/build-clangcl/CPackConfig.cmake
vendored
Normal file
@@ -0,0 +1,71 @@
|
||||
# This file will be configured to contain variables for CPack. These variables
|
||||
# should be set in the CMake list file of the project before CPack module is
|
||||
# included. The list of available CPACK_xxx variables and their associated
|
||||
# documentation may be obtained using
|
||||
# cpack --help-variable-list
|
||||
#
|
||||
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
|
||||
# and some are specific to a generator
|
||||
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
|
||||
# usually begin with CPACK_<GENNAME>_xxxx.
|
||||
|
||||
|
||||
set(CPACK_ARCHIVE_GID "-1")
|
||||
set(CPACK_ARCHIVE_UID "-1")
|
||||
set(CPACK_BUILD_SOURCE_DIRS "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv;C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl")
|
||||
set(CPACK_CMAKE_GENERATOR "Visual Studio 17 2022")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Frank Barchard <fbarchard@chromium.org>")
|
||||
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "other")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "YUV built using CMake")
|
||||
set(CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE "ON")
|
||||
set(CPACK_GENERATOR "DEB;RPM")
|
||||
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
|
||||
set(CPACK_INSTALL_CMAKE_PROJECTS "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl;YUV;ALL;/")
|
||||
set(CPACK_INSTALL_PREFIX "C:/Program Files/YUV")
|
||||
set(CPACK_MODULE_PATH "")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "libyuv 0.0.")
|
||||
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "libyuv 0.0.")
|
||||
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
|
||||
set(CPACK_OUTPUT_CONFIG_FILE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl/CPackConfig.cmake")
|
||||
set(CPACK_PACKAGE_CONTACT "fbarchard@chromium.org")
|
||||
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
|
||||
set(CPACK_PACKAGE_DESCRIPTION "YUV library and YUV conversion tool")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "YUV library")
|
||||
set(CPACK_PACKAGE_FILE_NAME "libyuv-0.0.-linux-amd-64")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "libyuv 0.0.")
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "libyuv 0.0.")
|
||||
set(CPACK_PACKAGE_NAME "libyuv")
|
||||
set(CPACK_PACKAGE_RELOCATABLE "true")
|
||||
set(CPACK_PACKAGE_VENDOR "Frank Barchard")
|
||||
set(CPACK_PACKAGE_VERSION "0.0.")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "1")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/LICENSE")
|
||||
set(CPACK_RESOURCE_FILE_README "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_RESOURCE_FILE_WELCOME "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericWelcome.txt")
|
||||
set(CPACK_SET_DESTDIR "OFF")
|
||||
set(CPACK_SOURCE_7Z "ON")
|
||||
set(CPACK_SOURCE_GENERATOR "7Z;ZIP")
|
||||
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl/CPackSourceConfig.cmake")
|
||||
set(CPACK_SOURCE_ZIP "ON")
|
||||
set(CPACK_SYSTEM_NAME "linux-amd-64")
|
||||
set(CPACK_THREADS "1")
|
||||
set(CPACK_TOPLEVEL_TAG "linux-amd-64")
|
||||
set(CPACK_WIX_SIZEOF_VOID_P "8")
|
||||
|
||||
if(NOT CPACK_PROPERTIES_FILE)
|
||||
set(CPACK_PROPERTIES_FILE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl/CPackProperties.cmake")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CPACK_PROPERTIES_FILE})
|
||||
include(${CPACK_PROPERTIES_FILE})
|
||||
endif()
|
||||
79
3rdparty/libyuv/build-clangcl/CPackSourceConfig.cmake
vendored
Normal file
79
3rdparty/libyuv/build-clangcl/CPackSourceConfig.cmake
vendored
Normal file
@@ -0,0 +1,79 @@
|
||||
# This file will be configured to contain variables for CPack. These variables
|
||||
# should be set in the CMake list file of the project before CPack module is
|
||||
# included. The list of available CPACK_xxx variables and their associated
|
||||
# documentation may be obtained using
|
||||
# cpack --help-variable-list
|
||||
#
|
||||
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
|
||||
# and some are specific to a generator
|
||||
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
|
||||
# usually begin with CPACK_<GENNAME>_xxxx.
|
||||
|
||||
|
||||
set(CPACK_ARCHIVE_GID "-1")
|
||||
set(CPACK_ARCHIVE_UID "-1")
|
||||
set(CPACK_BUILD_SOURCE_DIRS "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv;C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl")
|
||||
set(CPACK_CMAKE_GENERATOR "Visual Studio 17 2022")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Frank Barchard <fbarchard@chromium.org>")
|
||||
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION "other")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "YUV built using CMake")
|
||||
set(CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE "ON")
|
||||
set(CPACK_GENERATOR "7Z;ZIP")
|
||||
set(CPACK_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
|
||||
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
|
||||
set(CPACK_INSTALLED_DIRECTORIES "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv;/")
|
||||
set(CPACK_INSTALL_CMAKE_PROJECTS "")
|
||||
set(CPACK_INSTALL_PREFIX "C:/Program Files/YUV")
|
||||
set(CPACK_MODULE_PATH "")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "libyuv 0.0.")
|
||||
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALL_ROOT "$PROGRAMFILES64")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "libyuv 0.0.")
|
||||
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
|
||||
set(CPACK_OUTPUT_CONFIG_FILE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl/CPackConfig.cmake")
|
||||
set(CPACK_PACKAGE_CONTACT "fbarchard@chromium.org")
|
||||
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
|
||||
set(CPACK_PACKAGE_DESCRIPTION "YUV library and YUV conversion tool")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "YUV library")
|
||||
set(CPACK_PACKAGE_FILE_NAME "libyuv-0.0.-Source")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "libyuv 0.0.")
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "libyuv 0.0.")
|
||||
set(CPACK_PACKAGE_NAME "libyuv")
|
||||
set(CPACK_PACKAGE_RELOCATABLE "true")
|
||||
set(CPACK_PACKAGE_VENDOR "Frank Barchard")
|
||||
set(CPACK_PACKAGE_VERSION "0.0.")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "1")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/LICENSE")
|
||||
set(CPACK_RESOURCE_FILE_README "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_RESOURCE_FILE_WELCOME "C:/Program Files/CMake/share/cmake-4.3/Templates/CPack.GenericWelcome.txt")
|
||||
set(CPACK_RPM_PACKAGE_SOURCES "ON")
|
||||
set(CPACK_SET_DESTDIR "OFF")
|
||||
set(CPACK_SOURCE_7Z "ON")
|
||||
set(CPACK_SOURCE_GENERATOR "7Z;ZIP")
|
||||
set(CPACK_SOURCE_IGNORE_FILES "/CVS/;/\\.svn/;/\\.bzr/;/\\.hg/;/\\.git/;\\.swp\$;\\.#;/#")
|
||||
set(CPACK_SOURCE_INSTALLED_DIRECTORIES "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv;/")
|
||||
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl/CPackSourceConfig.cmake")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "libyuv-0.0.-Source")
|
||||
set(CPACK_SOURCE_TOPLEVEL_TAG "linux-amd-64-Source")
|
||||
set(CPACK_SOURCE_ZIP "ON")
|
||||
set(CPACK_STRIP_FILES "")
|
||||
set(CPACK_SYSTEM_NAME "linux-amd-64")
|
||||
set(CPACK_THREADS "1")
|
||||
set(CPACK_TOPLEVEL_TAG "linux-amd-64-Source")
|
||||
set(CPACK_WIX_SIZEOF_VOID_P "8")
|
||||
|
||||
if(NOT CPACK_PROPERTIES_FILE)
|
||||
set(CPACK_PROPERTIES_FILE "C:/Projects/CLionProjects/ANSCORE/3rdparty/libyuv/build-clangcl/CPackProperties.cmake")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CPACK_PROPERTIES_FILE})
|
||||
include(${CPACK_PROPERTIES_FILE})
|
||||
endif()
|
||||
209
3rdparty/libyuv/build-clangcl/INSTALL.vcxproj
vendored
Normal file
209
3rdparty/libyuv/build-clangcl/INSTALL.vcxproj
vendored
Normal file
@@ -0,0 +1,209 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="MinSizeRel|x64">
|
||||
<Configuration>MinSizeRel</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="RelWithDebInfo|x64">
|
||||
<Configuration>RelWithDebInfo</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{61C7C72C-E7CB-39D1-AC0F-81E792932E3F}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||
<Platform>x64</Platform>
|
||||
<ProjectName>INSTALL</ProjectName>
|
||||
<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<PostBuildEvent>
|
||||
<UseUtf8Encoding>Always</UseUtf8Encoding>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
"C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<PostBuildEvent>
|
||||
<UseUtf8Encoding>Always</UseUtf8Encoding>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
"C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">
|
||||
<PostBuildEvent>
|
||||
<UseUtf8Encoding>Always</UseUtf8Encoding>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
"C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">
|
||||
<PostBuildEvent>
|
||||
<UseUtf8Encoding>Always</UseUtf8Encoding>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
"C:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=$(Configuration) -P cmake_install.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\14437f745e8a22a679d7f8fa1116abc5\INSTALL_force.rule">
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\INSTALL_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</VerifyInputsAndOutputsExist>
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\INSTALL_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</VerifyInputsAndOutputsExist>
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\INSTALL_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">false</VerifyInputsAndOutputsExist>
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\INSTALL_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">false</VerifyInputsAndOutputsExist>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\ZERO_CHECK.vcxproj">
|
||||
<Project>{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}</Project>
|
||||
<Name>ZERO_CHECK</Name>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\ALL_BUILD.vcxproj">
|
||||
<Project>{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}</Project>
|
||||
<Name>ALL_BUILD</Name>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
13
3rdparty/libyuv/build-clangcl/INSTALL.vcxproj.filters
vendored
Normal file
13
3rdparty/libyuv/build-clangcl/INSTALL.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\14437f745e8a22a679d7f8fa1116abc5\INSTALL_force.rule">
|
||||
<Filter>CMake Rules</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="CMake Rules">
|
||||
<UniqueIdentifier>{AA5F09BC-3008-32DD-A330-A59A00D15748}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
224
3rdparty/libyuv/build-clangcl/PACKAGE.vcxproj
vendored
Normal file
224
3rdparty/libyuv/build-clangcl/PACKAGE.vcxproj
vendored
Normal file
@@ -0,0 +1,224 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ResolveNugetPackages>false</ResolveNugetPackages>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="MinSizeRel|x64">
|
||||
<Configuration>MinSizeRel</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="RelWithDebInfo|x64">
|
||||
<Configuration>RelWithDebInfo</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{F11C2963-C363-37C3-AAC4-AB1AC1946D03}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||
<Platform>x64</Platform>
|
||||
<ProjectName>PACKAGE</ProjectName>
|
||||
<VCProjectUpgraderObjectName>NoUpgrade</VCProjectUpgraderObjectName>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'" Label="Configuration">
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>ClangCL</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.20506.1</_ProjectFileVersion>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
<IntDir Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<PostBuildEvent>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
cd C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
C:
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
"C:\Program Files\CMake\bin\cpack.exe" -C $(Configuration) --config ./CPackConfig.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<PostBuildEvent>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
cd C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
C:
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
"C:\Program Files\CMake\bin\cpack.exe" -C $(Configuration) --config ./CPackConfig.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">
|
||||
<PostBuildEvent>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
cd C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
C:
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
"C:\Program Files\CMake\bin\cpack.exe" -C $(Configuration) --config ./CPackConfig.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">
|
||||
<PostBuildEvent>
|
||||
<Message></Message>
|
||||
<Command>setlocal
|
||||
cd C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
C:
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
"C:\Program Files\CMake\bin\cpack.exe" -C $(Configuration) --config ./CPackConfig.cmake
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\14437f745e8a22a679d7f8fa1116abc5\PACKAGE_force.rule">
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\PACKAGE_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</VerifyInputsAndOutputsExist>
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\PACKAGE_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</VerifyInputsAndOutputsExist>
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\PACKAGE_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='MinSizeRel|x64'">false</VerifyInputsAndOutputsExist>
|
||||
<BuildInParallel Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">true</BuildInParallel>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'"> </Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">setlocal
|
||||
cd .
|
||||
if %errorlevel% neq 0 goto :cmEnd
|
||||
:cmEnd
|
||||
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
|
||||
:cmErrorLevel
|
||||
exit /b %1
|
||||
:cmDone
|
||||
if %errorlevel% neq 0 goto :VCEnd</Command>
|
||||
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">%(AdditionalInputs)</AdditionalInputs>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\PACKAGE_force</Outputs>
|
||||
<LinkObjects Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">false</LinkObjects>
|
||||
<VerifyInputsAndOutputsExist Condition="'$(Configuration)|$(Platform)'=='RelWithDebInfo|x64'">false</VerifyInputsAndOutputsExist>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\ZERO_CHECK.vcxproj">
|
||||
<Project>{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}</Project>
|
||||
<Name>ZERO_CHECK</Name>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\ALL_BUILD.vcxproj">
|
||||
<Project>{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}</Project>
|
||||
<Name>ALL_BUILD</Name>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
13
3rdparty/libyuv/build-clangcl/PACKAGE.vcxproj.filters
vendored
Normal file
13
3rdparty/libyuv/build-clangcl/PACKAGE.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\14437f745e8a22a679d7f8fa1116abc5\PACKAGE_force.rule">
|
||||
<Filter>CMake Rules</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="CMake Rules">
|
||||
<UniqueIdentifier>{AA5F09BC-3008-32DD-A330-A59A00D15748}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
152
3rdparty/libyuv/build-clangcl/YUV.sln
vendored
Normal file
152
3rdparty/libyuv/build-clangcl/YUV.sln
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ALL_BUILD", "ALL_BUILD.vcxproj", "{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89} = {81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE} = {A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4} = {F3EC2609-89DE-3753-99D5-F9C23D343DD4}
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E} = {8059AAAE-CA50-342A-8851-DA27527F6F4E}
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB} = {617C9E93-93F4-36E2-A891-88EC17963FAB}
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4} = {5B503A05-BF49-30CA-88C1-4265C2FC0DD4}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "INSTALL", "INSTALL.vcxproj", "{61C7C72C-E7CB-39D1-AC0F-81E792932E3F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F} = {2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PACKAGE", "PACKAGE.vcxproj", "{F11C2963-C363-37C3-AAC4-AB1AC1946D03}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F} = {2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZERO_CHECK", "ZERO_CHECK.vcxproj", "{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpuid", "cpuid.vcxproj", "{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE} = {A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yuv", "yuv.vcxproj", "{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4} = {F3EC2609-89DE-3753-99D5-F9C23D343DD4}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yuv_common_objects", "yuv_common_objects.vcxproj", "{F3EC2609-89DE-3753-99D5-F9C23D343DD4}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yuv_shared", "yuv_shared.vcxproj", "{8059AAAE-CA50-342A-8851-DA27527F6F4E}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4} = {F3EC2609-89DE-3753-99D5-F9C23D343DD4}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yuvconstants", "yuvconstants.vcxproj", "{617C9E93-93F4-36E2-A891-88EC17963FAB}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE} = {A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "yuvconvert", "yuvconvert.vcxproj", "{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2} = {2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE} = {A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
Release|x64 = Release|x64
|
||||
MinSizeRel|x64 = MinSizeRel|x64
|
||||
RelWithDebInfo|x64 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.Debug|x64.Build.0 = Debug|x64
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.Release|x64.ActiveCfg = Release|x64
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.Release|x64.Build.0 = Release|x64
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{2A8DFB0A-035B-37A7-BF0F-6EB1A272CD1F}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{61C7C72C-E7CB-39D1-AC0F-81E792932E3F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{61C7C72C-E7CB-39D1-AC0F-81E792932E3F}.Release|x64.ActiveCfg = Release|x64
|
||||
{61C7C72C-E7CB-39D1-AC0F-81E792932E3F}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{61C7C72C-E7CB-39D1-AC0F-81E792932E3F}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{F11C2963-C363-37C3-AAC4-AB1AC1946D03}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F11C2963-C363-37C3-AAC4-AB1AC1946D03}.Release|x64.ActiveCfg = Release|x64
|
||||
{F11C2963-C363-37C3-AAC4-AB1AC1946D03}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{F11C2963-C363-37C3-AAC4-AB1AC1946D03}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.Debug|x64.Build.0 = Debug|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.Release|x64.ActiveCfg = Release|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.Release|x64.Build.0 = Release|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{2A3F2808-B86A-3892-AA83-3FE20DDAB4A2}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.Debug|x64.Build.0 = Debug|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.Release|x64.ActiveCfg = Release|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.Release|x64.Build.0 = Release|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{81DEEFB1-F08B-34E2-8B5B-64CD789B5E89}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.Debug|x64.Build.0 = Debug|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.Release|x64.ActiveCfg = Release|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.Release|x64.Build.0 = Release|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{A89438BF-C06C-3BC8-BC4F-20664BCC2FDE}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.Debug|x64.Build.0 = Debug|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.Release|x64.ActiveCfg = Release|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.Release|x64.Build.0 = Release|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{F3EC2609-89DE-3753-99D5-F9C23D343DD4}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.Debug|x64.Build.0 = Debug|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.Release|x64.ActiveCfg = Release|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.Release|x64.Build.0 = Release|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{8059AAAE-CA50-342A-8851-DA27527F6F4E}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.Debug|x64.Build.0 = Debug|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.Release|x64.ActiveCfg = Release|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.Release|x64.Build.0 = Release|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{617C9E93-93F4-36E2-A891-88EC17963FAB}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.Debug|x64.Build.0 = Debug|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.Release|x64.ActiveCfg = Release|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.Release|x64.Build.0 = Release|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.MinSizeRel|x64.ActiveCfg = MinSizeRel|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.MinSizeRel|x64.Build.0 = MinSizeRel|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.RelWithDebInfo|x64.ActiveCfg = RelWithDebInfo|x64
|
||||
{5B503A05-BF49-30CA-88C1-4265C2FC0DD4}.RelWithDebInfo|x64.Build.0 = RelWithDebInfo|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {69439F8F-2755-3C57-A1D9-D72E2B1930F0}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
179
3rdparty/libyuv/build-clangcl/ZERO_CHECK.vcxproj
vendored
Normal file
179
3rdparty/libyuv/build-clangcl/ZERO_CHECK.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
13
3rdparty/libyuv/build-clangcl/ZERO_CHECK.vcxproj.filters
vendored
Normal file
13
3rdparty/libyuv/build-clangcl/ZERO_CHECK.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\CMakeFiles\14437f745e8a22a679d7f8fa1116abc5\generate.stamp.rule">
|
||||
<Filter>CMake Rules</Filter>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="CMake Rules">
|
||||
<UniqueIdentifier>{AA5F09BC-3008-32DD-A330-A59A00D15748}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
385
3rdparty/libyuv/build-clangcl/cpuid.vcxproj
vendored
Normal file
385
3rdparty/libyuv/build-clangcl/cpuid.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
16
3rdparty/libyuv/build-clangcl/cpuid.vcxproj.filters
vendored
Normal file
16
3rdparty/libyuv/build-clangcl/cpuid.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\util\cpuid.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\CMakeLists.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{2DD51137-3917-377C-85D7-616DAB45EEBF}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
362
3rdparty/libyuv/build-clangcl/yuv.vcxproj
vendored
Normal file
362
3rdparty/libyuv/build-clangcl/yuv.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
133
3rdparty/libyuv/build-clangcl/yuv.vcxproj.filters
vendored
Normal file
133
3rdparty/libyuv/build-clangcl/yuv.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\CMakeLists.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_from_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_from.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_jpeg.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_to_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_to_i420.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\cpu_id.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\mjpeg_decoder.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\mjpeg_validate.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\planar_functions.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_any.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_lsx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_any.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_lasx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_lsx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_rvv.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_any.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_lsx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_rgb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_rvv.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_uv.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\video_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Object Libraries">
|
||||
<UniqueIdentifier>{CAD0922B-22A9-3780-8005-16A5A544BAEC}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
356
3rdparty/libyuv/build-clangcl/yuv_common_objects.vcxproj
vendored
Normal file
356
3rdparty/libyuv/build-clangcl/yuv_common_objects.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
133
3rdparty/libyuv/build-clangcl/yuv_common_objects.vcxproj.filters
vendored
Normal file
133
3rdparty/libyuv/build-clangcl/yuv_common_objects.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\compare.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\compare_common.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\compare_gcc.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\compare_win.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\convert_argb.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\convert.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\convert_from_argb.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\convert_from.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\convert_jpeg.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\convert_to_argb.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\convert_to_i420.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\cpu_id.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\mjpeg_decoder.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\mjpeg_validate.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\planar_functions.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\rotate_any.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\rotate_argb.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\rotate.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\rotate_common.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\rotate_gcc.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\rotate_lsx.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\rotate_win.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\row_any.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\row_common.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\row_gcc.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\row_lasx.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\row_lsx.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\row_rvv.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\row_win.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_any.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_argb.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_common.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_gcc.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_lsx.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_rgb.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_rvv.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_uv.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\scale_win.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\source\video_common.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\CMakeLists.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{2DD51137-3917-377C-85D7-616DAB45EEBF}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
427
3rdparty/libyuv/build-clangcl/yuv_shared.vcxproj
vendored
Normal file
427
3rdparty/libyuv/build-clangcl/yuv_shared.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
133
3rdparty/libyuv/build-clangcl/yuv_shared.vcxproj.filters
vendored
Normal file
133
3rdparty/libyuv/build-clangcl/yuv_shared.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,133 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\CMakeLists.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\compare_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_from_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_from.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_jpeg.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_to_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\convert_to_i420.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\cpu_id.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\mjpeg_decoder.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\mjpeg_validate.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\planar_functions.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_any.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_lsx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\rotate_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_any.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_lasx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_lsx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_rvv.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\row_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_any.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_argb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_gcc.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_lsx.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_rgb.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_rvv.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_uv.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\scale_win.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
<Object Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\build-clangcl\yuv_common_objects.dir\$(Configuration)\video_common.obj">
|
||||
<Filter>Object Libraries</Filter>
|
||||
</Object>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Object Libraries">
|
||||
<UniqueIdentifier>{CAD0922B-22A9-3780-8005-16A5A544BAEC}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
385
3rdparty/libyuv/build-clangcl/yuvconstants.vcxproj
vendored
Normal file
385
3rdparty/libyuv/build-clangcl/yuvconstants.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
16
3rdparty/libyuv/build-clangcl/yuvconstants.vcxproj.filters
vendored
Normal file
16
3rdparty/libyuv/build-clangcl/yuvconstants.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\util\yuvconstants.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\CMakeLists.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{2DD51137-3917-377C-85D7-616DAB45EEBF}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
385
3rdparty/libyuv/build-clangcl/yuvconvert.vcxproj
vendored
Normal file
385
3rdparty/libyuv/build-clangcl/yuvconvert.vcxproj
vendored
Normal file
File diff suppressed because one or more lines are too long
16
3rdparty/libyuv/build-clangcl/yuvconvert.vcxproj.filters
vendored
Normal file
16
3rdparty/libyuv/build-clangcl/yuvconvert.vcxproj.filters
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="17.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<ClCompile Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\util\yuvconvert.cc">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="C:\Projects\CLionProjects\ANSCORE\3rdparty\libyuv\CMakeLists.txt" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{2DD51137-3917-377C-85D7-616DAB45EEBF}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
60
3rdparty/libyuv/build_overrides/build.gni
vendored
Normal file
60
3rdparty/libyuv/build_overrides/build.gni
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
# Copyright 2016 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
# Variable that can be used to support multiple build scenarios, like having
|
||||
# Chromium specific targets in a client project's GN file etc.
|
||||
build_with_chromium = false
|
||||
|
||||
# Some non-Chromium builds don't support building java targets.
|
||||
enable_java_templates = true
|
||||
|
||||
# Enables assertions on safety checks in libc++.
|
||||
enable_safe_libcxx = true
|
||||
|
||||
# Allow using custom suppressions files (currently not used by libyuv).
|
||||
asan_suppressions_file = "//build/sanitizers/asan_suppressions.cc"
|
||||
lsan_suppressions_file = "//build/sanitizers/lsan_suppressions.cc"
|
||||
tsan_suppressions_file = "//build/sanitizers/tsan_suppressions.cc"
|
||||
|
||||
msan_blacklist_path =
|
||||
rebase_path("//tools_libyuv/msan/blacklist.txt", root_build_dir)
|
||||
ubsan_blacklist_path =
|
||||
rebase_path("//tools_libyuv/ubsan/blacklist.txt", root_build_dir)
|
||||
ubsan_vptr_blacklist_path =
|
||||
rebase_path("//tools_libyuv/ubsan/vptr_blacklist.txt", root_build_dir)
|
||||
|
||||
# For Chromium, Android 32-bit non-component, non-clang builds hit a 4GiB size
|
||||
# limit, making them requiring symbol_level=2. WebRTC doesn't hit that problem
|
||||
# so we just ignore that assert. See https://crbug.com/648948 for more info.
|
||||
ignore_elf32_limitations = true
|
||||
|
||||
# Use bundled hermetic Xcode installation maintained by Chromium,
|
||||
# except for local iOS builds where it is unsupported.
|
||||
# Allow for mac cross compile on linux machines.
|
||||
if (host_os == "mac" || host_os == "linux") {
|
||||
_result = exec_script("//build/mac/should_use_hermetic_xcode.py",
|
||||
[ target_os ],
|
||||
"value")
|
||||
assert(_result != 2,
|
||||
"Do not allow building targets with the default " +
|
||||
"hermetic toolchain if the minimum OS version is not met.")
|
||||
use_system_xcode = _result == 0
|
||||
}
|
||||
|
||||
declare_args() {
|
||||
# Limits the defined //third_party/android_deps targets to only "buildCompile"
|
||||
# and "buildCompileNoDeps" targets. This is useful for third-party
|
||||
# repositories which do not use JUnit tests. For instance,
|
||||
# limit_android_deps == true removes "gn gen" requirement for
|
||||
# //third_party/robolectric .
|
||||
limit_android_deps = false
|
||||
|
||||
# Allows googletest to pretty-print various absl types.
|
||||
# Defined here rather than in gtest.gni to match chromium.
|
||||
gtest_enable_absl_printers = true
|
||||
}
|
||||
19
3rdparty/libyuv/build_overrides/gtest.gni
vendored
Normal file
19
3rdparty/libyuv/build_overrides/gtest.gni
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# Copyright (c) 2016 The LibYuv project authors. All Rights Reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
# Include support for registering main function in multi-process tests.
|
||||
gtest_include_multiprocess = true
|
||||
|
||||
# Include support for platform-specific operations across unit tests.
|
||||
gtest_include_platform_test = true
|
||||
|
||||
# Exclude support for testing Objective C code on OS X and iOS.
|
||||
gtest_include_objc_support = true
|
||||
|
||||
# Exclude support for flushing coverage files on iOS.
|
||||
gtest_include_ios_coverage = true
|
||||
17
3rdparty/libyuv/build_overrides/partition_alloc.gni
vendored
Normal file
17
3rdparty/libyuv/build_overrides/partition_alloc.gni
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# Copyright 2022 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
# Use default values for PartitionAlloc as standalone library from
|
||||
# base/allocator/partition_allocator/build_overrides/partition_alloc.gni
|
||||
use_partition_alloc_as_malloc_default = false
|
||||
use_allocator_shim_default = false
|
||||
enable_backup_ref_ptr_support_default = false
|
||||
enable_mte_checked_ptr_support_default = false
|
||||
put_ref_count_in_previous_slot_default = false
|
||||
enable_backup_ref_ptr_slow_checks_default = false
|
||||
enable_dangling_raw_ptr_checks_default = false
|
||||
5
3rdparty/libyuv/codereview.settings
vendored
Normal file
5
3rdparty/libyuv/codereview.settings
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
# This file is used by `git cl` to get repository specific information.
|
||||
CODE_REVIEW_SERVER: codereview.chromium.org
|
||||
GERRIT_HOST: True
|
||||
PROJECT: libyuv
|
||||
VIEW_VC: https://chromium.googlesource.com/libyuv/libyuv/+/
|
||||
409
3rdparty/libyuv/docs/deprecated_builds.md
vendored
Normal file
409
3rdparty/libyuv/docs/deprecated_builds.md
vendored
Normal file
@@ -0,0 +1,409 @@
|
||||
# Deprecated Builds
|
||||
|
||||
Older documentation on build configs which are no longer supported.
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
You'll need to have depot tools installed: https://www.chromium.org/developers/how-tos/install-depot-tools
|
||||
Refer to chromium instructions for each platform for other prerequisites.
|
||||
|
||||
## Getting the Code
|
||||
|
||||
Create a working directory, enter it, and run:
|
||||
|
||||
fetch libyuv
|
||||
|
||||
For iOS add `;target_os=['ios'];` to your OSX .gclient and run `GYP_DEFINES="OS=ios" gclient sync.`
|
||||
|
||||
Browse the Git reprository: https://chromium.googlesource.com/libyuv/libyuv/+/master
|
||||
|
||||
### Android
|
||||
For Android add `;target_os=['android'];` to your Linux .gclient
|
||||
|
||||
|
||||
solutions = [
|
||||
{ "name" : "libyuv",
|
||||
"url" : "https://chromium.googlesource.com/libyuv/libyuv",
|
||||
"deps_file" : "DEPS",
|
||||
"managed" : True,
|
||||
"custom_deps" : {
|
||||
},
|
||||
"safesync_url": "",
|
||||
},
|
||||
];
|
||||
target_os = ["android", "unix"];
|
||||
|
||||
Then run:
|
||||
|
||||
export GYP_DEFINES="OS=android"
|
||||
gclient sync
|
||||
|
||||
Caveat: Theres an error with Google Play services updates. If you get the error "Your version of the Google Play services library is not up to date", run the following:
|
||||
|
||||
cd chromium/src
|
||||
./build/android/play_services/update.py download
|
||||
cd ../..
|
||||
|
||||
For Windows the gclient sync must be done from an Administrator command prompt.
|
||||
|
||||
The sync will generate native build files for your environment using gyp (Windows: Visual Studio, OSX: XCode, Linux: make). This generation can also be forced manually: `gclient runhooks`
|
||||
|
||||
To get just the source (not buildable):
|
||||
|
||||
git clone https://chromium.googlesource.com/libyuv/libyuv
|
||||
|
||||
|
||||
## Building the Library and Unittests
|
||||
|
||||
### Windows
|
||||
|
||||
set GYP_DEFINES=target_arch=ia32
|
||||
call python gyp_libyuv -fninja -G msvs_version=2013
|
||||
ninja -j7 -C out\Release
|
||||
ninja -j7 -C out\Debug
|
||||
|
||||
set GYP_DEFINES=target_arch=x64
|
||||
call python gyp_libyuv -fninja -G msvs_version=2013
|
||||
ninja -C out\Debug_x64
|
||||
ninja -C out\Release_x64
|
||||
|
||||
#### Building with clangcl
|
||||
set GYP_DEFINES=clang=1 target_arch=ia32
|
||||
call python tools\clang\scripts\update.py
|
||||
call python gyp_libyuv -fninja libyuv_test.gyp
|
||||
ninja -C out\Debug
|
||||
ninja -C out\Release
|
||||
|
||||
### OSX
|
||||
|
||||
Clang 64 bit shown. Remove `clang=1` for GCC and change x64 to ia32 for 32 bit.
|
||||
|
||||
GYP_DEFINES="clang=1 target_arch=x64" ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug
|
||||
ninja -j7 -C out/Release
|
||||
|
||||
GYP_DEFINES="clang=1 target_arch=ia32" ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug
|
||||
ninja -j7 -C out/Release
|
||||
|
||||
### iOS
|
||||
http://www.chromium.org/developers/how-tos/build-instructions-ios
|
||||
|
||||
Add to .gclient last line: `target_os=['ios'];`
|
||||
|
||||
armv7
|
||||
|
||||
GYP_DEFINES="OS=ios target_arch=armv7 target_subarch=arm32" GYP_CROSSCOMPILE=1 GYP_GENERATOR_FLAGS="output_dir=out_ios" ./gyp_libyuv
|
||||
ninja -j7 -C out_ios/Debug-iphoneos libyuv_unittest
|
||||
ninja -j7 -C out_ios/Release-iphoneos libyuv_unittest
|
||||
|
||||
arm64
|
||||
|
||||
GYP_DEFINES="OS=ios target_arch=arm64 target_subarch=arm64" GYP_CROSSCOMPILE=1 GYP_GENERATOR_FLAGS="output_dir=out_ios" ./gyp_libyuv
|
||||
ninja -j7 -C out_ios/Debug-iphoneos libyuv_unittest
|
||||
ninja -j7 -C out_ios/Release-iphoneos libyuv_unittest
|
||||
|
||||
both armv7 and arm64 (fat)
|
||||
|
||||
GYP_DEFINES="OS=ios target_arch=armv7 target_subarch=both" GYP_CROSSCOMPILE=1 GYP_GENERATOR_FLAGS="output_dir=out_ios" ./gyp_libyuv
|
||||
ninja -j7 -C out_ios/Debug-iphoneos libyuv_unittest
|
||||
ninja -j7 -C out_ios/Release-iphoneos libyuv_unittest
|
||||
|
||||
simulator
|
||||
|
||||
GYP_DEFINES="OS=ios target_arch=ia32 target_subarch=arm32" GYP_CROSSCOMPILE=1 GYP_GENERATOR_FLAGS="output_dir=out_sim" ./gyp_libyuv
|
||||
ninja -j7 -C out_sim/Debug-iphonesimulator libyuv_unittest
|
||||
ninja -j7 -C out_sim/Release-iphonesimulator libyuv_unittest
|
||||
|
||||
### Android
|
||||
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
|
||||
|
||||
Add to .gclient last line: `target_os=['android'];`
|
||||
|
||||
armv7
|
||||
|
||||
GYP_DEFINES="OS=android" GYP_CROSSCOMPILE=1 ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug yuv_unittest_apk
|
||||
ninja -j7 -C out/Release yuv_unittest_apk
|
||||
|
||||
arm64
|
||||
|
||||
GYP_DEFINES="OS=android target_arch=arm64 target_subarch=arm64" GYP_CROSSCOMPILE=1 ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug yuv_unittest_apk
|
||||
ninja -j7 -C out/Release yuv_unittest_apk
|
||||
|
||||
ia32
|
||||
|
||||
GYP_DEFINES="OS=android target_arch=ia32" GYP_CROSSCOMPILE=1 ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug yuv_unittest_apk
|
||||
ninja -j7 -C out/Release yuv_unittest_apk
|
||||
|
||||
GYP_DEFINES="OS=android target_arch=ia32 android_full_debug=1" GYP_CROSSCOMPILE=1 ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug yuv_unittest_apk
|
||||
|
||||
arm32 disassembly:
|
||||
|
||||
llvm-objdump -d out/Release/obj/source/libyuv.row_neon.o
|
||||
|
||||
arm64 disassembly:
|
||||
|
||||
llvm-objdump -d out/Release/obj/source/libyuv.row_neon64.o
|
||||
|
||||
Running tests:
|
||||
|
||||
build/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --release --gtest_filter=*
|
||||
|
||||
Running test as benchmark:
|
||||
|
||||
build/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --release --gtest_filter=* -a "--libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1"
|
||||
|
||||
Running test with C code:
|
||||
|
||||
build/android/test_runner.py gtest -s libyuv_unittest -t 7200 --verbose --release --gtest_filter=* -a "--libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=1 --libyuv_cpu_info=1"
|
||||
|
||||
#### Building with GN
|
||||
|
||||
gn gen out/Release "--args=is_debug=false target_cpu=\"x86\""
|
||||
gn gen out/Debug "--args=is_debug=true target_cpu=\"x86\""
|
||||
ninja -C out/Release
|
||||
ninja -C out/Debug
|
||||
|
||||
### Building Offical with GN
|
||||
|
||||
gn gen out/Official "--args=is_debug=false is_official_build=true is_chrome_branded=true"
|
||||
ninja -C out/Official
|
||||
|
||||
### Linux
|
||||
|
||||
GYP_DEFINES="target_arch=x64" ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug
|
||||
ninja -j7 -C out/Release
|
||||
|
||||
GYP_DEFINES="target_arch=ia32" ./gyp_libyuv
|
||||
ninja -j7 -C out/Debug
|
||||
ninja -j7 -C out/Release
|
||||
|
||||
#### CentOS
|
||||
|
||||
On CentOS 32 bit the following work around allows a sync:
|
||||
|
||||
export GYP_DEFINES="host_arch=ia32"
|
||||
gclient sync
|
||||
|
||||
### Windows Shared Library
|
||||
|
||||
Modify libyuv.gyp from 'static_library' to 'shared_library', and add 'LIBYUV_BUILDING_SHARED_LIBRARY' to 'defines'.
|
||||
|
||||
gclient runhooks
|
||||
|
||||
After this command follow the building the library instructions above.
|
||||
|
||||
If you get a compile error for atlthunk.lib on Windows, read http://www.chromium.org/developers/how-tos/build-instructions-windows
|
||||
|
||||
|
||||
### Build targets
|
||||
|
||||
ninja -C out/Debug libyuv
|
||||
ninja -C out/Debug libyuv_unittest
|
||||
ninja -C out/Debug compare
|
||||
ninja -C out/Debug yuvconvert
|
||||
ninja -C out/Debug yuvconstants
|
||||
ninja -C out/Debug psnr
|
||||
ninja -C out/Debug cpuid
|
||||
|
||||
|
||||
## Building the Library with make
|
||||
|
||||
### Linux
|
||||
|
||||
make -j7 V=1 -f linux.mk
|
||||
make -j7 V=1 -f linux.mk clean
|
||||
make -j7 V=1 -f linux.mk CXX=clang++
|
||||
|
||||
## Building the Library with cmake
|
||||
|
||||
Install cmake: http://www.cmake.org/
|
||||
|
||||
Default debug build:
|
||||
|
||||
mkdir out
|
||||
cd out
|
||||
cmake ..
|
||||
cmake --build .
|
||||
|
||||
Release build/install
|
||||
|
||||
mkdir out
|
||||
cd out
|
||||
cmake -DCMAKE_INSTALL_PREFIX="/usr/lib" -DCMAKE_BUILD_TYPE="Release" ..
|
||||
cmake --build . --config Release
|
||||
sudo cmake --build . --target install --config Release
|
||||
|
||||
### Windows 8 Phone
|
||||
|
||||
Pre-requisite:
|
||||
|
||||
* Install Visual Studio 2012 and Arm to your environment.<br>
|
||||
|
||||
Then:
|
||||
|
||||
call "c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\x86_arm\vcvarsx86_arm.bat"
|
||||
|
||||
or with Visual Studio 2013:
|
||||
|
||||
call "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_arm\vcvarsx86_arm.bat"
|
||||
nmake /f winarm.mk clean
|
||||
nmake /f winarm.mk
|
||||
|
||||
### Windows Shared Library
|
||||
|
||||
Modify libyuv.gyp from 'static_library' to 'shared_library', and add 'LIBYUV_BUILDING_SHARED_LIBRARY' to 'defines'. Then run this.
|
||||
|
||||
gclient runhooks
|
||||
|
||||
After this command follow the building the library instructions above.
|
||||
|
||||
If you get a compile error for atlthunk.lib on Windows, read http://www.chromium.org/developers/how-tos/build-instructions-windows
|
||||
|
||||
### 64 bit Windows
|
||||
|
||||
set GYP_DEFINES=target_arch=x64
|
||||
gclient runhooks V=1
|
||||
|
||||
### ARM Linux
|
||||
|
||||
export GYP_DEFINES="target_arch=arm"
|
||||
export CROSSTOOL=`<path>`/arm-none-linux-gnueabi
|
||||
export CXX=$CROSSTOOL-g++
|
||||
export CC=$CROSSTOOL-gcc
|
||||
export AR=$CROSSTOOL-ar
|
||||
export AS=$CROSSTOOL-as
|
||||
export RANLIB=$CROSSTOOL-ranlib
|
||||
gclient runhooks
|
||||
|
||||
## Running Unittests
|
||||
|
||||
### Windows
|
||||
|
||||
out\Release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter="*"
|
||||
|
||||
### OSX
|
||||
|
||||
out/Release/libyuv_unittest --gtest_filter="*"
|
||||
|
||||
### Linux
|
||||
|
||||
out/Release/libyuv_unittest --gtest_filter="*"
|
||||
|
||||
Replace --gtest_filter="*" with specific unittest to run. May include wildcards. e.g.
|
||||
|
||||
out/Release/libyuv_unittest --gtest_filter=libyuvTest.I420ToARGB_Opt
|
||||
|
||||
## CPU Emulator tools
|
||||
|
||||
### Intel SDE (Software Development Emulator)
|
||||
|
||||
Pre-requisite: Install IntelSDE for Windows: http://software.intel.com/en-us/articles/intel-software-development-emulator
|
||||
|
||||
Then run:
|
||||
|
||||
c:\intelsde\sde -hsw -- out\release\libyuv_unittest.exe --gtest_filter=*
|
||||
|
||||
|
||||
## Memory tools
|
||||
|
||||
### Running Dr Memory memcheck for Windows
|
||||
|
||||
Pre-requisite: Install Dr Memory for Windows and add it to your path: http://www.drmemory.org/docs/page_install_windows.html
|
||||
|
||||
set GYP_DEFINES=build_for_tool=drmemory target_arch=ia32
|
||||
call python gyp_libyuv -fninja -G msvs_version=2013
|
||||
ninja -C out\Debug
|
||||
drmemory out\Debug\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*
|
||||
|
||||
### Running UBSan
|
||||
|
||||
See Chromium instructions for sanitizers: https://www.chromium.org/developers/testing/undefinedbehaviorsanitizer
|
||||
|
||||
Sanitizers available: TSan, MSan, ASan, UBSan, LSan
|
||||
|
||||
GYP_DEFINES='ubsan=1' gclient runhooks
|
||||
ninja -C out/Release
|
||||
|
||||
### Running Valgrind memcheck
|
||||
|
||||
Memory errors and race conditions can be found by running tests under special memory tools. [Valgrind] [1] is an instrumentation framework for building dynamic analysis tools. Various tests and profilers are built upon it to find memory handling errors and memory leaks, for instance.
|
||||
|
||||
[1]: http://valgrind.org
|
||||
|
||||
solutions = [
|
||||
{ "name" : "libyuv",
|
||||
"url" : "https://chromium.googlesource.com/libyuv/libyuv",
|
||||
"deps_file" : "DEPS",
|
||||
"managed" : True,
|
||||
"custom_deps" : {
|
||||
"libyuv/chromium/src/third_party/valgrind": "https://chromium.googlesource.com/chromium/deps/valgrind/binaries",
|
||||
},
|
||||
"safesync_url": "",
|
||||
},
|
||||
]
|
||||
|
||||
Then run:
|
||||
|
||||
GYP_DEFINES="clang=0 target_arch=x64 build_for_tool=memcheck" python gyp_libyuv
|
||||
ninja -C out/Debug
|
||||
valgrind out/Debug/libyuv_unittest
|
||||
|
||||
|
||||
For more information, see http://www.chromium.org/developers/how-tos/using-valgrind
|
||||
|
||||
### Running Thread Sanitizer (TSan)
|
||||
|
||||
GYP_DEFINES="clang=0 target_arch=x64 build_for_tool=tsan" python gyp_libyuv
|
||||
ninja -C out/Debug
|
||||
valgrind out/Debug/libyuv_unittest
|
||||
|
||||
For more info, see http://www.chromium.org/developers/how-tos/using-valgrind/threadsanitizer
|
||||
|
||||
### Running Address Sanitizer (ASan)
|
||||
|
||||
GYP_DEFINES="clang=0 target_arch=x64 build_for_tool=asan" python gyp_libyuv
|
||||
ninja -C out/Debug
|
||||
valgrind out/Debug/libyuv_unittest
|
||||
|
||||
For more info, see http://dev.chromium.org/developers/testing/addresssanitizer
|
||||
|
||||
## Benchmarking
|
||||
|
||||
The unittests can be used to benchmark.
|
||||
|
||||
### Windows
|
||||
|
||||
set LIBYUV_WIDTH=1280
|
||||
set LIBYUV_HEIGHT=720
|
||||
set LIBYUV_REPEAT=999
|
||||
set LIBYUV_FLAGS=-1
|
||||
out\Release\libyuv_unittest.exe --gtest_filter=*I420ToARGB_Opt
|
||||
|
||||
|
||||
### Linux and Mac
|
||||
|
||||
LIBYUV_WIDTH=1280 LIBYUV_HEIGHT=720 LIBYUV_REPEAT=1000 out/Release/libyuv_unittest --gtest_filter=*I420ToARGB_Opt
|
||||
|
||||
libyuvTest.I420ToARGB_Opt (547 ms)
|
||||
|
||||
Indicates 0.547 ms/frame for 1280 x 720.
|
||||
|
||||
## Making a change
|
||||
|
||||
gclient sync
|
||||
git checkout -b mycl -t origin/master
|
||||
git pull
|
||||
<edit files>
|
||||
git add -u
|
||||
git commit -m "my change"
|
||||
git cl lint
|
||||
git cl try
|
||||
git cl upload -r a-reviewer@chomium.org -s
|
||||
<once approved..>
|
||||
git cl land
|
||||
64
3rdparty/libyuv/docs/environment_variables.md
vendored
Normal file
64
3rdparty/libyuv/docs/environment_variables.md
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
# Introduction
|
||||
|
||||
For test purposes, environment variables can be set to control libyuv behavior. These should only be used for testing, to narrow down bugs or to test performance.
|
||||
|
||||
# CPU
|
||||
|
||||
By default the cpu is detected and the most advanced form of SIMD is used. But you can disable instruction sets selectively, or completely, falling back on C code. Set the variable to 1 to disable the specified instruction set.
|
||||
|
||||
## All CPUs
|
||||
|
||||
LIBYUV_DISABLE_ASM
|
||||
|
||||
## Intel CPUs
|
||||
|
||||
LIBYUV_DISABLE_X86
|
||||
LIBYUV_DISABLE_SSE2
|
||||
LIBYUV_DISABLE_SSSE3
|
||||
LIBYUV_DISABLE_SSE41
|
||||
LIBYUV_DISABLE_SSE42
|
||||
LIBYUV_DISABLE_AVX
|
||||
LIBYUV_DISABLE_AVX2
|
||||
LIBYUV_DISABLE_ERMS
|
||||
LIBYUV_DISABLE_FMA3
|
||||
LIBYUV_DISABLE_F16C
|
||||
LIBYUV_DISABLE_AVX512BW
|
||||
LIBYUV_DISABLE_AVX512VL
|
||||
LIBYUV_DISABLE_AVX512VNNI
|
||||
LIBYUV_DISABLE_AVX512VBMI
|
||||
LIBYUV_DISABLE_AVX512VBMI2
|
||||
LIBYUV_DISABLE_AVX512VBITALG
|
||||
LIBYUV_DISABLE_AVX10
|
||||
LIBYUV_DISABLE_AVX10_2
|
||||
LIBYUV_DISABLE_AVXVNNI
|
||||
LIBYUV_DISABLE_AVXVNNIINT8
|
||||
LIBYUV_DISABLE_AMXINT8
|
||||
|
||||
## Arm CPUs
|
||||
|
||||
LIBYUV_DISABLE_NEON
|
||||
LIBYUV_DISABLE_NEON_DOTPROD
|
||||
LIBYUV_DISABLE_NEON_I8MM
|
||||
LIBYUV_DISABLE_SVE
|
||||
LIBYUV_DISABLE_SVE2
|
||||
LIBYUV_DISABLE_SME
|
||||
|
||||
## LOONGARCH CPUs
|
||||
|
||||
LIBYUV_DISABLE_LSX
|
||||
LIBYUV_DISABLE_LASX
|
||||
|
||||
## RISCV CPUs
|
||||
|
||||
LIBYUV_DISABLE_RVV
|
||||
|
||||
# Test Width/Height/Repeat
|
||||
|
||||
The unittests default to a small image (128x72) to run fast. This can be set by environment variable to test a specific resolutions.
|
||||
You can also repeat the test a specified number of iterations, allowing benchmarking and profiling.
|
||||
|
||||
set LIBYUV_WIDTH=1280
|
||||
set LIBYUV_HEIGHT=720
|
||||
set LIBYUV_REPEAT=999
|
||||
set LIBYUV_FLAGS=-1
|
||||
set LIBYUV_CPU_INFO=-1
|
||||
108
3rdparty/libyuv/docs/feature_detection.md
vendored
Normal file
108
3rdparty/libyuv/docs/feature_detection.md
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
# Introduction
|
||||
|
||||
Several routines in libyuv have multiple implementations specialized for a
|
||||
variety of CPU architecture extensions. Libyuv will automatically detect and
|
||||
use the latest architecture extension present on a machine for which a kernel
|
||||
implementation is available.
|
||||
|
||||
# Feature detection on AArch64
|
||||
|
||||
## Architecture extensions of interest
|
||||
|
||||
The Arm 64-bit A-class architecture has a number of vector extensions which can
|
||||
be used to accelerate libyuv kernels.
|
||||
|
||||
### Neon extensions
|
||||
|
||||
Neon is available and mandatory in AArch64 from the base Armv8.0-A
|
||||
architecture. Neon can be used even if later extensions like the Scalable
|
||||
Vector Extension (SVE) are also present. The exception to this is if the CPU is
|
||||
currently operating in streaming mode as introduced by the Scalable Matrix
|
||||
Extension, described later.
|
||||
|
||||
There are also a couple of architecture extensions present for Neon that we can
|
||||
take advantage of in libyuv:
|
||||
|
||||
* The Neon DotProd extension is architecturally available from Armv8.1-A and
|
||||
becomes mandatory from Armv8.4-A. This extension provides instructions to
|
||||
perform a pairwise widening multiply of groups of four bytes from two source
|
||||
vectors, taking the sum of the four widened multiply results within each
|
||||
group to give a 32-bit result, accumulating into a destination vector.
|
||||
|
||||
* The Neon I8MM extension extends the DotProd extension with support for
|
||||
mixed-sign DotProds. The I8MM extension is architecturally available from
|
||||
Armv8.1-A and becomes mandatory from Armv8.6-A. It does not strictly depend
|
||||
on the DotProd extension being implemented, however at time of writing there
|
||||
is no known micro-architecture implementation where I8MM is implemented
|
||||
without the DotProd extension also being implemented.
|
||||
|
||||
### The Scalable Vector Extension (SVE)
|
||||
|
||||
The two Scalable Vector extensions (SVE and SVE2) provides equivalent
|
||||
functionality to most existing Neon instructions but with the ability to
|
||||
efficiently operate on vector registers with a run-time-determined vector
|
||||
length.
|
||||
|
||||
The original version of SVE is architecturally available from Armv8.2-A and is
|
||||
primarily targeted at HPC applications. This focus means it does not include
|
||||
most of the DSP-style operations that are necessary for most libyuv
|
||||
color-conversion kernels, though it can still be used for many scaling or
|
||||
rotation kernels.
|
||||
|
||||
SVE does not strictly depend on either of the Neon DotProd or I8MM extensions
|
||||
being implemented. The only micro-architecture at time of writing where SVE is
|
||||
implemented without these two extensions both also being implemented is the
|
||||
Fujitsu A64FX, which is not a CPU of interest for libyuv.
|
||||
|
||||
SVE2 extends the base SVE extension with the remaining instructions from Neon,
|
||||
porting these instructions to operate on scalable vectors. SVE2 is
|
||||
architecturally available from Armv9.0-A. If SVE2 is implemented then SVE must
|
||||
also be implemented. Since Armv9.0-A is based on Armv8.5-A this implies that
|
||||
the Neon DotProd extension is also implemented. Interestingly this means that
|
||||
the I8MM extension is not mandatory since it only becomes mandatory from
|
||||
Armv8.6-A or Armv9.1-A, however there is no micro-architecture at time of
|
||||
writing where SVE2 is implemented without all previously-mentioned features
|
||||
also being implemented.
|
||||
|
||||
### The Scalable Matrix Extension (SME)
|
||||
|
||||
The Scalable Matrix Extension (SME) is an optional feature introduced from
|
||||
Armv9.2-A. SME exists alongside SVE and introduces new execution modes for
|
||||
applications performing extended periods of data processing. In particular SME
|
||||
introduces a few new components of interest:
|
||||
|
||||
* Access to a scalable two-dimensional ZA tile register and new instructions to
|
||||
interact with rows and columns of the ZA tiles. This can be useful for data
|
||||
transformations like transposes.
|
||||
|
||||
* A streaming SVE (SSVE) mode, during which the SVE vector length matches the
|
||||
ZA tile register width. In typical systems where the ZA tile register width
|
||||
is longer than the core SVE vector length, SSVE processing allows for faster
|
||||
data processing, even if the ZA tile register is unused. While the CPU is
|
||||
executing in streaming mode, Neon instructions are unavailable.
|
||||
|
||||
* When both SSVE and the ZA tile registers are enabled there are additional
|
||||
outer-product instructions accumulating into a whole ZA tile, suitable for
|
||||
accelerating matrix arithmetic. This is likely less useful in libyuv.
|
||||
|
||||
## Linux and Android
|
||||
|
||||
On AArch64 running under Linux and Android, features are detected by inspecting
|
||||
the CPU auxiliary vector via `getauxval(AT_HWCAP)` and `getauxval(AT_HWCAP2)`,
|
||||
inspecting the returned bitmask.
|
||||
|
||||
## Windows
|
||||
|
||||
On Windows we detect features using the `IsProcessorFeaturePresent` interface
|
||||
and passing an enum parameter for the feature we want to check. More
|
||||
information on this can be found here:
|
||||
|
||||
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-isprocessorfeaturepresent#parameters
|
||||
|
||||
## Apple Silicon
|
||||
|
||||
On Apple Silicon we detect features using the `sysctlbyname` interface and
|
||||
passing a string representing the feature we want to detect. More information
|
||||
on this can be found here:
|
||||
|
||||
https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics
|
||||
196
3rdparty/libyuv/docs/filtering.md
vendored
Normal file
196
3rdparty/libyuv/docs/filtering.md
vendored
Normal file
@@ -0,0 +1,196 @@
|
||||
# Introduction
|
||||
|
||||
This document discusses the current state of filtering in libyuv. An emphasis on maximum performance while avoiding memory exceptions, and minimal amount of code/complexity. See future work at end.
|
||||
|
||||
# LibYuv Filter Subsampling
|
||||
|
||||
There are 2 challenges with subsampling
|
||||
|
||||
1. centering of samples, which involves clamping on edges
|
||||
2. clipping a source region
|
||||
|
||||
Centering depends on scale factor and filter mode.
|
||||
|
||||
# Down Sampling
|
||||
|
||||
If scaling down, the stepping rate is always src_width / dst_width.
|
||||
|
||||
dx = src_width / dst_width;
|
||||
|
||||
e.g. If scaling from 1280x720 to 640x360, the step thru the source will be 2.0, stepping over 2 pixels of source for each pixel of destination.
|
||||
|
||||
Centering, depends on filter mode.
|
||||
|
||||
*Point* downsampling takes the middle pixel.
|
||||
|
||||
x = dx >> 1;
|
||||
|
||||
For odd scale factors (e.g. 3x down) this is exactly the middle. For even scale factors, this rounds up and takes the pixel to the right of center. e.g. scale of 4x down will take pixel 2.
|
||||
|
||||
**Bilinear** filter, uses the 2x2 pixels in the middle.
|
||||
|
||||
x = dx / 2 - 0.5;
|
||||
|
||||
For odd scale factors (e.g. 3x down) this is exactly the middle, and point sampling is used.
|
||||
For even scale factors, this evenly filters the middle 2x2 pixels. e.g. 4x down will filter pixels 1,2 at 50% in both directions.
|
||||
|
||||
**Box** filter averages the entire box so sampling starts at 0.
|
||||
|
||||
x = 0;
|
||||
|
||||
For a scale factor of 2x down, this is equivalent to bilinear.
|
||||
|
||||
# Up Sampling
|
||||
|
||||
**Point** upsampling use stepping rate of src_width / dst_width and a starting coordinate of 0.
|
||||
|
||||
x = 0;
|
||||
dx = src_width / dst_width;
|
||||
|
||||
e.g. If scaling from 640x360 to 1280x720 the step thru the source will be 0.0, stepping half a pixel of source for each pixel of destination. Each pixel is replicated by the scale factor.
|
||||
|
||||
**Bilinear** filter stretches such that the first pixel of source maps to the first pixel of destination, and the last pixel of source maps to the last pixel of destination.
|
||||
|
||||
x = 0;
|
||||
dx = (src_width - 1) / (dst_width - 1);
|
||||
|
||||
This method is not technically correct, and will likely change in the future.
|
||||
|
||||
* It is inconsistent with the bilinear down sampler. The same method could be used for down sampling, and then it would be more reversible, but that would prevent specialized 2x down sampling.
|
||||
* Although centered, the image is slightly magnified.
|
||||
* The filtering was changed in early 2013 - previously it used:
|
||||
|
||||
x = 0;
|
||||
dx = (src_width - 1) / (dst_width - 1);
|
||||
|
||||
Which is the correct scale factor, but shifted the image left, and extruded the last pixel. The reason for the change was to remove the extruding code from the low level row functions, allowing 3 functions to sshare the same row functions - ARGBScale, I420Scale, and ARGBInterpolate. Then the one function was ported to many cpu variations: SSE2, SSSE3, AVX2, Neon and 'Any' version for any number of pixels and alignment. The function is also specialized for 0,25,50,75%.
|
||||
|
||||
The above goes still has the potential to read the last pixel 100% and last pixel + 1 0%, which may cause a memory exception. So the left pixel goes to a fraction less than the last pixel, but filters in the minimum amount of it, and the maximum of the last pixel.
|
||||
|
||||
dx = FixedDiv((src_width << 16) - 0x00010001, (dst << 16) - 0x00010000);
|
||||
|
||||
**Box** filter for upsampling switches over to Bilinear.
|
||||
|
||||
# Scale snippet:
|
||||
|
||||
#define CENTERSTART(dx, s) (dx < 0) ? -((-dx >> 1) + s) : ((dx >> 1) + s)
|
||||
#define FIXEDDIV1(src, dst) FixedDiv((src << 16) - 0x00010001, \
|
||||
(dst << 16) - 0x00010000);
|
||||
|
||||
// Compute slope values for stepping.
|
||||
void ScaleSlope(int src_width, int src_height,
|
||||
int dst_width, int dst_height,
|
||||
FilterMode filtering,
|
||||
int* x, int* y, int* dx, int* dy) {
|
||||
assert(x != NULL);
|
||||
assert(y != NULL);
|
||||
assert(dx != NULL);
|
||||
assert(dy != NULL);
|
||||
assert(src_width != 0);
|
||||
assert(src_height != 0);
|
||||
assert(dst_width > 0);
|
||||
assert(dst_height > 0);
|
||||
if (filtering == kFilterBox) {
|
||||
// Scale step for point sampling duplicates all pixels equally.
|
||||
*dx = FixedDiv(Abs(src_width), dst_width);
|
||||
*dy = FixedDiv(src_height, dst_height);
|
||||
*x = 0;
|
||||
*y = 0;
|
||||
} else if (filtering == kFilterBilinear) {
|
||||
// Scale step for bilinear sampling renders last pixel once for upsample.
|
||||
if (dst_width <= Abs(src_width)) {
|
||||
*dx = FixedDiv(Abs(src_width), dst_width);
|
||||
*x = CENTERSTART(*dx, -32768);
|
||||
} else if (dst_width > 1) {
|
||||
*dx = FIXEDDIV1(Abs(src_width), dst_width);
|
||||
*x = 0;
|
||||
}
|
||||
if (dst_height <= src_height) {
|
||||
*dy = FixedDiv(src_height, dst_height);
|
||||
*y = CENTERSTART(*dy, -32768); // 32768 = -0.5 to center bilinear.
|
||||
} else if (dst_height > 1) {
|
||||
*dy = FIXEDDIV1(src_height, dst_height);
|
||||
*y = 0;
|
||||
}
|
||||
} else if (filtering == kFilterLinear) {
|
||||
// Scale step for bilinear sampling renders last pixel once for upsample.
|
||||
if (dst_width <= Abs(src_width)) {
|
||||
*dx = FixedDiv(Abs(src_width), dst_width);
|
||||
*x = CENTERSTART(*dx, -32768);
|
||||
} else if (dst_width > 1) {
|
||||
*dx = FIXEDDIV1(Abs(src_width), dst_width);
|
||||
*x = 0;
|
||||
}
|
||||
*dy = FixedDiv(src_height, dst_height);
|
||||
*y = *dy >> 1;
|
||||
} else {
|
||||
// Scale step for point sampling duplicates all pixels equally.
|
||||
*dx = FixedDiv(Abs(src_width), dst_width);
|
||||
*dy = FixedDiv(src_height, dst_height);
|
||||
*x = CENTERSTART(*dx, 0);
|
||||
*y = CENTERSTART(*dy, 0);
|
||||
}
|
||||
// Negative src_width means horizontally mirror.
|
||||
if (src_width < 0) {
|
||||
*x += (dst_width - 1) * *dx;
|
||||
*dx = -*dx;
|
||||
src_width = -src_width;
|
||||
}
|
||||
}
|
||||
|
||||
# Future Work
|
||||
|
||||
Point sampling should ideally be the same as bilinear, but pixel by pixel, round to nearest neighbor. But as is, it is reversible and exactly matches ffmpeg at all scale factors, both up and down. The scale factor is
|
||||
|
||||
dx = src_width / dst_width;
|
||||
|
||||
The step value is centered for down sample:
|
||||
|
||||
x = dx / 2;
|
||||
|
||||
Or starts at 0 for upsample.
|
||||
|
||||
x = 0;
|
||||
|
||||
Bilinear filtering is currently correct for down sampling, but not for upsampling.
|
||||
Upsampling is stretching the first and last pixel of source, to the first and last pixel of destination.
|
||||
|
||||
dx = (src_width - 1) / (dst_width - 1);<br>
|
||||
x = 0;
|
||||
|
||||
It should be stretching such that the first pixel is centered in the middle of the scale factor, to match the pixel that would be sampled for down sampling by the same amount. And same on last pixel.
|
||||
|
||||
dx = src_width / dst_width;<br>
|
||||
x = dx / 2 - 0.5;
|
||||
|
||||
This would start at -0.5 and go to last pixel + 0.5, sampling 50% from last pixel + 1.
|
||||
Then clamping would be needed. On GPUs there are numerous ways to clamp.
|
||||
|
||||
1. Clamp the coordinate to the edge of the texture, duplicating the first and last pixel.
|
||||
2. Blend with a constant color, such as transparent black. Typically best for fonts.
|
||||
3. Mirror the UV coordinate, which is similar to clamping. Good for continuous tone images.
|
||||
4. Wrap the coordinate, for texture tiling.
|
||||
5. Allow the coordinate to index beyond the image, which may be the correct data if sampling a subimage.
|
||||
6. Extrapolate the edge based on the previous pixel. pixel -0.5 is computed from slope of pixel 0 and 1.
|
||||
|
||||
Some of these are computational, even for a GPU, which is one reason textures are sometimes limited to power of 2 sizes.
|
||||
We do care about the clipping case, where allowing coordinates to become negative and index pixels before the image is the correct data. But normally for simple scaling, we want to clamp to the edge pixel. For example, if bilinear scaling from 3x3 to 30x30, we’d essentially want 10 pixels of each of the original 3 pixels. But we want the original pixels to land in the middle of each 10 pixels, at offsets 5, 15 and 25. There would be filtering between 5 and 15 between the original pixels 0 and 1. And filtering between 15 and 25 from original pixels 1 and 2. The first 5 pixels are clamped to pixel 0 and the last 5 pixels are clamped to pixel 2.
|
||||
The easiest way to implement this is copy the original 3 pixels to a buffer, and duplicate the first and last pixels. 0,1,2 becomes 0, 0,1,2, 2. Then implement a filtering without clamping. We call this source extruding. Its only necessary on up sampling, since down sampler will always have valid surrounding pixels.
|
||||
Extruding is practical when the image is already copied to a temporary buffer. It could be done to the original image, as long as the original memory is restored, but valgrind and/or memory protection would disallow this, so it requires a memcpy to a temporary buffer, which may hurt performance. The memcpy has a performance advantage, from a cache point of view, that can actually make this technique faster, depending on hardware characteristics.
|
||||
Vertical extrusion can be done with a memcpy of the first/last row, or clamping a pointer.
|
||||
|
||||
|
||||
The other way to implement clamping is handle the edges with a memset. e.g. Read first source pixel and memset the first 5 pixels. Filter pixels 0,1,2 to 5 to 25. Read last pixel and memset the last 5 pixels. Blur is implemented with this method like this, which has 3 loops per row - left, middle and right.
|
||||
|
||||
Box filter is only used for 2x down sample or more. Its based on integer sized boxes. Technically it should be filtered edges, but thats substantially slower (roughly 100x), and at that point you may as well do a cubic filter which is more correct.
|
||||
|
||||
Box filter currently sums rows into a row buffer. It does this with
|
||||
|
||||
Mirroring will use the same slope as normal, but with a negative.
|
||||
The starting coordinate needs to consider the scale factor and filter. e.g. box filter of 30x30 to 3x3 with mirroring would use -10 for step, but x = 20. width (30) - dx.
|
||||
|
||||
Step needs to be accurate, so it uses an integer divide. This is as much as 5% of the profile. An approximated divide is substantially faster, but the inaccuracy causes stepping beyond the original image boundaries. 3 general solutions:
|
||||
|
||||
1. copy image to buffer with padding. allows for small errors in stepping.
|
||||
2. hash the divide, so common values are quickly found.
|
||||
3. change api so caller provides the slope.
|
||||
208
3rdparty/libyuv/docs/formats.md
vendored
Normal file
208
3rdparty/libyuv/docs/formats.md
vendored
Normal file
@@ -0,0 +1,208 @@
|
||||
# Introduction
|
||||
|
||||
Formats (FOURCC) supported by libyuv are detailed here.
|
||||
|
||||
# Core Formats
|
||||
|
||||
There are 2 core formats supported by libyuv - I420 and ARGB.
|
||||
All YUV formats can be converted to/from I420.
|
||||
All RGB formats can be converted to/from ARGB.
|
||||
|
||||
Filtering functions such as scaling and planar functions work on I420 and/or ARGB.
|
||||
|
||||
# OSX Core Media Pixel Formats
|
||||
|
||||
This is how OSX formats map to libyuv
|
||||
|
||||
enum {
|
||||
kCMPixelFormat_32ARGB = 32, FOURCC_BGRA
|
||||
kCMPixelFormat_32BGRA = 'BGRA', FOURCC_ARGB
|
||||
kCMPixelFormat_24RGB = 24, FOURCC_RAW
|
||||
kCMPixelFormat_16BE555 = 16, Not supported.
|
||||
kCMPixelFormat_16BE565 = 'B565', Not supported.
|
||||
kCMPixelFormat_16LE555 = 'L555', FOURCC_RGBO
|
||||
kCMPixelFormat_16LE565 = 'L565', FOURCC_RGBP
|
||||
kCMPixelFormat_16LE5551 = '5551', FOURCC_RGBO
|
||||
kCMPixelFormat_422YpCbCr8 = '2vuy', FOURCC_UYVY
|
||||
kCMPixelFormat_422YpCbCr8_yuvs = 'yuvs', FOURCC_YUY2
|
||||
kCMPixelFormat_444YpCbCr8 = 'v308', FOURCC_I444 ?
|
||||
kCMPixelFormat_4444YpCbCrA8 = 'v408', Not supported.
|
||||
kCMPixelFormat_422YpCbCr16 = 'v216', Not supported.
|
||||
kCMPixelFormat_422YpCbCr10 = 'v210', FOURCC_V210 previously. Removed now.
|
||||
kCMPixelFormat_444YpCbCr10 = 'v410', Not supported.
|
||||
kCMPixelFormat_8IndexedGray_WhiteIsZero = 0x00000028, Not supported.
|
||||
};
|
||||
|
||||
|
||||
# FOURCC (Four Charactacter Code) List
|
||||
|
||||
The following is extracted from video_common.h as a complete list of formats supported by libyuv.
|
||||
enum FourCC {
|
||||
// 10 Primary YUV formats: 5 planar, 2 biplanar, 2 packed.
|
||||
FOURCC_I420 = FOURCC('I', '4', '2', '0'),
|
||||
FOURCC_I422 = FOURCC('I', '4', '2', '2'),
|
||||
FOURCC_I444 = FOURCC('I', '4', '4', '4'),
|
||||
FOURCC_I400 = FOURCC('I', '4', '0', '0'),
|
||||
FOURCC_NV21 = FOURCC('N', 'V', '2', '1'),
|
||||
FOURCC_NV12 = FOURCC('N', 'V', '1', '2'),
|
||||
FOURCC_YUY2 = FOURCC('Y', 'U', 'Y', '2'),
|
||||
FOURCC_UYVY = FOURCC('U', 'Y', 'V', 'Y'),
|
||||
FOURCC_H010 = FOURCC('H', '0', '1', '0'), // unofficial fourcc. 10 bit lsb
|
||||
FOURCC_U010 = FOURCC('U', '0', '1', '0'), // bt.2020, unofficial fourcc.
|
||||
// 10 bit lsb
|
||||
|
||||
// 1 Secondary YUV format: row biplanar.
|
||||
FOURCC_M420 = FOURCC('M', '4', '2', '0'), // deprecated.
|
||||
|
||||
// 13 Primary RGB formats: 4 32 bpp, 2 24 bpp, 3 16 bpp, 1 10 bpc, 2 64 bpp
|
||||
FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B'),
|
||||
FOURCC_BGRA = FOURCC('B', 'G', 'R', 'A'),
|
||||
FOURCC_ABGR = FOURCC('A', 'B', 'G', 'R'),
|
||||
FOURCC_AR30 = FOURCC('A', 'R', '3', '0'), // 10 bit per channel. 2101010.
|
||||
FOURCC_AB30 = FOURCC('A', 'B', '3', '0'), // ABGR version of 10 bit
|
||||
FOURCC_AR64 = FOURCC('A', 'R', '6', '4'), // 16 bit per channel.
|
||||
FOURCC_AB64 = FOURCC('A', 'B', '6', '4'), // ABGR version of 16 bit
|
||||
FOURCC_24BG = FOURCC('2', '4', 'B', 'G'),
|
||||
FOURCC_RAW = FOURCC('r', 'a', 'w', ' '),
|
||||
FOURCC_RGBA = FOURCC('R', 'G', 'B', 'A'),
|
||||
FOURCC_RGBP = FOURCC('R', 'G', 'B', 'P'), // rgb565 LE.
|
||||
FOURCC_RGBO = FOURCC('R', 'G', 'B', 'O'), // argb1555 LE.
|
||||
FOURCC_R444 = FOURCC('R', '4', '4', '4'), // argb4444 LE.
|
||||
|
||||
// 1 Primary Compressed YUV format.
|
||||
FOURCC_MJPG = FOURCC('M', 'J', 'P', 'G'),
|
||||
|
||||
// 11 Auxiliary YUV variations: 3 with U and V planes are swapped, 1 Alias.
|
||||
FOURCC_YV12 = FOURCC('Y', 'V', '1', '2'),
|
||||
FOURCC_YV16 = FOURCC('Y', 'V', '1', '6'),
|
||||
FOURCC_YV24 = FOURCC('Y', 'V', '2', '4'),
|
||||
FOURCC_YU12 = FOURCC('Y', 'U', '1', '2'), // Linux version of I420.
|
||||
FOURCC_J420 = FOURCC('J', '4', '2', '0'),
|
||||
FOURCC_J400 = FOURCC('J', '4', '0', '0'), // unofficial fourcc
|
||||
FOURCC_H420 = FOURCC('H', '4', '2', '0'), // unofficial fourcc
|
||||
FOURCC_H422 = FOURCC('H', '4', '2', '2'), // unofficial fourcc
|
||||
FOURCC_U420 = FOURCC('U', '4', '2', '0'), // bt.2020, unofficial fourcc
|
||||
FOURCC_U422 = FOURCC('U', '4', '2', '2'), // bt.2020, unofficial fourcc
|
||||
FOURCC_U444 = FOURCC('U', '4', '4', '4'), // bt.2020, unofficial fourcc
|
||||
|
||||
// 14 Auxiliary aliases. CanonicalFourCC() maps these to canonical fourcc.
|
||||
FOURCC_IYUV = FOURCC('I', 'Y', 'U', 'V'), // Alias for I420.
|
||||
FOURCC_YU16 = FOURCC('Y', 'U', '1', '6'), // Alias for I422.
|
||||
FOURCC_YU24 = FOURCC('Y', 'U', '2', '4'), // Alias for I444.
|
||||
FOURCC_YUYV = FOURCC('Y', 'U', 'Y', 'V'), // Alias for YUY2.
|
||||
FOURCC_YUVS = FOURCC('y', 'u', 'v', 's'), // Alias for YUY2 on Mac.
|
||||
FOURCC_HDYC = FOURCC('H', 'D', 'Y', 'C'), // Alias for UYVY.
|
||||
FOURCC_2VUY = FOURCC('2', 'v', 'u', 'y'), // Alias for UYVY on Mac.
|
||||
FOURCC_JPEG = FOURCC('J', 'P', 'E', 'G'), // Alias for MJPG.
|
||||
FOURCC_DMB1 = FOURCC('d', 'm', 'b', '1'), // Alias for MJPG on Mac.
|
||||
FOURCC_BA81 = FOURCC('B', 'A', '8', '1'), // Alias for BGGR.
|
||||
FOURCC_RGB3 = FOURCC('R', 'G', 'B', '3'), // Alias for RAW.
|
||||
FOURCC_BGR3 = FOURCC('B', 'G', 'R', '3'), // Alias for 24BG.
|
||||
FOURCC_CM32 = FOURCC(0, 0, 0, 32), // Alias for BGRA kCMPixelFormat_32ARGB
|
||||
FOURCC_CM24 = FOURCC(0, 0, 0, 24), // Alias for RAW kCMPixelFormat_24RGB
|
||||
FOURCC_L555 = FOURCC('L', '5', '5', '5'), // Alias for RGBO.
|
||||
FOURCC_L565 = FOURCC('L', '5', '6', '5'), // Alias for RGBP.
|
||||
FOURCC_5551 = FOURCC('5', '5', '5', '1'), // Alias for RGBO.
|
||||
|
||||
# Planar YUV
|
||||
The following formats contains a full size Y plane followed by 1 or 2
|
||||
planes for UV: I420, I422, I444, I400, NV21, NV12, I400
|
||||
The size (subsampling) of the UV varies.
|
||||
I420, NV12 and NV21 are half width, half height
|
||||
I422, NV16 and NV61 are half width, full height
|
||||
I444, NV24 and NV42 are full width, full height
|
||||
I400 and J400 have no chroma channel.
|
||||
|
||||
# Color space
|
||||
The YUV formats start with a letter to specify the color space. e.g. I420
|
||||
I = BT.601 limited range
|
||||
J = BT.601 full range (J = JPEG that uses this)
|
||||
H = BT.709 limited range (H for HD)
|
||||
F = BT.709 full range (F for Full range)
|
||||
U = BT.2020 limited range (U for UHD)
|
||||
V = BT.2020 full range
|
||||
For YUV to RGB conversions, a matrix can be passed. See also convert_argh.h
|
||||
|
||||
# HDR formats
|
||||
Planar formats with 10 or 12 bits use the following fourcc:
|
||||
I010, I012, P010, P012 are half width, half height
|
||||
I210, I212, P210, P212 are half width, full height
|
||||
I410, I412, P410, P412 are full width, full height
|
||||
where
|
||||
I is the color space (see above) and 3 planes: Y, U and V.
|
||||
P is a biplanar format, similar to NV12 but 16 bits, with the valid bits in the high bits. There is a Y plane and a UV plane.
|
||||
0, 2 or 4 is the last digit of subsampling: 4:2:0, 4:2:2, or 4:4:4
|
||||
10 or 12 is the bits per channel. The bits are in the low bits of a 16 bit channel.
|
||||
|
||||
# The ARGB FOURCC
|
||||
|
||||
There are 4 ARGB layouts - ARGB, BGRA, ABGR and RGBA. ARGB is most common by far, used for screen formats, and windows webcam drivers.
|
||||
|
||||
The fourcc describes the order of channels in a ***register***.
|
||||
|
||||
A fourcc provided by capturer, can be thought of string, e.g. "ARGB".
|
||||
|
||||
On little endian machines, as an int, this would have 'A' in the lowest byte. The FOURCC macro reverses the order:
|
||||
|
||||
#define FOURCC(a, b, c, d) (((uint32)(a)) | ((uint32)(b) << 8) | ((uint32)(c) << 16) | ((uint32)(d) << 24))
|
||||
|
||||
So the "ARGB" string, read as an uint32, is
|
||||
|
||||
FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B')
|
||||
|
||||
If you were to read ARGB pixels as uint32's, the alpha would be in the high byte, and the blue in the lowest byte. In memory, these are stored little endian, so 'B' is first, then 'G', 'R' and 'A' last.
|
||||
|
||||
When calling conversion functions, the names match the FOURCC, so in this case it would be I420ToARGB().
|
||||
|
||||
All formats can be converted to/from ARGB.
|
||||
|
||||
Most 'planar_functions' work on ARGB (e.g. ARGBBlend).
|
||||
|
||||
Some are channel order agnostic (e.g. ARGBScale).
|
||||
|
||||
Some functions are symmetric (e.g. ARGBToBGRA is the same as BGRAToARGB, so its a macro).
|
||||
|
||||
ARGBBlend expects preattenuated ARGB. The R,G,B are premultiplied by alpha. Other functions don't care.
|
||||
|
||||
# RGB24 and RAW
|
||||
|
||||
There are 2 RGB layouts - RGB24 (aka 24BG) and RAW
|
||||
|
||||
RGB24 is B,G,R in memory
|
||||
RAW is R,G,B in memory
|
||||
|
||||
# AR30 and XR30
|
||||
|
||||
AR30 is 2 10 10 10 ARGB stored in little endian order.
|
||||
The 2 bit alpha has 4 values. Here are the comparable 8 bit alpha values.
|
||||
0 - 0. 00000000b = 0x00 = 0
|
||||
1 - 33%. 01010101b = 0x55 = 85
|
||||
2 - 66%. 10101010b = 0xaa = 170
|
||||
3 - 100%. 11111111b = 0xff = 255
|
||||
The 10 bit RGB values range from 0 to 1023.
|
||||
XR30 is the same as AR30 but with no alpha channel.
|
||||
|
||||
# AB64 and AR64
|
||||
|
||||
AB64 is similar to ABGR, with 16 bit (2 bytes) per channel. Each channel stores an unsigned short.
|
||||
In memory R is the lowest and A is the highest.
|
||||
Each channel has value ranges from 0 to 65535.
|
||||
AR64 is similar to ARGB.
|
||||
|
||||
# NV12 and NV21
|
||||
|
||||
NV12 is a biplanar format with a full sized Y plane followed by a single
|
||||
chroma plane with weaved U and V values.
|
||||
NV21 is the same but with weaved V and U values.
|
||||
The 12 in NV12 refers to 12 bits per pixel. NV12 has a half width and half
|
||||
height chroma channel, and therefore is a 420 subsampling.
|
||||
NV16 is 16 bits per pixel, with half width and full height. aka 422.
|
||||
NV24 is 24 bits per pixel with full sized chroma channel. aka 444.
|
||||
Most NV12 functions allow the destination Y pointer to be NULL.
|
||||
|
||||
# YUY2 and UYVY
|
||||
|
||||
YUY2 is a packed YUV format with half width, full height.
|
||||
|
||||
YUY2 is YUYV in memory
|
||||
UYVY is UYVY in memory
|
||||
343
3rdparty/libyuv/docs/getting_started.md
vendored
Normal file
343
3rdparty/libyuv/docs/getting_started.md
vendored
Normal file
@@ -0,0 +1,343 @@
|
||||
# Getting Started
|
||||
|
||||
How to get and build the libyuv code.
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
You'll need to have depot tools installed: https://www.chromium.org/developers/how-tos/install-depot-tools
|
||||
Refer to chromium instructions for each platform for other prerequisites.
|
||||
|
||||
## Getting the Code
|
||||
|
||||
Create a working directory, enter it, and run:
|
||||
|
||||
fetch libyuv
|
||||
|
||||
For iOS add `;target_os=['ios'];` to your OSX .gclient and run `gclient sync.`
|
||||
|
||||
Browse the Git reprository: https://chromium.googlesource.com/libyuv/libyuv/+/master
|
||||
|
||||
### Android
|
||||
For Android add `;target_os=['android'];` to your Linux .gclient
|
||||
|
||||
solutions = [
|
||||
{ "name" : "src",
|
||||
"url" : "https://chromium.googlesource.com/libyuv/libyuv",
|
||||
"deps_file" : "DEPS",
|
||||
"managed" : True,
|
||||
"custom_deps" : {
|
||||
},
|
||||
"safesync_url": "",
|
||||
},
|
||||
];
|
||||
target_os = ["android", "linux"];
|
||||
|
||||
Then run:
|
||||
|
||||
gclient sync
|
||||
|
||||
To get just the source (not buildable):
|
||||
|
||||
git clone https://chromium.googlesource.com/libyuv/libyuv
|
||||
|
||||
|
||||
## Building the Library and Unittests
|
||||
|
||||
### Bazel
|
||||
|
||||
Libyuv can be built using [Bazel](https://bazel.build/).
|
||||
|
||||
#### Android Prerequisites
|
||||
To build for Android using Bazel, you must have the Android SDK and NDK installed. Bazel will look for the following environment variables to locate them:
|
||||
* `ANDROID_HOME`: Set this to the path of your Android SDK.
|
||||
* `ANDROID_NDK_HOME`: Set this to the path of your Android NDK.
|
||||
|
||||
Ensure these variables are set before running the Bazel Android build commands.
|
||||
|
||||
**Android arm64:**
|
||||
|
||||
bazel build -c opt --config=android_arm64 //:libyuv_test
|
||||
|
||||
# Or, specifying standard open-source flags (if NDK is set up in workspace):
|
||||
bazel build -c opt --cpu=arm64-v8a --crosstool_top=//external:android/crosstool //:libyuv_test
|
||||
|
||||
**Linux x86_64:**
|
||||
|
||||
bazel build -c opt //:libyuv_test
|
||||
|
||||
# Or, specifying a specific CPU architecture:
|
||||
bazel build -c opt --cpu=haswell //:libyuv_test
|
||||
|
||||
Additional commonly used compiler options can be passed to Bazel via `--copt`:
|
||||
|
||||
bazel build -c opt --config=android_arm64 \
|
||||
--copt=-DLIBYUV_UNLIMITED_DATA \
|
||||
--copt=-DLIBYUV_BIT_EXACT=1 \
|
||||
--copt=-DENABLE_ROW_TESTS \
|
||||
//:libyuv_test
|
||||
|
||||
### Windows
|
||||
|
||||
gn gen out\Release "--args=is_debug=false target_cpu=\"x64\""
|
||||
gn gen out\Debug "--args=is_debug=true target_cpu=\"x64\""
|
||||
ninja -v -C out\Release
|
||||
ninja -v -C out\Debug
|
||||
|
||||
gn gen out\Release "--args=is_debug=false target_cpu=\"x86\""
|
||||
gn gen out\Debug "--args=is_debug=true target_cpu=\"x86\""
|
||||
ninja -v -C out\Release
|
||||
ninja -v -C out\Debug
|
||||
|
||||
### macOS and Linux
|
||||
|
||||
gn gen out/Release "--args=is_debug=false"
|
||||
gn gen out/Debug "--args=is_debug=true"
|
||||
ninja -v -C out/Release
|
||||
ninja -v -C out/Debug
|
||||
|
||||
### Building Offical with GN
|
||||
|
||||
gn gen out/Official "--args=is_debug=false is_official_build=true is_chrome_branded=true"
|
||||
ninja -C out/Official
|
||||
|
||||
### iOS
|
||||
http://www.chromium.org/developers/how-tos/build-instructions-ios
|
||||
|
||||
Add to .gclient last line: `target_os=['ios'];`
|
||||
|
||||
arm64
|
||||
|
||||
gn gen out/Release "--args=is_debug=false target_os=\"ios\" ios_enable_code_signing=false target_cpu=\"arm64\""
|
||||
gn gen out/Debug "--args=is_debug=true target_os=\"ios\" ios_enable_code_signing=false target_cpu=\"arm64\""
|
||||
ninja -v -C out/Debug libyuv_unittest
|
||||
ninja -v -C out/Release libyuv_unittest
|
||||
|
||||
ios simulator
|
||||
|
||||
gn gen out/Release "--args=is_debug=false target_os=\"ios\" ios_enable_code_signing=false use_xcode_clang=true target_cpu=\"x86\""
|
||||
gn gen out/Debug "--args=is_debug=true target_os=\"ios\" ios_enable_code_signing=false use_xcode_clang=true target_cpu=\"x86\""
|
||||
ninja -v -C out/Debug libyuv_unittest
|
||||
ninja -v -C out/Release libyuv_unittest
|
||||
|
||||
ios disassembly
|
||||
|
||||
otool -tV ./out/Release/obj/libyuv_neon/row_neon64.o >row_neon64.txt
|
||||
|
||||
### Android
|
||||
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions
|
||||
|
||||
Add to .gclient last line: `target_os=['android'];`
|
||||
|
||||
arm64
|
||||
|
||||
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"arm64\""
|
||||
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"arm64\""
|
||||
ninja -v -C out/Debug libyuv_unittest
|
||||
ninja -v -C out/Release libyuv_unittest
|
||||
|
||||
armv7
|
||||
|
||||
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"arm\""
|
||||
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"arm\""
|
||||
ninja -v -C out/Debug libyuv_unittest
|
||||
ninja -v -C out/Release libyuv_unittest
|
||||
|
||||
ia32
|
||||
|
||||
gn gen out/Release "--args=is_debug=false target_os=\"android\" target_cpu=\"x86\""
|
||||
gn gen out/Debug "--args=is_debug=true target_os=\"android\" target_cpu=\"x86\""
|
||||
ninja -v -C out/Debug libyuv_unittest
|
||||
ninja -v -C out/Release libyuv_unittest
|
||||
|
||||
arm disassembly:
|
||||
|
||||
llvm-objdump -d ./out/Release/obj/libyuv/row_common.o >row_common.txt
|
||||
|
||||
llvm-objdump -d ./out/Release/obj/libyuv_neon/row_neon.o >row_neon.txt
|
||||
|
||||
llvm-objdump -d ./out/Release/obj/libyuv_neon/row_neon64.o >row_neon64.txt
|
||||
|
||||
Caveat: Disassembly may require optimize_max be disabled in BUILD.gn
|
||||
|
||||
Running tests:
|
||||
|
||||
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=*
|
||||
|
||||
Running test as benchmark:
|
||||
|
||||
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=-1 --libyuv_cpu_info=-1
|
||||
|
||||
Running test with C code:
|
||||
|
||||
out/Release/bin/run_libyuv_unittest -vv --gtest_filter=* --libyuv_width=1280 --libyuv_height=720 --libyuv_repeat=999 --libyuv_flags=1 --libyuv_cpu_info=1
|
||||
|
||||
### Build targets
|
||||
|
||||
ninja -C out/Debug libyuv
|
||||
ninja -C out/Debug libyuv_unittest
|
||||
ninja -C out/Debug compare
|
||||
ninja -C out/Debug yuvconvert
|
||||
ninja -C out/Debug yuvconstants
|
||||
ninja -C out/Debug psnr
|
||||
ninja -C out/Debug cpuid
|
||||
|
||||
### ARM Linux
|
||||
|
||||
gn gen out/Release "--args=is_debug=false target_cpu=\"arm64\""
|
||||
gn gen out/Debug "--args=is_debug=true target_cpu=\"arm64\""
|
||||
ninja -v -C out/Debug libyuv_unittest
|
||||
ninja -v -C out/Release libyuv_unittest
|
||||
|
||||
## Building the Library with make
|
||||
|
||||
### Linux
|
||||
|
||||
make V=1 -f linux.mk
|
||||
make V=1 -f linux.mk clean
|
||||
make V=1 -f linux.mk CXX=clang++ CC=clang
|
||||
|
||||
## Building the library with cmake
|
||||
|
||||
Install cmake: http://www.cmake.org/
|
||||
|
||||
### Default debug build:
|
||||
|
||||
mkdir out
|
||||
cd out
|
||||
cmake ..
|
||||
cmake --build .
|
||||
|
||||
### Release build/install
|
||||
|
||||
mkdir out
|
||||
cd out
|
||||
cmake -DCMAKE_INSTALL_PREFIX="/usr/lib" -DCMAKE_BUILD_TYPE="Release" ..
|
||||
cmake --build . --config Release
|
||||
sudo cmake --build . --target install --config Release
|
||||
|
||||
### Build RPM/DEB packages
|
||||
|
||||
mkdir out
|
||||
cd out
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
make -j4
|
||||
make package
|
||||
|
||||
## Building RISC-V target with cmake
|
||||
|
||||
### Prerequisite: build risc-v clang toolchain and qemu
|
||||
|
||||
If you don't have prebuilt clang and riscv64 qemu, run the script to download source and build them.
|
||||
|
||||
./riscv_script/prepare_toolchain_qemu.sh
|
||||
|
||||
After running script, clang & qemu are built in `build-toolchain-qemu/riscv-clang/` & `build-toolchain-qemu/riscv-qemu/`.
|
||||
|
||||
### Cross-compile for RISC-V target
|
||||
cmake -B out/Release/ -DUNIT_TEST=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_TOOLCHAIN_FILE="./riscv_script/riscv-clang.cmake" \
|
||||
-DTOOLCHAIN_PATH={TOOLCHAIN_PATH} \
|
||||
-DUSE_RVV=ON .
|
||||
cmake --build out/Release/
|
||||
|
||||
#### Customized Compiler Flags
|
||||
|
||||
Customized compiler flags are supported by `-DRISCV_COMPILER_FLAGS="xxx"`.
|
||||
If `-DRISCV_COMPILER_FLAGS="xxx"` is manually assigned, other compile flags(e.g disable -march=xxx) will not be appended.
|
||||
|
||||
Example:
|
||||
|
||||
cmake -B out/Release/ -DUNIT_TEST=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_TOOLCHAIN_FILE="./riscv_script/riscv-clang.cmake" \
|
||||
-DRISCV_COMPILER_FLAGS="-mcpu=sifive-x280" \
|
||||
.
|
||||
|
||||
### Run on QEMU
|
||||
|
||||
#### Run libyuv_unittest on QEMU
|
||||
cd out/Release/
|
||||
USE_RVV=ON \
|
||||
TOOLCHAIN_PATH={TOOLCHAIN_PATH} \
|
||||
QEMU_PREFIX_PATH={QEMU_PREFIX_PATH} \
|
||||
../../riscv_script/run_qemu.sh libyuv_unittest
|
||||
|
||||
|
||||
## Setup for Arm Cross compile
|
||||
|
||||
See also https://www.ccoderun.ca/programming/2015-12-20_CrossCompiling/index.html
|
||||
|
||||
sudo apt-get install ssh dkms build-essential linux-headers-generic
|
||||
sudo apt-get install kdevelop cmake git subversion
|
||||
sudo apt-get install graphviz doxygen doxygen-gui
|
||||
sudo apt-get install manpages manpages-dev manpages-posix manpages-posix-dev
|
||||
sudo apt-get install libboost-all-dev libboost-dev libssl-dev
|
||||
sudo apt-get install rpm terminator fish
|
||||
sudo apt-get install g++-arm-linux-gnueabihf gcc-arm-linux-gnueabihf
|
||||
|
||||
### Build psnr tool
|
||||
|
||||
cd util
|
||||
arm-linux-gnueabihf-g++ psnr_main.cc psnr.cc ssim.cc -o psnr
|
||||
arm-linux-gnueabihf-objdump -d psnr
|
||||
|
||||
## Running Unittests
|
||||
|
||||
### Bazel
|
||||
|
||||
You can run the tests using Bazel's `test` command. This will build and run the test in an isolated environment:
|
||||
|
||||
bazel test -c opt //:libyuv_test
|
||||
|
||||
To pass specific arguments to the test binary (like a gtest filter), use `--test_arg`:
|
||||
|
||||
bazel test -c opt //:libyuv_test --test_arg=--gtest_filter="*" --test_output=all
|
||||
|
||||
Alternatively, you can run the compiled binary directly from the `bazel-bin` directory:
|
||||
|
||||
./bazel-bin/libyuv_test --gtest_filter="*"
|
||||
|
||||
### Windows
|
||||
|
||||
out\Release\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter="*"
|
||||
|
||||
### macOS and Linux
|
||||
|
||||
out/Release/libyuv_unittest --gtest_filter="*"
|
||||
|
||||
Replace --gtest_filter="*" with specific unittest to run. May include wildcards.
|
||||
out/Release/libyuv_unittest --gtest_filter=*I420ToARGB_Opt
|
||||
|
||||
## CPU Emulator tools
|
||||
|
||||
### Intel SDE (Software Development Emulator)
|
||||
|
||||
Pre-requisite: Install IntelSDE: http://software.intel.com/en-us/articles/intel-software-development-emulator
|
||||
|
||||
Then run:
|
||||
|
||||
c:\intelsde\sde -hsw -- out\Release\libyuv_unittest.exe --gtest_filter=*
|
||||
|
||||
~/intelsde/sde -skx -- out/Release/libyuv_unittest --gtest_filter=**I420ToARGB_Opt
|
||||
|
||||
### Intel Architecture Code Analyzer
|
||||
|
||||
Inset these 2 macros into assembly code to be analyzed:
|
||||
IACA_ASM_START
|
||||
IACA_ASM_END
|
||||
Build the code as usual, then run iaca on the object file.
|
||||
~/iaca-lin64/bin/iaca.sh -reduceout -arch HSW out/Release/obj/libyuv_internal/compare_gcc.o
|
||||
|
||||
## Sanitizers
|
||||
|
||||
gn gen out/Release "--args=is_debug=false is_msan=true"
|
||||
ninja -v -C out/Release
|
||||
|
||||
Sanitizers available: asan, msan, tsan, ubsan, lsan, ubsan_vptr
|
||||
|
||||
### Running Dr Memory memcheck for Windows
|
||||
|
||||
Pre-requisite: Install Dr Memory for Windows and add it to your path: http://www.drmemory.org/docs/page_install_windows.html
|
||||
|
||||
drmemory out\Debug\libyuv_unittest.exe --gtest_catch_exceptions=0 --gtest_filter=*
|
||||
107
3rdparty/libyuv/docs/rotation.md
vendored
Normal file
107
3rdparty/libyuv/docs/rotation.md
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
# Introduction
|
||||
|
||||
Rotation by multiplies of 90 degrees allows mobile devices to rotate webcams from landscape to portrait. The higher level functions ConvertToI420 and ConvertToARGB allow rotation of any format. Optimized functionality is supported for I420, ARGB, NV12 and NV21.
|
||||
|
||||
# ConvertToI420
|
||||
|
||||
int ConvertToI420(const uint8* src_frame, size_t src_size,
|
||||
uint8* dst_y, int dst_stride_y,
|
||||
uint8* dst_u, int dst_stride_u,
|
||||
uint8* dst_v, int dst_stride_v,
|
||||
int crop_x, int crop_y,
|
||||
int src_width, int src_height,
|
||||
int crop_width, int crop_height,
|
||||
enum RotationMode rotation,
|
||||
uint32 format);
|
||||
|
||||
This function crops, converts, and rotates. You should think of it in that order.
|
||||
* Crops the original image, which is src_width x src_height, to crop_width x crop_height. At this point the image is still not rotated.
|
||||
* Converts the cropped region to I420. Supports inverted source for src_height negative.
|
||||
* Rotates by 90, 180 or 270 degrees.
|
||||
The buffer the caller provides should account for rotation. Be especially important to get stride of the destination correct.
|
||||
|
||||
e.g.
|
||||
640 x 480 NV12 captured<br>
|
||||
Crop to 640 x 360<br>
|
||||
Rotate by 90 degrees to 360 x 640.<br>
|
||||
Caller passes stride of 360 for Y and 360 / 2 for U and V.<br>
|
||||
Caller passes crop_width of 640, crop_height of 360.<br>
|
||||
|
||||
# ConvertToARGB
|
||||
|
||||
int ConvertToARGB(const uint8* src_frame, size_t src_size,
|
||||
uint8* dst_argb, int dst_stride_argb,
|
||||
int crop_x, int crop_y,
|
||||
int src_width, int src_height,
|
||||
int crop_width, int crop_height,
|
||||
enum RotationMode rotation,
|
||||
uint32 format);
|
||||
|
||||
Same as I420, but implementation is less optimized - reads columns and writes rows, 16 bytes at a time.
|
||||
|
||||
# I420Rotate
|
||||
|
||||
int I420Rotate(const uint8* src_y, int src_stride_y,
|
||||
const uint8* src_u, int src_stride_u,
|
||||
const uint8* src_v, int src_stride_v,
|
||||
uint8* dst_y, int dst_stride_y,
|
||||
uint8* dst_u, int dst_stride_u,
|
||||
uint8* dst_v, int dst_stride_v,
|
||||
int src_width, int src_height, enum RotationMode mode);
|
||||
|
||||
Destination is rotated, so pass dst_stride_y etc that consider rotation.<br>
|
||||
Rotate by 180 can be done in place, but 90 and 270 can not.
|
||||
|
||||
Implementation (Neon/SSE2) uses 8 x 8 block transpose, so best efficiency is with sizes and pointers that are aligned to 8.
|
||||
|
||||
Cropping can be achieved by adjusting the src_y/u/v pointers and src_width, src_height.
|
||||
|
||||
Lower level plane functions are provided, allowing other planar formats to be rotated. (e.g. I444)
|
||||
|
||||
For other planar YUV formats (I444, I422, I411, I400, NV16, NV24), the planar functions are exposed and can be called directly
|
||||
|
||||
|
||||
// Rotate a plane by 0, 90, 180, or 270.
|
||||
int RotatePlane(const uint8* src, int src_stride,
|
||||
uint8* dst, int dst_stride,
|
||||
int src_width, int src_height, enum RotationMode mode);
|
||||
|
||||
# ARGBRotate
|
||||
|
||||
LIBYUV_API
|
||||
int ARGBRotate(const uint8* src_argb, int src_stride_argb,
|
||||
uint8* dst_argb, int dst_stride_argb,
|
||||
int src_width, int src_height, enum RotationMode mode);
|
||||
|
||||
Same as I420, but implementation is less optimized - reads columns and writes rows.
|
||||
|
||||
Rotate by 90, or any angle, can be achieved using ARGBAffine.
|
||||
|
||||
# Mirror - Horizontal Flip
|
||||
|
||||
Mirror functions for horizontally flipping an image, which can be useful for 'self view' of a webcam.
|
||||
|
||||
int I420Mirror(const uint8* src_y, int src_stride_y,
|
||||
const uint8* src_u, int src_stride_u,
|
||||
const uint8* src_v, int src_stride_v,
|
||||
uint8* dst_y, int dst_stride_y,
|
||||
uint8* dst_u, int dst_stride_u,
|
||||
uint8* dst_v, int dst_stride_v,
|
||||
int width, int height);
|
||||
int ARGBMirror(const uint8* src_argb, int src_stride_argb,
|
||||
uint8* dst_argb, int dst_stride_argb,
|
||||
int width, int height);
|
||||
|
||||
Mirror functionality can also be achieved with the I420Scale and ARGBScale functions by passing negative width and/or height.
|
||||
|
||||
# Invert - Vertical Flip
|
||||
|
||||
Inverting can be achieved with almost any libyuv function by passing a negative source height.
|
||||
|
||||
I420Mirror and ARGBMirror can also be used to rotate by 180 degrees by passing a negative height.
|
||||
|
||||
# Cropping - Vertical Flip
|
||||
|
||||
When cropping from a subsampled format like NV21, the method of setting the start pointers wont work for odd crop start y on the UV plane.
|
||||
If the height after cropping will be odd, invert the source - point to the last row, negate the strides, and pass negative height, which
|
||||
will re-invert the image as the conversion outputs.
|
||||
29
3rdparty/libyuv/download_vs_toolchain.py
vendored
Normal file
29
3rdparty/libyuv/download_vs_toolchain.py
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env vpython3
|
||||
|
||||
# Copyright 2014 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
# This script is used to run the vs_toolchain.py script to download the
|
||||
# Visual Studio toolchain. It's just a temporary measure while waiting for the
|
||||
# Chrome team to move find_depot_tools into src/build to get rid of these
|
||||
# workarounds (similar one in gyp_libyuv).
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
checkout_root = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.insert(0, os.path.join(checkout_root, 'build'))
|
||||
sys.path.insert(0, os.path.join(checkout_root, 'tools', 'find_depot_tools'))
|
||||
|
||||
|
||||
import vs_toolchain # pylint: disable=wrong-import-position
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(vs_toolchain.main())
|
||||
33
3rdparty/libyuv/include/libyuv.h
vendored
Normal file
33
3rdparty/libyuv/include/libyuv.h
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_H_
|
||||
#define INCLUDE_LIBYUV_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/compare.h"
|
||||
#include "libyuv/convert.h"
|
||||
#include "libyuv/convert_argb.h"
|
||||
#include "libyuv/convert_from.h"
|
||||
#include "libyuv/convert_from_argb.h"
|
||||
#include "libyuv/cpu_id.h"
|
||||
#include "libyuv/mjpeg_decoder.h"
|
||||
#include "libyuv/planar_functions.h"
|
||||
#include "libyuv/rotate.h"
|
||||
#include "libyuv/rotate_argb.h"
|
||||
#include "libyuv/row.h"
|
||||
#include "libyuv/scale.h"
|
||||
#include "libyuv/scale_argb.h"
|
||||
#include "libyuv/scale_row.h"
|
||||
#include "libyuv/scale_uv.h"
|
||||
#include "libyuv/version.h"
|
||||
#include "libyuv/video_common.h"
|
||||
|
||||
#endif // INCLUDE_LIBYUV_H_
|
||||
68
3rdparty/libyuv/include/libyuv/basic_types.h
vendored
Normal file
68
3rdparty/libyuv/include/libyuv/basic_types.h
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_BASIC_TYPES_H_
|
||||
#define INCLUDE_LIBYUV_BASIC_TYPES_H_
|
||||
|
||||
#include <stddef.h> // For size_t and NULL
|
||||
|
||||
#if !defined(INT_TYPES_DEFINED) && !defined(GG_LONGLONG)
|
||||
#define INT_TYPES_DEFINED
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1600)
|
||||
#include <sys/types.h> // for uintptr_t on x86
|
||||
typedef unsigned __int64 uint64_t;
|
||||
typedef __int64 int64_t;
|
||||
typedef unsigned int uint32_t;
|
||||
typedef int int32_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef short int16_t;
|
||||
typedef unsigned char uint8_t;
|
||||
typedef signed char int8_t;
|
||||
#else
|
||||
#include <stdint.h> // for uintptr_t and C99 types
|
||||
#endif // defined(_MSC_VER) && (_MSC_VER < 1600)
|
||||
// Types are deprecated. Enable this macro for legacy types.
|
||||
#ifdef LIBYUV_LEGACY_TYPES
|
||||
typedef uint64_t uint64;
|
||||
typedef int64_t int64;
|
||||
typedef uint32_t uint32;
|
||||
typedef int32_t int32;
|
||||
typedef uint16_t uint16;
|
||||
typedef int16_t int16;
|
||||
typedef uint8_t uint8;
|
||||
typedef int8_t int8;
|
||||
#endif // LIBYUV_LEGACY_TYPES
|
||||
#endif // INT_TYPES_DEFINED
|
||||
|
||||
#if !defined(LIBYUV_API)
|
||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
#if defined(LIBYUV_BUILDING_SHARED_LIBRARY)
|
||||
#define LIBYUV_API __declspec(dllexport)
|
||||
#elif defined(LIBYUV_USING_SHARED_LIBRARY)
|
||||
#define LIBYUV_API __declspec(dllimport)
|
||||
#else
|
||||
#define LIBYUV_API
|
||||
#endif // LIBYUV_BUILDING_SHARED_LIBRARY
|
||||
#elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__APPLE__) && \
|
||||
(defined(LIBYUV_BUILDING_SHARED_LIBRARY) || \
|
||||
defined(LIBYUV_USING_SHARED_LIBRARY))
|
||||
#define LIBYUV_API __attribute__((visibility("default")))
|
||||
#else
|
||||
#define LIBYUV_API
|
||||
#endif // __GNUC__
|
||||
#endif // LIBYUV_API
|
||||
|
||||
// TODO(fbarchard): Remove bool macros.
|
||||
#define LIBYUV_BOOL int
|
||||
#define LIBYUV_FALSE 0
|
||||
#define LIBYUV_TRUE 1
|
||||
|
||||
#endif // INCLUDE_LIBYUV_BASIC_TYPES_H_
|
||||
111
3rdparty/libyuv/include/libyuv/compare.h
vendored
Normal file
111
3rdparty/libyuv/include/libyuv/compare.h
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_COMPARE_H_
|
||||
#define INCLUDE_LIBYUV_COMPARE_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Compute a hash for specified memory. Seed of 5381 recommended.
|
||||
LIBYUV_API
|
||||
uint32_t HashDjb2(const uint8_t* src, uint64_t count, uint32_t seed);
|
||||
|
||||
// Hamming Distance
|
||||
LIBYUV_API
|
||||
uint64_t ComputeHammingDistance(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
|
||||
// Scan an opaque argb image and return fourcc based on alpha offset.
|
||||
// Returns FOURCC_ARGB, FOURCC_BGRA, or 0 if unknown.
|
||||
LIBYUV_API
|
||||
uint32_t ARGBDetect(const uint8_t* argb,
|
||||
int stride_argb,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Sum Square Error - used to compute Mean Square Error or PSNR.
|
||||
LIBYUV_API
|
||||
uint64_t ComputeSumSquareError(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
|
||||
LIBYUV_API
|
||||
uint64_t ComputeSumSquareErrorPlane(const uint8_t* src_a,
|
||||
int stride_a,
|
||||
const uint8_t* src_b,
|
||||
int stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
static const int kMaxPsnr = 128;
|
||||
|
||||
LIBYUV_API
|
||||
double SumSquareErrorToPsnr(uint64_t sse, uint64_t count);
|
||||
|
||||
LIBYUV_API
|
||||
double CalcFramePsnr(const uint8_t* src_a,
|
||||
int stride_a,
|
||||
const uint8_t* src_b,
|
||||
int stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
double I420Psnr(const uint8_t* src_y_a,
|
||||
int stride_y_a,
|
||||
const uint8_t* src_u_a,
|
||||
int stride_u_a,
|
||||
const uint8_t* src_v_a,
|
||||
int stride_v_a,
|
||||
const uint8_t* src_y_b,
|
||||
int stride_y_b,
|
||||
const uint8_t* src_u_b,
|
||||
int stride_u_b,
|
||||
const uint8_t* src_v_b,
|
||||
int stride_v_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
double CalcFrameSsim(const uint8_t* src_a,
|
||||
int stride_a,
|
||||
const uint8_t* src_b,
|
||||
int stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
double I420Ssim(const uint8_t* src_y_a,
|
||||
int stride_y_a,
|
||||
const uint8_t* src_u_a,
|
||||
int stride_u_a,
|
||||
const uint8_t* src_v_a,
|
||||
int stride_v_a,
|
||||
const uint8_t* src_y_b,
|
||||
int stride_y_b,
|
||||
const uint8_t* src_u_b,
|
||||
int stride_u_b,
|
||||
const uint8_t* src_v_b,
|
||||
int stride_v_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_COMPARE_H_
|
||||
112
3rdparty/libyuv/include/libyuv/compare_row.h
vendored
Normal file
112
3rdparty/libyuv/include/libyuv/compare_row.h
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Copyright 2013 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_COMPARE_ROW_H_
|
||||
#define INCLUDE_LIBYUV_COMPARE_ROW_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/cpu_support.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// The following are available for Visual C and GCC:
|
||||
#if !defined(LIBYUV_DISABLE_X86) && \
|
||||
((defined(__x86_64__) && !defined(LIBYUV_ENABLE_ROWWIN)) || \
|
||||
defined(__i386__) || defined(_M_IX86))
|
||||
#define HAS_HASHDJB2_SSE41
|
||||
#define HAS_SUMSQUAREERROR_SSE2
|
||||
#define HAS_HAMMINGDISTANCE_SSE42
|
||||
#endif
|
||||
|
||||
// The following are available for Visual C and clangcl 32 bit:
|
||||
#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && defined(_MSC_VER) && \
|
||||
!defined(__clang__) && \
|
||||
(defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2))
|
||||
#define HAS_HASHDJB2_AVX2
|
||||
#define HAS_SUMSQUAREERROR_AVX2
|
||||
#endif
|
||||
|
||||
// The following are available for GCC and clangcl:
|
||||
#if !defined(LIBYUV_DISABLE_X86) && \
|
||||
(defined(__x86_64__) || defined(__i386__)) && \
|
||||
!defined(LIBYUV_ENABLE_ROWWIN)
|
||||
#define HAS_HAMMINGDISTANCE_SSSE3
|
||||
#endif
|
||||
|
||||
// The following are available for GCC and clangcl:
|
||||
#if !defined(LIBYUV_DISABLE_X86) && defined(CLANG_HAS_AVX2) && \
|
||||
(defined(__x86_64__) || defined(__i386__)) && \
|
||||
!defined(LIBYUV_ENABLE_ROWWIN)
|
||||
#define HAS_HAMMINGDISTANCE_AVX2
|
||||
#endif
|
||||
|
||||
// The following are available for Neon:
|
||||
#if !defined(LIBYUV_DISABLE_NEON) && \
|
||||
(defined(__ARM_NEON__) || defined(LIBYUV_NEON) || defined(__aarch64__))
|
||||
#define HAS_HAMMINGDISTANCE_NEON
|
||||
#define HAS_SUMSQUAREERROR_NEON
|
||||
#endif
|
||||
|
||||
// The following are available for AArch64 Neon:
|
||||
#if !defined(LIBYUV_DISABLE_NEON) && defined(__aarch64__)
|
||||
#define HAS_HASHDJB2_NEON
|
||||
|
||||
#define HAS_HAMMINGDISTANCE_NEON_DOTPROD
|
||||
#define HAS_SUMSQUAREERROR_NEON_DOTPROD
|
||||
#endif
|
||||
|
||||
uint32_t HammingDistance_C(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t HammingDistance_SSE42(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t HammingDistance_SSSE3(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t HammingDistance_AVX2(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t HammingDistance_NEON(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t HammingDistance_NEON_DotProd(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t SumSquareError_C(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t SumSquareError_SSE2(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t SumSquareError_AVX2(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t SumSquareError_NEON(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
uint32_t SumSquareError_NEON_DotProd(const uint8_t* src_a,
|
||||
const uint8_t* src_b,
|
||||
int count);
|
||||
|
||||
uint32_t HashDjb2_C(const uint8_t* src, int count, uint32_t seed);
|
||||
uint32_t HashDjb2_SSE41(const uint8_t* src, int count, uint32_t seed);
|
||||
uint32_t HashDjb2_AVX2(const uint8_t* src, int count, uint32_t seed);
|
||||
uint32_t HashDjb2_NEON(const uint8_t* src, int count, uint32_t seed);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_COMPARE_ROW_H_
|
||||
1133
3rdparty/libyuv/include/libyuv/convert.h
vendored
Normal file
1133
3rdparty/libyuv/include/libyuv/convert.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2335
3rdparty/libyuv/include/libyuv/convert_argb.h
vendored
Normal file
2335
3rdparty/libyuv/include/libyuv/convert_argb.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
203
3rdparty/libyuv/include/libyuv/convert_from.h
vendored
Normal file
203
3rdparty/libyuv/include/libyuv/convert_from.h
vendored
Normal file
@@ -0,0 +1,203 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_CONVERT_FROM_H_
|
||||
#define INCLUDE_LIBYUV_CONVERT_FROM_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/rotate.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// See Also convert.h for conversions from formats to I420.
|
||||
|
||||
// Convert 8 bit YUV to 10 bit.
|
||||
#define H420ToH010 I420ToI010
|
||||
LIBYUV_API
|
||||
int I420ToI010(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert 8 bit YUV to 12 bit.
|
||||
#define H420ToH012 I420ToI012
|
||||
LIBYUV_API
|
||||
int I420ToI012(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
int I420ToI422(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
int I420ToI444(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Copy to I400. Source can be I420, I422, I444, I400, NV12 or NV21.
|
||||
LIBYUV_API
|
||||
int I400Copy(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
int I420ToNV12(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
int I420ToNV21(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_vu,
|
||||
int dst_stride_vu,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
int I420ToYUY2(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_yuy2,
|
||||
int dst_stride_yuy2,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
int I420ToUYVY(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_uyvy,
|
||||
int dst_stride_uyvy,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// The following are from convert_argb.h
|
||||
// DEPRECATED: The prototypes will be removed in future. Use convert_argb.h
|
||||
|
||||
// Convert I420 to ARGB.
|
||||
LIBYUV_API
|
||||
int I420ToARGB(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_argb,
|
||||
int dst_stride_argb,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert I420 to ABGR.
|
||||
LIBYUV_API
|
||||
int I420ToABGR(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_abgr,
|
||||
int dst_stride_abgr,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert I420 to specified format.
|
||||
// "dst_sample_stride" is bytes in a row for the destination. Pass 0 if the
|
||||
// buffer has contiguous rows. Can be negative. A multiple of 16 is optimal.
|
||||
LIBYUV_API
|
||||
int ConvertFromI420(const uint8_t* y,
|
||||
int y_stride,
|
||||
const uint8_t* u,
|
||||
int u_stride,
|
||||
const uint8_t* v,
|
||||
int v_stride,
|
||||
uint8_t* dst_sample,
|
||||
int dst_sample_stride,
|
||||
int width,
|
||||
int height,
|
||||
uint32_t fourcc);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_CONVERT_FROM_H_
|
||||
475
3rdparty/libyuv/include/libyuv/convert_from_argb.h
vendored
Normal file
475
3rdparty/libyuv/include/libyuv/convert_from_argb.h
vendored
Normal file
@@ -0,0 +1,475 @@
|
||||
/*
|
||||
* Copyright 2012 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_
|
||||
#define INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// The ArgbConstants below can be used with the ARGBTo*Matrix() functions to
|
||||
// process different RGB formats. E.g., if your input is ARGB little endian
|
||||
// (bgra in memory) you'll want to use the kArgb* constants. Alternatively, if
|
||||
// your input is ABGR little endian (rgba in memory) you'd use the kAbgr* ones.
|
||||
//
|
||||
// Conversion matrix for xRGB to YUV.
|
||||
LIBYUV_API extern const struct ArgbConstants kArgbI601Constants; // BT.601
|
||||
LIBYUV_API extern const struct ArgbConstants kArgbJPEGConstants; // BT.601 full
|
||||
LIBYUV_API extern const struct ArgbConstants kArgbH709Constants; // BT.709
|
||||
LIBYUV_API extern const struct ArgbConstants kArgbF709Constants; // BT.709 full
|
||||
LIBYUV_API extern const struct ArgbConstants kArgbU2020Constants; // BT.2020
|
||||
LIBYUV_API extern const struct ArgbConstants
|
||||
kArgbV2020Constants; // BT.2020 full
|
||||
|
||||
// Conversion matrix for xBGR to YUV.
|
||||
LIBYUV_API extern const struct ArgbConstants kAbgrI601Constants; // BT.601
|
||||
LIBYUV_API extern const struct ArgbConstants kAbgrJPEGConstants; // BT.601 full
|
||||
LIBYUV_API extern const struct ArgbConstants kAbgrH709Constants; // BT.709
|
||||
LIBYUV_API extern const struct ArgbConstants kAbgrF709Constants; // BT.709 full
|
||||
LIBYUV_API extern const struct ArgbConstants kAbgrU2020Constants; // BT.2020
|
||||
LIBYUV_API extern const struct ArgbConstants
|
||||
kAbgrV2020Constants; // BT.2020 full
|
||||
|
||||
// Conversion matrix for RGBx to YUV.
|
||||
LIBYUV_API extern const struct ArgbConstants kRgbaI601Constants; // BT.601
|
||||
LIBYUV_API extern const struct ArgbConstants kRgbaJPEGConstants; // BT.601 full
|
||||
LIBYUV_API extern const struct ArgbConstants kRgbaH709Constants; // BT.709
|
||||
LIBYUV_API extern const struct ArgbConstants kRgbaF709Constants; // BT.709 full
|
||||
LIBYUV_API extern const struct ArgbConstants kRgbaU2020Constants; // BT.2020
|
||||
LIBYUV_API extern const struct ArgbConstants
|
||||
kRgbaV2020Constants; // BT.2020 full
|
||||
|
||||
// Conversion matrix from BGRx to YUV.
|
||||
LIBYUV_API extern const struct ArgbConstants kBgraI601Constants; // BT.601
|
||||
LIBYUV_API extern const struct ArgbConstants kBgraJPEGConstants; // BT.601 full
|
||||
LIBYUV_API extern const struct ArgbConstants kBgraH709Constants; // BT.709
|
||||
LIBYUV_API extern const struct ArgbConstants kBgraF709Constants; // BT.709 full
|
||||
LIBYUV_API extern const struct ArgbConstants kBgraU2020Constants; // BT.2020
|
||||
LIBYUV_API extern const struct ArgbConstants
|
||||
kBgraV2020Constants; // BT.2020 full
|
||||
|
||||
// Copy ARGB to ARGB.
|
||||
#define ARGBToARGB ARGBCopy
|
||||
LIBYUV_API
|
||||
int ARGBCopy(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_argb,
|
||||
int dst_stride_argb,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To BGRA.
|
||||
LIBYUV_API
|
||||
int ARGBToBGRA(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_bgra,
|
||||
int dst_stride_bgra,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To ABGR.
|
||||
LIBYUV_API
|
||||
int ARGBToABGR(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_abgr,
|
||||
int dst_stride_abgr,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To RGBA.
|
||||
LIBYUV_API
|
||||
int ARGBToRGBA(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_rgba,
|
||||
int dst_stride_rgba,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Aliases
|
||||
#define ARGBToAB30 ABGRToAR30
|
||||
#define ABGRToAB30 ARGBToAR30
|
||||
|
||||
// Convert ABGR To AR30.
|
||||
LIBYUV_API
|
||||
int ABGRToAR30(const uint8_t* src_abgr,
|
||||
int src_stride_abgr,
|
||||
uint8_t* dst_ar30,
|
||||
int dst_stride_ar30,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To AR30.
|
||||
LIBYUV_API
|
||||
int ARGBToAR30(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_ar30,
|
||||
int dst_stride_ar30,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Aliases
|
||||
#define ABGRToRGB24 ARGBToRAW
|
||||
#define ABGRToRAW ARGBToRGB24
|
||||
|
||||
// Convert ARGB To RGB24.
|
||||
LIBYUV_API
|
||||
int ARGBToRGB24(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_rgb24,
|
||||
int dst_stride_rgb24,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To RAW.
|
||||
LIBYUV_API
|
||||
int ARGBToRAW(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_raw,
|
||||
int dst_stride_raw,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To RGB565.
|
||||
LIBYUV_API
|
||||
int ARGBToRGB565(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_rgb565,
|
||||
int dst_stride_rgb565,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To RGB565 with 4x4 dither matrix (16 bytes).
|
||||
// Values in dither matrix from 0 to 7 recommended.
|
||||
// The order of the dither matrix is first byte is upper left.
|
||||
// TODO(fbarchard): Consider pointer to 2d array for dither4x4.
|
||||
// const uint8_t(*dither)[4][4];
|
||||
LIBYUV_API
|
||||
int ARGBToRGB565Dither(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_rgb565,
|
||||
int dst_stride_rgb565,
|
||||
const uint8_t* dither4x4,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To ARGB1555.
|
||||
LIBYUV_API
|
||||
int ARGBToARGB1555(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_argb1555,
|
||||
int dst_stride_argb1555,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To ARGB4444.
|
||||
LIBYUV_API
|
||||
int ARGBToARGB4444(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_argb4444,
|
||||
int dst_stride_argb4444,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To I444.
|
||||
LIBYUV_API
|
||||
int ARGBToI444(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// RGB to I444 with matrix. See ArgbConstants at the top of this file for usage.
|
||||
LIBYUV_API
|
||||
int ARGBToI444Matrix(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
const struct ArgbConstants* argbconstants,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB to AR64.
|
||||
LIBYUV_API
|
||||
int ARGBToAR64(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint16_t* dst_ar64,
|
||||
int dst_stride_ar64,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ABGR to AB64.
|
||||
#define ABGRToAB64 ARGBToAR64
|
||||
|
||||
// Convert ARGB to AB64.
|
||||
LIBYUV_API
|
||||
int ARGBToAB64(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint16_t* dst_ab64,
|
||||
int dst_stride_ab64,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ABGR to AR64.
|
||||
#define ABGRToAR64 ARGBToAB64
|
||||
|
||||
// Convert ARGB To I422.
|
||||
LIBYUV_API
|
||||
int ARGBToI422(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// RGB to I444 with matrix. See ArgbConstants at the top of this file for usage.
|
||||
LIBYUV_API
|
||||
int ARGBToI422Matrix(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
const struct ArgbConstants* argbconstants,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To I420. (also in convert.h)
|
||||
LIBYUV_API
|
||||
int ARGBToI420(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB to J420. (JPeg full range I420).
|
||||
LIBYUV_API
|
||||
int ARGBToJ420(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
uint8_t* dst_uj,
|
||||
int dst_stride_uj,
|
||||
uint8_t* dst_vj,
|
||||
int dst_stride_vj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB to J422.
|
||||
LIBYUV_API
|
||||
int ARGBToJ422(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
uint8_t* dst_uj,
|
||||
int dst_stride_uj,
|
||||
uint8_t* dst_vj,
|
||||
int dst_stride_vj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB to J444.
|
||||
LIBYUV_API
|
||||
int ARGBToJ444(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
uint8_t* dst_uj,
|
||||
int dst_stride_uj,
|
||||
uint8_t* dst_vj,
|
||||
int dst_stride_vj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB to J400. (JPeg full range).
|
||||
LIBYUV_API
|
||||
int ARGBToJ400(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ABGR to J420. (JPeg full range I420).
|
||||
LIBYUV_API
|
||||
int ABGRToJ420(const uint8_t* src_abgr,
|
||||
int src_stride_abgr,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
uint8_t* dst_uj,
|
||||
int dst_stride_uj,
|
||||
uint8_t* dst_vj,
|
||||
int dst_stride_vj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ABGR to J422.
|
||||
LIBYUV_API
|
||||
int ABGRToJ422(const uint8_t* src_abgr,
|
||||
int src_stride_abgr,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
uint8_t* dst_uj,
|
||||
int dst_stride_uj,
|
||||
uint8_t* dst_vj,
|
||||
int dst_stride_vj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ABGR to J400. (JPeg full range).
|
||||
LIBYUV_API
|
||||
int ABGRToJ400(const uint8_t* src_abgr,
|
||||
int src_stride_abgr,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert RGBA to J400. (JPeg full range).
|
||||
LIBYUV_API
|
||||
int RGBAToJ400(const uint8_t* src_rgba,
|
||||
int src_stride_rgba,
|
||||
uint8_t* dst_yj,
|
||||
int dst_stride_yj,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB to I400.
|
||||
LIBYUV_API
|
||||
int ARGBToI400(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB to G. (Reverse of J400toARGB, which replicates G back to ARGB)
|
||||
LIBYUV_API
|
||||
int ARGBToG(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_g,
|
||||
int dst_stride_g,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To NV12.
|
||||
LIBYUV_API
|
||||
int ARGBToNV12(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// RGB to NV12 with matrix. See ArgbConstants at the top of this file for usage.
|
||||
LIBYUV_API
|
||||
int ARGBToNV12Matrix(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
const struct ArgbConstants* argbconstants,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To NV21.
|
||||
LIBYUV_API
|
||||
int ARGBToNV21(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_vu,
|
||||
int dst_stride_vu,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ABGR To NV12.
|
||||
LIBYUV_API
|
||||
int ABGRToNV12(const uint8_t* src_abgr,
|
||||
int src_stride_abgr,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ABGR To NV21.
|
||||
LIBYUV_API
|
||||
int ABGRToNV21(const uint8_t* src_abgr,
|
||||
int src_stride_abgr,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_vu,
|
||||
int dst_stride_vu,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To YUY2.
|
||||
LIBYUV_API
|
||||
int ARGBToYUY2(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_yuy2,
|
||||
int dst_stride_yuy2,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Convert ARGB To UYVY.
|
||||
LIBYUV_API
|
||||
int ARGBToUYVY(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_uyvy,
|
||||
int dst_stride_uyvy,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// RAW to JNV21 full range NV21
|
||||
LIBYUV_API
|
||||
int RAWToJNV21(const uint8_t* src_raw,
|
||||
int src_stride_raw,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_vu,
|
||||
int dst_stride_vu,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_CONVERT_FROM_ARGB_H_
|
||||
147
3rdparty/libyuv/include/libyuv/cpu_id.h
vendored
Normal file
147
3rdparty/libyuv/include/libyuv/cpu_id.h
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_CPU_ID_H_
|
||||
#define INCLUDE_LIBYUV_CPU_ID_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Internal flag to indicate cpuid requires initialization.
|
||||
static const int kCpuInitialized = 0x1;
|
||||
|
||||
// These flags are only valid on Arm processors.
|
||||
static const int kCpuHasARM = 0x2;
|
||||
static const int kCpuHasNEON = 0x100;
|
||||
static const int kCpuHasNeonDotProd = 0x200;
|
||||
static const int kCpuHasNeonI8MM = 0x400;
|
||||
static const int kCpuHasSVE = 0x800;
|
||||
static const int kCpuHasSVE2 = 0x1000;
|
||||
static const int kCpuHasSME = 0x2000;
|
||||
static const int kCpuHasSME2 = 0x4000;
|
||||
static const int kCpuHasSVEF32MM = 0x8000;
|
||||
|
||||
// These flags are only valid on RISCV processors.
|
||||
static const int kCpuHasRISCV = 0x4;
|
||||
static const int kCpuHasRVV = 0x100;
|
||||
static const int kCpuHasRVVZVFH = 0x200;
|
||||
|
||||
// These flags are only valid on x86 processors.
|
||||
static const int kCpuHasX86 = 0x8;
|
||||
static const int kCpuHasSSE2 = 0x100;
|
||||
static const int kCpuHasSSSE3 = 0x200;
|
||||
static const int kCpuHasSSE41 = 0x400;
|
||||
static const int kCpuHasSSE42 = 0x800;
|
||||
static const int kCpuHasAVX = 0x1000;
|
||||
static const int kCpuHasAVX2 = 0x2000;
|
||||
static const int kCpuHasERMS = 0x4000;
|
||||
static const int kCpuHasFSMR = 0x8000;
|
||||
static const int kCpuHasFMA3 = 0x10000;
|
||||
static const int kCpuHasF16C = 0x20000;
|
||||
static const int kCpuHasAVX512BW = 0x40000;
|
||||
static const int kCpuHasAVX512VL = 0x80000;
|
||||
static const int kCpuHasAVX512VNNI = 0x100000;
|
||||
static const int kCpuHasAVX512VBMI = 0x200000;
|
||||
static const int kCpuHasAVX512VBMI2 = 0x400000;
|
||||
static const int kCpuHasAVX512VBITALG = 0x800000;
|
||||
static const int kCpuHasAVX10 = 0x1000000;
|
||||
static const int kCpuHasAVX10_2 = 0x2000000;
|
||||
static const int kCpuHasAVXVNNI = 0x4000000;
|
||||
static const int kCpuHasAVXVNNIINT8 = 0x8000000;
|
||||
static const int kCpuHasAMXINT8 = 0x10000000;
|
||||
|
||||
// These flags are only valid on LOONGARCH processors.
|
||||
static const int kCpuHasLOONGARCH = 0x20;
|
||||
static const int kCpuHasLSX = 0x100;
|
||||
static const int kCpuHasLASX = 0x200;
|
||||
|
||||
// Optional init function. TestCpuFlag does an auto-init.
|
||||
// Returns cpu_info flags.
|
||||
LIBYUV_API
|
||||
int InitCpuFlags(void);
|
||||
|
||||
// Detect CPU has SSE2 etc.
|
||||
// Test_flag parameter should be one of kCpuHas constants above.
|
||||
// Returns non-zero if instruction set is detected
|
||||
static __inline int TestCpuFlag(int test_flag) {
|
||||
LIBYUV_API extern int cpu_info_;
|
||||
#ifdef __ATOMIC_RELAXED
|
||||
int cpu_info = __atomic_load_n(&cpu_info_, __ATOMIC_RELAXED);
|
||||
#else
|
||||
int cpu_info = cpu_info_;
|
||||
#endif
|
||||
return (!cpu_info ? InitCpuFlags() : cpu_info) & test_flag;
|
||||
}
|
||||
|
||||
// Internal function for parsing /proc/cpuinfo.
|
||||
LIBYUV_API
|
||||
int ArmCpuCaps(const char* cpuinfo_name);
|
||||
LIBYUV_API
|
||||
int RiscvCpuCaps(const char* cpuinfo_name);
|
||||
|
||||
#ifdef __linux__
|
||||
// On Linux, parse AArch64 features from getauxval(AT_HWCAP{,2}).
|
||||
LIBYUV_API
|
||||
int AArch64CpuCaps(unsigned long hwcap, unsigned long hwcap2);
|
||||
#else
|
||||
LIBYUV_API
|
||||
int AArch64CpuCaps();
|
||||
#endif
|
||||
|
||||
// For testing, allow CPU flags to be disabled.
|
||||
// ie MaskCpuFlags(~kCpuHasSSSE3) to disable SSSE3.
|
||||
// MaskCpuFlags(-1) to enable all cpu specific optimizations.
|
||||
// MaskCpuFlags(1) to disable all cpu specific optimizations.
|
||||
// MaskCpuFlags(0) to reset state so next call will auto init.
|
||||
// Returns cpu_info flags.
|
||||
LIBYUV_API
|
||||
int MaskCpuFlags(int enable_flags);
|
||||
|
||||
// Sets the CPU flags to |cpu_flags|, bypassing the detection code. |cpu_flags|
|
||||
// should be a valid combination of the kCpuHas constants above and include
|
||||
// kCpuInitialized. Use this method when running in a sandboxed process where
|
||||
// the detection code might fail (as it might access /proc/cpuinfo). In such
|
||||
// cases the cpu_info can be obtained from a non sandboxed process by calling
|
||||
// InitCpuFlags() and passed to the sandboxed process (via command line
|
||||
// parameters, IPC...) which can then call this method to initialize the CPU
|
||||
// flags.
|
||||
// Notes:
|
||||
// - when specifying 0 for |cpu_flags|, the auto initialization is enabled
|
||||
// again.
|
||||
// - enabling CPU features that are not supported by the CPU will result in
|
||||
// undefined behavior.
|
||||
// TODO(fbarchard): consider writing a helper function that translates from
|
||||
// other library CPU info to libyuv CPU info and add a .md doc that explains
|
||||
// CPU detection.
|
||||
static __inline void SetCpuFlags(int cpu_flags) {
|
||||
LIBYUV_API extern int cpu_info_;
|
||||
#ifdef __ATOMIC_RELAXED
|
||||
__atomic_store_n(&cpu_info_, cpu_flags, __ATOMIC_RELAXED);
|
||||
#else
|
||||
cpu_info_ = cpu_flags;
|
||||
#endif
|
||||
}
|
||||
|
||||
// Low level cpuid for X86. Returns zeros on other CPUs.
|
||||
// eax is the info type that you want.
|
||||
// ecx is typically the cpu number, and should normally be zero.
|
||||
LIBYUV_API
|
||||
void CpuId(int info_eax, int info_ecx, int* cpu_info);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_CPU_ID_H_
|
||||
99
3rdparty/libyuv/include/libyuv/cpu_support.h
vendored
Normal file
99
3rdparty/libyuv/include/libyuv/cpu_support.h
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright 2024 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_CPU_SUPPORT_H_
|
||||
#define INCLUDE_LIBYUV_CPU_SUPPORT_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(__pnacl__) || defined(__CLR_VER) || \
|
||||
(defined(__native_client__) && defined(__x86_64__)) || \
|
||||
(defined(__i386__) && !defined(__SSE__) && !defined(__clang__))
|
||||
#define LIBYUV_DISABLE_X86
|
||||
#endif
|
||||
|
||||
#if defined(__native_client__)
|
||||
#define LIBYUV_DISABLE_NEON
|
||||
#endif
|
||||
|
||||
// MemorySanitizer does not support assembly code yet. http://crbug.com/344505
|
||||
#if defined(__has_feature)
|
||||
#if __has_feature(memory_sanitizer)
|
||||
#if !defined(LIBYUV_DISABLE_NEON)
|
||||
#define LIBYUV_DISABLE_NEON
|
||||
#endif
|
||||
#if !defined(LIBYUV_DISABLE_SME)
|
||||
#define LIBYUV_DISABLE_SME
|
||||
#endif
|
||||
#if !defined(LIBYUV_DISABLE_SVE)
|
||||
#define LIBYUV_DISABLE_SVE
|
||||
#endif
|
||||
#if !defined(LIBYUV_DISABLE_X86)
|
||||
#define LIBYUV_DISABLE_X86
|
||||
#endif
|
||||
#endif // __has_feature(memory_sanitizer)
|
||||
#endif // defined(__has_feature)
|
||||
|
||||
// clang >= 3.5.0 required for Arm64.
|
||||
#if defined(__clang__) && defined(__aarch64__) && !defined(LIBYUV_DISABLE_NEON)
|
||||
#if (__clang_major__ < 3) || (__clang_major__ == 3 && (__clang_minor__ < 5))
|
||||
#define LIBYUV_DISABLE_NEON
|
||||
#endif // clang >= 3.5
|
||||
#endif // __clang__
|
||||
|
||||
// GCC >= 4.7.0 required for AVX2.
|
||||
#if defined(__GNUC__) && !defined(LIBYUV_ENABLE_ROWWIN) && \
|
||||
(defined(__x86_64__) || defined(__i386__))
|
||||
#if (__GNUC__ > 4) || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 7))
|
||||
#define GCC_HAS_AVX2 1
|
||||
#endif // GNUC >= 4.7
|
||||
#endif // __GNUC__
|
||||
|
||||
// clang >= 3.4.0 required for AVX2.
|
||||
#if defined(__clang__) && !defined(LIBYUV_ENABLE_ROWWIN) && \
|
||||
(defined(__x86_64__) || defined(__i386__))
|
||||
#if (__clang_major__ > 3) || (__clang_major__ == 3 && (__clang_minor__ >= 4))
|
||||
#define CLANG_HAS_AVX2 1
|
||||
#endif // clang >= 3.4
|
||||
#endif // __clang__
|
||||
|
||||
// clang >= 6.0.0 required for AVX512.
|
||||
#if defined(__clang__) && !defined(LIBYUV_ENABLE_ROWWIN) && \
|
||||
(defined(__x86_64__) || defined(__i386__))
|
||||
// clang in xcode follows a different versioning scheme.
|
||||
// TODO(fbarchard): fix xcode 9 ios b/789.
|
||||
#if (__clang_major__ >= 7) && !defined(__APPLE__)
|
||||
#define CLANG_HAS_AVX512 1
|
||||
#endif // clang >= 7
|
||||
#endif // __clang__
|
||||
|
||||
// Visual C 2012 required for AVX2.
|
||||
#if defined(_M_IX86) && \
|
||||
(!defined(__clang__) || defined(LIBYUV_ENABLE_ROWWIN)) && \
|
||||
defined(_MSC_VER) && _MSC_VER >= 1700
|
||||
#define VISUALC_HAS_AVX2 1
|
||||
#endif // VisualStudio >= 2012
|
||||
|
||||
// Clang 19 required for SME due to needing __arm_tpidr2_save from compiler-rt,
|
||||
// only enabled on Linux and Android (both define __linux__) for now.
|
||||
#if !defined(LIBYUV_DISABLE_SME) && defined(__aarch64__) && \
|
||||
defined(__linux__) && defined(__clang__) && (__clang_major__ >= 19)
|
||||
#define CLANG_HAS_SME 1
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_CPU_SUPPORT_H_
|
||||
1949
3rdparty/libyuv/include/libyuv/loongson_intrinsics.h
vendored
Normal file
1949
3rdparty/libyuv/include/libyuv/loongson_intrinsics.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
195
3rdparty/libyuv/include/libyuv/mjpeg_decoder.h
vendored
Normal file
195
3rdparty/libyuv/include/libyuv/mjpeg_decoder.h
vendored
Normal file
@@ -0,0 +1,195 @@
|
||||
/*
|
||||
* Copyright 2012 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_MJPEG_DECODER_H_
|
||||
#define INCLUDE_LIBYUV_MJPEG_DECODER_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
// NOTE: For a simplified public API use convert.h MJPGToI420().
|
||||
|
||||
struct jpeg_common_struct;
|
||||
struct jpeg_decompress_struct;
|
||||
struct jpeg_source_mgr;
|
||||
|
||||
namespace libyuv {
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
LIBYUV_BOOL ValidateJpeg(const uint8_t* sample, size_t sample_size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
static const uint32_t kUnknownDataSize = 0xFFFFFFFF;
|
||||
|
||||
enum JpegSubsamplingType {
|
||||
kJpegYuv420,
|
||||
kJpegYuv422,
|
||||
kJpegYuv444,
|
||||
kJpegYuv400,
|
||||
kJpegUnknown
|
||||
};
|
||||
|
||||
struct Buffer {
|
||||
const uint8_t* data;
|
||||
int len;
|
||||
};
|
||||
|
||||
struct BufferVector {
|
||||
Buffer* buffers;
|
||||
int len;
|
||||
int pos;
|
||||
};
|
||||
|
||||
struct SetJmpErrorMgr;
|
||||
|
||||
// MJPEG ("Motion JPEG") is a pseudo-standard video codec where the frames are
|
||||
// simply independent JPEG images with a fixed huffman table (which is omitted).
|
||||
// It is rarely used in video transmission, but is common as a camera capture
|
||||
// format, especially in Logitech devices. This class implements a decoder for
|
||||
// MJPEG frames.
|
||||
//
|
||||
// See http://tools.ietf.org/html/rfc2435
|
||||
class LIBYUV_API MJpegDecoder {
|
||||
public:
|
||||
typedef void (*CallbackFunction)(void* opaque,
|
||||
const uint8_t* const* data,
|
||||
const int* strides,
|
||||
int rows);
|
||||
|
||||
static const int kColorSpaceUnknown;
|
||||
static const int kColorSpaceGrayscale;
|
||||
static const int kColorSpaceRgb;
|
||||
static const int kColorSpaceYCbCr;
|
||||
static const int kColorSpaceCMYK;
|
||||
static const int kColorSpaceYCCK;
|
||||
|
||||
MJpegDecoder();
|
||||
~MJpegDecoder();
|
||||
|
||||
// Loads a new frame, reads its headers, and determines the uncompressed
|
||||
// image format.
|
||||
// Returns LIBYUV_TRUE if image looks valid and format is supported.
|
||||
// If return value is LIBYUV_TRUE, then the values for all the following
|
||||
// getters are populated.
|
||||
// src_len is the size of the compressed mjpeg frame in bytes.
|
||||
LIBYUV_BOOL LoadFrame(const uint8_t* src, size_t src_len);
|
||||
|
||||
// Returns width of the last loaded frame in pixels.
|
||||
int GetWidth();
|
||||
|
||||
// Returns height of the last loaded frame in pixels.
|
||||
int GetHeight();
|
||||
|
||||
// Returns format of the last loaded frame. The return value is one of the
|
||||
// kColorSpace* constants.
|
||||
int GetColorSpace();
|
||||
|
||||
// Number of color components in the color space.
|
||||
int GetNumComponents();
|
||||
|
||||
// Sample factors of the n-th component.
|
||||
int GetHorizSampFactor(int component);
|
||||
|
||||
int GetVertSampFactor(int component);
|
||||
|
||||
int GetHorizSubSampFactor(int component);
|
||||
|
||||
int GetVertSubSampFactor(int component);
|
||||
|
||||
// Public for testability.
|
||||
int GetImageScanlinesPerImcuRow();
|
||||
|
||||
// Public for testability.
|
||||
int GetComponentScanlinesPerImcuRow(int component);
|
||||
|
||||
// Width of a component in bytes.
|
||||
int GetComponentWidth(int component);
|
||||
|
||||
// Height of a component.
|
||||
int GetComponentHeight(int component);
|
||||
|
||||
// Width of a component in bytes with padding for DCTSIZE. Public for testing.
|
||||
int GetComponentStride(int component);
|
||||
|
||||
// Size of a component in bytes.
|
||||
int GetComponentSize(int component);
|
||||
|
||||
// Call this after LoadFrame() if you decide you don't want to decode it
|
||||
// after all.
|
||||
LIBYUV_BOOL UnloadFrame();
|
||||
|
||||
// Decodes the entire image into a one-buffer-per-color-component format.
|
||||
// dst_width must match exactly. dst_height must be <= to image height; if
|
||||
// less, the image is cropped. "planes" must have size equal to at least
|
||||
// GetNumComponents() and they must point to non-overlapping buffers of size
|
||||
// at least GetComponentSize(i). The pointers in planes are incremented
|
||||
// to point to after the end of the written data.
|
||||
// TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded.
|
||||
LIBYUV_BOOL DecodeToBuffers(uint8_t** planes, int dst_width, int dst_height);
|
||||
|
||||
// Decodes the entire image and passes the data via repeated calls to a
|
||||
// callback function. Each call will get the data for a whole number of
|
||||
// image scanlines.
|
||||
// TODO(fbarchard): Add dst_x, dst_y to allow specific rect to be decoded.
|
||||
LIBYUV_BOOL DecodeToCallback(CallbackFunction fn,
|
||||
void* opaque,
|
||||
int dst_width,
|
||||
int dst_height);
|
||||
|
||||
// The helper function which recognizes the jpeg sub-sampling type.
|
||||
static JpegSubsamplingType JpegSubsamplingTypeHelper(
|
||||
int* subsample_x,
|
||||
int* subsample_y,
|
||||
int number_of_components);
|
||||
|
||||
private:
|
||||
void AllocOutputBuffers(int num_outbufs);
|
||||
void DestroyOutputBuffers();
|
||||
|
||||
LIBYUV_BOOL StartDecode();
|
||||
LIBYUV_BOOL FinishDecode();
|
||||
|
||||
void SetScanlinePointers(uint8_t** data);
|
||||
LIBYUV_BOOL DecodeImcuRow();
|
||||
|
||||
int GetComponentScanlinePadding(int component);
|
||||
|
||||
// A buffer holding the input data for a frame.
|
||||
Buffer buf_;
|
||||
BufferVector buf_vec_;
|
||||
|
||||
jpeg_decompress_struct* decompress_struct_;
|
||||
jpeg_source_mgr* source_mgr_;
|
||||
SetJmpErrorMgr* error_mgr_;
|
||||
|
||||
// LIBYUV_TRUE iff at least one component has scanline padding. (i.e.,
|
||||
// GetComponentScanlinePadding() != 0.)
|
||||
LIBYUV_BOOL has_scanline_padding_;
|
||||
|
||||
// Temporaries used to point to scanline outputs.
|
||||
int num_outbufs_; // Outermost size of all arrays below.
|
||||
uint8_t*** scanlines_;
|
||||
int* scanlines_sizes_;
|
||||
// Temporary buffer used for decoding when we can't decode directly to the
|
||||
// output buffers. Large enough for just one iMCU row.
|
||||
uint8_t** databuf_;
|
||||
int* databuf_strides_;
|
||||
};
|
||||
|
||||
} // namespace libyuv
|
||||
|
||||
#endif // __cplusplus
|
||||
#endif // INCLUDE_LIBYUV_MJPEG_DECODER_H_
|
||||
1134
3rdparty/libyuv/include/libyuv/planar_functions.h
vendored
Normal file
1134
3rdparty/libyuv/include/libyuv/planar_functions.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
296
3rdparty/libyuv/include/libyuv/rotate.h
vendored
Normal file
296
3rdparty/libyuv/include/libyuv/rotate.h
vendored
Normal file
@@ -0,0 +1,296 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_ROTATE_H_
|
||||
#define INCLUDE_LIBYUV_ROTATE_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Supported rotation.
|
||||
typedef enum RotationMode {
|
||||
kRotate0 = 0, // No rotation.
|
||||
kRotate90 = 90, // Rotate 90 degrees clockwise.
|
||||
kRotate180 = 180, // Rotate 180 degrees.
|
||||
kRotate270 = 270, // Rotate 270 degrees clockwise.
|
||||
|
||||
// Deprecated.
|
||||
kRotateNone = 0,
|
||||
kRotateClockwise = 90,
|
||||
kRotateCounterClockwise = 270,
|
||||
} RotationModeEnum;
|
||||
|
||||
// Rotate I420 frame.
|
||||
LIBYUV_API
|
||||
int I420Rotate(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotate I422 frame.
|
||||
LIBYUV_API
|
||||
int I422Rotate(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotate I444 frame.
|
||||
LIBYUV_API
|
||||
int I444Rotate(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotate I010 frame.
|
||||
LIBYUV_API
|
||||
int I010Rotate(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotate I210 frame.
|
||||
LIBYUV_API
|
||||
int I210Rotate(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotate I410 frame.
|
||||
LIBYUV_API
|
||||
int I410Rotate(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotate NV12 input and store in I420.
|
||||
LIBYUV_API
|
||||
int NV12ToI420Rotate(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_uv,
|
||||
int src_stride_uv,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Convert Android420 to I420 with rotation.
|
||||
// "rotation" can be 0, 90, 180 or 270.
|
||||
LIBYUV_API
|
||||
int Android420ToI420Rotate(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_pixel_stride_uv,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode rotation);
|
||||
|
||||
// Rotate a plane by 0, 90, 180, or 270.
|
||||
LIBYUV_API
|
||||
int RotatePlane(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotate planes by 90, 180, 270. Deprecated.
|
||||
LIBYUV_API
|
||||
void RotatePlane90(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
void RotatePlane180(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
void RotatePlane270(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// Rotate a plane by 0, 90, 180, or 270.
|
||||
LIBYUV_API
|
||||
int RotatePlane_16(const uint16_t* src,
|
||||
int src_stride,
|
||||
uint16_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
// Rotations for when U and V are interleaved.
|
||||
// These functions take one UV input pointer and
|
||||
// split the data into two buffers while
|
||||
// rotating them.
|
||||
// width and height expected to be half size for NV12.
|
||||
LIBYUV_API
|
||||
int SplitRotateUV(const uint8_t* src_uv,
|
||||
int src_stride_uv,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int width,
|
||||
int height,
|
||||
enum RotationMode mode);
|
||||
|
||||
LIBYUV_API
|
||||
void SplitRotateUV90(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
void SplitRotateUV180(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
void SplitRotateUV270(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
// The 90 and 270 functions are based on transposes.
|
||||
// Doing a transpose with reversing the read/write
|
||||
// order will result in a rotation by +- 90 degrees.
|
||||
// Deprecated.
|
||||
LIBYUV_API
|
||||
void TransposePlane(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
LIBYUV_API
|
||||
void SplitTransposeUV(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_ROTATE_H_
|
||||
37
3rdparty/libyuv/include/libyuv/rotate_argb.h
vendored
Normal file
37
3rdparty/libyuv/include/libyuv/rotate_argb.h
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
* Copyright 2012 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_ROTATE_ARGB_H_
|
||||
#define INCLUDE_LIBYUV_ROTATE_ARGB_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/rotate.h" // For RotationMode.
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Rotate ARGB frame
|
||||
LIBYUV_API
|
||||
int ARGBRotate(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
uint8_t* dst_argb,
|
||||
int dst_stride_argb,
|
||||
int src_width,
|
||||
int src_height,
|
||||
enum RotationMode mode);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_ROTATE_ARGB_H_
|
||||
265
3rdparty/libyuv/include/libyuv/rotate_row.h
vendored
Normal file
265
3rdparty/libyuv/include/libyuv/rotate_row.h
vendored
Normal file
@@ -0,0 +1,265 @@
|
||||
/*
|
||||
* Copyright 2013 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_ROTATE_ROW_H_
|
||||
#define INCLUDE_LIBYUV_ROTATE_ROW_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/cpu_support.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// The following are available for Visual C 32 bit:
|
||||
// TODO - port to clangcl on rotate_win
|
||||
#if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && defined(_MSC_VER) && \
|
||||
!defined(__clang__)
|
||||
#define HAS_TRANSPOSEWX8_SSSE3
|
||||
#define HAS_TRANSPOSEUVWX8_SSE2
|
||||
#endif
|
||||
|
||||
// The following are available for GCC 32 or 64 bit:
|
||||
#if !defined(LIBYUV_DISABLE_X86) && \
|
||||
(defined(__i386__) || defined(__x86_64__)) && \
|
||||
!defined(LIBYUV_ENABLE_ROWWIN)
|
||||
#define HAS_TRANSPOSEWX8_SSSE3
|
||||
#define HAS_TRANSPOSE4X4_32_SSE2
|
||||
#define HAS_TRANSPOSE4X4_32_AVX2
|
||||
#endif
|
||||
|
||||
// The following are available for 64 bit GCC:
|
||||
#if !defined(LIBYUV_DISABLE_X86) && defined(__x86_64__) && \
|
||||
!defined(LIBYUV_ENABLE_ROWWIN)
|
||||
#define HAS_TRANSPOSEWX8_FAST_SSSE3
|
||||
#define HAS_TRANSPOSEUVWX8_SSE2
|
||||
#endif
|
||||
|
||||
#if !defined(LIBYUV_DISABLE_NEON) && \
|
||||
(defined(__ARM_NEON__) || defined(LIBYUV_NEON) || defined(__aarch64__))
|
||||
#if defined(__aarch64__)
|
||||
#define HAS_TRANSPOSEWX16_NEON
|
||||
#else
|
||||
#define HAS_TRANSPOSEWX8_NEON
|
||||
#endif
|
||||
#define HAS_TRANSPOSEUVWX8_NEON
|
||||
#define HAS_TRANSPOSE4X4_32_NEON
|
||||
#endif
|
||||
|
||||
#if !defined(LIBYUV_DISABLE_SME) && defined(CLANG_HAS_SME) && \
|
||||
defined(__aarch64__)
|
||||
#define HAS_TRANSPOSEWXH_SME
|
||||
#define HAS_TRANSPOSEUVWXH_SME
|
||||
#endif
|
||||
|
||||
#if !defined(LIBYUV_DISABLE_LSX) && defined(__loongarch_sx)
|
||||
#define HAS_TRANSPOSEWX16_LSX
|
||||
#define HAS_TRANSPOSEUVWX16_LSX
|
||||
#endif
|
||||
|
||||
void TransposeWxH_C(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
void TransposeWx8_C(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx16_C(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx8_NEON(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx16_NEON(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWxH_SME(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height);
|
||||
void TransposeWx8_SSSE3(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx8_Fast_SSSE3(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx16_LSX(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
|
||||
void TransposeWx8_Any_NEON(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx16_Any_NEON(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx8_Any_SSSE3(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx8_Fast_Any_SSSE3(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx16_Any_LSX(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
|
||||
void TransposeUVWxH_C(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
void TransposeUVWx8_C(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
void TransposeUVWx16_C(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
void TransposeUVWx8_SSE2(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
void TransposeUVWx8_NEON(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
void TransposeUVWxH_SME(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width,
|
||||
int height);
|
||||
void TransposeUVWx16_LSX(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
|
||||
void TransposeUVWx8_Any_SSE2(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
void TransposeUVWx8_Any_NEON(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
void TransposeUVWx16_Any_LSX(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst_a,
|
||||
int dst_stride_a,
|
||||
uint8_t* dst_b,
|
||||
int dst_stride_b,
|
||||
int width);
|
||||
void TransposeWxH_16_C(const uint16_t* src,
|
||||
int src_stride,
|
||||
uint16_t* dst,
|
||||
int dst_stride,
|
||||
int width,
|
||||
int height);
|
||||
|
||||
void TransposeWx8_16_C(const uint16_t* src,
|
||||
int src_stride,
|
||||
uint16_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
void TransposeWx1_16_C(const uint16_t* src,
|
||||
int src_stride,
|
||||
uint16_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
|
||||
// Transpose 32 bit values (ARGB)
|
||||
void Transpose4x4_32_NEON(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
|
||||
void Transpose4x4_32_SSE2(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
|
||||
void Transpose4x4_32_AVX2(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
|
||||
void Transpose4x4_32_C(const uint8_t* src,
|
||||
int src_stride,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int width);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_ROTATE_ROW_H_
|
||||
7015
3rdparty/libyuv/include/libyuv/row.h
vendored
Normal file
7015
3rdparty/libyuv/include/libyuv/row.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2154
3rdparty/libyuv/include/libyuv/row_sve.h
vendored
Normal file
2154
3rdparty/libyuv/include/libyuv/row_sve.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
336
3rdparty/libyuv/include/libyuv/scale.h
vendored
Normal file
336
3rdparty/libyuv/include/libyuv/scale.h
vendored
Normal file
@@ -0,0 +1,336 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_SCALE_H_
|
||||
#define INCLUDE_LIBYUV_SCALE_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Supported filtering.
|
||||
typedef enum FilterMode {
|
||||
kFilterNone = 0, // Point sample; Fastest.
|
||||
kFilterLinear = 1, // Filter horizontally only.
|
||||
kFilterBilinear = 2, // Faster than box, but lower quality scaling down.
|
||||
kFilterBox = 3 // Highest quality.
|
||||
} FilterModeEnum;
|
||||
|
||||
// Scale a YUV plane.
|
||||
// Returns 0 if successful.
|
||||
LIBYUV_API
|
||||
int ScalePlane(const uint8_t* src,
|
||||
int src_stride,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst,
|
||||
int dst_stride,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int ScalePlane_16(const uint16_t* src,
|
||||
int src_stride,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst,
|
||||
int dst_stride,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Sample is expected to be in the low 12 bits.
|
||||
LIBYUV_API
|
||||
int ScalePlane_12(const uint16_t* src,
|
||||
int src_stride,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst,
|
||||
int dst_stride,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Scales a YUV 4:2:0 image from the src width and height to the
|
||||
// dst width and height.
|
||||
// If filtering is kFilterNone, a simple nearest-neighbor algorithm is
|
||||
// used. This produces basic (blocky) quality at the fastest speed.
|
||||
// If filtering is kFilterBilinear, interpolation is used to produce a better
|
||||
// quality image, at the expense of speed.
|
||||
// If filtering is kFilterBox, averaging is used to produce ever better
|
||||
// quality image, at further expense of speed.
|
||||
// Returns 0 if successful.
|
||||
|
||||
LIBYUV_API
|
||||
int I420Scale(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int I420Scale_16(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int I420Scale_12(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Scales a YUV 4:4:4 image from the src width and height to the
|
||||
// dst width and height.
|
||||
// If filtering is kFilterNone, a simple nearest-neighbor algorithm is
|
||||
// used. This produces basic (blocky) quality at the fastest speed.
|
||||
// If filtering is kFilterBilinear, interpolation is used to produce a better
|
||||
// quality image, at the expense of speed.
|
||||
// If filtering is kFilterBox, averaging is used to produce ever better
|
||||
// quality image, at further expense of speed.
|
||||
// Returns 0 if successful.
|
||||
|
||||
LIBYUV_API
|
||||
int I444Scale(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int I444Scale_16(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int I444Scale_12(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Scales a YUV 4:2:2 image from the src width and height to the
|
||||
// dst width and height.
|
||||
// If filtering is kFilterNone, a simple nearest-neighbor algorithm is
|
||||
// used. This produces basic (blocky) quality at the fastest speed.
|
||||
// If filtering is kFilterBilinear, interpolation is used to produce a better
|
||||
// quality image, at the expense of speed.
|
||||
// If filtering is kFilterBox, averaging is used to produce ever better
|
||||
// quality image, at further expense of speed.
|
||||
// Returns 0 if successful.
|
||||
LIBYUV_API
|
||||
int I422Scale(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int I422Scale_16(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int I422Scale_12(const uint16_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint16_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint16_t* src_v,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint16_t* dst_u,
|
||||
int dst_stride_u,
|
||||
uint16_t* dst_v,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Scales an NV12 image from the src width and height to the
|
||||
// dst width and height.
|
||||
// If filtering is kFilterNone, a simple nearest-neighbor algorithm is
|
||||
// used. This produces basic (blocky) quality at the fastest speed.
|
||||
// If filtering is kFilterBilinear, interpolation is used to produce a better
|
||||
// quality image, at the expense of speed.
|
||||
// kFilterBox is not supported for the UV channel and will be treated as
|
||||
// bilinear.
|
||||
// Returns 0 if successful.
|
||||
|
||||
LIBYUV_API
|
||||
int NV12Scale(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_uv,
|
||||
int src_stride_uv,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
LIBYUV_API
|
||||
int NV24Scale(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_uv,
|
||||
int src_stride_uv,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_y,
|
||||
int dst_stride_y,
|
||||
uint8_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
#ifdef __cplusplus
|
||||
// Legacy API. Deprecated.
|
||||
LIBYUV_API
|
||||
int Scale(const uint8_t* src_y,
|
||||
const uint8_t* src_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_y,
|
||||
int src_stride_u,
|
||||
int src_stride_v,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_y,
|
||||
uint8_t* dst_u,
|
||||
uint8_t* dst_v,
|
||||
int dst_stride_y,
|
||||
int dst_stride_u,
|
||||
int dst_stride_v,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
LIBYUV_BOOL interpolate);
|
||||
|
||||
// For testing, allow disabling of specialized scalers.
|
||||
LIBYUV_API
|
||||
void SetUseReferenceImpl(LIBYUV_BOOL use);
|
||||
#endif // __cplusplus
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_SCALE_H_
|
||||
76
3rdparty/libyuv/include/libyuv/scale_argb.h
vendored
Normal file
76
3rdparty/libyuv/include/libyuv/scale_argb.h
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright 2012 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_SCALE_ARGB_H_
|
||||
#define INCLUDE_LIBYUV_SCALE_ARGB_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/scale.h" // For FilterMode
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
LIBYUV_API
|
||||
int ARGBScale(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_argb,
|
||||
int dst_stride_argb,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Clipped scale takes destination rectangle coordinates for clip values.
|
||||
LIBYUV_API
|
||||
int ARGBScaleClip(const uint8_t* src_argb,
|
||||
int src_stride_argb,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_argb,
|
||||
int dst_stride_argb,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
int clip_x,
|
||||
int clip_y,
|
||||
int clip_width,
|
||||
int clip_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Scale with YUV conversion to ARGB and clipping.
|
||||
LIBYUV_API
|
||||
int YUVToARGBScaleClip(const uint8_t* src_y,
|
||||
int src_stride_y,
|
||||
const uint8_t* src_u,
|
||||
int src_stride_u,
|
||||
const uint8_t* src_v,
|
||||
int src_stride_v,
|
||||
uint32_t src_fourcc,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_argb,
|
||||
int dst_stride_argb,
|
||||
uint32_t dst_fourcc,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
int clip_x,
|
||||
int clip_y,
|
||||
int clip_width,
|
||||
int clip_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_SCALE_ARGB_H_
|
||||
42
3rdparty/libyuv/include/libyuv/scale_rgb.h
vendored
Normal file
42
3rdparty/libyuv/include/libyuv/scale_rgb.h
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright 2022 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_SCALE_RGB_H_
|
||||
#define INCLUDE_LIBYUV_SCALE_RGB_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/scale.h" // For FilterMode
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// RGB can be RAW, RGB24 or YUV24
|
||||
// RGB scales 24 bit images by converting a row at a time to ARGB
|
||||
// and using ARGB row functions to scale, then convert to RGB.
|
||||
// TODO(fbarchard): Allow input/output formats to be specified.
|
||||
LIBYUV_API
|
||||
int RGBScale(const uint8_t* src_rgb,
|
||||
int src_stride_rgb,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_rgb,
|
||||
int dst_stride_rgb,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_SCALE_UV_H_
|
||||
1752
3rdparty/libyuv/include/libyuv/scale_row.h
vendored
Normal file
1752
3rdparty/libyuv/include/libyuv/scale_row.h
vendored
Normal file
File diff suppressed because it is too large
Load Diff
51
3rdparty/libyuv/include/libyuv/scale_uv.h
vendored
Normal file
51
3rdparty/libyuv/include/libyuv/scale_uv.h
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
/*
|
||||
* Copyright 2020 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_SCALE_UV_H_
|
||||
#define INCLUDE_LIBYUV_SCALE_UV_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
#include "libyuv/scale.h" // For FilterMode
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
LIBYUV_API
|
||||
int UVScale(const uint8_t* src_uv,
|
||||
int src_stride_uv,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint8_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
// Scale a 16 bit UV image.
|
||||
// This function is currently incomplete, it can't handle all cases.
|
||||
LIBYUV_API
|
||||
int UVScale_16(const uint16_t* src_uv,
|
||||
int src_stride_uv,
|
||||
int src_width,
|
||||
int src_height,
|
||||
uint16_t* dst_uv,
|
||||
int dst_stride_uv,
|
||||
int dst_width,
|
||||
int dst_height,
|
||||
enum FilterMode filtering);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_SCALE_UV_H_
|
||||
16
3rdparty/libyuv/include/libyuv/version.h
vendored
Normal file
16
3rdparty/libyuv/include/libyuv/version.h
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright 2012 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_VERSION_H_
|
||||
#define INCLUDE_LIBYUV_VERSION_H_
|
||||
|
||||
#define LIBYUV_VERSION 1929
|
||||
|
||||
#endif // INCLUDE_LIBYUV_VERSION_H_
|
||||
222
3rdparty/libyuv/include/libyuv/video_common.h
vendored
Normal file
222
3rdparty/libyuv/include/libyuv/video_common.h
vendored
Normal file
@@ -0,0 +1,222 @@
|
||||
/*
|
||||
* Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
// Common definitions for video, including fourcc and VideoFormat.
|
||||
|
||||
#ifndef INCLUDE_LIBYUV_VIDEO_COMMON_H_
|
||||
#define INCLUDE_LIBYUV_VIDEO_COMMON_H_
|
||||
|
||||
#include "libyuv/basic_types.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
namespace libyuv {
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
// Definition of FourCC codes
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Convert four characters to a FourCC code.
|
||||
// Needs to be a macro otherwise the OS X compiler complains when the kFormat*
|
||||
// constants are used in a switch.
|
||||
#ifdef __cplusplus
|
||||
#define FOURCC(a, b, c, d) \
|
||||
((static_cast<uint32_t>(a)) | (static_cast<uint32_t>(b) << 8) | \
|
||||
(static_cast<uint32_t>(c) << 16) | /* NOLINT */ \
|
||||
(static_cast<uint32_t>(d) << 24)) /* NOLINT */
|
||||
#else
|
||||
#define FOURCC(a, b, c, d) \
|
||||
(((uint32_t)(a)) | ((uint32_t)(b) << 8) | /* NOLINT */ \
|
||||
((uint32_t)(c) << 16) | ((uint32_t)(d) << 24)) /* NOLINT */
|
||||
#endif
|
||||
|
||||
// Some pages discussing FourCC codes:
|
||||
// http://www.fourcc.org/yuv.php
|
||||
// http://v4l2spec.bytesex.org/spec/book1.htm
|
||||
// http://developer.apple.com/quicktime/icefloe/dispatch020.html
|
||||
// http://msdn.microsoft.com/library/windows/desktop/dd206750.aspx#nv12
|
||||
// http://people.xiph.org/~xiphmont/containers/nut/nut4cc.txt
|
||||
|
||||
// FourCC codes grouped according to implementation efficiency.
|
||||
// Primary formats should convert in 1 efficient step.
|
||||
// Secondary formats are converted in 2 steps.
|
||||
// Auxilliary formats call primary converters.
|
||||
enum FourCC {
|
||||
// 10 Primary YUV formats: 5 planar, 2 biplanar, 2 packed.
|
||||
FOURCC_I420 = FOURCC('I', '4', '2', '0'),
|
||||
FOURCC_I422 = FOURCC('I', '4', '2', '2'),
|
||||
FOURCC_I444 = FOURCC('I', '4', '4', '4'),
|
||||
FOURCC_I400 = FOURCC('I', '4', '0', '0'),
|
||||
FOURCC_NV21 = FOURCC('N', 'V', '2', '1'),
|
||||
FOURCC_NV12 = FOURCC('N', 'V', '1', '2'),
|
||||
FOURCC_YUY2 = FOURCC('Y', 'U', 'Y', '2'),
|
||||
FOURCC_UYVY = FOURCC('U', 'Y', 'V', 'Y'),
|
||||
FOURCC_I010 = FOURCC('I', '0', '1', '0'), // bt.601 10 bit 420
|
||||
FOURCC_I210 = FOURCC('I', '2', '1', '0'), // bt.601 10 bit 422
|
||||
|
||||
// 1 Secondary YUV format: row biplanar. deprecated.
|
||||
FOURCC_M420 = FOURCC('M', '4', '2', '0'),
|
||||
|
||||
// 13 Primary RGB formats: 4 32 bpp, 2 24 bpp, 3 16 bpp, 1 10 bpc 2 64 bpp
|
||||
FOURCC_ARGB = FOURCC('A', 'R', 'G', 'B'),
|
||||
FOURCC_BGRA = FOURCC('B', 'G', 'R', 'A'),
|
||||
FOURCC_ABGR = FOURCC('A', 'B', 'G', 'R'),
|
||||
FOURCC_AR30 = FOURCC('A', 'R', '3', '0'), // 10 bit per channel. 2101010.
|
||||
FOURCC_AB30 = FOURCC('A', 'B', '3', '0'), // ABGR version of 10 bit
|
||||
FOURCC_AR64 = FOURCC('A', 'R', '6', '4'), // 16 bit per channel.
|
||||
FOURCC_AB64 = FOURCC('A', 'B', '6', '4'), // ABGR version of 16 bit
|
||||
FOURCC_24BG = FOURCC('2', '4', 'B', 'G'),
|
||||
FOURCC_RAW = FOURCC('r', 'a', 'w', ' '),
|
||||
FOURCC_RGBA = FOURCC('R', 'G', 'B', 'A'),
|
||||
FOURCC_RGBP = FOURCC('R', 'G', 'B', 'P'), // rgb565 LE.
|
||||
FOURCC_RGBO = FOURCC('R', 'G', 'B', 'O'), // argb1555 LE.
|
||||
FOURCC_R444 = FOURCC('R', '4', '4', '4'), // argb4444 LE.
|
||||
|
||||
// 1 Primary Compressed YUV format.
|
||||
FOURCC_MJPG = FOURCC('M', 'J', 'P', 'G'),
|
||||
|
||||
// 14 Auxiliary YUV variations: 3 with U and V planes are swapped, 1 Alias.
|
||||
FOURCC_YV12 = FOURCC('Y', 'V', '1', '2'),
|
||||
FOURCC_YV16 = FOURCC('Y', 'V', '1', '6'),
|
||||
FOURCC_YV24 = FOURCC('Y', 'V', '2', '4'),
|
||||
FOURCC_YU12 = FOURCC('Y', 'U', '1', '2'), // Linux version of I420.
|
||||
FOURCC_J420 =
|
||||
FOURCC('J', '4', '2', '0'), // jpeg (bt.601 full), unofficial fourcc
|
||||
FOURCC_J422 =
|
||||
FOURCC('J', '4', '2', '2'), // jpeg (bt.601 full), unofficial fourcc
|
||||
FOURCC_J444 =
|
||||
FOURCC('J', '4', '4', '4'), // jpeg (bt.601 full), unofficial fourcc
|
||||
FOURCC_J400 =
|
||||
FOURCC('J', '4', '0', '0'), // jpeg (bt.601 full), unofficial fourcc
|
||||
FOURCC_F420 = FOURCC('F', '4', '2', '0'), // bt.709 full, unofficial fourcc
|
||||
FOURCC_F422 = FOURCC('F', '4', '2', '2'), // bt.709 full, unofficial fourcc
|
||||
FOURCC_F444 = FOURCC('F', '4', '4', '4'), // bt.709 full, unofficial fourcc
|
||||
FOURCC_H420 = FOURCC('H', '4', '2', '0'), // bt.709, unofficial fourcc
|
||||
FOURCC_H422 = FOURCC('H', '4', '2', '2'), // bt.709, unofficial fourcc
|
||||
FOURCC_H444 = FOURCC('H', '4', '4', '4'), // bt.709, unofficial fourcc
|
||||
FOURCC_U420 = FOURCC('U', '4', '2', '0'), // bt.2020, unofficial fourcc
|
||||
FOURCC_U422 = FOURCC('U', '4', '2', '2'), // bt.2020, unofficial fourcc
|
||||
FOURCC_U444 = FOURCC('U', '4', '4', '4'), // bt.2020, unofficial fourcc
|
||||
FOURCC_F010 = FOURCC('F', '0', '1', '0'), // bt.709 full range 10 bit 420
|
||||
FOURCC_H010 = FOURCC('H', '0', '1', '0'), // bt.709 10 bit 420
|
||||
FOURCC_U010 = FOURCC('U', '0', '1', '0'), // bt.2020 10 bit 420
|
||||
FOURCC_F210 = FOURCC('F', '2', '1', '0'), // bt.709 full range 10 bit 422
|
||||
FOURCC_H210 = FOURCC('H', '2', '1', '0'), // bt.709 10 bit 422
|
||||
FOURCC_U210 = FOURCC('U', '2', '1', '0'), // bt.2020 10 bit 422
|
||||
FOURCC_P010 = FOURCC('P', '0', '1', '0'),
|
||||
FOURCC_P210 = FOURCC('P', '2', '1', '0'),
|
||||
|
||||
// 14 Auxiliary aliases. CanonicalFourCC() maps these to canonical fourcc.
|
||||
FOURCC_IYUV = FOURCC('I', 'Y', 'U', 'V'), // Alias for I420.
|
||||
FOURCC_YU16 = FOURCC('Y', 'U', '1', '6'), // Alias for I422.
|
||||
FOURCC_YU24 = FOURCC('Y', 'U', '2', '4'), // Alias for I444.
|
||||
FOURCC_YUYV = FOURCC('Y', 'U', 'Y', 'V'), // Alias for YUY2.
|
||||
FOURCC_YUVS = FOURCC('y', 'u', 'v', 's'), // Alias for YUY2 on Mac.
|
||||
FOURCC_HDYC = FOURCC('H', 'D', 'Y', 'C'), // Alias for UYVY.
|
||||
FOURCC_2VUY = FOURCC('2', 'v', 'u', 'y'), // Alias for UYVY on Mac.
|
||||
FOURCC_JPEG = FOURCC('J', 'P', 'E', 'G'), // Alias for MJPG.
|
||||
FOURCC_DMB1 = FOURCC('d', 'm', 'b', '1'), // Alias for MJPG on Mac.
|
||||
FOURCC_BA81 = FOURCC('B', 'A', '8', '1'), // Alias for BGGR.
|
||||
FOURCC_RGB3 = FOURCC('R', 'G', 'B', '3'), // Alias for RAW.
|
||||
FOURCC_BGR3 = FOURCC('B', 'G', 'R', '3'), // Alias for 24BG.
|
||||
FOURCC_CM32 = FOURCC(0, 0, 0, 32), // Alias for BGRA kCMPixelFormat_32ARGB
|
||||
FOURCC_CM24 = FOURCC(0, 0, 0, 24), // Alias for RAW kCMPixelFormat_24RGB
|
||||
FOURCC_L555 = FOURCC('L', '5', '5', '5'), // Alias for RGBO.
|
||||
FOURCC_L565 = FOURCC('L', '5', '6', '5'), // Alias for RGBP.
|
||||
FOURCC_5551 = FOURCC('5', '5', '5', '1'), // Alias for RGBO.
|
||||
|
||||
// deprecated formats. Not supported, but defined for backward compatibility.
|
||||
FOURCC_I411 = FOURCC('I', '4', '1', '1'),
|
||||
FOURCC_Q420 = FOURCC('Q', '4', '2', '0'),
|
||||
FOURCC_RGGB = FOURCC('R', 'G', 'G', 'B'),
|
||||
FOURCC_BGGR = FOURCC('B', 'G', 'G', 'R'),
|
||||
FOURCC_GRBG = FOURCC('G', 'R', 'B', 'G'),
|
||||
FOURCC_GBRG = FOURCC('G', 'B', 'R', 'G'),
|
||||
FOURCC_H264 = FOURCC('H', '2', '6', '4'),
|
||||
|
||||
// Match any fourcc.
|
||||
FOURCC_ANY = -1,
|
||||
};
|
||||
|
||||
enum FourCCBpp {
|
||||
// Canonical fourcc codes used in our code.
|
||||
FOURCC_BPP_I420 = 12,
|
||||
FOURCC_BPP_I422 = 16,
|
||||
FOURCC_BPP_I444 = 24,
|
||||
FOURCC_BPP_I411 = 12,
|
||||
FOURCC_BPP_I400 = 8,
|
||||
FOURCC_BPP_NV21 = 12,
|
||||
FOURCC_BPP_NV12 = 12,
|
||||
FOURCC_BPP_YUY2 = 16,
|
||||
FOURCC_BPP_UYVY = 16,
|
||||
FOURCC_BPP_M420 = 12, // deprecated
|
||||
FOURCC_BPP_Q420 = 12,
|
||||
FOURCC_BPP_ARGB = 32,
|
||||
FOURCC_BPP_BGRA = 32,
|
||||
FOURCC_BPP_ABGR = 32,
|
||||
FOURCC_BPP_RGBA = 32,
|
||||
FOURCC_BPP_AR30 = 32,
|
||||
FOURCC_BPP_AB30 = 32,
|
||||
FOURCC_BPP_AR64 = 64,
|
||||
FOURCC_BPP_AB64 = 64,
|
||||
FOURCC_BPP_24BG = 24,
|
||||
FOURCC_BPP_RAW = 24,
|
||||
FOURCC_BPP_RGBP = 16,
|
||||
FOURCC_BPP_RGBO = 16,
|
||||
FOURCC_BPP_R444 = 16,
|
||||
FOURCC_BPP_RGGB = 8,
|
||||
FOURCC_BPP_BGGR = 8,
|
||||
FOURCC_BPP_GRBG = 8,
|
||||
FOURCC_BPP_GBRG = 8,
|
||||
FOURCC_BPP_YV12 = 12,
|
||||
FOURCC_BPP_YV16 = 16,
|
||||
FOURCC_BPP_YV24 = 24,
|
||||
FOURCC_BPP_YU12 = 12,
|
||||
FOURCC_BPP_J420 = 12,
|
||||
FOURCC_BPP_J400 = 8,
|
||||
FOURCC_BPP_H420 = 12,
|
||||
FOURCC_BPP_H422 = 16,
|
||||
FOURCC_BPP_I010 = 15,
|
||||
FOURCC_BPP_I210 = 20,
|
||||
FOURCC_BPP_H010 = 15,
|
||||
FOURCC_BPP_H210 = 20,
|
||||
FOURCC_BPP_P010 = 15,
|
||||
FOURCC_BPP_P210 = 20,
|
||||
FOURCC_BPP_MJPG = 0, // 0 means unknown.
|
||||
FOURCC_BPP_H264 = 0,
|
||||
FOURCC_BPP_IYUV = 12,
|
||||
FOURCC_BPP_YU16 = 16,
|
||||
FOURCC_BPP_YU24 = 24,
|
||||
FOURCC_BPP_YUYV = 16,
|
||||
FOURCC_BPP_YUVS = 16,
|
||||
FOURCC_BPP_HDYC = 16,
|
||||
FOURCC_BPP_2VUY = 16,
|
||||
FOURCC_BPP_JPEG = 1,
|
||||
FOURCC_BPP_DMB1 = 1,
|
||||
FOURCC_BPP_BA81 = 8,
|
||||
FOURCC_BPP_RGB3 = 24,
|
||||
FOURCC_BPP_BGR3 = 24,
|
||||
FOURCC_BPP_CM32 = 32,
|
||||
FOURCC_BPP_CM24 = 24,
|
||||
|
||||
// Match any fourcc.
|
||||
FOURCC_BPP_ANY = 0, // 0 means unknown.
|
||||
};
|
||||
|
||||
// Converts fourcc aliases into canonical ones.
|
||||
LIBYUV_API uint32_t CanonicalFourCC(uint32_t fourcc);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
} // namespace libyuv
|
||||
#endif
|
||||
|
||||
#endif // INCLUDE_LIBYUV_VIDEO_COMMON_H_
|
||||
3
3rdparty/libyuv/infra/config/OWNERS
vendored
Normal file
3
3rdparty/libyuv/infra/config/OWNERS
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
fbarchard@chromium.org
|
||||
mbonadei@chromium.org
|
||||
jansson@google.com
|
||||
17
3rdparty/libyuv/infra/config/PRESUBMIT.py
vendored
Normal file
17
3rdparty/libyuv/infra/config/PRESUBMIT.py
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
# Copyright 2018 The PDFium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
USE_PYTHON3 = True
|
||||
|
||||
|
||||
def CheckChangeOnUpload(input_api, output_api):
|
||||
return input_api.canned_checks.CheckChangedLUCIConfigs(
|
||||
input_api, output_api
|
||||
)
|
||||
|
||||
|
||||
def CheckChangeOnCommit(input_api, output_api):
|
||||
return input_api.canned_checks.CheckChangedLUCIConfigs(
|
||||
input_api, output_api
|
||||
)
|
||||
2
3rdparty/libyuv/infra/config/README.md
vendored
Normal file
2
3rdparty/libyuv/infra/config/README.md
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
This folder contains libyuv project-wide configurations
|
||||
for chrome-infra services.
|
||||
6
3rdparty/libyuv/infra/config/codereview.settings
vendored
Normal file
6
3rdparty/libyuv/infra/config/codereview.settings
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
# This file is used by gcl and git-cl to get repository specific information.
|
||||
CODE_REVIEW_SERVER: codereview.chromium.org
|
||||
PROJECT: libyuv
|
||||
GERRIT_HOST: True
|
||||
VIEW_VC: https://chromium.googlesource.com/libyuv/libyuv/+/
|
||||
|
||||
144
3rdparty/libyuv/infra/config/commit-queue.cfg
vendored
Normal file
144
3rdparty/libyuv/infra/config/commit-queue.cfg
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
# Auto-generated by lucicfg.
|
||||
# Do not modify manually.
|
||||
#
|
||||
# For the schema of this file, see Config message:
|
||||
# https://config.luci.app/schemas/projects:commit-queue.cfg
|
||||
|
||||
cq_status_host: "chromium-cq-status.appspot.com"
|
||||
submit_options {
|
||||
max_burst: 4
|
||||
burst_delay {
|
||||
seconds: 480
|
||||
}
|
||||
}
|
||||
config_groups {
|
||||
name: "config"
|
||||
gerrit {
|
||||
url: "https://chromium-review.googlesource.com"
|
||||
projects {
|
||||
name: "libyuv/libyuv"
|
||||
ref_regexp: "refs/heads/infra/config"
|
||||
}
|
||||
}
|
||||
verifiers {
|
||||
gerrit_cq_ability {
|
||||
committer_list: "project-libyuv-committers"
|
||||
dry_run_access_list: "project-libyuv-tryjob-access"
|
||||
}
|
||||
tryjob {
|
||||
builders {
|
||||
name: "libyuv/try/presubmit"
|
||||
}
|
||||
retry_config {
|
||||
single_quota: 1
|
||||
global_quota: 2
|
||||
failure_weight: 1
|
||||
transient_failure_weight: 1
|
||||
timeout_weight: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
config_groups {
|
||||
name: "master"
|
||||
gerrit {
|
||||
url: "https://chromium-review.googlesource.com"
|
||||
projects {
|
||||
name: "libyuv/libyuv"
|
||||
ref_regexp: "refs/heads/main"
|
||||
ref_regexp: "refs/heads/master"
|
||||
}
|
||||
}
|
||||
verifiers {
|
||||
gerrit_cq_ability {
|
||||
committer_list: "project-libyuv-committers"
|
||||
dry_run_access_list: "project-libyuv-tryjob-access"
|
||||
}
|
||||
tryjob {
|
||||
builders {
|
||||
name: "libyuv/try/android"
|
||||
experiment_percentage: 100
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/android_arm64"
|
||||
experiment_percentage: 100
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/android_rel"
|
||||
experiment_percentage: 100
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/android_x64"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/android_x86"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/ios_arm64"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/ios_arm64_rel"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux_asan"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux_gcc"
|
||||
experiment_percentage: 100
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux_msan"
|
||||
experiment_percentage: 100
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux_rel"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux_tsan2"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux_ubsan"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/linux_ubsan_vptr"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/mac"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/mac_asan"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/mac_rel"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/win"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/win_clang"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/win_clang_rel"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/win_rel"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/win_x64_clang_rel"
|
||||
}
|
||||
builders {
|
||||
name: "libyuv/try/win_x64_rel"
|
||||
}
|
||||
retry_config {
|
||||
single_quota: 1
|
||||
global_quota: 2
|
||||
failure_weight: 1
|
||||
transient_failure_weight: 1
|
||||
timeout_weight: 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
1130
3rdparty/libyuv/infra/config/cr-buildbucket.cfg
vendored
Normal file
1130
3rdparty/libyuv/infra/config/cr-buildbucket.cfg
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9
3rdparty/libyuv/infra/config/luci-logdog.cfg
vendored
Normal file
9
3rdparty/libyuv/infra/config/luci-logdog.cfg
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
# Auto-generated by lucicfg.
|
||||
# Do not modify manually.
|
||||
#
|
||||
# For the schema of this file, see ProjectConfig message:
|
||||
# https://config.luci.app/schemas/projects:luci-logdog.cfg
|
||||
|
||||
reader_auth_groups: "all"
|
||||
writer_auth_groups: "luci-logdog-chromium-writers"
|
||||
archive_gs_bucket: "chromium-luci-logdog"
|
||||
246
3rdparty/libyuv/infra/config/luci-milo.cfg
vendored
Normal file
246
3rdparty/libyuv/infra/config/luci-milo.cfg
vendored
Normal file
@@ -0,0 +1,246 @@
|
||||
# Auto-generated by lucicfg.
|
||||
# Do not modify manually.
|
||||
#
|
||||
# For the schema of this file, see Project message:
|
||||
# https://config.luci.app/schemas/projects:luci-milo.cfg
|
||||
|
||||
consoles {
|
||||
id: "main"
|
||||
name: "libyuv Main Console"
|
||||
repo_url: "https://chromium.googlesource.com/libyuv/libyuv"
|
||||
refs: "regexp:refs/heads/main"
|
||||
manifest_name: "REVISION"
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android ARM64 Debug"
|
||||
category: "Android|Builder"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android Debug"
|
||||
category: "Android|Builder"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android Release"
|
||||
category: "Android|Builder"
|
||||
short_name: "rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android32 x86 Debug"
|
||||
category: "Android|Builder|x86"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android64 x64 Debug"
|
||||
category: "Android|Builder|x64"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android Tester ARM32 Debug (Nexus 5X)"
|
||||
category: "Android|Tester|ARM 32"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android Tester ARM32 Release (Nexus 5X)"
|
||||
category: "Android|Tester|ARM 32"
|
||||
short_name: "rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Android Tester ARM64 Debug (Nexus 5X)"
|
||||
category: "Android|Tester|ARM 64"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux Asan"
|
||||
category: "Linux"
|
||||
short_name: "asan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux MSan"
|
||||
category: "Linux"
|
||||
short_name: "msan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux Tsan v2"
|
||||
category: "Linux"
|
||||
short_name: "tsan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux UBSan"
|
||||
category: "Linux|UBSan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux UBSan vptr"
|
||||
category: "Linux|UBSan"
|
||||
short_name: "vptr"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux32 Debug"
|
||||
category: "Linux|32"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux32 Release"
|
||||
category: "Linux|32"
|
||||
short_name: "rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux64 Debug"
|
||||
category: "Linux|64"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Linux64 Release"
|
||||
category: "Linux|64"
|
||||
short_name: "rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Mac Asan"
|
||||
category: "Mac"
|
||||
short_name: "asan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Mac64 Debug"
|
||||
category: "Mac"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Mac64 Release"
|
||||
category: "Mac"
|
||||
short_name: "rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win32 Debug"
|
||||
category: "Win|32|Debug"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win32 Debug (Clang)"
|
||||
category: "Win|32|Debug"
|
||||
short_name: "clg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win32 Release"
|
||||
category: "Win|32|Release"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win32 Release (Clang)"
|
||||
category: "Win|32|Release"
|
||||
short_name: "clg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win64 Debug"
|
||||
category: "Win|64|Debug"
|
||||
short_name: "clg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win64 Debug (Clang)"
|
||||
category: "Win|64|Debug"
|
||||
short_name: "clg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win64 Release"
|
||||
category: "Win|64|Release"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/Win64 Release (Clang)"
|
||||
category: "Win|64|Release"
|
||||
short_name: "clg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/iOS ARM64 Debug"
|
||||
category: "iOS|ARM64"
|
||||
short_name: "dbg"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.ci/iOS ARM64 Release"
|
||||
category: "iOS|ARM64"
|
||||
short_name: "rel"
|
||||
}
|
||||
include_experimental_builds: true
|
||||
}
|
||||
consoles {
|
||||
id: "cron"
|
||||
name: "Cron"
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.cron/DEPS Autoroller"
|
||||
}
|
||||
builder_view_only: true
|
||||
}
|
||||
consoles {
|
||||
id: "try"
|
||||
name: "libyuv Try Builders"
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/android"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/android_arm64"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/android_rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/android_x64"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/android_x86"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/ios_arm64"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/ios_arm64_rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux_asan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux_gcc"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux_msan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux_rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux_tsan2"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux_ubsan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/linux_ubsan_vptr"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/mac"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/mac_asan"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/mac_rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/win"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/win_clang"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/win_clang_rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/win_rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/win_x64_clang_rel"
|
||||
}
|
||||
builders {
|
||||
name: "buildbucket/luci.libyuv.try/win_x64_rel"
|
||||
}
|
||||
builder_view_only: true
|
||||
}
|
||||
logo_url: "https://storage.googleapis.com/chrome-infra-public/logo/libyuv-logo.png"
|
||||
385
3rdparty/libyuv/infra/config/luci-scheduler.cfg
vendored
Normal file
385
3rdparty/libyuv/infra/config/luci-scheduler.cfg
vendored
Normal file
@@ -0,0 +1,385 @@
|
||||
# Auto-generated by lucicfg.
|
||||
# Do not modify manually.
|
||||
#
|
||||
# For the schema of this file, see ProjectConfig message:
|
||||
# https://config.luci.app/schemas/projects:luci-scheduler.cfg
|
||||
|
||||
job {
|
||||
id: "Android ARM64 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android ARM64 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Android Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Android Release"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android Release"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Android Tester ARM32 Debug (Nexus 5X)"
|
||||
realm: "ci"
|
||||
acls {
|
||||
role: TRIGGERER
|
||||
granted_to: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android Tester ARM32 Debug (Nexus 5X)"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Android Tester ARM32 Release (Nexus 5X)"
|
||||
realm: "ci"
|
||||
acls {
|
||||
role: TRIGGERER
|
||||
granted_to: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android Tester ARM32 Release (Nexus 5X)"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Android Tester ARM64 Debug (Nexus 5X)"
|
||||
realm: "ci"
|
||||
acls {
|
||||
role: TRIGGERER
|
||||
granted_to: "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android Tester ARM64 Debug (Nexus 5X)"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Android32 x86 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android32 x86 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Android64 x64 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Android64 x64 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "DEPS Autoroller"
|
||||
realm: "cron"
|
||||
schedule: "0 14 * * *"
|
||||
acl_sets: "cron"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "cron"
|
||||
builder: "DEPS Autoroller"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux Asan"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux Asan"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux MSan"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux MSan"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux Tsan v2"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux Tsan v2"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux UBSan"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux UBSan"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux UBSan vptr"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux UBSan vptr"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux32 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux32 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux32 Release"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux32 Release"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux64 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux64 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Linux64 Release"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Linux64 Release"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Mac Asan"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Mac Asan"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Mac64 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Mac64 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Mac64 Release"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Mac64 Release"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win32 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win32 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win32 Debug (Clang)"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win32 Debug (Clang)"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win32 Release"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win32 Release"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win32 Release (Clang)"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win32 Release (Clang)"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win64 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win64 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win64 Debug (Clang)"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win64 Debug (Clang)"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win64 Release"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win64 Release"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "Win64 Release (Clang)"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "Win64 Release (Clang)"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "iOS ARM64 Debug"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "iOS ARM64 Debug"
|
||||
}
|
||||
}
|
||||
job {
|
||||
id: "iOS ARM64 Release"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
buildbucket {
|
||||
server: "cr-buildbucket.appspot.com"
|
||||
bucket: "ci"
|
||||
builder: "iOS ARM64 Release"
|
||||
}
|
||||
}
|
||||
trigger {
|
||||
id: "master-gitiles-trigger"
|
||||
realm: "ci"
|
||||
acl_sets: "ci"
|
||||
triggers: "Android ARM64 Debug"
|
||||
triggers: "Android Debug"
|
||||
triggers: "Android Release"
|
||||
triggers: "Android32 x86 Debug"
|
||||
triggers: "Android64 x64 Debug"
|
||||
triggers: "Linux Asan"
|
||||
triggers: "Linux MSan"
|
||||
triggers: "Linux Tsan v2"
|
||||
triggers: "Linux UBSan"
|
||||
triggers: "Linux UBSan vptr"
|
||||
triggers: "Linux32 Debug"
|
||||
triggers: "Linux32 Release"
|
||||
triggers: "Linux64 Debug"
|
||||
triggers: "Linux64 Release"
|
||||
triggers: "Mac Asan"
|
||||
triggers: "Mac64 Debug"
|
||||
triggers: "Mac64 Release"
|
||||
triggers: "Win32 Debug"
|
||||
triggers: "Win32 Debug (Clang)"
|
||||
triggers: "Win32 Release"
|
||||
triggers: "Win32 Release (Clang)"
|
||||
triggers: "Win64 Debug"
|
||||
triggers: "Win64 Debug (Clang)"
|
||||
triggers: "Win64 Release"
|
||||
triggers: "Win64 Release (Clang)"
|
||||
triggers: "iOS ARM64 Debug"
|
||||
triggers: "iOS ARM64 Release"
|
||||
gitiles {
|
||||
repo: "https://chromium.googlesource.com/libyuv/libyuv"
|
||||
refs: "regexp:refs/heads/main"
|
||||
}
|
||||
}
|
||||
acl_sets {
|
||||
name: "ci"
|
||||
acls {
|
||||
role: OWNER
|
||||
granted_to: "group:project-libyuv-admins"
|
||||
}
|
||||
acls {
|
||||
granted_to: "group:all"
|
||||
}
|
||||
}
|
||||
acl_sets {
|
||||
name: "cron"
|
||||
acls {
|
||||
role: OWNER
|
||||
granted_to: "group:project-libyuv-admins"
|
||||
}
|
||||
acls {
|
||||
granted_to: "group:all"
|
||||
}
|
||||
}
|
||||
399
3rdparty/libyuv/infra/config/main.star
vendored
Normal file
399
3rdparty/libyuv/infra/config/main.star
vendored
Normal file
@@ -0,0 +1,399 @@
|
||||
#!/usr/bin/env lucicfg
|
||||
# https://chromium.googlesource.com/infra/luci/luci-go/+/master/lucicfg/doc/
|
||||
|
||||
"""LUCI project configuration for libyuv CQ and CI."""
|
||||
|
||||
lucicfg.check_version("1.30.9")
|
||||
|
||||
LIBYUV_GIT = "https://chromium.googlesource.com/libyuv/libyuv"
|
||||
LIBYUV_GERRIT = "https://chromium-review.googlesource.com/libyuv/libyuv"
|
||||
|
||||
RBE_PROJECT = {
|
||||
"ci": "rbe-webrtc-trusted",
|
||||
"try": "rbe-webrtc-untrusted",
|
||||
}
|
||||
|
||||
# Use LUCI Scheduler BBv2 names and add Scheduler realms configs.
|
||||
lucicfg.enable_experiment("crbug.com/1182002")
|
||||
|
||||
lucicfg.config(
|
||||
lint_checks = ["default"],
|
||||
config_dir = ".",
|
||||
tracked_files = [
|
||||
"commit-queue.cfg",
|
||||
"cr-buildbucket.cfg",
|
||||
"luci-logdog.cfg",
|
||||
"luci-milo.cfg",
|
||||
"luci-scheduler.cfg",
|
||||
"project.cfg",
|
||||
"realms.cfg",
|
||||
],
|
||||
)
|
||||
|
||||
# Generates project.cfg
|
||||
|
||||
luci.project(
|
||||
name = "libyuv",
|
||||
buildbucket = "cr-buildbucket.appspot.com",
|
||||
logdog = "luci-logdog.appspot.com",
|
||||
milo = "luci-milo.appspot.com",
|
||||
notify = "luci-notify.appspot.com",
|
||||
scheduler = "luci-scheduler.appspot.com",
|
||||
swarming = "chromium-swarm.appspot.com",
|
||||
acls = [
|
||||
acl.entry(acl.PROJECT_CONFIGS_READER, groups = ["all"]),
|
||||
acl.entry(acl.LOGDOG_READER, groups = ["all"]),
|
||||
acl.entry(acl.LOGDOG_WRITER, groups = ["luci-logdog-chromium-writers"]),
|
||||
acl.entry(acl.SCHEDULER_READER, groups = ["all"]),
|
||||
acl.entry(acl.SCHEDULER_OWNER, groups = ["project-libyuv-admins"]),
|
||||
acl.entry(acl.BUILDBUCKET_READER, groups = ["all"]),
|
||||
acl.entry(acl.BUILDBUCKET_OWNER, groups = ["project-libyuv-admins"]),
|
||||
],
|
||||
bindings = [
|
||||
luci.binding(
|
||||
roles = "role/swarming.taskTriggerer", # for LED tasks.
|
||||
groups = "project-libyuv-admins",
|
||||
),
|
||||
luci.binding(
|
||||
roles = "role/configs.validator",
|
||||
users = "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com",
|
||||
),
|
||||
],
|
||||
)
|
||||
|
||||
# Generates luci-logdog.cfg
|
||||
|
||||
luci.logdog(
|
||||
gs_bucket = "chromium-luci-logdog",
|
||||
)
|
||||
|
||||
# Generates luci-scheduler.cfg
|
||||
|
||||
luci.gitiles_poller(
|
||||
name = "master-gitiles-trigger",
|
||||
bucket = "ci",
|
||||
repo = LIBYUV_GIT,
|
||||
)
|
||||
|
||||
# Generates luci-milo.cfg
|
||||
|
||||
luci.milo(
|
||||
logo = "https://storage.googleapis.com/chrome-infra-public/logo/libyuv-logo.png",
|
||||
)
|
||||
|
||||
def libyuv_ci_view(name, category, short_name):
|
||||
return luci.console_view_entry(
|
||||
console_view = "main",
|
||||
builder = name,
|
||||
category = category,
|
||||
short_name = short_name,
|
||||
)
|
||||
|
||||
def libyuv_try_view(name):
|
||||
return luci.list_view_entry(
|
||||
list_view = "try",
|
||||
builder = name,
|
||||
)
|
||||
|
||||
luci.console_view(
|
||||
name = "main",
|
||||
title = "libyuv Main Console",
|
||||
include_experimental_builds = True,
|
||||
repo = LIBYUV_GIT,
|
||||
)
|
||||
|
||||
luci.list_view(
|
||||
name = "cron",
|
||||
title = "Cron",
|
||||
entries = ["DEPS Autoroller"],
|
||||
)
|
||||
|
||||
luci.list_view(
|
||||
name = "try",
|
||||
title = "libyuv Try Builders",
|
||||
)
|
||||
|
||||
# Generates commit-queue.cfg
|
||||
|
||||
def libyuv_try_job_verifier(name, cq_group, experiment_percentage):
|
||||
return luci.cq_tryjob_verifier(
|
||||
builder = name,
|
||||
cq_group = cq_group,
|
||||
experiment_percentage = experiment_percentage,
|
||||
)
|
||||
|
||||
luci.cq(
|
||||
status_host = "chromium-cq-status.appspot.com",
|
||||
submit_max_burst = 4,
|
||||
submit_burst_delay = 8 * time.minute,
|
||||
)
|
||||
|
||||
luci.cq_group(
|
||||
name = "master",
|
||||
watch = [
|
||||
cq.refset(
|
||||
repo = LIBYUV_GERRIT,
|
||||
refs = ["refs/heads/main", "refs/heads/master"],
|
||||
),
|
||||
],
|
||||
acls = [
|
||||
acl.entry(acl.CQ_COMMITTER, groups = ["project-libyuv-committers"]),
|
||||
acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-libyuv-tryjob-access"]),
|
||||
],
|
||||
retry_config = cq.RETRY_ALL_FAILURES,
|
||||
cancel_stale_tryjobs = True,
|
||||
)
|
||||
|
||||
luci.cq_group(
|
||||
name = "config",
|
||||
watch = [
|
||||
cq.refset(
|
||||
repo = LIBYUV_GERRIT,
|
||||
refs = ["refs/heads/infra/config"],
|
||||
),
|
||||
],
|
||||
acls = [
|
||||
acl.entry(acl.CQ_COMMITTER, groups = ["project-libyuv-committers"]),
|
||||
acl.entry(acl.CQ_DRY_RUNNER, groups = ["project-libyuv-tryjob-access"]),
|
||||
],
|
||||
retry_config = cq.RETRY_ALL_FAILURES,
|
||||
cancel_stale_tryjobs = True,
|
||||
)
|
||||
|
||||
# Generates cr-buildbucket.cfg
|
||||
|
||||
luci.bucket(
|
||||
name = "ci",
|
||||
constraints = luci.bucket_constraints(
|
||||
pools = ["luci.flex.ci"],
|
||||
),
|
||||
)
|
||||
luci.bucket(
|
||||
name = "ci.shadow",
|
||||
shadows = "ci",
|
||||
constraints = luci.bucket_constraints(
|
||||
pools = ["luci.flex.ci"],
|
||||
service_accounts = [
|
||||
"libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
|
||||
],
|
||||
),
|
||||
bindings = [
|
||||
# For led permissions.
|
||||
luci.binding(
|
||||
roles = "role/buildbucket.creator",
|
||||
groups = [
|
||||
"chromium-led-users",
|
||||
"mdb/chrome-build-access-sphinx",
|
||||
"mdb/chrome-troopers",
|
||||
"mdb/foundry-x-team",
|
||||
],
|
||||
),
|
||||
],
|
||||
dynamic = True,
|
||||
)
|
||||
luci.bucket(
|
||||
name = "try",
|
||||
acls = [
|
||||
acl.entry(acl.BUILDBUCKET_TRIGGERER, groups = [
|
||||
"project-libyuv-tryjob-access",
|
||||
"service-account-cq",
|
||||
]),
|
||||
],
|
||||
constraints = luci.bucket_constraints(
|
||||
pools = ["luci.flex.try"],
|
||||
service_accounts = [
|
||||
"libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com",
|
||||
],
|
||||
),
|
||||
)
|
||||
luci.bucket(
|
||||
name = "try.shadow",
|
||||
shadows = "try",
|
||||
constraints = luci.bucket_constraints(
|
||||
pools = ["luci.flex.try"],
|
||||
service_accounts = [
|
||||
"libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com",
|
||||
],
|
||||
),
|
||||
bindings = [
|
||||
# For led permissions.
|
||||
luci.binding(
|
||||
roles = "role/buildbucket.creator",
|
||||
groups = [
|
||||
"chromium-led-users",
|
||||
"mdb/chrome-build-access-sphinx",
|
||||
"mdb/chrome-troopers",
|
||||
"mdb/foundry-x-team",
|
||||
],
|
||||
),
|
||||
],
|
||||
dynamic = True,
|
||||
)
|
||||
luci.bucket(
|
||||
name = "cron",
|
||||
)
|
||||
|
||||
def get_os_dimensions(os):
|
||||
if os == "android":
|
||||
return {"device_type": "walleye"}
|
||||
if os == "ios" or os == "mac":
|
||||
return {"os": "Mac-15", "cpu": "arm64"}
|
||||
elif os == "win":
|
||||
return {"os": "Windows-10", "cores": "8", "cpu": "x86-64"}
|
||||
elif os == "linux":
|
||||
return {"os": "Ubuntu-24.04", "cores": "8", "cpu": "x86-64"}
|
||||
return {}
|
||||
|
||||
def libyuv_ci_builder(name, dimensions, properties, triggered_by):
|
||||
return luci.builder(
|
||||
name = name,
|
||||
dimensions = dimensions,
|
||||
properties = properties,
|
||||
bucket = "ci",
|
||||
service_account = "libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
|
||||
triggered_by = triggered_by,
|
||||
swarming_tags = ["vpython:native-python-wrapper"],
|
||||
execution_timeout = 180 * time.minute,
|
||||
build_numbers = True,
|
||||
executable = luci.recipe(
|
||||
name = "libyuv/libyuv",
|
||||
cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
|
||||
),
|
||||
)
|
||||
|
||||
def libyuv_try_builder(name, dimensions, properties, recipe_name = "libyuv/libyuv"):
|
||||
return luci.builder(
|
||||
name = name,
|
||||
dimensions = dimensions,
|
||||
properties = properties,
|
||||
bucket = "try",
|
||||
service_account = "libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com",
|
||||
swarming_tags = ["vpython:native-python-wrapper"],
|
||||
execution_timeout = 180 * time.minute,
|
||||
build_numbers = True,
|
||||
executable = luci.recipe(
|
||||
name = recipe_name,
|
||||
cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
|
||||
),
|
||||
)
|
||||
|
||||
def get_build_properties(bucket):
|
||||
rbe_project = RBE_PROJECT.get(bucket)
|
||||
return {
|
||||
"$build/siso": {
|
||||
"project": rbe_project,
|
||||
"configs": ["builder"],
|
||||
"enable_cloud_profiler": True,
|
||||
"enable_cloud_trace": True,
|
||||
"enable_monitoring": True,
|
||||
},
|
||||
}
|
||||
|
||||
def ci_builder(name, os, category, short_name = None):
|
||||
dimensions = get_os_dimensions(os)
|
||||
properties = get_build_properties("ci")
|
||||
|
||||
dimensions["pool"] = "luci.flex.ci"
|
||||
properties["builder_group"] = "client.libyuv"
|
||||
|
||||
triggered_by = ["master-gitiles-trigger" if os != "android" else "Android Debug"]
|
||||
libyuv_ci_view(name, category, short_name)
|
||||
return libyuv_ci_builder(name, dimensions, properties, triggered_by)
|
||||
|
||||
def try_builder(name, os, experiment_percentage = None):
|
||||
dimensions = get_os_dimensions(os)
|
||||
properties = get_build_properties("try")
|
||||
|
||||
dimensions["pool"] = "luci.flex.try"
|
||||
properties["builder_group"] = "tryserver.libyuv"
|
||||
|
||||
if name == "presubmit":
|
||||
recipe_name = "run_presubmit"
|
||||
properties["repo_name"] = "libyuv"
|
||||
properties["runhooks"] = True
|
||||
libyuv_try_job_verifier(name, "config", experiment_percentage)
|
||||
return libyuv_try_builder(name, dimensions, properties, recipe_name)
|
||||
|
||||
libyuv_try_job_verifier(name, "master", experiment_percentage)
|
||||
libyuv_try_view(name)
|
||||
return libyuv_try_builder(name, dimensions, properties)
|
||||
|
||||
luci.builder(
|
||||
name = "DEPS Autoroller",
|
||||
bucket = "cron",
|
||||
service_account = "libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com",
|
||||
dimensions = {
|
||||
"pool": "luci.webrtc.cron",
|
||||
"os": "Linux",
|
||||
"cpu": "x86-64",
|
||||
},
|
||||
swarming_tags = ["vpython:native-python-wrapper"],
|
||||
execution_timeout = 120 * time.minute,
|
||||
build_numbers = True,
|
||||
schedule = "0 14 * * *", # Every 2 hours.
|
||||
executable = luci.recipe(
|
||||
name = "libyuv/roll_deps",
|
||||
cipd_package = "infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
|
||||
),
|
||||
)
|
||||
|
||||
ci_builder("Android ARM64 Debug", "linux", "Android|Builder", "dbg")
|
||||
ci_builder("Android Debug", "linux", "Android|Builder", "dbg")
|
||||
ci_builder("Android Release", "linux", "Android|Builder", "rel")
|
||||
ci_builder("Android32 x86 Debug", "linux", "Android|Builder|x86", "dbg")
|
||||
ci_builder("Android64 x64 Debug", "linux", "Android|Builder|x64", "dbg")
|
||||
ci_builder("Android Tester ARM32 Debug (Nexus 5X)", "android", "Android|Tester|ARM 32", "dbg")
|
||||
ci_builder("Android Tester ARM32 Release (Nexus 5X)", "android", "Android|Tester|ARM 32", "rel")
|
||||
ci_builder("Android Tester ARM64 Debug (Nexus 5X)", "android", "Android|Tester|ARM 64", "dbg")
|
||||
ci_builder("Linux Asan", "linux", "Linux", "asan")
|
||||
ci_builder("Linux MSan", "linux", "Linux", "msan")
|
||||
ci_builder("Linux Tsan v2", "linux", "Linux", "tsan")
|
||||
ci_builder("Linux UBSan", "linux", "Linux|UBSan")
|
||||
ci_builder("Linux UBSan vptr", "linux", "Linux|UBSan", "vptr")
|
||||
ci_builder("Linux32 Debug", "linux", "Linux|32", "dbg")
|
||||
ci_builder("Linux32 Release", "linux", "Linux|32", "rel")
|
||||
ci_builder("Linux64 Debug", "linux", "Linux|64", "dbg")
|
||||
ci_builder("Linux64 Release", "linux", "Linux|64", "rel")
|
||||
ci_builder("Mac Asan", "mac", "Mac", "asan")
|
||||
ci_builder("Mac64 Debug", "mac", "Mac", "dbg")
|
||||
ci_builder("Mac64 Release", "mac", "Mac", "rel")
|
||||
ci_builder("Win32 Debug", "win", "Win|32|Debug")
|
||||
ci_builder("Win32 Debug (Clang)", "win", "Win|32|Debug", "clg")
|
||||
ci_builder("Win32 Release", "win", "Win|32|Release")
|
||||
ci_builder("Win32 Release (Clang)", "win", "Win|32|Release", "clg")
|
||||
ci_builder("Win64 Debug", "win", "Win|64|Debug", "clg")
|
||||
ci_builder("Win64 Debug (Clang)", "win", "Win|64|Debug", "clg")
|
||||
ci_builder("Win64 Release", "win", "Win|64|Release")
|
||||
ci_builder("Win64 Release (Clang)", "win", "Win|64|Release", "clg")
|
||||
ci_builder("iOS ARM64 Debug", "ios", "iOS|ARM64", "dbg")
|
||||
ci_builder("iOS ARM64 Release", "ios", "iOS|ARM64", "rel")
|
||||
|
||||
# TODO(crbug.com/1242847): make this not experimental.
|
||||
try_builder("android", "android", experiment_percentage = 100)
|
||||
try_builder("android_arm64", "android", experiment_percentage = 100)
|
||||
try_builder("android_rel", "android", experiment_percentage = 100)
|
||||
|
||||
try_builder("android_x64", "linux")
|
||||
try_builder("android_x86", "linux")
|
||||
try_builder("ios_arm64", "ios")
|
||||
try_builder("ios_arm64_rel", "ios")
|
||||
try_builder("linux", "linux")
|
||||
try_builder("linux_asan", "linux")
|
||||
try_builder("linux_gcc", "linux", experiment_percentage = 100)
|
||||
|
||||
# TODO(libyuv:388428508): Make linux_msan not experimental.
|
||||
try_builder("linux_msan", "linux", experiment_percentage = 100)
|
||||
try_builder("linux_rel", "linux")
|
||||
try_builder("linux_tsan2", "linux")
|
||||
try_builder("linux_ubsan", "linux")
|
||||
try_builder("linux_ubsan_vptr", "linux")
|
||||
try_builder("mac", "mac")
|
||||
try_builder("mac_asan", "mac")
|
||||
try_builder("mac_rel", "mac")
|
||||
try_builder("win", "win")
|
||||
try_builder("win_clang", "win")
|
||||
try_builder("win_clang_rel", "win")
|
||||
try_builder("win_rel", "win")
|
||||
try_builder("win_x64_clang_rel", "win")
|
||||
try_builder("win_x64_rel", "win")
|
||||
try_builder("presubmit", "linux")
|
||||
15
3rdparty/libyuv/infra/config/project.cfg
vendored
Normal file
15
3rdparty/libyuv/infra/config/project.cfg
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# Auto-generated by lucicfg.
|
||||
# Do not modify manually.
|
||||
#
|
||||
# For the schema of this file, see ProjectCfg message:
|
||||
# https://config.luci.app/schemas/projects:project.cfg
|
||||
|
||||
name: "libyuv"
|
||||
access: "group:all"
|
||||
lucicfg {
|
||||
version: "1.46.1"
|
||||
package_dir: "."
|
||||
config_dir: "."
|
||||
entry_point: "main.star"
|
||||
experiments: "crbug.com/1182002"
|
||||
}
|
||||
111
3rdparty/libyuv/infra/config/realms.cfg
vendored
Normal file
111
3rdparty/libyuv/infra/config/realms.cfg
vendored
Normal file
@@ -0,0 +1,111 @@
|
||||
# Auto-generated by lucicfg.
|
||||
# Do not modify manually.
|
||||
#
|
||||
# For the schema of this file, see RealmsCfg message:
|
||||
# https://config.luci.app/schemas/projects:realms.cfg
|
||||
|
||||
realms {
|
||||
name: "@root"
|
||||
bindings {
|
||||
role: "role/buildbucket.owner"
|
||||
principals: "group:project-libyuv-admins"
|
||||
}
|
||||
bindings {
|
||||
role: "role/buildbucket.reader"
|
||||
principals: "group:all"
|
||||
}
|
||||
bindings {
|
||||
role: "role/configs.reader"
|
||||
principals: "group:all"
|
||||
}
|
||||
bindings {
|
||||
role: "role/configs.validator"
|
||||
principals: "user:libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
bindings {
|
||||
role: "role/logdog.reader"
|
||||
principals: "group:all"
|
||||
}
|
||||
bindings {
|
||||
role: "role/logdog.writer"
|
||||
principals: "group:luci-logdog-chromium-writers"
|
||||
}
|
||||
bindings {
|
||||
role: "role/scheduler.owner"
|
||||
principals: "group:project-libyuv-admins"
|
||||
}
|
||||
bindings {
|
||||
role: "role/scheduler.reader"
|
||||
principals: "group:all"
|
||||
}
|
||||
bindings {
|
||||
role: "role/swarming.taskTriggerer"
|
||||
principals: "group:project-libyuv-admins"
|
||||
}
|
||||
}
|
||||
realms {
|
||||
name: "ci"
|
||||
bindings {
|
||||
role: "role/buildbucket.builderServiceAccount"
|
||||
principals: "user:libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
bindings {
|
||||
role: "role/scheduler.triggerer"
|
||||
principals: "user:libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
conditions {
|
||||
restrict {
|
||||
attribute: "scheduler.job.name"
|
||||
values: "Android Tester ARM32 Debug (Nexus 5X)"
|
||||
values: "Android Tester ARM32 Release (Nexus 5X)"
|
||||
values: "Android Tester ARM64 Debug (Nexus 5X)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
realms {
|
||||
name: "ci.shadow"
|
||||
bindings {
|
||||
role: "role/buildbucket.builderServiceAccount"
|
||||
principals: "user:libyuv-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
bindings {
|
||||
role: "role/buildbucket.creator"
|
||||
principals: "group:chromium-led-users"
|
||||
principals: "group:mdb/chrome-build-access-sphinx"
|
||||
principals: "group:mdb/chrome-troopers"
|
||||
principals: "group:mdb/foundry-x-team"
|
||||
}
|
||||
}
|
||||
realms {
|
||||
name: "cron"
|
||||
bindings {
|
||||
role: "role/buildbucket.builderServiceAccount"
|
||||
principals: "user:libyuv-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
}
|
||||
realms {
|
||||
name: "try"
|
||||
bindings {
|
||||
role: "role/buildbucket.builderServiceAccount"
|
||||
principals: "user:libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
bindings {
|
||||
role: "role/buildbucket.triggerer"
|
||||
principals: "group:project-libyuv-tryjob-access"
|
||||
principals: "group:service-account-cq"
|
||||
}
|
||||
}
|
||||
realms {
|
||||
name: "try.shadow"
|
||||
bindings {
|
||||
role: "role/buildbucket.builderServiceAccount"
|
||||
principals: "user:libyuv-try-builder@chops-service-accounts.iam.gserviceaccount.com"
|
||||
}
|
||||
bindings {
|
||||
role: "role/buildbucket.creator"
|
||||
principals: "group:chromium-led-users"
|
||||
principals: "group:mdb/chrome-build-access-sphinx"
|
||||
principals: "group:mdb/chrome-troopers"
|
||||
principals: "group:mdb/foundry-x-team"
|
||||
}
|
||||
}
|
||||
43
3rdparty/libyuv/libyuv.bzl
vendored
Normal file
43
3rdparty/libyuv/libyuv.bzl
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
# Copyright 2026 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Shared target definitions for Bazel and Blaze builds.
|
||||
|
||||
def libyuv_srcs(prefix = ""):
|
||||
return native.glob(
|
||||
[
|
||||
prefix + "source/*.cc",
|
||||
prefix + "include/libyuv/*.h",
|
||||
],
|
||||
exclude = [
|
||||
prefix + "source/*neon*.cc",
|
||||
prefix + "source/*sve*.cc",
|
||||
prefix + "source/*sme*.cc",
|
||||
],
|
||||
)
|
||||
|
||||
def libyuv_hdrs(prefix = ""):
|
||||
return [
|
||||
prefix + "include/libyuv/compare.h",
|
||||
prefix + "include/libyuv/convert.h",
|
||||
prefix + "include/libyuv/convert_from_argb.h",
|
||||
prefix + "include/libyuv/cpu_id.h",
|
||||
prefix + "include/libyuv/row.h",
|
||||
]
|
||||
|
||||
def libyuv_neon_srcs(prefix = ""):
|
||||
return native.glob([
|
||||
prefix + "source/*neon*.cc",
|
||||
prefix + "include/libyuv/*.h",
|
||||
])
|
||||
|
||||
def libyuv_sve_srcs(prefix = ""):
|
||||
return native.glob([
|
||||
prefix + "source/*sve*.cc",
|
||||
prefix + "include/libyuv/*.h",
|
||||
])
|
||||
|
||||
def libyuv_test_srcs(prefix = ""):
|
||||
return native.glob([
|
||||
prefix + "unit_test/*.cc",
|
||||
prefix + "unit_test/*.h",
|
||||
])
|
||||
33
3rdparty/libyuv/libyuv.gni
vendored
Normal file
33
3rdparty/libyuv/libyuv.gni
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
# Copyright 2016 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
import("//build/config/arm.gni")
|
||||
import("//build/config/loongarch64.gni")
|
||||
import("//build/config/mips.gni")
|
||||
import("//build_overrides/build.gni")
|
||||
|
||||
declare_args() {
|
||||
libyuv_include_tests = !build_with_chromium
|
||||
libyuv_disable_jpeg = false
|
||||
libyuv_disable_rvv = false
|
||||
libyuv_enable_rowwin = false
|
||||
libyuv_use_neon = current_cpu == "arm64" || current_cpu == "arm"
|
||||
libyuv_use_sve = current_cpu == "arm64"
|
||||
|
||||
# Restrict to (is_linux || is_android) to work around undefined symbol linker
|
||||
# errors on Fuchsia, macOS, and compilation errors on Windows.
|
||||
# TODO: bug 359006069 - Remove the restriction after the linker and
|
||||
# compilation errors are fixed.
|
||||
libyuv_use_sme = current_cpu == "arm64" && (is_linux || is_android)
|
||||
libyuv_use_msa =
|
||||
(current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_msa
|
||||
libyuv_use_mmi =
|
||||
(current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_mmi
|
||||
libyuv_use_lsx = current_cpu == "loong64" && loongarch64_use_lsx
|
||||
libyuv_use_lasx = current_cpu == "loong64" && loongarch64_use_lasx
|
||||
}
|
||||
149
3rdparty/libyuv/libyuv.gyp
vendored
Normal file
149
3rdparty/libyuv/libyuv.gyp
vendored
Normal file
@@ -0,0 +1,149 @@
|
||||
# Copyright 2011 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
{
|
||||
'includes': [
|
||||
'libyuv.gypi',
|
||||
],
|
||||
# Make sure that if we are being compiled to an xcodeproj, nothing tries to
|
||||
# include a .pch.
|
||||
'xcode_settings': {
|
||||
'GCC_PREFIX_HEADER': '',
|
||||
'GCC_PRECOMPILE_PREFIX_HEADER': 'NO',
|
||||
},
|
||||
'variables': {
|
||||
'use_system_libjpeg%': 0,
|
||||
# Can be enabled if your jpeg has GYP support.
|
||||
'libyuv_disable_jpeg%': 1,
|
||||
# 'chromium_code' treats libyuv as internal and increases warning level.
|
||||
'chromium_code': 1,
|
||||
# clang compiler default variable usable by other apps that include libyuv.
|
||||
'clang%': 0,
|
||||
# Link-Time Optimizations.
|
||||
'use_lto%': 0,
|
||||
'build_neon': 0,
|
||||
'conditions': [
|
||||
['(target_arch == "armv7" or target_arch == "armv7s" or \
|
||||
(target_arch == "arm" and arm_version >= 7) or target_arch == "arm64")\
|
||||
and (arm_neon == 1 or arm_neon_optional == 1)', {
|
||||
'build_neon': 1,
|
||||
}],
|
||||
],
|
||||
},
|
||||
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'libyuv',
|
||||
# Change type to 'shared_library' to build .so or .dll files.
|
||||
'type': 'static_library',
|
||||
'variables': {
|
||||
'optimize': 'max', # enable O2 and ltcg.
|
||||
},
|
||||
# Allows libyuv.a redistributable library without external dependencies.
|
||||
'standalone_static_library': 1,
|
||||
'conditions': [
|
||||
# Disable -Wunused-parameter
|
||||
['clang == 1', {
|
||||
'cflags': [
|
||||
'-Wno-unused-parameter',
|
||||
],
|
||||
}],
|
||||
['build_neon != 0', {
|
||||
'defines': [
|
||||
'LIBYUV_NEON',
|
||||
],
|
||||
'cflags!': [
|
||||
'-mfpu=vfp',
|
||||
'-mfpu=vfpv3',
|
||||
'-mfpu=vfpv3-d16',
|
||||
# '-mthumb', # arm32 not thumb
|
||||
],
|
||||
'conditions': [
|
||||
# Disable LTO in libyuv_neon target due to gcc 4.9 compiler bug.
|
||||
['clang == 0 and use_lto == 1', {
|
||||
'cflags!': [
|
||||
'-flto',
|
||||
'-ffat-lto-objects',
|
||||
],
|
||||
}],
|
||||
# arm64 does not need -mfpu=neon option as neon is not optional
|
||||
['target_arch != "arm64"', {
|
||||
'cflags': [
|
||||
'-mfpu=neon',
|
||||
# '-marm', # arm32 not thumb
|
||||
],
|
||||
}],
|
||||
],
|
||||
}],
|
||||
['OS != "ios" and libyuv_disable_jpeg != 1', {
|
||||
'defines': [
|
||||
'HAVE_JPEG'
|
||||
],
|
||||
'conditions': [
|
||||
# Caveat system jpeg support may not support motion jpeg
|
||||
[ 'use_system_libjpeg == 1', {
|
||||
'dependencies': [
|
||||
'<(DEPTH)/third_party/libjpeg/libjpeg.gyp:libjpeg',
|
||||
],
|
||||
}, {
|
||||
'dependencies': [
|
||||
'<(DEPTH)/third_party/libjpeg_turbo/libjpeg.gyp:libjpeg',
|
||||
],
|
||||
}],
|
||||
[ 'use_system_libjpeg == 1', {
|
||||
'link_settings': {
|
||||
'libraries': [
|
||||
'-ljpeg',
|
||||
],
|
||||
}
|
||||
}],
|
||||
],
|
||||
}],
|
||||
], #conditions
|
||||
'defines': [
|
||||
# Enable the following 3 macros to turn off assembly for specified CPU.
|
||||
# 'LIBYUV_DISABLE_X86',
|
||||
# 'LIBYUV_DISABLE_NEON',
|
||||
# Enable the following macro to build libyuv as a shared library (dll).
|
||||
# 'LIBYUV_USING_SHARED_LIBRARY',
|
||||
# TODO(fbarchard): Make these into gyp defines.
|
||||
],
|
||||
'include_dirs': [
|
||||
'include',
|
||||
'.',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [
|
||||
'include',
|
||||
'.',
|
||||
],
|
||||
'conditions': [
|
||||
['OS == "android" and target_arch == "arm64"', {
|
||||
'ldflags': [
|
||||
'-Wl,--dynamic-linker,/system/bin/linker64',
|
||||
],
|
||||
}],
|
||||
['OS == "android" and target_arch != "arm64"', {
|
||||
'ldflags': [
|
||||
'-Wl,--dynamic-linker,/system/bin/linker',
|
||||
],
|
||||
}],
|
||||
], #conditions
|
||||
},
|
||||
'sources': [
|
||||
'<@(libyuv_sources)',
|
||||
],
|
||||
},
|
||||
], # targets.
|
||||
}
|
||||
|
||||
# Local Variables:
|
||||
# tab-width:2
|
||||
# indent-tabs-mode:nil
|
||||
# End:
|
||||
# vim: set expandtab tabstop=2 shiftwidth=2:
|
||||
87
3rdparty/libyuv/libyuv.gypi
vendored
Normal file
87
3rdparty/libyuv/libyuv.gypi
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
# Copyright 2014 The LibYuv Project Authors. All rights reserved.
|
||||
#
|
||||
# Use of this source code is governed by a BSD-style license
|
||||
# that can be found in the LICENSE file in the root of the source
|
||||
# tree. An additional intellectual property rights grant can be found
|
||||
# in the file PATENTS. All contributing project authors may
|
||||
# be found in the AUTHORS file in the root of the source tree.
|
||||
|
||||
{
|
||||
'variables': {
|
||||
'libyuv_sources': [
|
||||
# includes.
|
||||
'include/libyuv.h',
|
||||
'include/libyuv/basic_types.h',
|
||||
'include/libyuv/compare.h',
|
||||
'include/libyuv/compare_row.h',
|
||||
'include/libyuv/convert.h',
|
||||
'include/libyuv/convert_argb.h',
|
||||
'include/libyuv/convert_from.h',
|
||||
'include/libyuv/convert_from_argb.h',
|
||||
'include/libyuv/cpu_id.h',
|
||||
'include/libyuv/cpu_support.h',
|
||||
'include/libyuv/loongson_intrinsics.h',
|
||||
'include/libyuv/mjpeg_decoder.h',
|
||||
'include/libyuv/planar_functions.h',
|
||||
'include/libyuv/rotate.h',
|
||||
'include/libyuv/rotate_argb.h',
|
||||
'include/libyuv/rotate_row.h',
|
||||
'include/libyuv/row.h',
|
||||
'include/libyuv/scale.h',
|
||||
'include/libyuv/scale_argb.h',
|
||||
'include/libyuv/scale_rgb.h',
|
||||
'include/libyuv/scale_row.h',
|
||||
'include/libyuv/scale_uv.h',
|
||||
'include/libyuv/version.h',
|
||||
'include/libyuv/video_common.h',
|
||||
|
||||
# sources.
|
||||
'source/compare.cc',
|
||||
'source/compare_common.cc',
|
||||
'source/compare_gcc.cc',
|
||||
'source/compare_neon.cc',
|
||||
'source/compare_neon64.cc',
|
||||
'source/compare_win.cc',
|
||||
'source/convert.cc',
|
||||
'source/convert_argb.cc',
|
||||
'source/convert_from.cc',
|
||||
'source/convert_from_argb.cc',
|
||||
'source/convert_jpeg.cc',
|
||||
'source/convert_to_argb.cc',
|
||||
'source/convert_to_i420.cc',
|
||||
'source/cpu_id.cc',
|
||||
'source/mjpeg_decoder.cc',
|
||||
'source/mjpeg_validate.cc',
|
||||
'source/planar_functions.cc',
|
||||
'source/rotate.cc',
|
||||
'source/rotate_any.cc',
|
||||
'source/rotate_argb.cc',
|
||||
'source/rotate_common.cc',
|
||||
'source/rotate_gcc.cc',
|
||||
'source/rotate_lsx.cc',
|
||||
'source/rotate_neon.cc',
|
||||
'source/rotate_neon64.cc',
|
||||
'source/rotate_win.cc',
|
||||
'source/row_any.cc',
|
||||
'source/row_common.cc',
|
||||
'source/row_gcc.cc',
|
||||
'source/row_lasx.cc',
|
||||
'source/row_lsx.cc',
|
||||
'source/row_neon.cc',
|
||||
'source/row_neon64.cc',
|
||||
'source/row_win.cc',
|
||||
'source/scale.cc',
|
||||
'source/scale_any.cc',
|
||||
'source/scale_argb.cc',
|
||||
'source/scale_common.cc',
|
||||
'source/scale_gcc.cc',
|
||||
'source/scale_lsx.cc',
|
||||
'source/scale_neon.cc',
|
||||
'source/scale_neon64.cc',
|
||||
'source/scale_rgb.cc',
|
||||
'source/scale_uv.cc',
|
||||
'source/scale_win.cc',
|
||||
'source/video_common.cc',
|
||||
],
|
||||
}
|
||||
}
|
||||
96
3rdparty/libyuv/linux.mk
vendored
Normal file
96
3rdparty/libyuv/linux.mk
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
# This is a generic makefile for libyuv for gcc.
|
||||
# make -f linux.mk CXX=clang++
|
||||
|
||||
CC?=gcc
|
||||
CFLAGS?=-O2 -fomit-frame-pointer
|
||||
CFLAGS+=-Iinclude/
|
||||
|
||||
CXX?=g++
|
||||
CXXFLAGS?=-O2 -fomit-frame-pointer
|
||||
CXXFLAGS+=-Iinclude/
|
||||
|
||||
LOCAL_OBJ_FILES := \
|
||||
source/compare.o \
|
||||
source/compare_common.o \
|
||||
source/compare_gcc.o \
|
||||
source/compare_neon.o \
|
||||
source/compare_neon64.o \
|
||||
source/compare_win.o \
|
||||
source/convert.o \
|
||||
source/convert_argb.o \
|
||||
source/convert_from.o \
|
||||
source/convert_from_argb.o \
|
||||
source/convert_jpeg.o \
|
||||
source/convert_to_argb.o \
|
||||
source/convert_to_i420.o \
|
||||
source/cpu_id.o \
|
||||
source/mjpeg_decoder.o \
|
||||
source/mjpeg_validate.o \
|
||||
source/planar_functions.o \
|
||||
source/rotate.o \
|
||||
source/rotate_any.o \
|
||||
source/rotate_argb.o \
|
||||
source/rotate_common.o \
|
||||
source/rotate_gcc.o \
|
||||
source/rotate_lsx.o \
|
||||
source/rotate_neon.o \
|
||||
source/rotate_neon64.o \
|
||||
source/rotate_win.o \
|
||||
source/row_any.o \
|
||||
source/row_common.o \
|
||||
source/row_gcc.o \
|
||||
source/row_lasx.o \
|
||||
source/row_lsx.o \
|
||||
source/row_neon.o \
|
||||
source/row_neon64.o \
|
||||
source/row_rvv.o \
|
||||
source/row_win.o \
|
||||
source/scale.o \
|
||||
source/scale_any.o \
|
||||
source/scale_argb.o \
|
||||
source/scale_common.o \
|
||||
source/scale_gcc.o \
|
||||
source/scale_lsx.o \
|
||||
source/scale_neon.o \
|
||||
source/scale_neon64.o \
|
||||
source/scale_rgb.o \
|
||||
source/scale_rvv.o \
|
||||
source/scale_uv.o \
|
||||
source/scale_win.o \
|
||||
source/video_common.o
|
||||
|
||||
.cc.o:
|
||||
$(CXX) -c $(CXXFLAGS) $*.cc -o $*.o
|
||||
|
||||
.c.o:
|
||||
$(CC) -c $(CFLAGS) $*.c -o $*.o
|
||||
|
||||
all: libyuv.a i444tonv12_eg yuvconvert yuvconstants cpuid psnr
|
||||
|
||||
libyuv.a: $(LOCAL_OBJ_FILES)
|
||||
$(AR) $(ARFLAGS) $@ $(LOCAL_OBJ_FILES)
|
||||
|
||||
# A C++ test utility that uses libyuv conversion.
|
||||
yuvconvert: util/yuvconvert.cc libyuv.a
|
||||
$(CXX) $(CXXFLAGS) -Iutil/ -o $@ util/yuvconvert.cc libyuv.a
|
||||
|
||||
# A C test utility that generates yuvconstants for yuv to rgb.
|
||||
yuvconstants: util/yuvconstants.c libyuv.a
|
||||
$(CXX) $(CXXFLAGS) -Iutil/ -lm -o $@ util/yuvconstants.c libyuv.a
|
||||
|
||||
# A standalone test utility
|
||||
psnr: util/psnr.cc
|
||||
$(CXX) $(CXXFLAGS) -Iutil/ -o $@ util/psnr.cc util/psnr_main.cc util/ssim.cc
|
||||
|
||||
# A simple conversion example.
|
||||
i444tonv12_eg: util/i444tonv12_eg.cc libyuv.a
|
||||
$(CXX) $(CXXFLAGS) -o $@ util/i444tonv12_eg.cc libyuv.a
|
||||
|
||||
# A C test utility that uses libyuv conversion from C.
|
||||
# gcc 4.4 and older require -fno-exceptions to avoid link error on __gxx_personality_v0
|
||||
# CC=gcc-4.4 CXXFLAGS=-fno-exceptions CXX=g++-4.4 make -f linux.mk
|
||||
cpuid: util/cpuid.c libyuv.a
|
||||
$(CC) $(CFLAGS) -o $@ util/cpuid.c libyuv.a
|
||||
|
||||
clean:
|
||||
/bin/rm -f source/*.o *.ii *.s libyuv.a i444tonv12_eg yuvconvert yuvconstants cpuid psnr
|
||||
13
3rdparty/libyuv/public.mk
vendored
Normal file
13
3rdparty/libyuv/public.mk
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# This file contains all the common make variables which are useful for
|
||||
# anyone depending on this library.
|
||||
# Note that dependencies on NDK are not directly listed since NDK auto adds
|
||||
# them.
|
||||
|
||||
LIBYUV_INCLUDES := $(LIBYUV_PATH)/include
|
||||
|
||||
LIBYUV_C_FLAGS :=
|
||||
|
||||
LIBYUV_CPP_FLAGS :=
|
||||
|
||||
LIBYUV_LDLIBS :=
|
||||
LIBYUV_DEP_MODULES :=
|
||||
49
3rdparty/libyuv/pylintrc
vendored
Normal file
49
3rdparty/libyuv/pylintrc
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Disable the message, report, category or checker with the given id(s).
|
||||
# TODO(kjellander): Reduce this list to as small as possible.
|
||||
disable=I0010,I0011,bad-continuation,broad-except,duplicate-code,eval-used,exec-used,fixme,invalid-name,missing-docstring,no-init,no-member,too-few-public-methods,too-many-ancestors,too-many-arguments,too-many-branches,too-many-function-args,too-many-instance-attributes,too-many-lines,too-many-locals,too-many-public-methods,too-many-return-statements,too-many-statements
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
||||
# Don't write out full reports, just messages.
|
||||
reports=no
|
||||
|
||||
|
||||
[FORMAT]
|
||||
|
||||
# Maximum number of characters on a single line.
|
||||
max-line-length=79
|
||||
|
||||
# We use four spaces for indents.
|
||||
indent-string=' '
|
||||
|
||||
[BASIC]
|
||||
|
||||
# List of builtins function names that should not be used, separated by a comma
|
||||
bad-functions=map,filter,apply,input
|
||||
|
||||
# Naming style matching correct module names.
|
||||
module-naming-style=snake_case
|
||||
|
||||
# Naming style matching correct constant names.
|
||||
const-naming-style=UPPER_CASE
|
||||
|
||||
# Naming style matching correct class names.
|
||||
class-naming-style=PascalCase
|
||||
|
||||
# Naming style matching correct function names.
|
||||
function-naming-style=snake_case
|
||||
|
||||
# Regular expression matching correct method names.
|
||||
method-rgx=([a-z_][a-z0-9_]{2,}|setUp|tearDown)$
|
||||
|
||||
# Naming style matching correct attribute names.
|
||||
attr-naming-style=snake_case
|
||||
|
||||
# Naming style matching correct argument names.
|
||||
argument-naming-style=snake_case
|
||||
|
||||
# Naming style matching correct variable names.
|
||||
variable-naming-style=snake_case
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user