From ce49c84f3a26f016f9232d2bffdc830d7fd6169f Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Sat, 30 Aug 2014 11:37:47 +0000 Subject: Tox: - switch to offline when connection is lost - file transfer support - code refactoring - project reordering - version bump git-svn-id: http://svn.miranda-ng.org/main/trunk@10340 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Tox/tox/README.md | 18 + protocols/Tox/tox/deflibcreator/as.exe | Bin 0 -> 792360 bytes protocols/Tox/tox/deflibcreator/as64.exe | Bin 0 -> 1510620 bytes protocols/Tox/tox/deflibcreator/deflibcreator.exe | Bin 0 -> 77824 bytes protocols/Tox/tox/deflibcreator/dlltool.exe | Bin 0 -> 611153 bytes protocols/Tox/tox/deflibcreator/dlltool64.exe | Bin 0 -> 1023386 bytes protocols/Tox/tox/deflibcreator/link.exe | Bin 0 -> 733440 bytes protocols/Tox/tox/deflibcreator/link.exe.manifest | 11 + protocols/Tox/tox/deflibcreator/mspdb80.dll | Bin 0 -> 173056 bytes .../Tox/tox/deflibcreator/mspdb80.dll.2.manifest | 11 + protocols/Tox/tox/deflibcreator/src/build.cmd | 5 + .../Tox/tox/deflibcreator/src/deflib.manifest | 8 + .../Tox/tox/deflibcreator/src/deflibcreator.cpp | 310 ++++ protocols/Tox/tox/deflibcreator/src/dlc.ico | Bin 0 -> 34494 bytes protocols/Tox/tox/deflibcreator/src/resource.rc | 94 ++ protocols/Tox/tox/dll/x64/libtox.dll | Bin 0 -> 3480662 bytes protocols/Tox/tox/dll/x86/libtox.dll | Bin 0 -> 2943841 bytes protocols/Tox/tox/generate_libs.cmd | 3 + protocols/Tox/tox/include/tox.h | 683 ++++++++ protocols/Tox/tox/include/toxav.h | 389 +++++ protocols/Tox/tox/include/toxdns.h | 85 + protocols/Tox/tox/lib/x64/libtox-x64.exp | Bin 0 -> 215115 bytes protocols/Tox/tox/lib/x64/libtox-x64.lib | Bin 0 -> 353750 bytes protocols/Tox/tox/lib/x64/libtox.def | 1561 ++++++++++++++++++ protocols/Tox/tox/lib/x86/libtox.def | 1709 ++++++++++++++++++++ protocols/Tox/tox/lib/x86/libtox.exp | Bin 0 -> 240874 bytes protocols/Tox/tox/lib/x86/libtox.lib | Bin 0 -> 398560 bytes 27 files changed, 4887 insertions(+) create mode 100644 protocols/Tox/tox/README.md create mode 100644 protocols/Tox/tox/deflibcreator/as.exe create mode 100644 protocols/Tox/tox/deflibcreator/as64.exe create mode 100644 protocols/Tox/tox/deflibcreator/deflibcreator.exe create mode 100644 protocols/Tox/tox/deflibcreator/dlltool.exe create mode 100644 protocols/Tox/tox/deflibcreator/dlltool64.exe create mode 100644 protocols/Tox/tox/deflibcreator/link.exe create mode 100644 protocols/Tox/tox/deflibcreator/link.exe.manifest create mode 100644 protocols/Tox/tox/deflibcreator/mspdb80.dll create mode 100644 protocols/Tox/tox/deflibcreator/mspdb80.dll.2.manifest create mode 100644 protocols/Tox/tox/deflibcreator/src/build.cmd create mode 100644 protocols/Tox/tox/deflibcreator/src/deflib.manifest create mode 100644 protocols/Tox/tox/deflibcreator/src/deflibcreator.cpp create mode 100644 protocols/Tox/tox/deflibcreator/src/dlc.ico create mode 100644 protocols/Tox/tox/deflibcreator/src/resource.rc create mode 100644 protocols/Tox/tox/dll/x64/libtox.dll create mode 100644 protocols/Tox/tox/dll/x86/libtox.dll create mode 100644 protocols/Tox/tox/generate_libs.cmd create mode 100644 protocols/Tox/tox/include/tox.h create mode 100644 protocols/Tox/tox/include/toxav.h create mode 100644 protocols/Tox/tox/include/toxdns.h create mode 100644 protocols/Tox/tox/lib/x64/libtox-x64.exp create mode 100644 protocols/Tox/tox/lib/x64/libtox-x64.lib create mode 100644 protocols/Tox/tox/lib/x64/libtox.def create mode 100644 protocols/Tox/tox/lib/x86/libtox.def create mode 100644 protocols/Tox/tox/lib/x86/libtox.exp create mode 100644 protocols/Tox/tox/lib/x86/libtox.lib (limited to 'protocols/Tox/tox') diff --git a/protocols/Tox/tox/README.md b/protocols/Tox/tox/README.md new file mode 100644 index 0000000000..0879158997 --- /dev/null +++ b/protocols/Tox/tox/README.md @@ -0,0 +1,18 @@ +Prerequisites +------------- + +You will need PowerShell for preparing the `.def` file. + +### Tox-Core + +Download Tox DLL from [the CI server](https://jenkins.libtoxcore.so/job/toxcore_win32_dll/). Put that DLL into `dll` directory, copy the `include` files. + +Now you need to prepare the `.def` file for the DLL. You have to prepare the corresponding `.lib` file for the DLL. To do it, start PowerShell and enter a Visual Studio command environment. Then execute the following script: + + PS> 'EXPORTS' | Out-File .\libtox.def -Encoding ascii; dumpbin.exe /exports .\libtox.dll | % { ($_ -split '\s+')[4] } | Out-File .\libtox.def -Append -Encoding ascii + +It prepares the `def` file for the next step - the `lib` tool: + + PS> lib /def:libtox.def /out:libtox.lib /machine:x86 + +You'll get the `libtox.lib` import library in the current directory. Copy it to `lib` project directory and you're ready! diff --git a/protocols/Tox/tox/deflibcreator/as.exe b/protocols/Tox/tox/deflibcreator/as.exe new file mode 100644 index 0000000000..e1b3143100 Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/as.exe differ diff --git a/protocols/Tox/tox/deflibcreator/as64.exe b/protocols/Tox/tox/deflibcreator/as64.exe new file mode 100644 index 0000000000..4f5095abf8 Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/as64.exe differ diff --git a/protocols/Tox/tox/deflibcreator/deflibcreator.exe b/protocols/Tox/tox/deflibcreator/deflibcreator.exe new file mode 100644 index 0000000000..5969f5d4c2 Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/deflibcreator.exe differ diff --git a/protocols/Tox/tox/deflibcreator/dlltool.exe b/protocols/Tox/tox/deflibcreator/dlltool.exe new file mode 100644 index 0000000000..7874bdd13e Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/dlltool.exe differ diff --git a/protocols/Tox/tox/deflibcreator/dlltool64.exe b/protocols/Tox/tox/deflibcreator/dlltool64.exe new file mode 100644 index 0000000000..6a41e5228c Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/dlltool64.exe differ diff --git a/protocols/Tox/tox/deflibcreator/link.exe b/protocols/Tox/tox/deflibcreator/link.exe new file mode 100644 index 0000000000..5215aecd5d Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/link.exe differ diff --git a/protocols/Tox/tox/deflibcreator/link.exe.manifest b/protocols/Tox/tox/deflibcreator/link.exe.manifest new file mode 100644 index 0000000000..2981431665 --- /dev/null +++ b/protocols/Tox/tox/deflibcreator/link.exe.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/protocols/Tox/tox/deflibcreator/mspdb80.dll b/protocols/Tox/tox/deflibcreator/mspdb80.dll new file mode 100644 index 0000000000..cbe888915c Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/mspdb80.dll differ diff --git a/protocols/Tox/tox/deflibcreator/mspdb80.dll.2.manifest b/protocols/Tox/tox/deflibcreator/mspdb80.dll.2.manifest new file mode 100644 index 0000000000..2981431665 --- /dev/null +++ b/protocols/Tox/tox/deflibcreator/mspdb80.dll.2.manifest @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/protocols/Tox/tox/deflibcreator/src/build.cmd b/protocols/Tox/tox/deflibcreator/src/build.cmd new file mode 100644 index 0000000000..abcf258d0a --- /dev/null +++ b/protocols/Tox/tox/deflibcreator/src/build.cmd @@ -0,0 +1,5 @@ +@echo off +rc /d "_UNICODE" /d "UNICODE" /fo".\release\resource.res" resource.rc +cl /EHsc /DUNICODE /D_UNICODE /Ox /Oi /Ot /DWIN32 /DNDEBUG /nologo /GL /TP /GS /Gz /MD deflibcreator.cpp /link /LTCG /release /manifest:no /Machine:x86 .\release\resource.res /out:.\release\deflibcreator.exe +del deflibcreator.obj +del .\release\resource.res \ No newline at end of file diff --git a/protocols/Tox/tox/deflibcreator/src/deflib.manifest b/protocols/Tox/tox/deflibcreator/src/deflib.manifest new file mode 100644 index 0000000000..414433b643 --- /dev/null +++ b/protocols/Tox/tox/deflibcreator/src/deflib.manifest @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/protocols/Tox/tox/deflibcreator/src/deflibcreator.cpp b/protocols/Tox/tox/deflibcreator/src/deflibcreator.cpp new file mode 100644 index 0000000000..6480fda7e3 --- /dev/null +++ b/protocols/Tox/tox/deflibcreator/src/deflibcreator.cpp @@ -0,0 +1,310 @@ +#define WIN32_LEAN_AND_MEAN +#define _WIN32_WINNT 0x0501 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#pragma comment(lib, "dbghelp.lib") +#pragma comment(lib, "shlwapi.lib") +#pragma comment(lib, "shell32.lib") + +// ordinals to names +typedef std::map > ExportMap; + +void GetExports(PVOID pMapping, ExportMap& exports, WORD& imageType) +{ + ULONG size = 0; + PIMAGE_NT_HEADERS pHead = ImageNtHeader(pMapping); + PIMAGE_EXPORT_DIRECTORY pDir = static_cast(ImageDirectoryEntryToData(pMapping, FALSE, IMAGE_DIRECTORY_ENTRY_EXPORT, &size)); + if(pHead && pDir) + { + imageType = pHead->FileHeader.Machine; + char* base = static_cast(pMapping); + DWORD rvaExportDir = reinterpret_cast(pDir) - base; + PIMAGE_SECTION_HEADER pSec = NULL; + PDWORD namesAddr = static_cast(ImageRvaToVa(pHead, pMapping, pDir->AddressOfNames, &pSec)); + PWORD ordinalAddr = static_cast(ImageRvaToVa(pHead, pMapping, pDir->AddressOfNameOrdinals, &pSec)); + DWORD numFuncs = pDir->NumberOfFunctions; + DWORD numNames = pDir->NumberOfNames; + DWORD baseOrd = pDir->Base; + + std::set ordinals; + DWORD lastOrd = baseOrd + numFuncs; + for(DWORD i = baseOrd; i < lastOrd; ++i) + { + ordinals.insert(i); + } + + for(DWORD i = 0; i < numNames; ++i) + { + WORD thisZeroBasedOrd = ordinalAddr[i]; + DWORD thisBasedOrd = thisZeroBasedOrd + baseOrd; + ordinals.erase(thisBasedOrd); + LPCSTR name = static_cast(ImageRvaToVa(pHead, pMapping, namesAddr[i], &pSec)); + exports[thisBasedOrd].push_back(name); + } + + for(std::set::const_iterator iter = ordinals.begin(), end = ordinals.end(); + iter != end; + ++iter + ) + { + exports.insert(std::make_pair(*iter, ExportMap::mapped_type())); + } + } +} + +PVOID MapFile(HANDLE hFile, DWORD fileMapPerm, DWORD mappedPerms) +{ + PVOID base = NULL; + HANDLE hMap = CreateFileMappingW( + hFile, + NULL, + fileMapPerm, + 0, + 0, + NULL + ); + if(hMap) + { + base = MapViewOfFile(hMap, mappedPerms, 0, 0, 0); + CloseHandle(hMap); + } + return base; +} + +PVOID MapFile(const wchar_t* fileName, DWORD filePerms, DWORD fileMapPerm, DWORD mappedPerms) +{ + PVOID base = NULL; + HANDLE hFile = CreateFileW( + fileName, + filePerms, + FILE_SHARE_READ, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, + NULL + ); + if(hFile != INVALID_HANDLE_VALUE) + { + base = MapFile(hFile, fileMapPerm, mappedPerms); + CloseHandle(hFile); + } + return base; +} + +PVOID MapFileRO(const wchar_t* fileName, BOOL image) +{ + return MapFile(fileName, GENERIC_READ, PAGE_READONLY | (image ? SEC_IMAGE : 0), FILE_MAP_READ); +} + +std::wstring GetFileName(const wchar_t* pFilePath) +{ + const wchar_t* pAfterSlash = pFilePath, *pSlash = NULL; + while((pSlash = wcspbrk(pAfterSlash, L"\\/")) != NULL) + { + pAfterSlash = pSlash + 1; + } + const wchar_t* pDot = wcschr(pAfterSlash, L'.'); + if(pDot != NULL) + { + return std::wstring(pAfterSlash, pDot); + } + else return std::wstring(pAfterSlash); +} + +std::wstring MakeWString(const char* string) +{ + size_t reqd = mbstowcs(NULL, string, 0); + if(reqd != static_cast(-1)) + { + std::wstring str(reqd, 0); + mbstowcs(&str[0], string, reqd); + return str; + } + return std::wstring(string, string + strlen(string) + 1); +} + +void DoAndWaitForExecution(SHELLEXECUTEINFO& sei) +{ + if(!ShellExecuteEx(&sei)) + { + std::wcerr << L"Couldn't execute \"" << sei.lpFile << L'\n'; + } + else + { + WaitForSingleObject(sei.hProcess, INFINITE); + CloseHandle(sei.hProcess); + } +} + +void CreateLibs(const std::wstring& defFile, const std::wstring& baseName, const std::wstring& outDir, WORD machineType) +{ + std::wstring curDir(1000, 0); + curDir.resize(GetModuleFileName(GetModuleHandle(NULL), &curDir[0], curDir.length())); + curDir.resize(curDir.find_last_of(L"\\/") + 1); + SHELLEXECUTEINFO sei = {sizeof(sei), 0}; + sei.fMask = SEE_MASK_NOCLOSEPROCESS; + sei.hwnd = GetConsoleWindow(); + sei.lpVerb = L"open"; + sei.lpDirectory = outDir.c_str(); + + // 32-bit libs + if(machineType == IMAGE_FILE_MACHINE_I386) + { + std::wcout << L"Creating 32-bit libs...\n"; + // dlltool for mingw (x86) + std::wcout << L"\tCreating lib" << baseName << L".a...\n"; + std::wostringstream pstream; + pstream << L"-d \"" << defFile << L"\" -l lib" << baseName << L".a"; + + std::wstring binary = curDir + L"dlltool.exe"; + std::wstring parameters = pstream.str(); + + sei.lpFile = binary.c_str(); + sei.lpParameters = parameters.c_str(); + + DoAndWaitForExecution(sei); + + pstream.str(L""); + + // link for msvc (x86) + std::wcout << L"\tCreating " << baseName << L".lib...\n"; + pstream << L"/lib /nologo /machine:x86 /def:\"" << defFile << "\" /out:\"" << outDir << baseName << L".lib\""; + + binary = curDir + L"link.exe"; + parameters = pstream.str(); + sei.lpFile = binary.c_str(); + sei.lpParameters = parameters.c_str(); + DoAndWaitForExecution(sei); + } + else + { + std::wcout << L"Creating 64-bit libs...\n"; + // dlltool for mingw (x64) (my fail if running on 32-bit comp) + std::wcout << L"\tlib" << baseName << L"-x64.a...\n"; + + std::wstring binary = curDir + L"dlltool64.exe"; + std::wstring as64Pos = L"\""; + as64Pos += (curDir + L"as64.exe\""); + std::wostringstream pstream; + pstream << L"-d \"" << defFile << L"\" -S " << as64Pos << L" -l lib" << baseName << L"-x64.a"; + + std::wstring parameters = pstream.str(); + sei.lpFile = binary.c_str(); + sei.lpParameters = parameters.c_str(); + DoAndWaitForExecution(sei); + + pstream.str(L""); + + // link for msvc (x64) + std::wcout << L'\t' << baseName << L"-x64.lib...\n"; + binary = curDir + L"link.exe"; + pstream << L"/lib /nologo /machine:x64 /def:\"" << defFile << "\" /out:\"" << outDir << baseName << L"-x64.lib\""; + parameters = pstream.str(); + sei.lpFile = binary.c_str(); + sei.lpParameters = parameters.c_str(); + DoAndWaitForExecution(sei); + } +} + +BOOL CreateDef(LPCWSTR dllFile, const std::wstring& defFile, WORD& machineType) +{ + std::wcout << L"Creating " << defFile << L"...\n"; + // this is FALSE on purpose. If it's true, some dll's (mainly bcrypt.dll from Vista) + // fail to map as an image because of some funkyness with the certificate or + // something (STATUS_INVALID_IMAGE_HASH fyi). So this is just easier + PVOID pMapping = MapFileRO(dllFile, FALSE); + if(pMapping) + { + ExportMap exports; + GetExports(pMapping, exports, machineType); + if(!exports.empty()) + { + std::wofstream defFile(defFile.c_str()); + std::wostringstream expDetails; + defFile << L"LIBRARY \"" << GetFileName(dllFile) << L"\"\n\nEXPORTS\n"; + for(ExportMap::const_iterator iter = exports.begin(), end = exports.end(); + iter != end; + ++iter + ) + { + expDetails.str(L""); + expDetails.clear(); + expDetails << L'\t'; + const ExportMap::mapped_type& names = iter->second; + if(!names.empty()) + { + const std::wstring& initialName = MakeWString(*(names.begin())); + expDetails << initialName << L"\t@" << iter->first << L'\n'; + for(ExportMap::mapped_type::const_iterator namesIter = names.begin() + 1, namesEnd = names.end(); + namesIter != namesEnd; + ++namesIter + ) + { + expDetails << '\t' << MakeWString(*namesIter) << L'=' << initialName << L'\n'; + } + } + // unnamed export + else + { + expDetails << L"Ordinal" << iter->first << L" NONAME\t@" << iter->first << L'\n'; + } + defFile << expDetails.str(); + } + } + else + { + std::wcerr << dllFile << L" has no exports, nothing to do\n"; + return FALSE; + } + UnmapViewOfFile(pMapping); + } + return TRUE; +} + +int __cdecl wmain(int argc, wchar_t** argv) +{ + std::wcout << L"DefLibCreator v1.0 - Airesoft.co.uk\n\n"; + if(argc < 2) + { + puts("Usage: DefLibCreator dll [outDir]"); + return 1; + } + else + { + std::wstring baseFileName = PathFindFileName(argv[1]); + baseFileName.erase(baseFileName.find_last_of('.')); + int outDirArg = (argc >= 3) ? 2 : 1; + LPWSTR pFilePart = NULL; + std::wstring outDir(GetFullPathName(argv[outDirArg], 0, NULL, NULL), 0); + outDir.resize(GetFullPathName(argv[outDirArg], outDir.length(), &outDir[0], &pFilePart)); + // if the explicit output dir wasn't specified, we need to chop the dll filename off the end of outDir + if(outDirArg == 1) + { + outDir.resize(pFilePart - outDir.c_str()); + } + else + { + CreateDirectory(outDir.c_str(), NULL); + } + outDir.push_back(L'\\'); // ensure it ends with a slash + std::wstring defFile(outDir); + defFile += (baseFileName + L".def"); + WORD machineType = 0; + if(CreateDef(argv[1], defFile, machineType)) + { + CreateLibs(defFile, baseFileName, outDir, machineType); + } + } + return 0; +} diff --git a/protocols/Tox/tox/deflibcreator/src/dlc.ico b/protocols/Tox/tox/deflibcreator/src/dlc.ico new file mode 100644 index 0000000000..aa524c729c Binary files /dev/null and b/protocols/Tox/tox/deflibcreator/src/dlc.ico differ diff --git a/protocols/Tox/tox/deflibcreator/src/resource.rc b/protocols/Tox/tox/deflibcreator/src/resource.rc new file mode 100644 index 0000000000..503ec99a76 --- /dev/null +++ b/protocols/Tox/tox/deflibcreator/src/resource.rc @@ -0,0 +1,94 @@ +// Microsoft Visual C++ generated resource script. +// +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winresrc.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.K.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN +END + +2 TEXTINCLUDE +BEGIN + "#include ""winresrc.h""\r\0" +END + +3 TEXTINCLUDE +BEGIN +END + +#endif // APSTUDIO_INVOKED + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +1 ICON "dlc.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "080904b0" + BEGIN + VALUE "CompanyName", "Airesoft" + VALUE "FileDescription", "DefLibCreator" + VALUE "FileVersion", "1, 0, 0, 0" + VALUE "InternalName", "DefLibCreator.exe" + VALUE "LegalCopyright", "Copyright (C) Airesoft 2012" + VALUE "OriginalFilename", "DefLibCreator.exe" + VALUE "ProductName", "DefLibCreator" + VALUE "ProductVersion", "1, 0, 0, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x809, 1200 + END +END + +#endif // English (U.K.) resources +///////////////////////////////////////////////////////////////////////////// + +/// Manifest +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST deflib.manifest \ No newline at end of file diff --git a/protocols/Tox/tox/dll/x64/libtox.dll b/protocols/Tox/tox/dll/x64/libtox.dll new file mode 100644 index 0000000000..832ff1d072 Binary files /dev/null and b/protocols/Tox/tox/dll/x64/libtox.dll differ diff --git a/protocols/Tox/tox/dll/x86/libtox.dll b/protocols/Tox/tox/dll/x86/libtox.dll new file mode 100644 index 0000000000..f892c75fb7 Binary files /dev/null and b/protocols/Tox/tox/dll/x86/libtox.dll differ diff --git a/protocols/Tox/tox/generate_libs.cmd b/protocols/Tox/tox/generate_libs.cmd new file mode 100644 index 0000000000..6111e156e1 --- /dev/null +++ b/protocols/Tox/tox/generate_libs.cmd @@ -0,0 +1,3 @@ +deflibcreator\deflibcreator dll\x86\libtox.dll lib\x86\ + +deflibcreator\deflibcreator dll\x64\libtox.dll lib\x64\ diff --git a/protocols/Tox/tox/include/tox.h b/protocols/Tox/tox/include/tox.h new file mode 100644 index 0000000000..5810c1289c --- /dev/null +++ b/protocols/Tox/tox/include/tox.h @@ -0,0 +1,683 @@ +/* tox.h + * + * The Tox public API. + * + * Copyright (C) 2013 Tox project All Rights Reserved. + * + * This file is part of Tox. + * + * Tox is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tox is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tox. If not, see . + * + */ + +#ifndef TOX_H +#define TOX_H + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +#define TOX_MAX_NAME_LENGTH 128 + +/* Maximum length of single messages after which they should be split. */ +#define TOX_MAX_MESSAGE_LENGTH 1368 +#define TOX_MAX_STATUSMESSAGE_LENGTH 1007 +#define TOX_CLIENT_ID_SIZE 32 + +#define TOX_FRIEND_ADDRESS_SIZE (TOX_CLIENT_ID_SIZE + sizeof(uint32_t) + sizeof(uint16_t)) + +#define TOX_ENABLE_IPV6_DEFAULT 1 + +/* Errors for m_addfriend + * FAERR - Friend Add Error + */ +enum { + TOX_FAERR_TOOLONG = -1, + TOX_FAERR_NOMESSAGE = -2, + TOX_FAERR_OWNKEY = -3, + TOX_FAERR_ALREADYSENT = -4, + TOX_FAERR_UNKNOWN = -5, + TOX_FAERR_BADCHECKSUM = -6, + TOX_FAERR_SETNEWNOSPAM = -7, + TOX_FAERR_NOMEM = -8 +}; + +/* USERSTATUS - + * Represents userstatuses someone can have. + */ +typedef enum { + TOX_USERSTATUS_NONE, + TOX_USERSTATUS_AWAY, + TOX_USERSTATUS_BUSY, + TOX_USERSTATUS_INVALID +} +TOX_USERSTATUS; + +#ifndef __TOX_DEFINED__ +#define __TOX_DEFINED__ +typedef struct Tox Tox; +#endif + +/* NOTE: Strings in Tox are all UTF-8, (This means that there is no terminating NULL character.) + * + * The exact buffer you send will be received at the other end without modification. + * + * Do not treat Tox strings as C strings. + */ + +/* return TOX_FRIEND_ADDRESS_SIZE byte address to give to others. + * format: [client_id (32 bytes)][nospam number (4 bytes)][checksum (2 bytes)] + */ +void tox_get_address(const Tox *tox, uint8_t *address); + +/* Add a friend. + * Set the data that will be sent along with friend request. + * address is the address of the friend (returned by getaddress of the friend you wish to add) it must be TOX_FRIEND_ADDRESS_SIZE bytes. TODO: add checksum. + * data is the data and length is the length. + * + * return the friend number if success. + * return TOX_FAERR_TOOLONG if message length is too long. + * return TOX_FAERR_NOMESSAGE if no message (message length must be >= 1 byte). + * return TOX_FAERR_OWNKEY if user's own key. + * return TOX_FAERR_ALREADYSENT if friend request already sent or already a friend. + * return TOX_FAERR_UNKNOWN for unknown error. + * return TOX_FAERR_BADCHECKSUM if bad checksum in address. + * return TOX_FAERR_SETNEWNOSPAM if the friend was already there but the nospam was different. + * (the nospam for that friend was set to the new one). + * return TOX_FAERR_NOMEM if increasing the friend list size fails. + */ +int32_t tox_add_friend(Tox *tox, const uint8_t *address, const uint8_t *data, uint16_t length); + + +/* Add a friend without sending a friendrequest. + * return the friend number if success. + * return -1 if failure. + */ +int32_t tox_add_friend_norequest(Tox *tox, const uint8_t *client_id); + +/* return the friend number associated to that client id. + return -1 if no such friend */ +int32_t tox_get_friend_number(const Tox *tox, const uint8_t *client_id); + +/* Copies the public key associated to that friend id into client_id buffer. + * Make sure that client_id is of size CLIENT_ID_SIZE. + * return 0 if success. + * return -1 if failure. + */ +int tox_get_client_id(const Tox *tox, int32_t friendnumber, uint8_t *client_id); + +/* Remove a friend. + * + * return 0 if success. + * return -1 if failure. + */ +int tox_del_friend(Tox *tox, int32_t friendnumber); + +/* Checks friend's connecting status. + * + * return 1 if friend is connected to us (Online). + * return 0 if friend is not connected to us (Offline). + * return -1 on failure. + */ +int tox_get_friend_connection_status(const Tox *tox, int32_t friendnumber); + +/* Checks if there exists a friend with given friendnumber. + * + * return 1 if friend exists. + * return 0 if friend doesn't exist. + */ +int tox_friend_exists(const Tox *tox, int32_t friendnumber); + +/* Send a text chat message to an online friend. + * + * return the message id if packet was successfully put into the send queue. + * return 0 if it was not. + * + * maximum length of messages is TOX_MAX_MESSAGE_LENGTH, your client must split larger messages + * or else sending them will not work. No the core will not split messages for you because that + * requires me to parse UTF-8. + * + * You will want to retain the return value, it will be passed to your read_receipt callback + * if one is received. + * m_sendmessage_withid will send a message with the id of your choosing, + * however we can generate an id for you by calling plain m_sendmessage. + */ +uint32_t tox_send_message(Tox *tox, int32_t friendnumber, const uint8_t *message, uint32_t length); +uint32_t tox_send_message_withid(Tox *tox, int32_t friendnumber, uint32_t theid, const uint8_t *message, + uint32_t length); + +/* Send an action to an online friend. + * + * return the message id if packet was successfully put into the send queue. + * return 0 if it was not. + * + * maximum length of actions is TOX_MAX_MESSAGE_LENGTH, your client must split larger actions + * or else sending them will not work. No the core will not split actions for you because that + * requires me to parse UTF-8. + * + * You will want to retain the return value, it will be passed to your read_receipt callback + * if one is received. + * m_sendaction_withid will send an action message with the id of your choosing, + * however we can generate an id for you by calling plain m_sendaction. + */ +uint32_t tox_send_action(Tox *tox, int32_t friendnumber, const uint8_t *action, uint32_t length); +uint32_t tox_send_action_withid(Tox *tox, int32_t friendnumber, uint32_t theid, const uint8_t *action, uint32_t length); + +/* Set our nickname. + * name must be a string of maximum MAX_NAME_LENGTH length. + * length must be at least 1 byte. + * length is the length of name with the NULL terminator. + * + * return 0 if success. + * return -1 if failure. + */ +int tox_set_name(Tox *tox, const uint8_t *name, uint16_t length); + +/* + * Get your nickname. + * m - The messenger context to use. + * name - needs to be a valid memory location with a size of at least MAX_NAME_LENGTH (128) bytes. + * + * return length of name. + * return 0 on error. + */ +uint16_t tox_get_self_name(const Tox *tox, uint8_t *name); + +/* Get name of friendnumber and put it in name. + * name needs to be a valid memory location with a size of at least MAX_NAME_LENGTH (128) bytes. + * + * return length of name if success. + * return -1 if failure. + */ +int tox_get_name(const Tox *tox, int32_t friendnumber, uint8_t *name); + +/* returns the length of name on success. + * returns -1 on failure. + */ +int tox_get_name_size(const Tox *tox, int32_t friendnumber); +int tox_get_self_name_size(const Tox *tox); + +/* Set our user status. + * + * userstatus must be one of TOX_USERSTATUS values. + * max length of the status is TOX_MAX_STATUSMESSAGE_LENGTH. + * + * returns 0 on success. + * returns -1 on failure. + */ +int tox_set_status_message(Tox *tox, const uint8_t *status, uint16_t length); +int tox_set_user_status(Tox *tox, uint8_t userstatus); + +/* returns the length of status message on success. + * returns -1 on failure. + */ +int tox_get_status_message_size(const Tox *tox, int32_t friendnumber); +int tox_get_self_status_message_size(const Tox *tox); + +/* Copy friendnumber's status message into buf, truncating if size is over maxlen. + * Get the size you need to allocate from m_get_statusmessage_size. + * The self variant will copy our own status message. + * + * returns the length of the copied data on success + * retruns -1 on failure. + */ +int tox_get_status_message(const Tox *tox, int32_t friendnumber, uint8_t *buf, uint32_t maxlen); +int tox_get_self_status_message(const Tox *tox, uint8_t *buf, uint32_t maxlen); + +/* return one of TOX_USERSTATUS values. + * Values unknown to your application should be represented as TOX_USERSTATUS_NONE. + * As above, the self variant will return our own TOX_USERSTATUS. + * If friendnumber is invalid, this shall return TOX_USERSTATUS_INVALID. + */ +uint8_t tox_get_user_status(const Tox *tox, int32_t friendnumber); +uint8_t tox_get_self_user_status(const Tox *tox); + + +/* returns timestamp of last time friendnumber was seen online, or 0 if never seen. + * returns -1 on error. + */ +uint64_t tox_get_last_online(const Tox *tox, int32_t friendnumber); + +/* Set our typing status for a friend. + * You are responsible for turning it on or off. + * + * returns 0 on success. + * returns -1 on failure. + */ +int tox_set_user_is_typing(Tox *tox, int32_t friendnumber, uint8_t is_typing); + +/* Get the typing status of a friend. + * + * returns 0 if friend is not typing. + * returns 1 if friend is typing. + */ +uint8_t tox_get_is_typing(const Tox *tox, int32_t friendnumber); + +/* Return the number of friends in the instance m. + * You should use this to determine how much memory to allocate + * for copy_friendlist. */ +uint32_t tox_count_friendlist(const Tox *tox); + +/* Return the number of online friends in the instance m. */ +uint32_t tox_get_num_online_friends(const Tox *tox); + +/* Copy a list of valid friend IDs into the array out_list. + * If out_list is NULL, returns 0. + * Otherwise, returns the number of elements copied. + * If the array was too small, the contents + * of out_list will be truncated to list_size. */ +uint32_t tox_get_friendlist(const Tox *tox, int32_t *out_list, uint32_t list_size); + +/* Set the function that will be executed when a friend request is received. + * Function format is function(Tox *tox, uint8_t * public_key, uint8_t * data, uint16_t length, void *userdata) + */ +void tox_callback_friend_request(Tox *tox, void (*function)(Tox *tox, const uint8_t *, const uint8_t *, uint16_t, + void *), void *userdata); + +/* Set the function that will be executed when a message from a friend is received. + * Function format is: function(Tox *tox, int32_t friendnumber, uint8_t * message, uint16_t length, void *userdata) + */ +void tox_callback_friend_message(Tox *tox, void (*function)(Tox *tox, int32_t, const uint8_t *, uint16_t, void *), + void *userdata); + +/* Set the function that will be executed when an action from a friend is received. + * Function format is: function(Tox *tox, int32_t friendnumber, uint8_t * action, uint16_t length, void *userdata) + */ +void tox_callback_friend_action(Tox *tox, void (*function)(Tox *tox, int32_t, const uint8_t *, uint16_t, void *), + void *userdata); + +/* Set the callback for name changes. + * function(Tox *tox, int32_t friendnumber, uint8_t *newname, uint16_t length, void *userdata) + * You are not responsible for freeing newname + */ +void tox_callback_name_change(Tox *tox, void (*function)(Tox *tox, int32_t, const uint8_t *, uint16_t, void *), + void *userdata); + +/* Set the callback for status message changes. + * function(Tox *tox, int32_t friendnumber, uint8_t *newstatus, uint16_t length, void *userdata) + * You are not responsible for freeing newstatus. + */ +void tox_callback_status_message(Tox *tox, void (*function)(Tox *tox, int32_t, const uint8_t *, uint16_t, void *), + void *userdata); + +/* Set the callback for status type changes. + * function(Tox *tox, int32_t friendnumber, uint8_t TOX_USERSTATUS, void *userdata) + */ +void tox_callback_user_status(Tox *tox, void (*function)(Tox *tox, int32_t, uint8_t, void *), void *userdata); + +/* Set the callback for typing changes. + * function (Tox *tox, int32_t friendnumber, uint8_t is_typing, void *userdata) + */ +void tox_callback_typing_change(Tox *tox, void (*function)(Tox *tox, int32_t, uint8_t, void *), void *userdata); + +/* Set the callback for read receipts. + * function(Tox *tox, int32_t friendnumber, uint32_t receipt, void *userdata) + * + * If you are keeping a record of returns from m_sendmessage; + * receipt might be one of those values, meaning the message + * has been received on the other side. + * Since core doesn't track ids for you, receipt may not correspond to any message. + * In that case, you should discard it. + */ +void tox_callback_read_receipt(Tox *tox, void (*function)(Tox *tox, int32_t, uint32_t, void *), void *userdata); + +/* Set the callback for connection status changes. + * function(Tox *tox, int32_t friendnumber, uint8_t status, void *userdata) + * + * Status: + * 0 -- friend went offline after being previously online + * 1 -- friend went online + * + * NOTE: This callback is not called when adding friends, thus the "after + * being previously online" part. it's assumed that when adding friends, + * their connection status is offline. + */ +void tox_callback_connection_status(Tox *tox, void (*function)(Tox *tox, int32_t, uint8_t, void *), void *userdata); + + +/**********ADVANCED FUNCTIONS (If you don't know what they do you can safely ignore them.) ************/ + +/* Functions to get/set the nospam part of the id. + */ +uint32_t tox_get_nospam(const Tox *tox); +void tox_set_nospam(Tox *tox, uint32_t nospam); + +/* Copy the public and secret key from the Tox object. + public_key and secret_key must be 32 bytes big. + if the pointer is NULL, no data will be copied to it.*/ +void tox_get_keys(Tox *tox, uint8_t *public_key, uint8_t *secret_key); + +/**********GROUP CHAT FUNCTIONS: WARNING Group chats will be rewritten so this might change ************/ + +/* Set the callback for group invites. + * + * Function(Tox *tox, int friendnumber, uint8_t *group_public_key, void *userdata) + */ +void tox_callback_group_invite(Tox *tox, void (*function)(Tox *tox, int32_t, const uint8_t *, void *), void *userdata); + +/* Set the callback for group messages. + * + * Function(Tox *tox, int groupnumber, int friendgroupnumber, uint8_t * message, uint16_t length, void *userdata) + */ +void tox_callback_group_message(Tox *tox, void (*function)(Tox *tox, int, int, const uint8_t *, uint16_t, void *), + void *userdata); + +/* Set the callback for group actions. + * + * Function(Tox *tox, int groupnumber, int friendgroupnumber, uint8_t * action, uint16_t length, void *userdata) + */ +void tox_callback_group_action(Tox *tox, void (*function)(Tox *tox, int, int, const uint8_t *, uint16_t, void *), + void *userdata); + +/* Set callback function for peer name list changes. + * + * It gets called every time the name list changes(new peer/name, deleted peer) + * Function(Tox *tox, int groupnumber, int peernumber, TOX_CHAT_CHANGE change, void *userdata) + */ +typedef enum { + TOX_CHAT_CHANGE_PEER_ADD, + TOX_CHAT_CHANGE_PEER_DEL, + TOX_CHAT_CHANGE_PEER_NAME, +} TOX_CHAT_CHANGE; + +void tox_callback_group_namelist_change(Tox *tox, void (*function)(Tox *tox, int, int, uint8_t, void *), + void *userdata); + +/* Creates a new groupchat and puts it in the chats array. + * + * return group number on success. + * return -1 on failure. + */ +int tox_add_groupchat(Tox *tox); + +/* Delete a groupchat from the chats array. + * + * return 0 on success. + * return -1 if failure. + */ +int tox_del_groupchat(Tox *tox, int groupnumber); + +/* Copy the name of peernumber who is in groupnumber to name. + * name must be at least TOX_MAX_NAME_LENGTH long. + * + * return length of name if success + * return -1 if failure + */ +int tox_group_peername(const Tox *tox, int groupnumber, int peernumber, uint8_t *name); + +/* invite friendnumber to groupnumber + * return 0 on success + * return -1 on failure + */ +int tox_invite_friend(Tox *tox, int32_t friendnumber, int groupnumber); + +/* Join a group (you need to have been invited first.) + * + * returns group number on success + * returns -1 on failure. + */ +int tox_join_groupchat(Tox *tox, int32_t friendnumber, const uint8_t *friend_group_public_key); + +/* send a group message + * return 0 on success + * return -1 on failure + */ +int tox_group_message_send(Tox *tox, int groupnumber, const uint8_t *message, uint32_t length); + +/* send a group action + * return 0 on success + * return -1 on failure + */ +int tox_group_action_send(Tox *tox, int groupnumber, const uint8_t *action, uint32_t length); + +/* Return the number of peers in the group chat on success. + * return -1 on failure + */ +int tox_group_number_peers(const Tox *tox, int groupnumber); + +/* List all the peers in the group chat. + * + * Copies the names of the peers to the name[length][TOX_MAX_NAME_LENGTH] array. + * + * Copies the lengths of the names to lengths[length] + * + * returns the number of peers on success. + * + * return -1 on failure. + */ +int tox_group_get_names(const Tox *tox, int groupnumber, uint8_t names[][TOX_MAX_NAME_LENGTH], uint16_t lengths[], + uint16_t length); + +/* Return the number of chats in the instance m. + * You should use this to determine how much memory to allocate + * for copy_chatlist. */ +uint32_t tox_count_chatlist(const Tox *tox); + +/* Copy a list of valid chat IDs into the array out_list. + * If out_list is NULL, returns 0. + * Otherwise, returns the number of elements copied. + * If the array was too small, the contents + * of out_list will be truncated to list_size. */ +uint32_t tox_get_chatlist(const Tox *tox, int *out_list, uint32_t list_size); + + +/****************FILE SENDING FUNCTIONS*****************/ +/* NOTE: This how to will be updated. + * + * HOW TO SEND FILES CORRECTLY: + * 1. Use tox_new_file_sender(...) to create a new file sender. + * 2. Wait for the callback set with tox_callback_file_control(...) to be called with receive_send == 1 and control_type == TOX_FILECONTROL_ACCEPT + * 3. Send the data with tox_file_send_data(...) with chunk size tox_file_data_size(...) + * 4. When sending is done, send a tox_file_send_control(...) with send_receive = 0 and message_id = TOX_FILECONTROL_FINISHED + * 5. when the callback set with tox_callback_file_control(...) is called with receive_send == 1 and control_type == TOX_FILECONTROL_FINISHED + * the other person has received the file correctly. + * + * HOW TO RECEIVE FILES CORRECTLY: + * 1. wait for the callback set with tox_callback_file_send_request(...) + * 2. accept or refuse the connection with tox_file_send_control(...) with send_receive = 1 and message_id = TOX_FILECONTROL_ACCEPT or TOX_FILECONTROL_KILL + * 3. save all the data received with the callback set with tox_callback_file_data(...) to a file. + * 4. when the callback set with tox_callback_file_control(...) is called with receive_send == 0 and control_type == TOX_FILECONTROL_FINISHED + * the file is done transferring. + * 5. send a tox_file_send_control(...) with send_receive = 1 and message_id = TOX_FILECONTROL_FINISHED to confirm that we did receive the file. + * + * tox_file_data_remaining(...) can be used to know how many bytes are left to send/receive. + * + * If the connection breaks during file sending (The other person goes offline without pausing the sending and then comes back) + * the receiver must send a control packet with send_receive == 1 message_id = TOX_FILECONTROL_RESUME_BROKEN and the data being + * a uint64_t (in host byte order) containing the number of bytes received. + * + * If the sender receives this packet, he must send a control packet with send_receive == 0 and control_type == TOX_FILECONTROL_ACCEPT + * then he must start sending file data from the position (data , uint64_t in host byte order) received in the TOX_FILECONTROL_RESUME_BROKEN packet. + * + * To pause a file transfer send a control packet with control_type == TOX_FILECONTROL_PAUSE. + * To unpause a file transfer send a control packet with control_type == TOX_FILECONTROL_ACCEPT. + * + * If you receive a control packet with receive_send == 1 and control_type == TOX_FILECONTROL_PAUSE, you must stop sending filenumber until the other + * person sends a control packet with send_receive == 0 and control_type == TOX_FILECONTROL_ACCEPT with the filenumber being a paused filenumber. + * + * If you receive a control packet with receive_send == 0 and control_type == TOX_FILECONTROL_PAUSE, it means the sender of filenumber has paused the + * transfer and will resume it later with a control packet with send_receive == 1 and control_type == TOX_FILECONTROL_ACCEPT for that file number. + * + * More to come... + */ + +enum { + TOX_FILECONTROL_ACCEPT, + TOX_FILECONTROL_PAUSE, + TOX_FILECONTROL_KILL, + TOX_FILECONTROL_FINISHED, + TOX_FILECONTROL_RESUME_BROKEN +}; +/* Set the callback for file send requests. + * + * Function(Tox *tox, int32_t friendnumber, uint8_t filenumber, uint64_t filesize, uint8_t *filename, uint16_t filename_length, void *userdata) + */ +void tox_callback_file_send_request(Tox *tox, void (*function)(Tox *m, int32_t, uint8_t, uint64_t, const uint8_t *, + uint16_t, void *), void *userdata); + +/* Set the callback for file control requests. + * + * receive_send is 1 if the message is for a slot on which we are currently sending a file and 0 if the message + * is for a slot on which we are receiving the file + * + * Function(Tox *tox, int32_t friendnumber, uint8_t receive_send, uint8_t filenumber, uint8_t control_type, uint8_t *data, uint16_t length, void *userdata) + * + */ +void tox_callback_file_control(Tox *tox, void (*function)(Tox *m, int32_t, uint8_t, uint8_t, uint8_t, const uint8_t *, + uint16_t, void *), void *userdata); + +/* Set the callback for file data. + * + * Function(Tox *tox, int32_t friendnumber, uint8_t filenumber, uint8_t *data, uint16_t length, void *userdata) + * + */ +void tox_callback_file_data(Tox *tox, void (*function)(Tox *m, int32_t, uint8_t, const uint8_t *, uint16_t length, + void *), void *userdata); + + +/* Send a file send request. + * Maximum filename length is 255 bytes. + * return file number on success + * return -1 on failure + */ +int tox_new_file_sender(Tox *tox, int32_t friendnumber, uint64_t filesize, const uint8_t *filename, + uint16_t filename_length); + +/* Send a file control request. + * + * send_receive is 0 if we want the control packet to target a file we are currently sending, + * 1 if it targets a file we are currently receiving. + * + * return 0 on success + * return -1 on failure + */ +int tox_file_send_control(Tox *tox, int32_t friendnumber, uint8_t send_receive, uint8_t filenumber, uint8_t message_id, + const uint8_t *data, uint16_t length); + +/* Send file data. + * + * return 0 on success + * return -1 on failure + */ +int tox_file_send_data(Tox *tox, int32_t friendnumber, uint8_t filenumber, const uint8_t *data, uint16_t length); + +/* Returns the recommended/maximum size of the filedata you send with tox_file_send_data() + * + * return size on success + * return -1 on failure (currently will never return -1) + */ +int tox_file_data_size(const Tox *tox, int32_t friendnumber); + +/* Give the number of bytes left to be sent/received. + * + * send_receive is 0 if we want the sending files, 1 if we want the receiving. + * + * return number of bytes remaining to be sent/received on success + * return 0 on failure + */ +uint64_t tox_file_data_remaining(const Tox *tox, int32_t friendnumber, uint8_t filenumber, uint8_t send_receive); + +/***************END OF FILE SENDING FUNCTIONS******************/ + +/* + * Use this function to bootstrap the client. + */ + +/* Resolves address into an IP address. If successful, sends a "get nodes" + * request to the given node with ip, port (in host byte order). + * and public_key to setup connections + * + * address can be a hostname or an IP address (IPv4 or IPv6). + * + * returns 1 if the address could be converted into an IP address + * returns 0 otherwise + */ +int tox_bootstrap_from_address(Tox *tox, const char *address, uint16_t port, const uint8_t *public_key); + +/* return 0 if we are not connected to the DHT. + * return 1 if we are. + */ +int tox_isconnected(const Tox *tox); + +typedef struct { + /* + * The type of UDP socket created depends on ipv6enabled: + * If set to 0 (zero), creates an IPv4 socket which subsequently only allows + * IPv4 communication + * If set to anything else (default), creates an IPv6 socket which allows both IPv4 AND + * IPv6 communication + */ + uint8_t ipv6enabled; + + /* Set to 1 to disable udp support. (default: 0) + This will force Tox to use TCP only which may slow things down. + Disabling udp support is necessary when using anonymous proxies or Tor.*/ + uint8_t udp_disabled; + + /* Enable proxy support. (only basic TCP socks5 proxy currently supported.) (default: 0 (disabled))*/ + uint8_t proxy_enabled; + char proxy_address[256]; /* Proxy ip or domain in NULL terminated string format. */ + uint16_t proxy_port; /* Proxy port: in host byte order. */ +} Tox_Options; + +/* + * Run this function at startup. + * + * Options are some options that can be passed to the Tox instance (see above struct). + * + * If options is NULL, tox_new() will use default settings. + * + * Initializes a tox structure + * return allocated instance of tox on success. + * return NULL on failure. + */ +Tox *tox_new(Tox_Options *options); + +/* Run this before closing shop. + * Free all datastructures. */ +void tox_kill(Tox *tox); + +/* Return the time in milliseconds before tox_do() should be called again + * for optimal performance. + * + * returns time (in ms) before the next tox_do() needs to be run on success. + */ +uint32_t tox_do_interval(Tox *tox); + +/* The main loop that needs to be run in intervals of tox_do_interval() ms. */ +void tox_do(Tox *tox); + +/* SAVING AND LOADING FUNCTIONS: */ + +/* return size of messenger data (for saving). */ +uint32_t tox_size(const Tox *tox); + +/* Save the messenger in data (must be allocated memory of size Messenger_size()). */ +void tox_save(const Tox *tox, uint8_t *data); + +/* Load the messenger from data of size length. + * + * returns 0 on success + * returns -1 on failure + */ +int tox_load(Tox *tox, const uint8_t *data, uint32_t length); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/protocols/Tox/tox/include/toxav.h b/protocols/Tox/tox/include/toxav.h new file mode 100644 index 0000000000..e31c7aad1f --- /dev/null +++ b/protocols/Tox/tox/include/toxav.h @@ -0,0 +1,389 @@ +/** toxav.h + * + * Copyright (C) 2013 Tox project All Rights Reserved. + * + * This file is part of Tox. + * + * Tox is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tox is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tox. If not, see . + * + */ + + +#ifndef __TOXAV +#define __TOXAV +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* vpx_image_t */ +#include + +typedef void ( *ToxAVCallback ) ( void *agent, int32_t call_idx, void *arg ); +typedef struct _ToxAv ToxAv; + +#ifndef __TOX_DEFINED__ +#define __TOX_DEFINED__ +typedef struct Tox Tox; +#endif + +#define RTP_PAYLOAD_SIZE 65535 + + +/** + * @brief Callbacks ids that handle the call states. + */ +typedef enum { + /* Requests */ + av_OnInvite, + av_OnStart, + av_OnCancel, + av_OnReject, + av_OnEnd, + + /* Responses */ + av_OnRinging, + av_OnStarting, + av_OnEnding, + + /* Protocol */ + av_OnRequestTimeout, + av_OnPeerTimeout, + av_OnMediaChange +} ToxAvCallbackID; + + +/** + * @brief Call type identifier. + */ +typedef enum { + TypeAudio = 192, + TypeVideo +} ToxAvCallType; + + +typedef enum { + av_CallNonExistant = -1, + av_CallInviting, /* when sending call invite */ + av_CallStarting, /* when getting call invite */ + av_CallActive, + av_CallHold, + av_CallHanged_up +} ToxAvCallState; + +/** + * @brief Error indicators. + */ +typedef enum { + ErrorNone = 0, + ErrorInternal = -1, /* Internal error */ + ErrorAlreadyInCall = -2, /* Already has an active call */ + ErrorNoCall = -3, /* Trying to perform call action while not in a call */ + ErrorInvalidState = -4, /* Trying to perform call action while in invalid state*/ + ErrorNoRtpSession = -5, /* Trying to perform rtp action on invalid session */ + ErrorAudioPacketLost = -6, /* Indicating packet loss */ + ErrorStartingAudioRtp = -7, /* Error in toxav_prepare_transmission() */ + ErrorStartingVideoRtp = -8 , /* Error in toxav_prepare_transmission() */ + ErrorTerminatingAudioRtp = -9, /* Returned in toxav_kill_transmission() */ + ErrorTerminatingVideoRtp = -10, /* Returned in toxav_kill_transmission() */ + ErrorPacketTooLarge = -11, /* Buffer exceeds size while encoding */ + ErrorInvalidCodecState = -12, /* Codec state not initialized */ + +} ToxAvError; + + +/** + * @brief Locally supported capabilities. + */ +typedef enum { + AudioEncoding = 1 << 0, + AudioDecoding = 1 << 1, + VideoEncoding = 1 << 2, + VideoDecoding = 1 << 3 +} ToxAvCapabilities; + + +/** + * @brief Encoding settings. + */ +typedef struct _ToxAvCodecSettings { + ToxAvCallType call_type; + + uint32_t video_bitrate; /* In kbits/s */ + uint16_t max_video_width; /* In px */ + uint16_t max_video_height; /* In px */ + + uint32_t audio_bitrate; /* In bits/s */ + uint16_t audio_frame_duration; /* In ms */ + uint32_t audio_sample_rate; /* In Hz */ + uint32_t audio_channels; +} ToxAvCSettings; + +extern const ToxAvCSettings av_DefaultSettings; +extern const uint32_t av_jbufdc; /* Jitter buffer default capacity */ +extern const uint32_t av_VADd; /* VAD default treshold */ + +/** + * @brief Start new A/V session. There can only be one session at the time. If you register more + * it will result in undefined behaviour. + * + * @param messenger The messenger handle. + * @param userdata The agent handling A/V session (i.e. phone). + * @param video_width Width of video frame. + * @param video_height Height of video frame. + * @return ToxAv* + * @retval NULL On error. + */ +ToxAv *toxav_new(Tox *messenger, int32_t max_calls); + +/** + * @brief Remove A/V session. + * + * @param av Handler. + * @return void + */ +void toxav_kill(ToxAv *av); + +/** + * @brief Register callback for call state. + * + * @param av Handler. + * @param callback The callback + * @param id One of the ToxAvCallbackID values + * @return void + */ +void toxav_register_callstate_callback (ToxAv *av, ToxAVCallback callback, ToxAvCallbackID id, void *userdata); + +/** + * @brief Register callback for recieving audio data + * + * @param av Handler. + * @param callback The callback + * @return void + */ +void toxav_register_audio_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, int16_t *, int, void *), + void *user_data); + +/** + * @brief Register callback for recieving video data + * + * @param av Handler. + * @param callback The callback + * @return void + */ +void toxav_register_video_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, vpx_image_t *, void *), + void *user_data); + +/** + * @brief Call user. Use its friend_id. + * + * @param av Handler. + * @param user The user. + * @param call_type Call type. + * @param ringing_seconds Ringing timeout. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_call(ToxAv *av, int32_t *call_index, int user, const ToxAvCSettings *csettings, int ringing_seconds); + +/** + * @brief Hangup active call. + * + * @param av Handler. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_hangup(ToxAv *av, int32_t call_index); + +/** + * @brief Answer incomming call. + * + * @param av Handler. + * @param call_type Answer with... + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_answer(ToxAv *av, int32_t call_index, const ToxAvCSettings *csettings ); + +/** + * @brief Reject incomming call. + * + * @param av Handler. + * @param reason Optional reason. Set NULL if none. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_reject(ToxAv *av, int32_t call_index, const char *reason); + +/** + * @brief Cancel outgoing request. + * + * @param av Handler. + * @param reason Optional reason. + * @param peer_id peer friend_id + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_cancel(ToxAv *av, int32_t call_index, int peer_id, const char *reason); + +/** + * @brief Notify peer that we are changing call settings + * + * @param av Handler. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_change_settings(ToxAv *av, int32_t call_index, const ToxAvCSettings *csettings); + +/** + * @brief Terminate transmission. Note that transmission will be terminated without informing remote peer. + * + * @param av Handler. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_stop_call(ToxAv *av, int32_t call_index); + +/** + * @brief Must be call before any RTP transmission occurs. + * + * @param av Handler. + * @param support_video Is video supported ? 1 : 0 + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_prepare_transmission(ToxAv *av, int32_t call_index, uint32_t jbuf_size, uint32_t VAD_treshold, + int support_video); + +/** + * @brief Call this at the end of the transmission. + * + * @param av Handler. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_kill_transmission(ToxAv *av, int32_t call_index); + +/** + * @brief Encode and send video packet. + * + * @param av Handler. + * @param frame The encoded frame. + * @param frame_size The size of the encoded frame. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_send_video ( ToxAv *av, int32_t call_index, const uint8_t *frame, unsigned int frame_size); + +/** + * @brief Send audio frame. + * + * @param av Handler. + * @param data The audio data encoded with toxav_prepare_audio_frame(). + * @param size Its size in number of bytes. + * @return int + * @retval 0 Success. + * @retval ToxAvError On error. + */ +int toxav_send_audio ( ToxAv *av, int32_t call_index, const uint8_t *frame, unsigned int size); + +/** + * @brief Encode video frame + * + * @param av Handler + * @param dest Where to + * @param dest_max Max size + * @param input What to encode + * @return int + * @retval ToxAvError On error. + * @retval >0 On success + */ +int toxav_prepare_video_frame ( ToxAv *av, int32_t call_index, uint8_t *dest, int dest_max, vpx_image_t *input ); + +/** + * @brief Encode audio frame + * + * @param av Handler + * @param dest dest + * @param dest_max Max dest size + * @param frame The frame + * @param frame_size The frame size + * @return int + * @retval ToxAvError On error. + * @retval >0 On success + */ +int toxav_prepare_audio_frame ( ToxAv *av, int32_t call_index, uint8_t *dest, int dest_max, const int16_t *frame, + int frame_size); + +/** + * @brief Get peer transmission type. It can either be audio or video. + * + * @param av Handler. + * @param peer The peer + * @return int + * @retval ToxAvCallType On success. + * @retval ToxAvError On error. + */ +int toxav_get_peer_csettings ( ToxAv *av, int32_t call_index, int peer, ToxAvCSettings *dest ); + +/** + * @brief Get id of peer participating in conversation + * + * @param av Handler + * @param peer peer index + * @return int + * @retval ToxAvError No peer id + */ +int toxav_get_peer_id ( ToxAv *av, int32_t call_index, int peer ); + +/** + * @brief Get current call state + * + * @param av Handler + * @param call_index What call + * @return int + * @retval ToxAvCallState State id + */ +ToxAvCallState toxav_get_call_state ( ToxAv *av, int32_t call_index ); +/** + * @brief Is certain capability supported + * + * @param av Handler + * @return int + * @retval 1 Yes. + * @retval 0 No. + */ +int toxav_capability_supported ( ToxAv *av, int32_t call_index, ToxAvCapabilities capability ); + + +Tox *toxav_get_tox(ToxAv *av); + +int toxav_has_activity ( ToxAv *av, int32_t call_index, int16_t *PCM, uint16_t frame_size, float ref_energy ); + +#ifdef __cplusplus +} +#endif + +#endif /* __TOXAV */ diff --git a/protocols/Tox/tox/include/toxdns.h b/protocols/Tox/tox/include/toxdns.h new file mode 100644 index 0000000000..a0cc323b43 --- /dev/null +++ b/protocols/Tox/tox/include/toxdns.h @@ -0,0 +1,85 @@ +/* toxdns.h + * + * Tox secure username DNS toxid resolving functions. + * + * Copyright (C) 2014 Tox project All Rights Reserved. + * + * This file is part of Tox. + * + * Tox is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Tox is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Tox. If not, see . + * + */ + +#ifndef TOXDNS_H +#define TOXDNS_H + +#include + +/* How to use this api to make secure tox dns3 requests: + * + * 1. Get the public key of a server that supports tox dns3. + * 2. use tox_dns3_new() to create a new object to create DNS requests + * and handle responses for that server. + * 3. Use tox_generate_dns3_string() to generate a string based on the name we want to query and a request_id + * that must be stored somewhere for when we want to decrypt the response. + * 4. take the string and use it for your DNS request like this: + * _4haaaaipr1o3mz0bxweox541airydbovqlbju51mb4p0ebxq.rlqdj4kkisbep2ks3fj2nvtmk4daduqiueabmexqva1jc._tox.utox.org + * 5. The TXT in the DNS you receive should look like this: + * v=tox3;id=2vgcxuycbuctvauik3plsv3d3aadv4zfjfhi3thaizwxinelrvigchv0ah3qjcsx5qhmaksb2lv2hm5cwbtx0yp + * 6. Take the id string and use it with tox_decrypt_dns3_TXT() and the request_id corresponding to the + * request we stored earlier to get the Tox id returned by the DNS server. + */ + +/* Create a new tox_dns3 object for server with server_public_key of size TOX_CLIENT_ID_SIZE. + * + * return Null on failure. + * return pointer object on success. + */ +void *tox_dns3_new(uint8_t *server_public_key); + +/* Destroy the tox dns3 object. + */ +void tox_dns3_kill(void *dns3_object); + +/* Generate a dns3 string of string_max_len used to query the dns server referred to by to + * dns3_object for a tox id registered to user with name of name_len. + * + * the uint32_t pointed by request_id will be set to the request id which must be passed to + * tox_decrypt_dns3_TXT() to correctly decode the response. + * + * This is what the string returned looks like: + * 4haaaaipr1o3mz0bxweox541airydbovqlbju51mb4p0ebxq.rlqdj4kkisbep2ks3fj2nvtmk4daduqiueabmexqva1jc + * + * returns length of string on sucess. + * returns -1 on failure. + */ +int tox_generate_dns3_string(void *dns3_object, uint8_t *string, uint16_t string_max_len, uint32_t *request_id, + uint8_t *name, uint8_t name_len); + +/* Decode and decrypt the id_record returned of length id_record_len into + * tox_id (needs to be at least TOX_FRIEND_ADDRESS_SIZE). + * + * request_id is the request id given by tox_generate_dns3_string() when creating the request. + * + * the id_record passed to this function should look somewhat like this: + * 2vgcxuycbuctvauik3plsv3d3aadv4zfjfhi3thaizwxinelrvigchv0ah3qjcsx5qhmaksb2lv2hm5cwbtx0yp + * + * returns -1 on failure. + * returns 0 on success. + * + */ +int tox_decrypt_dns3_TXT(void *dns3_object, uint8_t *tox_id, uint8_t *id_record, uint32_t id_record_len, + uint32_t request_id); + +#endif diff --git a/protocols/Tox/tox/lib/x64/libtox-x64.exp b/protocols/Tox/tox/lib/x64/libtox-x64.exp new file mode 100644 index 0000000000..d322ce16b6 Binary files /dev/null and b/protocols/Tox/tox/lib/x64/libtox-x64.exp differ diff --git a/protocols/Tox/tox/lib/x64/libtox-x64.lib b/protocols/Tox/tox/lib/x64/libtox-x64.lib new file mode 100644 index 0000000000..9be529069c Binary files /dev/null and b/protocols/Tox/tox/lib/x64/libtox-x64.lib differ diff --git a/protocols/Tox/tox/lib/x64/libtox.def b/protocols/Tox/tox/lib/x64/libtox.def new file mode 100644 index 0000000000..f685a57c30 --- /dev/null +++ b/protocols/Tox/tox/lib/x64/libtox.def @@ -0,0 +1,1561 @@ +LIBRARY "libtox" + +EXPORTS + Assoc_add_entry @1 + Assoc_get_close_entries @2 + Assoc_self_client_id_changed @3 + DHT_addfriend @4 + DHT_bootstrap @5 + DHT_bootstrap_from_address @6 + DHT_delfriend @7 + DHT_get_close_list @8 + DHT_get_shared_key_recv @9 + DHT_get_shared_key_sent @10 + DHT_getfriendip @11 + DHT_getnodes @12 + DHT_isconnected @13 + DHT_load @14 + DHT_non_lan_connected @15 + DHT_save @16 + DHT_size @17 + LAN_ip @18 + LANdiscovery_init @19 + U16_to_bytes @20 + U32_to_bytes @21 + VP8_UVSSE @22 + __pth_gpointer_locked @23 + __pthread_clock_nanosleep @24 + __pthread_shallcancel @25 + __xl_f @26 + _celt_autocorr @27 + _celt_lpc @28 + _pthread_cleanup_dest @29 + _pthread_get_state @30 + _pthread_invoke_cancel @31 + _pthread_key_dest @32 + _pthread_rel_time_in_ms @33 + _pthread_set_state @34 + _pthread_setnobreak @35 + _pthread_time_in_ms @36 + _pthread_time_in_ms_from_timespec @37 + _pthread_tryjoin @38 + _sodium_alignedcalloc @39 + accept_crypto_connection @40 + add_ext_header @41 + add_groupchat @42 + add_header @43 + add_tcp_relay @44 + add_tcp_relay_peer @45 + add_to_ping @46 + addr_parse_ip @47 + addr_resolve @48 + addr_resolve_or_parse_ip @49 + addto_lists @50 + alg_quant @51 + alg_unquant @52 + amp2Log2 @53 + anti_collapse @54 + at_startup_ran @55 + av_DefaultSettings @56 + av_VADd @57 + av_jbufdc @58 + bs_list_add @59 + bs_list_find @60 + bs_list_free @61 + bs_list_init @62 + bs_list_remove @63 + bs_list_trim @64 + build_header @65 + bytes_to_U16 @66 + bytes_to_U32 @67 + callback_file_control @68 + callback_file_data @69 + callback_file_sendrequest @70 + callback_friendrequest @71 + callback_groupaction @72 + callback_groupmessage @73 + callback_namelistchange @74 + celt_decode_with_ec @75 + celt_decoder_get_size @76 + celt_decoder_init @77 + celt_encode_with_ec @78 + celt_encoder_get_size @79 + celt_encoder_init @80 + celt_fir @81 + celt_iir @82 + celt_lcg_rand @83 + celt_pitch_xcorr_c @84 + celt_preemphasis @85 + chat_bootstrap @86 + chat_bootstrap_nonlazy @87 + check_control_input @88 + check_fragments_for_errors @89 + check_late_message @90 + closelist_nodes @91 + clt_mdct_backward @92 + clt_mdct_forward @93 + codec_init_session @94 + codec_terminate_session @95 + comb_filter @96 + compute_allocation @97 + compute_band_energies @98 + compute_frame_size @99 + compute_stereo_width @100 + cond_print @101 + cond_print_set @102 + connection_data_handler @103 + connection_lossy_data_handler @104 + connection_status_handler @105 + copy_chatlist @106 + copy_connected_tcp_relays @107 + copy_friendlist @108 + count_chatlist @109 + count_friendlist @110 + create_announce_request @111 + create_data_request @112 + create_onion_packet @113 + create_onion_packet_tcp @114 + create_onion_path @115 + create_queue @116 + create_request @117 + crypto_box @118 + crypto_box_afternm @119 + crypto_box_beforenm @120 + crypto_box_beforenmbytes @121 + crypto_box_boxzerobytes @122 + crypto_box_curve25519xsalsa20poly1305 @123 + crypto_box_curve25519xsalsa20poly1305_afternm @124 + crypto_box_curve25519xsalsa20poly1305_beforenm @125 + crypto_box_curve25519xsalsa20poly1305_keypair @126 + crypto_box_curve25519xsalsa20poly1305_open @127 + crypto_box_curve25519xsalsa20poly1305_open_afternm @128 + crypto_box_curve25519xsalsa20poly1305_seed_keypair @129 + crypto_box_keypair @130 + crypto_box_macbytes @131 + crypto_box_noncebytes @132 + crypto_box_open @133 + crypto_box_open_afternm @134 + crypto_box_primitive @135 + crypto_box_publickeybytes @136 + crypto_box_secretkeybytes @137 + crypto_box_seed_keypair @138 + crypto_box_seedbytes @139 + crypto_box_zerobytes @140 + crypto_cmp @141 + crypto_connection_status @142 + crypto_core_hsalsa20 @143 + crypto_core_salsa20 @144 + crypto_hash_sha256 @145 + crypto_hash_sha256_final @146 + crypto_hash_sha256_init @147 + crypto_hash_sha256_update @148 + crypto_hash_sha512 @149 + crypto_hash_sha512_final @150 + crypto_hash_sha512_init @151 + crypto_hash_sha512_update @152 + crypto_kill @153 + crypto_num_free_sendqueue_slots @154 + crypto_onetimeauth_pick_best_implementation @155 + crypto_onetimeauth_poly1305 @156 + crypto_onetimeauth_poly1305_donna @157 + crypto_onetimeauth_poly1305_donna_final @158 + crypto_onetimeauth_poly1305_donna_implementation @159 + crypto_onetimeauth_poly1305_donna_implementation_name @160 + crypto_onetimeauth_poly1305_donna_init @161 + crypto_onetimeauth_poly1305_donna_update @162 + crypto_onetimeauth_poly1305_donna_verify @163 + crypto_onetimeauth_poly1305_final @164 + crypto_onetimeauth_poly1305_implementation_name @165 + crypto_onetimeauth_poly1305_init @166 + crypto_onetimeauth_poly1305_set_implementation @167 + crypto_onetimeauth_poly1305_update @168 + crypto_onetimeauth_poly1305_verify @169 + crypto_run_interval @170 + crypto_scalarmult_curve25519 @171 + crypto_scalarmult_curve25519_base @172 + crypto_secretbox_xsalsa20poly1305 @173 + crypto_secretbox_xsalsa20poly1305_open @174 + crypto_stream_salsa20 @175 + crypto_stream_salsa20_keybytes @176 + crypto_stream_salsa20_noncebytes @177 + crypto_stream_salsa20_xor @178 + crypto_stream_salsa20_xor_ic @179 + crypto_stream_xsalsa20 @180 + crypto_stream_xsalsa20_xor @181 + crypto_verify_16 @182 + crypto_verify_32 @183 + cryptopacket_registerhandler @184 + current_time_monotonic @185 + custom_lossless_packet_registerhandler @186 + custom_lossy_packet_registerhandler @187 + decode_pulses @188 + decrypt_data @189 + decrypt_data_symmetric @190 + del_groupchat @191 + denormalise_bands @192 + dequeue @193 + do_Assoc @194 + do_DHT @195 + do_TCP_connection @196 + do_TCP_server @197 + do_friends @198 + do_groupchat @199 + do_hardening @200 + do_messenger @201 + do_net_crypto @202 + do_onion_client @203 + do_sema_b_wait_intern @204 + do_to_ping @205 + downmix_float @206 + downmix_int @207 + eMeans @208 + ec_dec_bit_logp @209 + ec_dec_bits @210 + ec_dec_icdf @211 + ec_dec_init @212 + ec_dec_uint @213 + ec_dec_update @214 + ec_decode @215 + ec_decode_bin @216 + ec_enc_bit_logp @217 + ec_enc_bits @218 + ec_enc_done @219 + ec_enc_icdf @220 + ec_enc_init @221 + ec_enc_patch_initial_bits @222 + ec_enc_shrink @223 + ec_enc_uint @224 + ec_encode @225 + ec_encode_bin @226 + ec_laplace_decode @227 + ec_laplace_encode @228 + ec_tell_frac @229 + encode_pulses @230 + encode_size @231 + encrypt_data @232 + encrypt_data_symmetric @233 + encrypt_precompute @234 + energy_VAD @235 + extract_ext_header @236 + extract_header @237 + file_control @238 + file_data @239 + file_dataremaining @240 + file_sendrequest @241 + format_output @242 + frame_size_select @243 + friend_ips @244 + friendreq_init @245 + get_close_nodes @246 + get_connection_dht_key @247 + get_friendlist @248 + get_nospam @249 + get_num_online_friends @250 + get_shared_key @251 + getaddress @252 + getclient_id @253 + getfriend_id @254 + getname @255 + getself_name @256 + group_action_send @257 + group_client_names @258 + group_message_send @259 + group_names @260 + group_newpeer @261 + group_number_peers @262 + group_numpeers @263 + group_peername @264 + group_sendaction @265 + group_sendmessage @266 + haar1 @267 + handle_groupchatpacket @268 + handle_request @269 + host_to_net @270 + hysteresis_decision @271 + id_closest @272 + id_copy @273 + id_equal @274 + increment_nonce @275 + increment_nonce_number @276 + init_audio_decoder @277 + init_audio_encoder @278 + init_caps @279 + init_video_decoder @280 + init_video_encoder @281 + invite_friend @282 + invoke_callback @283 + ip_copy @284 + ip_equal @285 + ip_init @286 + ip_isset @287 + ip_ntoa @288 + ip_pack @289 + ip_reset @290 + ip_unpack @291 + ipport_copy @292 + ipport_equal @293 + ipport_isset @294 + ipport_pack @295 + ipport_unpack @296 + is_timeout @297 + isqrt32 @298 + join_groupchat @299 + kill_Assoc @300 + kill_DHT @301 + kill_TCP_connection @302 + kill_TCP_server @303 + kill_groupchat @304 + kill_messenger @305 + kill_net_crypto @306 + kill_networking @307 + kill_onion @308 + kill_onion_announce @309 + kill_onion_client @310 + kill_ping @311 + kill_sock @312 + load_keys @313 + load_state @314 + m_addfriend @315 + m_addfriend_norequest @316 + m_callback_action @317 + m_callback_connectionstatus @318 + m_callback_connectionstatus_internal_av @319 + m_callback_friendmessage @320 + m_callback_friendrequest @321 + m_callback_group_action @322 + m_callback_group_invite @323 + m_callback_group_message @324 + m_callback_group_namelistchange @325 + m_callback_msi_packet @326 + m_callback_namechange @327 + m_callback_read_receipt @328 + m_callback_statusmessage @329 + m_callback_typingchange @330 + m_callback_userstatus @331 + m_copy_self_statusmessage @332 + m_copy_statusmessage @333 + m_delfriend @334 + m_friend_exists @335 + m_get_friend_connectionstatus @336 + m_get_istyping @337 + m_get_last_online @338 + m_get_name_size @339 + m_get_self_name_size @340 + m_get_self_statusmessage_size @341 + m_get_self_userstatus @342 + m_get_statusmessage_size @343 + m_get_userstatus @344 + m_group_peername @345 + m_msi_packet @346 + m_sendaction @347 + m_sendaction_withid @348 + m_sendmessage @349 + m_sendmessage_withid @350 + m_set_sends_receipts @351 + m_set_statusmessage @352 + m_set_userstatus @353 + m_set_usertyping @354 + messenger_load @355 + messenger_run_interval @356 + messenger_save @357 + messenger_size @358 + mlp_process @359 + msg_parse @360 + msi_answer @361 + msi_cancel @362 + msi_change_csettings @363 + msi_hangup @364 + msi_init_session @365 + msi_invite @366 + msi_msg_get_csettings @367 + msi_msg_set_callid @368 + msi_msg_set_csettings @369 + msi_msg_set_reason @370 + msi_new_message @371 + msi_register_callback @372 + msi_reject @373 + msi_stopcall @374 + msi_terminate_session @375 + mutex_print @376 + mutex_print_set @377 + net @378 + networking_at_startup @379 + networking_poll @380 + networking_registerhandler @381 + new_Assoc @382 + new_Assoc_default @383 + new_DHT @384 + new_TCP_connection @385 + new_TCP_server @386 + new_connection_handler @387 + new_crypto_connection @388 + new_filesender @389 + new_groupchat @390 + new_keys @391 + new_messenger @392 + new_net_crypto @393 + new_networking @394 + new_nonce @395 + new_onion @396 + new_onion_announce @397 + new_onion_client @398 + new_ping @399 + new_symmetric_key @400 + normalise_bands @401 + onion_add_path_node @402 + onion_addfriend @403 + onion_backup_nodes @404 + onion_delfriend @405 + onion_friend_num @406 + onion_getfriend_DHT_pubkey @407 + onion_getfriendip @408 + onion_isconnected @409 + onion_response_handler @410 + onion_send_1 @411 + onion_set_friend_DHT_pubkey @412 + onion_set_friend_online @413 + oniondata_registerhandler @414 + oob_data_handler @415 + optimize_framesize @416 + opus_custom_decoder_ctl @417 + opus_custom_encoder_ctl @418 + opus_custom_mode_create @419 + opus_decode @420 + opus_decode_float @421 + opus_decode_native @422 + opus_decoder_create @423 + opus_decoder_ctl @424 + opus_decoder_destroy @425 + opus_decoder_get_nb_samples @426 + opus_decoder_get_size @427 + opus_decoder_init @428 + opus_encode @429 + opus_encode_float @430 + opus_encode_native @431 + opus_encoder_create @432 + opus_encoder_ctl @433 + opus_encoder_destroy @434 + opus_encoder_get_size @435 + opus_encoder_init @436 + opus_fft @437 + opus_get_version_string @438 + opus_ifft @439 + opus_multistream_packet_pad @440 + opus_multistream_packet_unpad @441 + opus_packet_get_bandwidth @442 + opus_packet_get_nb_channels @443 + opus_packet_get_nb_frames @444 + opus_packet_get_nb_samples @445 + opus_packet_get_samples_per_frame @446 + opus_packet_pad @447 + opus_packet_parse @448 + opus_packet_parse_impl @449 + opus_packet_unpad @450 + opus_pcm_soft_clip @451 + opus_repacketizer_cat @452 + opus_repacketizer_create @453 + opus_repacketizer_destroy @454 + opus_repacketizer_get_nb_frames @455 + opus_repacketizer_get_size @456 + opus_repacketizer_init @457 + opus_repacketizer_out @458 + opus_repacketizer_out_range @459 + opus_repacketizer_out_range_impl @460 + opus_strerror @461 + pack_nodes @462 + parse_recv @463 + parse_send @464 + patch_transient_decision @465 + ping_array_add @466 + ping_array_check @467 + ping_array_free_all @468 + ping_array_init @469 + pitch_downsample @470 + pitch_search @471 + pthread_attr_destroy @472 + pthread_attr_getdetachstate @473 + pthread_attr_getinheritsched @474 + pthread_attr_getscope @475 + pthread_attr_getstackaddr @476 + pthread_attr_getstacksize @477 + pthread_attr_init @478 + pthread_attr_setdetachstate @479 + pthread_attr_setinheritsched @480 + pthread_attr_setscope @481 + pthread_attr_setstackaddr @482 + pthread_attr_setstacksize @483 + pthread_cancel @484 + pthread_cond_broadcast @485 + pthread_cond_destroy @486 + pthread_cond_init @487 + pthread_cond_signal @488 + pthread_cond_timedwait @489 + pthread_cond_timedwait_relative @490 + pthread_cond_wait @491 + pthread_condattr_destroy @492 + pthread_condattr_getclock @493 + pthread_condattr_getpshared @494 + pthread_condattr_init @495 + pthread_condattr_setclock @496 + pthread_condattr_setpshared @497 + pthread_create @498 + pthread_create_wrapper @499 + pthread_delay_np @500 + pthread_delay_np_ms @501 + pthread_detach @502 + pthread_equal @503 + pthread_exit @504 + pthread_get_concurrency @505 + pthread_getclean @506 + pthread_getconcurrency @507 + pthread_getevent @508 + pthread_gethandle @509 + pthread_getspecific @510 + pthread_join @511 + pthread_key_create @512 + pthread_key_delete @513 + pthread_kill @514 + pthread_mutex_destroy @515 + pthread_mutex_init @516 + pthread_mutex_lock @517 + pthread_mutex_timedlock @518 + pthread_mutex_trylock @519 + pthread_mutex_unlock @520 + pthread_mutexattr_destroy @521 + pthread_mutexattr_getprioceiling @522 + pthread_mutexattr_getprotocol @523 + pthread_mutexattr_getpshared @524 + pthread_mutexattr_gettype @525 + pthread_mutexattr_init @526 + pthread_mutexattr_setprioceiling @527 + pthread_mutexattr_setprotocol @528 + pthread_mutexattr_setpshared @529 + pthread_mutexattr_settype @530 + pthread_num_processors_np @531 + pthread_once @532 + pthread_rwlock_destroy @533 + pthread_rwlock_init @534 + pthread_rwlock_rdlock @535 + pthread_rwlock_timedrdlock @536 + pthread_rwlock_timedwrlock @537 + pthread_rwlock_tryrdlock @538 + pthread_rwlock_trywrlock @539 + pthread_rwlock_unlock @540 + pthread_rwlock_wrlock @541 + pthread_rwlockattr_destroy @542 + pthread_rwlockattr_getpshared @543 + pthread_rwlockattr_init @544 + pthread_rwlockattr_setpshared @545 + pthread_self @546 + pthread_set_concurrency @547 + pthread_set_num_processors_np @548 + pthread_setcancelstate @549 + pthread_setcanceltype @550 + pthread_setconcurrency @551 + pthread_setspecific @552 + pthread_spin_destroy @553 + pthread_spin_init @554 + pthread_spin_lock @555 + pthread_spin_trylock @556 + pthread_spin_unlock @557 + pthread_testcancel @558 + pthread_timechange_handler_np @559 + pthread_tls_init @560 + public_key_valid @561 + quant_all_bands @562 + quant_coarse_energy @563 + quant_energy_finalise @564 + quant_fine_energy @565 + queue @566 + random_64b @567 + random_int @568 + random_node @569 + random_nodes_path @570 + random_nonce @571 + randombytes @572 + randombytes_buf @573 + randombytes_close @574 + randombytes_implementation_name @575 + randombytes_random @576 + randombytes_set_implementation @577 + randombytes_stir @578 + randombytes_sysrandom @579 + randombytes_sysrandom_buf @580 + randombytes_sysrandom_close @581 + randombytes_sysrandom_implementation @582 + randombytes_sysrandom_implementation_name @583 + randombytes_sysrandom_stir @584 + randombytes_sysrandom_uniform @585 + randombytes_uniform @586 + read_TCP_length @587 + read_TCP_packet @588 + read_packet_TCP_secure_connection @589 + realloc_friendlist @590 + reconfigure_video_encoder_bitrate @591 + reconfigure_video_encoder_resolution @592 + recv_tcp_relay_handler @593 + remove_doubling @594 + remove_request_received @595 + renormalise_vector @596 + resampling_factor @597 + route_packet @598 + route_tofriend @599 + routing_data_handler @600 + routing_response_handler @601 + routing_status_handler @602 + rtp_free_msg @603 + rtp_handle_packet @604 + rtp_init_session @605 + rtp_new_message @606 + rtp_send_msg @607 + rtp_terminate_session @608 + run_analysis @609 + rwl_print @610 + rwl_print_set @611 + save_keys @612 + send_LANdiscovery @613 + send_announce_request @614 + send_custom_lossless_packet @615 + send_custom_lossy_packet @616 + send_data @617 + send_data_request @618 + send_disconnect_request @619 + send_friendrequest @620 + send_lossy_cryptpacket @621 + send_onion_data @622 + send_onion_packet @623 + send_onion_request @624 + send_onion_response @625 + send_oob_packet @626 + send_ping_request @627 + send_reponse @628 + send_routing_request @629 + send_tcp_onion_request @630 + sendpacket @631 + set_callback_handle_recv_1 @632 + set_connection_dht_public_key @633 + set_direct_ip_port @634 + set_filter_function @635 + set_nick @636 + set_nospam @637 + set_socket_dualstack @638 + set_socket_nonblock @639 + set_socket_nosigpipe @640 + set_tcp_connection_number @641 + setfriendname @642 + setname @643 + silk_A2NLSF @644 + silk_A2NLSF_FLP @645 + silk_CB_lags_stage2 @646 + silk_CB_lags_stage2_10_ms @647 + silk_CB_lags_stage3 @648 + silk_CB_lags_stage3_10_ms @649 + silk_CNG @650 + silk_CNG_Reset @651 + silk_Decode @652 + silk_Encode @653 + silk_Get_Decoder_Size @654 + silk_Get_Encoder_Size @655 + silk_HP_variable_cutoff @656 + silk_InitDecoder @657 + silk_InitEncoder @658 + silk_LBRR_flags_iCDF_ptr @659 + silk_LPC_analysis_filter @660 + silk_LPC_analysis_filter_FLP @661 + silk_LPC_inverse_pred_gain @662 + silk_LPC_inverse_pred_gain_FLP @663 + silk_LP_variable_cutoff @664 + silk_LSFCosTab_FIX_Q12 @665 + silk_LTPScales_table_Q14 @666 + silk_LTP_analysis_filter_FLP @667 + silk_LTP_gain_BITS_Q5_ptrs @668 + silk_LTP_gain_iCDF_ptrs @669 + silk_LTP_gain_middle_avg_RD_Q14 @670 + silk_LTP_per_index_iCDF @671 + silk_LTP_scale_ctrl_FLP @672 + silk_LTP_vq_gain_ptrs_Q7 @673 + silk_LTP_vq_ptrs_Q7 @674 + silk_LTP_vq_sizes @675 + silk_LTPscale_iCDF @676 + silk_Lag_range_stage3 @677 + silk_Lag_range_stage3_10_ms @678 + silk_NLSF2A @679 + silk_NLSF2A_FLP @680 + silk_NLSF_CB_NB_MB @681 + silk_NLSF_CB_WB @682 + silk_NLSF_EXT_iCDF @683 + silk_NLSF_VQ @684 + silk_NLSF_VQ_weights_laroia @685 + silk_NLSF_decode @686 + silk_NLSF_del_dec_quant @687 + silk_NLSF_encode @688 + silk_NLSF_interpolation_factor_iCDF @689 + silk_NLSF_stabilize @690 + silk_NLSF_unpack @691 + silk_NSQ @692 + silk_NSQ_del_dec @693 + silk_NSQ_wrapper_FLP @694 + silk_PLC @695 + silk_PLC_Reset @696 + silk_PLC_glue_frames @697 + silk_Quantization_Offsets_Q10 @698 + silk_Resampler_1_2_COEFS @699 + silk_Resampler_1_3_COEFS @700 + silk_Resampler_1_4_COEFS @701 + silk_Resampler_1_6_COEFS @702 + silk_Resampler_2_3_COEFS @703 + silk_Resampler_2_3_COEFS_LQ @704 + silk_Resampler_3_4_COEFS @705 + silk_SNR_table_Q1 @706 + silk_TargetRate_table_MB @707 + silk_TargetRate_table_NB @708 + silk_TargetRate_table_WB @709 + silk_Transition_LP_A_Q28 @710 + silk_Transition_LP_B_Q28 @711 + silk_VAD_GetSA_Q8 @712 + silk_VAD_Init @713 + silk_VQ_WMat_EC @714 + silk_ana_filt_bank_1 @715 + silk_apply_sine_window_FLP @716 + silk_autocorrelation_FLP @717 + silk_biquad_alt @718 + silk_burg_modified_FLP @719 + silk_bwexpander @720 + silk_bwexpander_32 @721 + silk_bwexpander_FLP @722 + silk_control_SNR @723 + silk_control_audio_bandwidth @724 + silk_control_encoder @725 + silk_corrMatrix_FLP @726 + silk_corrVector_FLP @727 + silk_decode_core @728 + silk_decode_frame @729 + silk_decode_indices @730 + silk_decode_parameters @731 + silk_decode_pitch @732 + silk_decode_pulses @733 + silk_decode_signs @734 + silk_decoder_set_fs @735 + silk_delta_gain_iCDF @736 + silk_encode_do_VAD_FLP @737 + silk_encode_frame_FLP @738 + silk_encode_indices @739 + silk_encode_pulses @740 + silk_encode_signs @741 + silk_energy_FLP @742 + silk_find_LPC_FLP @743 + silk_find_LTP_FLP @744 + silk_find_pitch_lags_FLP @745 + silk_find_pred_coefs_FLP @746 + silk_gain_iCDF @747 + silk_gains_ID @748 + silk_gains_dequant @749 + silk_gains_quant @750 + silk_init_decoder @751 + silk_init_encoder @752 + silk_inner_prod_aligned_scale @753 + silk_inner_product_FLP @754 + silk_insertion_sort_decreasing_FLP @755 + silk_insertion_sort_increasing @756 + silk_insertion_sort_increasing_all_values_int16 @757 + silk_interpolate @758 + silk_k2a_FLP @759 + silk_levinsondurbin_FLP @760 + silk_lin2log @761 + silk_log2lin @762 + silk_lsb_iCDF @763 + silk_max_pulses_table @764 + silk_nb_cbk_searchs_stage3 @765 + silk_noise_shape_analysis_FLP @766 + silk_pitch_analysis_core_FLP @767 + silk_pitch_contour_10_ms_NB_iCDF @768 + silk_pitch_contour_10_ms_iCDF @769 + silk_pitch_contour_NB_iCDF @770 + silk_pitch_contour_iCDF @771 + silk_pitch_delta_iCDF @772 + silk_pitch_lag_iCDF @773 + silk_prefilter_FLP @774 + silk_process_NLSFs @775 + silk_process_NLSFs_FLP @776 + silk_process_gains_FLP @777 + silk_pulses_per_block_BITS_Q5 @778 + silk_pulses_per_block_iCDF @779 + silk_quant_LTP_gains @780 + silk_quant_LTP_gains_FLP @781 + silk_rate_levels_BITS_Q5 @782 + silk_rate_levels_iCDF @783 + silk_regularize_correlations_FLP @784 + silk_resampler @785 + silk_resampler_down2 @786 + silk_resampler_down2_3 @787 + silk_resampler_frac_FIR_12 @788 + silk_resampler_init @789 + silk_resampler_private_AR2 @790 + silk_resampler_private_IIR_FIR @791 + silk_resampler_private_down_FIR @792 + silk_resampler_private_up2_HQ @793 + silk_resampler_private_up2_HQ_wrapper @794 + silk_residual_energy_FLP @795 + silk_residual_energy_covar_FLP @796 + silk_scale_copy_vector_FLP @797 + silk_scale_vector_FLP @798 + silk_schur_FLP @799 + silk_shell_code_table0 @800 + silk_shell_code_table1 @801 + silk_shell_code_table2 @802 + silk_shell_code_table3 @803 + silk_shell_code_table_offsets @804 + silk_shell_decoder @805 + silk_shell_encoder @806 + silk_sigm_Q15 @807 + silk_sign_iCDF @808 + silk_solve_LDL_FLP @809 + silk_stereo_LR_to_MS @810 + silk_stereo_MS_to_LR @811 + silk_stereo_decode_mid_only @812 + silk_stereo_decode_pred @813 + silk_stereo_encode_mid_only @814 + silk_stereo_encode_pred @815 + silk_stereo_find_predictor @816 + silk_stereo_only_code_mid_iCDF @817 + silk_stereo_pred_joint_iCDF @818 + silk_stereo_pred_quant_Q13 @819 + silk_stereo_quant_pred @820 + silk_sum_sqr_shift @821 + silk_type_offset_VAD_iCDF @822 + silk_type_offset_no_VAD_iCDF @823 + silk_uniform3_iCDF @824 + silk_uniform4_iCDF @825 + silk_uniform5_iCDF @826 + silk_uniform6_iCDF @827 + silk_uniform8_iCDF @828 + silk_warped_autocorrelation_FLP @829 + sock_valid @830 + sodium_bin2hex @831 + sodium_hex2bin @832 + sodium_init @833 + sodium_memcmp @834 + sodium_memzero @835 + sodium_mlock @836 + sodium_munlock @837 + sodium_runtime_get_cpu_features @838 + sodium_runtime_has_neon @839 + sodium_runtime_has_sse2 @840 + sodium_runtime_has_sse3 @841 + spreading_decision @842 + stereo_itheta @843 + tcp_onion_response_handler @844 + terminate_queue @845 + tf_select_table @846 + thread_print @847 + thread_print_set @848 + to_host_family @849 + to_net_family @850 + tonality_analysis @851 + tonality_get_info @852 + tox_add_friend @853 + tox_add_friend_norequest @854 + tox_add_groupchat @855 + tox_bootstrap_from_address @856 + tox_callback_connection_status @857 + tox_callback_file_control @858 + tox_callback_file_data @859 + tox_callback_file_send_request @860 + tox_callback_friend_action @861 + tox_callback_friend_message @862 + tox_callback_friend_request @863 + tox_callback_group_action @864 + tox_callback_group_invite @865 + tox_callback_group_message @866 + tox_callback_group_namelist_change @867 + tox_callback_name_change @868 + tox_callback_read_receipt @869 + tox_callback_status_message @870 + tox_callback_typing_change @871 + tox_callback_user_status @872 + tox_count_chatlist @873 + tox_count_friendlist @874 + tox_decrypt_dns3_TXT @875 + tox_del_friend @876 + tox_del_groupchat @877 + tox_dns3_kill @878 + tox_dns3_new @879 + tox_do @880 + tox_do_interval @881 + tox_file_data_remaining @882 + tox_file_data_size @883 + tox_file_send_control @884 + tox_file_send_data @885 + tox_friend_exists @886 + tox_generate_dns3_string @887 + tox_get_address @888 + tox_get_chatlist @889 + tox_get_client_id @890 + tox_get_friend_connection_status @891 + tox_get_friend_number @892 + tox_get_friendlist @893 + tox_get_is_typing @894 + tox_get_keys @895 + tox_get_last_online @896 + tox_get_name @897 + tox_get_name_size @898 + tox_get_nospam @899 + tox_get_num_online_friends @900 + tox_get_self_name @901 + tox_get_self_name_size @902 + tox_get_self_status_message @903 + tox_get_self_status_message_size @904 + tox_get_self_user_status @905 + tox_get_status_message @906 + tox_get_status_message_size @907 + tox_get_user_status @908 + tox_group_action_send @909 + tox_group_get_names @910 + tox_group_message_send @911 + tox_group_number_peers @912 + tox_group_peername @913 + tox_invite_friend @914 + tox_isconnected @915 + tox_join_groupchat @916 + tox_kill @917 + tox_load @918 + tox_new @919 + tox_new_file_sender @920 + tox_save @921 + tox_send_action @922 + tox_send_action_withid @923 + tox_send_message @924 + tox_send_message_withid @925 + tox_set_name @926 + tox_set_nospam @927 + tox_set_status_message @928 + tox_set_user_is_typing @929 + tox_set_user_status @930 + tox_size @931 + toxav_answer @932 + toxav_call @933 + toxav_cancel @934 + toxav_capability_supported @935 + toxav_change_settings @936 + toxav_get_call_state @937 + toxav_get_peer_csettings @938 + toxav_get_peer_id @939 + toxav_get_tox @940 + toxav_handle_packet @941 + toxav_hangup @942 + toxav_has_activity @943 + toxav_kill @944 + toxav_kill_transmission @945 + toxav_new @946 + toxav_prepare_audio_frame @947 + toxav_prepare_transmission @948 + toxav_prepare_video_frame @949 + toxav_register_audio_recv_callback @950 + toxav_register_callstate_callback @951 + toxav_register_video_recv_callback @952 + toxav_reject @953 + toxav_send_audio @954 + toxav_send_video @955 + toxav_stop_call @956 + unix_time @957 + unix_time_update @958 + unpack_nodes @959 + unquant_coarse_energy @960 + unquant_energy_finalise @961 + unquant_fine_energy @962 + vp8_ac2quant @963 + vp8_ac_uv_quant @964 + vp8_ac_yquant @965 + vp8_activity_masking @966 + vp8_adjust_key_frame_context @967 + vp8_alloc_compressor_data @968 + vp8_alloc_frame_buffers @969 + vp8_auto_select_speed @970 + vp8_bilinear_filters_x86_4 @971 + vp8_bilinear_filters_x86_8 @972 + vp8_bilinear_predict16x16 @973 + vp8_bilinear_predict16x16_mmx @974 + vp8_bilinear_predict16x16_sse2 @975 + vp8_bilinear_predict16x16_ssse3 @976 + vp8_bilinear_predict4x4_mmx @977 + vp8_bilinear_predict8x4_mmx @978 + vp8_bilinear_predict8x8 @979 + vp8_bilinear_predict8x8_mmx @980 + vp8_bilinear_predict8x8_sse2 @981 + vp8_bilinear_predict8x8_ssse3 @982 + vp8_bits_per_mb @983 + vp8_blend_b_c @984 + vp8_blend_mb_inner_c @985 + vp8_blend_mb_outer_c @986 + vp8_block2above @987 + vp8_block2left @988 + vp8_block_error_c @989 + vp8_block_error_mmx @990 + vp8_block_error_xmm @991 + vp8_bmode_encodings @992 + vp8_bmode_prob @993 + vp8_bmode_tree @994 + vp8_build_block_doffsets @995 + vp8_build_block_offsets @996 + vp8_build_component_cost_table @997 + vp8_build_inter16x16_predictors_mb @998 + vp8_build_inter16x16_predictors_mbuv @999 + vp8_build_inter16x16_predictors_mby @1000 + vp8_build_inter4x4_predictors_mbuv @1001 + vp8_build_inter_predictors_b @1002 + vp8_build_inter_predictors_mb @1003 + vp8_build_intra_predictors_mbuv_s @1004 + vp8_build_intra_predictors_mbuv_s_sse2 @1005 + vp8_build_intra_predictors_mbuv_s_ssse3 @1006 + vp8_build_intra_predictors_mby_s @1007 + vp8_build_intra_predictors_mby_s_sse2 @1008 + vp8_build_intra_predictors_mby_s_ssse3 @1009 + vp8_cal_sad @1010 + vp8_calc_ref_frame_costs @1011 + vp8_calc_ss_err @1012 + vp8_change_config @1013 + vp8_clear_system_state_c @1014 + vp8_coef_bands @1015 + vp8_coef_encodings @1016 + vp8_coef_tree @1017 + vp8_coef_update_probs @1018 + vp8_compute_frame_size_bounds @1019 + vp8_convert_rfct_to_prob @1020 + vp8_copy32xn @1021 + vp8_copy32xn_c @1022 + vp8_copy32xn_sse2 @1023 + vp8_copy32xn_sse3 @1024 + vp8_copy_and_extend_frame @1025 + vp8_copy_and_extend_frame_with_rect @1026 + vp8_copy_mem16x16_c @1027 + vp8_copy_mem16x16_mmx @1028 + vp8_copy_mem16x16_sse2 @1029 + vp8_copy_mem8x4_c @1030 + vp8_copy_mem8x4_mmx @1031 + vp8_copy_mem8x8_c @1032 + vp8_copy_mem8x8_mmx @1033 + vp8_cost_mv_ref @1034 + vp8_cost_tokens @1035 + vp8_cost_tokens2 @1036 + vp8_create_common @1037 + vp8_create_compressor @1038 + vp8_create_decoder_instances @1039 + vp8_ctf_maps @1040 + vp8_dc2quant @1041 + vp8_dc_only_idct_add_c @1042 + vp8_dc_only_idct_add_mmx @1043 + vp8_dc_quant @1044 + vp8_dc_uv_quant @1045 + vp8_dct_value_cost_ptr @1046 + vp8_dct_value_tokens_ptr @1047 + vp8_de_alloc_frame_buffers @1048 + vp8_deblock @1049 + vp8_decode_frame @1050 + vp8_decode_mb_tokens @1051 + vp8_decode_mode_mvs @1052 + vp8_decoder_create_threads @1053 + vp8_decoder_remove_threads @1054 + vp8_default_bmode_probs @1055 + vp8_default_coef_probs @1056 + vp8_default_inv_zig_zag @1057 + vp8_default_mv_context @1058 + vp8_default_zig_zag1d @1059 + vp8_default_zig_zag_mask @1060 + vp8_denoiser_allocate @1061 + vp8_denoiser_denoise_mb @1062 + vp8_denoiser_filter_c @1063 + vp8_denoiser_filter_sse2 @1064 + vp8_denoiser_free @1065 + vp8_dequant_idct_add_mmx @1066 + vp8_dequant_idct_add_uv_block_mmx @1067 + vp8_dequant_idct_add_uv_block_sse2 @1068 + vp8_dequant_idct_add_y_block_mmx @1069 + vp8_dequant_idct_add_y_block_sse2 @1070 + vp8_dequantize_b_impl_mmx @1071 + vp8_dequantize_b_mmx @1072 + vp8_diamond_search_sad @1073 + vp8_diamond_search_sad_c @1074 + vp8_diamond_search_sadx4 @1075 + vp8_encode_frame @1076 + vp8_encode_inter16x16 @1077 + vp8_encode_inter16x16y @1078 + vp8_encode_intra @1079 + vp8_encode_intra16x16mbuv @1080 + vp8_encode_intra16x16mby @1081 + vp8_encode_intra4x4block @1082 + vp8_encode_intra4x4mby @1083 + vp8_encode_motion_vector @1084 + vp8_encode_value @1085 + vp8_end_first_pass @1086 + vp8_end_second_pass @1087 + vp8_estimate_entropy_savings @1088 + vp8_extend_mb_row @1089 + vp8_extra_bits @1090 + vp8_fast_quantize_b @1091 + vp8_fast_quantize_b_c @1092 + vp8_fast_quantize_b_pair_c @1093 + vp8_fast_quantize_b_sse2 @1094 + vp8_fast_quantize_b_ssse3 @1095 + vp8_filter_block1d16_h6_only_sse2 @1096 + vp8_filter_block1d16_h6_sse2 @1097 + vp8_filter_block1d16_h6_ssse3 @1098 + vp8_filter_block1d16_v6_sse2 @1099 + vp8_filter_block1d16_v6_ssse3 @1100 + vp8_filter_block1d4_h6_ssse3 @1101 + vp8_filter_block1d4_v6_ssse3 @1102 + vp8_filter_block1d8_h6_only_sse2 @1103 + vp8_filter_block1d8_h6_sse2 @1104 + vp8_filter_block1d8_h6_ssse3 @1105 + vp8_filter_block1d8_v6_only_sse2 @1106 + vp8_filter_block1d8_v6_sse2 @1107 + vp8_filter_block1d8_v6_ssse3 @1108 + vp8_filter_block1d_h6_mmx @1109 + vp8_filter_block1dc_v6_mmx @1110 + vp8_filter_block2d_bil4x4_var_mmx @1111 + vp8_filter_block2d_bil_var_mmx @1112 + vp8_filter_block2d_bil_var_sse2 @1113 + vp8_filter_block2d_bil_var_ssse3 @1114 + vp8_filter_by_weight16x16_c @1115 + vp8_filter_by_weight16x16_sse2 @1116 + vp8_filter_by_weight4x4_c @1117 + vp8_filter_by_weight8x8_c @1118 + vp8_filter_by_weight8x8_sse2 @1119 + vp8_find_best_half_pixel_step @1120 + vp8_find_best_sub_pixel_step @1121 + vp8_find_best_sub_pixel_step_iteratively @1122 + vp8_find_near_mvs @1123 + vp8_find_near_mvs_bias @1124 + vp8_first_pass @1125 + vp8_fix_contexts @1126 + vp8_full_search_sad @1127 + vp8_full_search_sad_c @1128 + vp8_full_search_sadx3 @1129 + vp8_full_search_sadx8 @1130 + vp8_gaussian @1131 + vp8_get16x16var_sse2 @1132 + vp8_get4x4sse_cs_c @1133 + vp8_get4x4sse_cs_mmx @1134 + vp8_get4x4var_mmx @1135 + vp8_get8x8var_mmx @1136 + vp8_get8x8var_sse2 @1137 + vp8_get_compressed_data @1138 + vp8_get_inter_mbpred_error @1139 + vp8_get_mb_ss_mmx @1140 + vp8_get_mb_ss_sse2 @1141 + vp8_get_preview_raw_frame @1142 + vp8_get_quantizer @1143 + vp8_get_reference @1144 + vp8_gf_boost_qadjustment @1145 + vp8_half_horiz_variance16x_h_sse2 @1146 + vp8_half_horiz_variance8x_h_sse2 @1147 + vp8_half_horiz_vert_variance16x_h_sse2 @1148 + vp8_half_horiz_vert_variance8x_h_sse2 @1149 + vp8_half_vert_variance16x_h_sse2 @1150 + vp8_half_vert_variance8x_h_sse2 @1151 + vp8_hex_search @1152 + vp8_horizontal_line_2_1_scale_c @1153 + vp8_horizontal_line_5_3_scale_c @1154 + vp8_horizontal_line_5_4_scale_c @1155 + vp8_idct_dequant_0_2x_sse2 @1156 + vp8_idct_dequant_dc_0_2x_sse2 @1157 + vp8_idct_dequant_dc_full_2x_sse2 @1158 + vp8_idct_dequant_full_2x_sse2 @1159 + vp8_init3smotion_compensation @1160 + vp8_init_dsmotion_compensation @1161 + vp8_init_first_pass @1162 + vp8_init_mbmode_probs @1163 + vp8_init_mode_costs @1164 + vp8_init_second_pass @1165 + vp8_initialize_rd_consts @1166 + vp8_intra4x4_predict_c @1167 + vp8_intra_pred_uv_dc128_mmx @1168 + vp8_intra_pred_uv_dc_mmx2 @1169 + vp8_intra_pred_uv_dcleft_mmx2 @1170 + vp8_intra_pred_uv_dctop_mmx2 @1171 + vp8_intra_pred_uv_ho_mmx2 @1172 + vp8_intra_pred_uv_ho_ssse3 @1173 + vp8_intra_pred_uv_tm_sse2 @1174 + vp8_intra_pred_uv_tm_ssse3 @1175 + vp8_intra_pred_uv_ve_mmx @1176 + vp8_intra_pred_y_dc128_sse2 @1177 + vp8_intra_pred_y_dc_sse2 @1178 + vp8_intra_pred_y_dcleft_sse2 @1179 + vp8_intra_pred_y_dctop_sse2 @1180 + vp8_intra_pred_y_ho_sse2 @1181 + vp8_intra_pred_y_tm_sse2 @1182 + vp8_intra_pred_y_tm_ssse3 @1183 + vp8_intra_pred_y_ve_sse2 @1184 + vp8_kf_bmode_prob @1185 + vp8_kf_uv_mode_prob @1186 + vp8_kf_ymode_encodings @1187 + vp8_kf_ymode_prob @1188 + vp8_kf_ymode_tree @1189 + vp8_lookahead_depth @1190 + vp8_lookahead_destroy @1191 + vp8_lookahead_init @1192 + vp8_lookahead_peek @1193 + vp8_lookahead_pop @1194 + vp8_lookahead_push @1195 + vp8_loop_filter_bh_mmx @1196 + vp8_loop_filter_bh_sse2 @1197 + vp8_loop_filter_bh_y_sse2 @1198 + vp8_loop_filter_bhs_mmx @1199 + vp8_loop_filter_bhs_sse2 @1200 + vp8_loop_filter_bv_mmx @1201 + vp8_loop_filter_bv_sse2 @1202 + vp8_loop_filter_bv_y_sse2 @1203 + vp8_loop_filter_bvs_mmx @1204 + vp8_loop_filter_bvs_sse2 @1205 + vp8_loop_filter_frame @1206 + vp8_loop_filter_frame_init @1207 + vp8_loop_filter_frame_yonly @1208 + vp8_loop_filter_horizontal_edge_mmx @1209 + vp8_loop_filter_horizontal_edge_uv_sse2 @1210 + vp8_loop_filter_init @1211 + vp8_loop_filter_mbh_mmx @1212 + vp8_loop_filter_mbh_sse2 @1213 + vp8_loop_filter_mbv_mmx @1214 + vp8_loop_filter_mbv_sse2 @1215 + vp8_loop_filter_partial_frame @1216 + vp8_loop_filter_row_normal @1217 + vp8_loop_filter_row_simple @1218 + vp8_loop_filter_simple_horizontal_edge_mmx @1219 + vp8_loop_filter_simple_horizontal_edge_sse2 @1220 + vp8_loop_filter_simple_vertical_edge_mmx @1221 + vp8_loop_filter_simple_vertical_edge_sse2 @1222 + vp8_loop_filter_update_sharpness @1223 + vp8_loop_filter_vertical_edge_mmx @1224 + vp8_loop_filter_vertical_edge_uv_sse2 @1225 + vp8_loopfilter_frame @1226 + vp8_machine_specific_config @1227 + vp8_mb_feature_data_bits @1228 + vp8_mb_init_dequantizer @1229 + vp8_mbblock_error_c @1230 + vp8_mbblock_error_mmx_impl @1231 + vp8_mbblock_error_xmm @1232 + vp8_mbblock_error_xmm_impl @1233 + vp8_mbloop_filter_horizontal_edge_mmx @1234 + vp8_mbloop_filter_horizontal_edge_sse2 @1235 + vp8_mbloop_filter_horizontal_edge_uv_sse2 @1236 + vp8_mbloop_filter_vertical_edge_mmx @1237 + vp8_mbloop_filter_vertical_edge_sse2 @1238 + vp8_mbloop_filter_vertical_edge_uv_sse2 @1239 + vp8_mbpost_proc_across_ip_c @1240 + vp8_mbpost_proc_across_ip_xmm @1241 + vp8_mbpost_proc_down_c @1242 + vp8_mbpost_proc_down_xmm @1243 + vp8_mbsplit_count @1244 + vp8_mbsplit_encodings @1245 + vp8_mbsplit_offset @1246 + vp8_mbsplit_probs @1247 + vp8_mbsplit_tree @1248 + vp8_mbsplits @1249 + vp8_mbuverror_c @1250 + vp8_mbuverror_mmx_impl @1251 + vp8_mbuverror_xmm @1252 + vp8_mbuverror_xmm_impl @1253 + vp8_mode_contexts @1254 + vp8_mode_order @1255 + vp8_mse16x16_wmt @1256 + vp8_mse2psnr @1257 + vp8_multiframe_quality_enhance @1258 + vp8_mv_bit_cost @1259 + vp8_mv_cont @1260 + vp8_mv_pred @1261 + vp8_mv_ref_encoding_array @1262 + vp8_mv_ref_probs @1263 + vp8_mv_ref_tree @1264 + vp8_mv_update_probs @1265 + vp8_new_framerate @1266 + vp8_norm @1267 + vp8_optimize_mbuv @1268 + vp8_optimize_mby @1269 + vp8_pack_bitstream @1270 + vp8_pack_tokens_c @1271 + vp8_pick_frame_size @1272 + vp8_pick_inter_mode @1273 + vp8_pick_intra_mode @1274 + vp8_plane_add_noise_c @1275 + vp8_plane_add_noise_wmt @1276 + vp8_post_proc_down_and_across_mb_row_c @1277 + vp8_post_proc_down_and_across_mb_row_sse2 @1278 + vp8_post_proc_frame @1279 + vp8_prev_token_class @1280 + vp8_prob_cost @1281 + vp8_quantize_mb_c @1282 + vp8_quantize_mbuv_c @1283 + vp8_quantize_mby_c @1284 + vp8_rd_pick_inter_mode @1285 + vp8_rd_pick_intra_mode @1286 + vp8_receive_raw_frame @1287 + vp8_ref_frame_order @1288 + vp8_refining_search_sad @1289 + vp8_refining_search_sad_c @1290 + vp8_refining_search_sadx4 @1291 + vp8_regular_quantize_b_c @1292 + vp8_regular_quantize_b_pair_c @1293 + vp8_regular_quantize_b_sse2 @1294 + vp8_regulate_q @1295 + vp8_remove_common @1296 + vp8_remove_compressor @1297 + vp8_remove_decoder_instances @1298 + vp8_reset_mb_tokens_context @1299 + vp8_restore_coding_context @1300 + vp8_reverse_trans @1301 + vp8_rtcd @1302 + vp8_rv @1303 + vp8_sad16x16 @1304 + vp8_sad16x16_c @1305 + vp8_sad16x16_sse3 @1306 + vp8_sad16x16_wmt @1307 + vp8_sad16x16x3 @1308 + vp8_sad16x16x3_c @1309 + vp8_sad16x16x3_sse3 @1310 + vp8_sad16x16x3_ssse3 @1311 + vp8_sad16x16x4d @1312 + vp8_sad16x16x4d_c @1313 + vp8_sad16x16x4d_sse3 @1314 + vp8_sad16x16x8 @1315 + vp8_sad16x16x8_c @1316 + vp8_sad16x16x8_sse4 @1317 + vp8_sad16x8_c @1318 + vp8_sad16x8_wmt @1319 + vp8_sad16x8x3 @1320 + vp8_sad16x8x3_c @1321 + vp8_sad16x8x3_sse3 @1322 + vp8_sad16x8x3_ssse3 @1323 + vp8_sad16x8x4d @1324 + vp8_sad16x8x4d_c @1325 + vp8_sad16x8x4d_sse3 @1326 + vp8_sad16x8x8 @1327 + vp8_sad16x8x8_c @1328 + vp8_sad16x8x8_sse4 @1329 + vp8_sad4x4_c @1330 + vp8_sad4x4_wmt @1331 + vp8_sad4x4x3 @1332 + vp8_sad4x4x3_c @1333 + vp8_sad4x4x3_sse3 @1334 + vp8_sad4x4x4d @1335 + vp8_sad4x4x4d_c @1336 + vp8_sad4x4x4d_sse3 @1337 + vp8_sad4x4x8 @1338 + vp8_sad4x4x8_c @1339 + vp8_sad4x4x8_sse4 @1340 + vp8_sad8x16_c @1341 + vp8_sad8x16_wmt @1342 + vp8_sad8x16x3 @1343 + vp8_sad8x16x3_c @1344 + vp8_sad8x16x3_sse3 @1345 + vp8_sad8x16x4d @1346 + vp8_sad8x16x4d_c @1347 + vp8_sad8x16x4d_sse3 @1348 + vp8_sad8x16x8 @1349 + vp8_sad8x16x8_c @1350 + vp8_sad8x16x8_sse4 @1351 + vp8_sad8x8_c @1352 + vp8_sad8x8_wmt @1353 + vp8_sad8x8x3 @1354 + vp8_sad8x8x3_c @1355 + vp8_sad8x8x3_sse3 @1356 + vp8_sad8x8x4d @1357 + vp8_sad8x8x4d_c @1358 + vp8_sad8x8x4d_sse3 @1359 + vp8_sad8x8x8 @1360 + vp8_sad8x8x8_c @1361 + vp8_sad8x8x8_sse4 @1362 + vp8_save_coding_context @1363 + vp8_second_pass @1364 + vp8_set_active_map @1365 + vp8_set_internal_size @1366 + vp8_set_mbmode_and_mvs @1367 + vp8_set_quantizer @1368 + vp8_set_reference @1369 + vp8_set_roimap @1370 + vp8_set_speed_features @1371 + vp8_setup_block_dptrs @1372 + vp8_setup_block_ptrs @1373 + vp8_setup_intra_recon @1374 + vp8_setup_intra_recon_top_line @1375 + vp8_setup_key_frame @1376 + vp8_setup_version @1377 + vp8_short_fdct4x4_sse2 @1378 + vp8_short_fdct8x4_sse2 @1379 + vp8_short_idct4x4llm_c @1380 + vp8_short_idct4x4llm_mmx @1381 + vp8_short_inv_walsh4x4_1_c @1382 + vp8_short_inv_walsh4x4_c @1383 + vp8_short_inv_walsh4x4_sse2 @1384 + vp8_short_walsh4x4_sse2 @1385 + vp8_six_tap_mmx @1386 + vp8_sixtap_predict16x16 @1387 + vp8_sixtap_predict16x16_mmx @1388 + vp8_sixtap_predict16x16_sse2 @1389 + vp8_sixtap_predict16x16_ssse3 @1390 + vp8_sixtap_predict4x4 @1391 + vp8_sixtap_predict4x4_mmx @1392 + vp8_sixtap_predict4x4_ssse3 @1393 + vp8_sixtap_predict8x4 @1394 + vp8_sixtap_predict8x4_mmx @1395 + vp8_sixtap_predict8x4_sse2 @1396 + vp8_sixtap_predict8x4_ssse3 @1397 + vp8_sixtap_predict8x8 @1398 + vp8_sixtap_predict8x8_mmx @1399 + vp8_sixtap_predict8x8_sse2 @1400 + vp8_sixtap_predict8x8_ssse3 @1401 + vp8_skip_fractional_mv_step @1402 + vp8_small_mvencodings @1403 + vp8_small_mvtree @1404 + vp8_start_encode @1405 + vp8_stop_encode @1406 + vp8_strict_quantize_b_c @1407 + vp8_stuff_mb @1408 + vp8_sub_mv_ref_encoding_array @1409 + vp8_sub_mv_ref_prob2 @1410 + vp8_sub_mv_ref_prob3 @1411 + vp8_sub_mv_ref_tree @1412 + vp8_sub_pixel_mse16x16_wmt @1413 + vp8_sub_pixel_variance16x16 @1414 + vp8_sub_pixel_variance16x16_ssse3 @1415 + vp8_sub_pixel_variance16x16_wmt @1416 + vp8_sub_pixel_variance16x8 @1417 + vp8_sub_pixel_variance16x8_ssse3 @1418 + vp8_sub_pixel_variance16x8_wmt @1419 + vp8_sub_pixel_variance4x4_wmt @1420 + vp8_sub_pixel_variance8x16_wmt @1421 + vp8_sub_pixel_variance8x8_wmt @1422 + vp8_subtract_b_c @1423 + vp8_subtract_b_sse2 @1424 + vp8_subtract_b_sse2_impl @1425 + vp8_subtract_mbuv_c @1426 + vp8_subtract_mbuv_sse2 @1427 + vp8_subtract_mby_c @1428 + vp8_subtract_mby_sse2 @1429 + vp8_swap_yv12_buffer @1430 + vp8_temporal_filter_apply_c @1431 + vp8_temporal_filter_apply_sse2 @1432 + vp8_temporal_filter_prepare_c @1433 + vp8_tokenize_mb @1434 + vp8_tokens_from_tree @1435 + vp8_tokens_from_tree_offset @1436 + vp8_transform_intra_mby @1437 + vp8_transform_mbuv @1438 + vp8_tree_probs_from_distribution @1439 + vp8_unpack_block1d16_h6_sse2 @1440 + vp8_update_coef_probs @1441 + vp8_update_entropy @1442 + vp8_update_gf_useage_maps @1443 + vp8_update_rate_correction_factors @1444 + vp8_update_reference @1445 + vp8_update_zbin_extra @1446 + vp8_use_as_reference @1447 + vp8_uv_mode_encodings @1448 + vp8_uv_mode_prob @1449 + vp8_uv_mode_tree @1450 + vp8_variance16x16_wmt @1451 + vp8_variance16x8_wmt @1452 + vp8_variance4x4_wmt @1453 + vp8_variance8x16_wmt @1454 + vp8_variance8x8_wmt @1455 + vp8_variance_and_sad_16x16_sse2 @1456 + vp8_variance_halfpixvar16x16_h_wmt @1457 + vp8_variance_halfpixvar16x16_hv_wmt @1458 + vp8_variance_halfpixvar16x16_v_wmt @1459 + vp8_vertical_band_2_1_scale_c @1460 + vp8_vertical_band_2_1_scale_i_c @1461 + vp8_vertical_band_5_3_scale_c @1462 + vp8_vertical_band_5_4_scale_c @1463 + vp8_write_mvprobs @1464 + vp8_ymode_encodings @1465 + vp8_ymode_prob @1466 + vp8_ymode_tree @1467 + vp8_yv12_alloc_frame_buffer @1468 + vp8_yv12_copy_frame_c @1469 + vp8_yv12_copy_partial_frame_c @1470 + vp8_yv12_de_alloc_frame_buffer @1471 + vp8_yv12_extend_frame_borders_c @1472 + vp8_yv12_realloc_frame_buffer @1473 + vp8cx_base_skip_false_prob @1474 + vp8cx_create_encoder_threads @1475 + vp8cx_encode_inter_macroblock @1476 + vp8cx_encode_intra_macroblock @1477 + vp8cx_frame_init_quantizer @1478 + vp8cx_init_de_quantizer @1479 + vp8cx_init_mbrthread_data @1480 + vp8cx_init_quantizer @1481 + vp8cx_initialize_me_consts @1482 + vp8cx_mb_init_quantizer @1483 + vp8cx_pick_filter_level @1484 + vp8cx_pick_filter_level_fast @1485 + vp8cx_remove_encoder_threads @1486 + vp8cx_set_alt_lf_level @1487 + vp8dx_bool_decoder_fill @1488 + vp8dx_get_raw_frame @1489 + vp8dx_get_reference @1490 + vp8dx_receive_compressed_data @1491 + vp8dx_references_buffer @1492 + vp8dx_set_reference @1493 + vp8dx_start_decode @1494 + vp8mt_alloc_temp_buffers @1495 + vp8mt_de_alloc_temp_buffers @1496 + vp8mt_decode_mb_rows @1497 + vp9_alloc_frame_buffer @1498 + vp9_extend_frame_borders_c @1499 + vp9_extend_frame_inner_borders_c @1500 + vp9_free_frame_buffer @1501 + vp9_realloc_frame_buffer @1502 + vpx_calloc @1503 + vpx_codec_control_ @1504 + vpx_codec_dec_init_ver @1505 + vpx_codec_decode @1506 + vpx_codec_destroy @1507 + vpx_codec_enc_config_default @1508 + vpx_codec_enc_config_set @1509 + vpx_codec_enc_init_multi_ver @1510 + vpx_codec_enc_init_ver @1511 + vpx_codec_encode @1512 + vpx_codec_err_to_string @1513 + vpx_codec_error @1514 + vpx_codec_error_detail @1515 + vpx_codec_get_caps @1516 + vpx_codec_get_cx_data @1517 + vpx_codec_get_frame @1518 + vpx_codec_get_global_headers @1519 + vpx_codec_get_mem_map @1520 + vpx_codec_get_preview_frame @1521 + vpx_codec_get_stream_info @1522 + vpx_codec_iface_name @1523 + vpx_codec_peek_stream_info @1524 + vpx_codec_pkt_list_add @1525 + vpx_codec_pkt_list_get @1526 + vpx_codec_register_put_frame_cb @1527 + vpx_codec_register_put_slice_cb @1528 + vpx_codec_set_cx_data_buf @1529 + vpx_codec_set_mem_map @1530 + vpx_codec_version @1531 + vpx_codec_version_extra_str @1532 + vpx_codec_version_str @1533 + vpx_codec_vp8_cx @1534 + vpx_codec_vp8_cx_algo @1535 + vpx_codec_vp8_dx @1536 + vpx_codec_vp8_dx_algo @1537 + vpx_free @1538 + vpx_malloc @1539 + vpx_mem_get_version @1540 + vpx_mem_set_functions @1541 + vpx_mem_set_heap_size @1542 + vpx_mem_unset_functions @1543 + vpx_memalign @1544 + vpx_memcpy @1545 + vpx_memmove @1546 + vpx_memset @1547 + vpx_mmap_alloc @1548 + vpx_mmap_dtor @1549 + vpx_realloc @1550 + vpx_reset_mmx_state @1551 + vpx_scale_frame @1552 + vpx_scale_rtcd @1553 + vpx_validate_mmaps @1554 + vpx_winx64_fldcw @1555 + vpx_winx64_fstcw @1556 + vpx_yv12_copy_y_c @1557 + write_cryptpacket @1558 diff --git a/protocols/Tox/tox/lib/x86/libtox.def b/protocols/Tox/tox/lib/x86/libtox.def new file mode 100644 index 0000000000..cca6b10ff0 --- /dev/null +++ b/protocols/Tox/tox/lib/x86/libtox.def @@ -0,0 +1,1709 @@ +LIBRARY "libtox" + +EXPORTS + Assoc_add_entry @1 + Assoc_get_close_entries @2 + Assoc_self_client_id_changed @3 + DHT_addfriend @4 + DHT_bootstrap @5 + DHT_bootstrap_from_address @6 + DHT_delfriend @7 + DHT_get_close_list @8 + DHT_get_shared_key_recv @9 + DHT_get_shared_key_sent @10 + DHT_getfriendip @11 + DHT_getnodes @12 + DHT_isconnected @13 + DHT_load @14 + DHT_non_lan_connected @15 + DHT_save @16 + DHT_size @17 + LAN_ip @18 + LANdiscovery_init @19 + U16_to_bytes @20 + U32_to_bytes @21 + VP8_UVSSE @22 + __pth_gpointer_locked @23 + __pthread_clock_nanosleep @24 + __pthread_shallcancel @25 + __xl_f @26 + _celt_autocorr @27 + _celt_lpc @28 + _pthread_cleanup_dest @29 + _pthread_get_state @30 + _pthread_invoke_cancel @31 + _pthread_key_dest @32 + _pthread_rel_time_in_ms @33 + _pthread_set_state @34 + _pthread_setnobreak @35 + _pthread_time_in_ms @36 + _pthread_time_in_ms_from_timespec @37 + _pthread_tryjoin @38 + _sodium_alignedcalloc @39 + accept_crypto_connection @40 + add_ext_header @41 + add_groupchat @42 + add_header @43 + add_tcp_relay @44 + add_tcp_relay_peer @45 + add_to_ping @46 + addr_parse_ip @47 + addr_resolve @48 + addr_resolve_or_parse_ip @49 + addto_lists @50 + alg_quant @51 + alg_unquant @52 + amp2Log2 @53 + anti_collapse @54 + at_startup_ran @55 + av_DefaultSettings @56 + av_VADd @57 + av_jbufdc @58 + bs_list_add @59 + bs_list_find @60 + bs_list_free @61 + bs_list_init @62 + bs_list_remove @63 + bs_list_trim @64 + build_header @65 + bytes_to_U16 @66 + bytes_to_U32 @67 + callback_file_control @68 + callback_file_data @69 + callback_file_sendrequest @70 + callback_friendrequest @71 + callback_groupaction @72 + callback_groupmessage @73 + callback_namelistchange @74 + celt_decode_with_ec @75 + celt_decoder_get_size @76 + celt_decoder_init @77 + celt_encode_with_ec @78 + celt_encoder_get_size @79 + celt_encoder_init @80 + celt_fir @81 + celt_iir @82 + celt_lcg_rand @83 + celt_pitch_xcorr_c @84 + celt_preemphasis @85 + chat_bootstrap @86 + chat_bootstrap_nonlazy @87 + check_control_input @88 + check_fragments_for_errors @89 + check_late_message @90 + closelist_nodes @91 + clt_mdct_backward @92 + clt_mdct_forward @93 + codec_init_session @94 + codec_terminate_session @95 + comb_filter @96 + compute_allocation @97 + compute_band_energies @98 + compute_frame_size @99 + compute_stereo_width @100 + cond_print @101 + cond_print_set @102 + connection_data_handler @103 + connection_lossy_data_handler @104 + connection_status_handler @105 + copy_chatlist @106 + copy_connected_tcp_relays @107 + copy_friendlist @108 + count_chatlist @109 + count_friendlist @110 + create_announce_request @111 + create_data_request @112 + create_onion_packet @113 + create_onion_packet_tcp @114 + create_onion_path @115 + create_queue @116 + create_request @117 + crypto_box @118 + crypto_box_afternm @119 + crypto_box_beforenm @120 + crypto_box_beforenmbytes @121 + crypto_box_boxzerobytes @122 + crypto_box_curve25519xsalsa20poly1305 @123 + crypto_box_curve25519xsalsa20poly1305_afternm @124 + crypto_box_curve25519xsalsa20poly1305_beforenm @125 + crypto_box_curve25519xsalsa20poly1305_keypair @126 + crypto_box_curve25519xsalsa20poly1305_open @127 + crypto_box_curve25519xsalsa20poly1305_open_afternm @128 + crypto_box_curve25519xsalsa20poly1305_seed_keypair @129 + crypto_box_keypair @130 + crypto_box_macbytes @131 + crypto_box_noncebytes @132 + crypto_box_open @133 + crypto_box_open_afternm @134 + crypto_box_primitive @135 + crypto_box_publickeybytes @136 + crypto_box_secretkeybytes @137 + crypto_box_seed_keypair @138 + crypto_box_seedbytes @139 + crypto_box_zerobytes @140 + crypto_cmp @141 + crypto_connection_status @142 + crypto_core_hsalsa20 @143 + crypto_core_salsa20 @144 + crypto_hash_sha256 @145 + crypto_hash_sha256_final @146 + crypto_hash_sha256_init @147 + crypto_hash_sha256_update @148 + crypto_hash_sha512 @149 + crypto_hash_sha512_final @150 + crypto_hash_sha512_init @151 + crypto_hash_sha512_update @152 + crypto_kill @153 + crypto_num_free_sendqueue_slots @154 + crypto_onetimeauth_pick_best_implementation @155 + crypto_onetimeauth_poly1305 @156 + crypto_onetimeauth_poly1305_donna @157 + crypto_onetimeauth_poly1305_donna_final @158 + crypto_onetimeauth_poly1305_donna_implementation @159 + crypto_onetimeauth_poly1305_donna_implementation_name @160 + crypto_onetimeauth_poly1305_donna_init @161 + crypto_onetimeauth_poly1305_donna_update @162 + crypto_onetimeauth_poly1305_donna_verify @163 + crypto_onetimeauth_poly1305_final @164 + crypto_onetimeauth_poly1305_implementation_name @165 + crypto_onetimeauth_poly1305_init @166 + crypto_onetimeauth_poly1305_set_implementation @167 + crypto_onetimeauth_poly1305_update @168 + crypto_onetimeauth_poly1305_verify @169 + crypto_run_interval @170 + crypto_scalarmult_curve25519 @171 + crypto_scalarmult_curve25519_base @172 + crypto_scalarmult_curve25519_ref10_fe_0 @173 + crypto_scalarmult_curve25519_ref10_fe_1 @174 + crypto_scalarmult_curve25519_ref10_fe_add @175 + crypto_scalarmult_curve25519_ref10_fe_copy @176 + crypto_scalarmult_curve25519_ref10_fe_cswap @177 + crypto_scalarmult_curve25519_ref10_fe_frombytes @178 + crypto_scalarmult_curve25519_ref10_fe_invert @179 + crypto_scalarmult_curve25519_ref10_fe_mul @180 + crypto_scalarmult_curve25519_ref10_fe_mul121666 @181 + crypto_scalarmult_curve25519_ref10_fe_sq @182 + crypto_scalarmult_curve25519_ref10_fe_sub @183 + crypto_scalarmult_curve25519_ref10_fe_tobytes @184 + crypto_secretbox_xsalsa20poly1305 @185 + crypto_secretbox_xsalsa20poly1305_open @186 + crypto_stream_salsa20 @187 + crypto_stream_salsa20_keybytes @188 + crypto_stream_salsa20_noncebytes @189 + crypto_stream_salsa20_xor @190 + crypto_stream_salsa20_xor_ic @191 + crypto_stream_xsalsa20 @192 + crypto_stream_xsalsa20_xor @193 + crypto_verify_16 @194 + crypto_verify_32 @195 + cryptopacket_registerhandler @196 + current_time_monotonic @197 + custom_lossless_packet_registerhandler @198 + custom_lossy_packet_registerhandler @199 + decode_pulses @200 + decrypt_data @201 + decrypt_data_symmetric @202 + del_groupchat @203 + denormalise_bands @204 + dequeue @205 + do_Assoc @206 + do_DHT @207 + do_TCP_connection @208 + do_TCP_server @209 + do_friends @210 + do_groupchat @211 + do_hardening @212 + do_messenger @213 + do_net_crypto @214 + do_onion_client @215 + do_sema_b_wait_intern @216 + do_to_ping @217 + downmix_float @218 + downmix_int @219 + eMeans @220 + ec_dec_bit_logp @221 + ec_dec_bits @222 + ec_dec_icdf @223 + ec_dec_init @224 + ec_dec_uint @225 + ec_dec_update @226 + ec_decode @227 + ec_decode_bin @228 + ec_enc_bit_logp @229 + ec_enc_bits @230 + ec_enc_done @231 + ec_enc_icdf @232 + ec_enc_init @233 + ec_enc_patch_initial_bits @234 + ec_enc_shrink @235 + ec_enc_uint @236 + ec_encode @237 + ec_encode_bin @238 + ec_laplace_decode @239 + ec_laplace_encode @240 + ec_tell_frac @241 + encode_pulses @242 + encode_size @243 + encrypt_data @244 + encrypt_data_symmetric @245 + encrypt_precompute @246 + energy_VAD @247 + extract_ext_header @248 + extract_header @249 + file_control @250 + file_data @251 + file_dataremaining @252 + file_sendrequest @253 + format_output @254 + frame_size_select @255 + friend_ips @256 + friendreq_init @257 + get_close_nodes @258 + get_connection_dht_key @259 + get_friendlist @260 + get_nospam @261 + get_num_online_friends @262 + get_shared_key @263 + getaddress @264 + getclient_id @265 + getfriend_id @266 + getname @267 + getself_name @268 + group_action_send @269 + group_client_names @270 + group_message_send @271 + group_names @272 + group_newpeer @273 + group_number_peers @274 + group_numpeers @275 + group_peername @276 + group_sendaction @277 + group_sendmessage @278 + haar1 @279 + handle_groupchatpacket @280 + handle_request @281 + host_to_net @282 + hysteresis_decision @283 + id_closest @284 + id_copy @285 + id_equal @286 + increment_nonce @287 + increment_nonce_number @288 + init_audio_decoder @289 + init_audio_encoder @290 + init_caps @291 + init_video_decoder @292 + init_video_encoder @293 + invite_friend @294 + invoke_callback @295 + ip_copy @296 + ip_equal @297 + ip_init @298 + ip_isset @299 + ip_ntoa @300 + ip_pack @301 + ip_reset @302 + ip_unpack @303 + ipport_copy @304 + ipport_equal @305 + ipport_isset @306 + ipport_pack @307 + ipport_unpack @308 + is_timeout @309 + isqrt32 @310 + join_groupchat @311 + kill_Assoc @312 + kill_DHT @313 + kill_TCP_connection @314 + kill_TCP_server @315 + kill_groupchat @316 + kill_messenger @317 + kill_net_crypto @318 + kill_networking @319 + kill_onion @320 + kill_onion_announce @321 + kill_onion_client @322 + kill_ping @323 + kill_sock @324 + load_keys @325 + load_state @326 + m_addfriend @327 + m_addfriend_norequest @328 + m_callback_action @329 + m_callback_connectionstatus @330 + m_callback_connectionstatus_internal_av @331 + m_callback_friendmessage @332 + m_callback_friendrequest @333 + m_callback_group_action @334 + m_callback_group_invite @335 + m_callback_group_message @336 + m_callback_group_namelistchange @337 + m_callback_msi_packet @338 + m_callback_namechange @339 + m_callback_read_receipt @340 + m_callback_statusmessage @341 + m_callback_typingchange @342 + m_callback_userstatus @343 + m_copy_self_statusmessage @344 + m_copy_statusmessage @345 + m_delfriend @346 + m_friend_exists @347 + m_get_friend_connectionstatus @348 + m_get_istyping @349 + m_get_last_online @350 + m_get_name_size @351 + m_get_self_name_size @352 + m_get_self_statusmessage_size @353 + m_get_self_userstatus @354 + m_get_statusmessage_size @355 + m_get_userstatus @356 + m_group_peername @357 + m_msi_packet @358 + m_sendaction @359 + m_sendaction_withid @360 + m_sendmessage @361 + m_sendmessage_withid @362 + m_set_sends_receipts @363 + m_set_statusmessage @364 + m_set_userstatus @365 + m_set_usertyping @366 + messenger_load @367 + messenger_run_interval @368 + messenger_save @369 + messenger_size @370 + mlp_process @371 + msg_parse @372 + msi_answer @373 + msi_cancel @374 + msi_change_csettings @375 + msi_hangup @376 + msi_init_session @377 + msi_invite @378 + msi_msg_get_csettings @379 + msi_msg_set_callid @380 + msi_msg_set_csettings @381 + msi_msg_set_reason @382 + msi_new_message @383 + msi_register_callback @384 + msi_reject @385 + msi_stopcall @386 + msi_terminate_session @387 + mutex_print @388 + mutex_print_set @389 + net @390 + networking_at_startup @391 + networking_poll @392 + networking_registerhandler @393 + new_Assoc @394 + new_Assoc_default @395 + new_DHT @396 + new_TCP_connection @397 + new_TCP_server @398 + new_connection_handler @399 + new_crypto_connection @400 + new_filesender @401 + new_groupchat @402 + new_keys @403 + new_messenger @404 + new_net_crypto @405 + new_networking @406 + new_nonce @407 + new_onion @408 + new_onion_announce @409 + new_onion_client @410 + new_ping @411 + new_symmetric_key @412 + normalise_bands @413 + onion_add_path_node @414 + onion_addfriend @415 + onion_backup_nodes @416 + onion_delfriend @417 + onion_friend_num @418 + onion_getfriend_DHT_pubkey @419 + onion_getfriendip @420 + onion_isconnected @421 + onion_response_handler @422 + onion_send_1 @423 + onion_set_friend_DHT_pubkey @424 + onion_set_friend_online @425 + oniondata_registerhandler @426 + oob_data_handler @427 + optimize_framesize @428 + opus_custom_decoder_ctl @429 + opus_custom_encoder_ctl @430 + opus_custom_mode_create @431 + opus_decode @432 + opus_decode_float @433 + opus_decode_native @434 + opus_decoder_create @435 + opus_decoder_ctl @436 + opus_decoder_destroy @437 + opus_decoder_get_nb_samples @438 + opus_decoder_get_size @439 + opus_decoder_init @440 + opus_encode @441 + opus_encode_float @442 + opus_encode_native @443 + opus_encoder_create @444 + opus_encoder_ctl @445 + opus_encoder_destroy @446 + opus_encoder_get_size @447 + opus_encoder_init @448 + opus_fft @449 + opus_get_version_string @450 + opus_ifft @451 + opus_multistream_packet_pad @452 + opus_multistream_packet_unpad @453 + opus_packet_get_bandwidth @454 + opus_packet_get_nb_channels @455 + opus_packet_get_nb_frames @456 + opus_packet_get_nb_samples @457 + opus_packet_get_samples_per_frame @458 + opus_packet_pad @459 + opus_packet_parse @460 + opus_packet_parse_impl @461 + opus_packet_unpad @462 + opus_pcm_soft_clip @463 + opus_repacketizer_cat @464 + opus_repacketizer_create @465 + opus_repacketizer_destroy @466 + opus_repacketizer_get_nb_frames @467 + opus_repacketizer_get_size @468 + opus_repacketizer_init @469 + opus_repacketizer_out @470 + opus_repacketizer_out_range @471 + opus_repacketizer_out_range_impl @472 + opus_strerror @473 + pack_nodes @474 + parse_recv @475 + parse_send @476 + patch_transient_decision @477 + ping_array_add @478 + ping_array_check @479 + ping_array_free_all @480 + ping_array_init @481 + pitch_downsample @482 + pitch_search @483 + pthread_attr_destroy @484 + pthread_attr_getdetachstate @485 + pthread_attr_getinheritsched @486 + pthread_attr_getscope @487 + pthread_attr_getstackaddr @488 + pthread_attr_getstacksize @489 + pthread_attr_init @490 + pthread_attr_setdetachstate @491 + pthread_attr_setinheritsched @492 + pthread_attr_setscope @493 + pthread_attr_setstackaddr @494 + pthread_attr_setstacksize @495 + pthread_cancel @496 + pthread_cond_broadcast @497 + pthread_cond_destroy @498 + pthread_cond_init @499 + pthread_cond_signal @500 + pthread_cond_timedwait @501 + pthread_cond_timedwait_relative @502 + pthread_cond_wait @503 + pthread_condattr_destroy @504 + pthread_condattr_getclock @505 + pthread_condattr_getpshared @506 + pthread_condattr_init @507 + pthread_condattr_setclock @508 + pthread_condattr_setpshared @509 + pthread_create @510 + pthread_create_wrapper @511 + pthread_delay_np @512 + pthread_delay_np_ms @513 + pthread_detach @514 + pthread_equal @515 + pthread_exit @516 + pthread_get_concurrency @517 + pthread_getclean @518 + pthread_getconcurrency @519 + pthread_getevent @520 + pthread_gethandle @521 + pthread_getspecific @522 + pthread_join @523 + pthread_key_create @524 + pthread_key_delete @525 + pthread_kill @526 + pthread_mutex_destroy @527 + pthread_mutex_init @528 + pthread_mutex_lock @529 + pthread_mutex_timedlock @530 + pthread_mutex_trylock @531 + pthread_mutex_unlock @532 + pthread_mutexattr_destroy @533 + pthread_mutexattr_getprioceiling @534 + pthread_mutexattr_getprotocol @535 + pthread_mutexattr_getpshared @536 + pthread_mutexattr_gettype @537 + pthread_mutexattr_init @538 + pthread_mutexattr_setprioceiling @539 + pthread_mutexattr_setprotocol @540 + pthread_mutexattr_setpshared @541 + pthread_mutexattr_settype @542 + pthread_num_processors_np @543 + pthread_once @544 + pthread_rwlock_destroy @545 + pthread_rwlock_init @546 + pthread_rwlock_rdlock @547 + pthread_rwlock_timedrdlock @548 + pthread_rwlock_timedwrlock @549 + pthread_rwlock_tryrdlock @550 + pthread_rwlock_trywrlock @551 + pthread_rwlock_unlock @552 + pthread_rwlock_wrlock @553 + pthread_rwlockattr_destroy @554 + pthread_rwlockattr_getpshared @555 + pthread_rwlockattr_init @556 + pthread_rwlockattr_setpshared @557 + pthread_self @558 + pthread_set_concurrency @559 + pthread_set_num_processors_np @560 + pthread_setcancelstate @561 + pthread_setcanceltype @562 + pthread_setconcurrency @563 + pthread_setspecific @564 + pthread_spin_destroy @565 + pthread_spin_init @566 + pthread_spin_lock @567 + pthread_spin_trylock @568 + pthread_spin_unlock @569 + pthread_testcancel @570 + pthread_timechange_handler_np @571 + pthread_tls_init @572 + public_key_valid @573 + quant_all_bands @574 + quant_coarse_energy @575 + quant_energy_finalise @576 + quant_fine_energy @577 + queue @578 + random_64b @579 + random_int @580 + random_node @581 + random_nodes_path @582 + random_nonce @583 + randombytes @584 + randombytes_buf @585 + randombytes_close @586 + randombytes_implementation_name @587 + randombytes_random @588 + randombytes_set_implementation @589 + randombytes_stir @590 + randombytes_sysrandom @591 + randombytes_sysrandom_buf @592 + randombytes_sysrandom_close @593 + randombytes_sysrandom_implementation @594 + randombytes_sysrandom_implementation_name @595 + randombytes_sysrandom_stir @596 + randombytes_sysrandom_uniform @597 + randombytes_uniform @598 + read_TCP_length @599 + read_TCP_packet @600 + read_packet_TCP_secure_connection @601 + realloc_friendlist @602 + reconfigure_video_encoder_bitrate @603 + reconfigure_video_encoder_resolution @604 + recv_tcp_relay_handler @605 + remove_doubling @606 + remove_request_received @607 + renormalise_vector @608 + resampling_factor @609 + route_packet @610 + route_tofriend @611 + routing_data_handler @612 + routing_response_handler @613 + routing_status_handler @614 + rtp_free_msg @615 + rtp_handle_packet @616 + rtp_init_session @617 + rtp_new_message @618 + rtp_send_msg @619 + rtp_terminate_session @620 + run_analysis @621 + rwl_print @622 + rwl_print_set @623 + save_keys @624 + send_LANdiscovery @625 + send_announce_request @626 + send_custom_lossless_packet @627 + send_custom_lossy_packet @628 + send_data @629 + send_data_request @630 + send_disconnect_request @631 + send_friendrequest @632 + send_lossy_cryptpacket @633 + send_onion_data @634 + send_onion_packet @635 + send_onion_request @636 + send_onion_response @637 + send_oob_packet @638 + send_ping_request @639 + send_reponse @640 + send_routing_request @641 + send_tcp_onion_request @642 + sendpacket @643 + set_callback_handle_recv_1 @644 + set_connection_dht_public_key @645 + set_direct_ip_port @646 + set_filter_function @647 + set_nick @648 + set_nospam @649 + set_socket_dualstack @650 + set_socket_nonblock @651 + set_socket_nosigpipe @652 + set_tcp_connection_number @653 + setfriendname @654 + setname @655 + silk_A2NLSF @656 + silk_A2NLSF_FLP @657 + silk_CB_lags_stage2 @658 + silk_CB_lags_stage2_10_ms @659 + silk_CB_lags_stage3 @660 + silk_CB_lags_stage3_10_ms @661 + silk_CNG @662 + silk_CNG_Reset @663 + silk_Decode @664 + silk_Encode @665 + silk_Get_Decoder_Size @666 + silk_Get_Encoder_Size @667 + silk_HP_variable_cutoff @668 + silk_InitDecoder @669 + silk_InitEncoder @670 + silk_LBRR_flags_iCDF_ptr @671 + silk_LPC_analysis_filter @672 + silk_LPC_analysis_filter_FLP @673 + silk_LPC_inverse_pred_gain @674 + silk_LPC_inverse_pred_gain_FLP @675 + silk_LP_variable_cutoff @676 + silk_LSFCosTab_FIX_Q12 @677 + silk_LTPScales_table_Q14 @678 + silk_LTP_analysis_filter_FLP @679 + silk_LTP_gain_BITS_Q5_ptrs @680 + silk_LTP_gain_iCDF_ptrs @681 + silk_LTP_gain_middle_avg_RD_Q14 @682 + silk_LTP_per_index_iCDF @683 + silk_LTP_scale_ctrl_FLP @684 + silk_LTP_vq_gain_ptrs_Q7 @685 + silk_LTP_vq_ptrs_Q7 @686 + silk_LTP_vq_sizes @687 + silk_LTPscale_iCDF @688 + silk_Lag_range_stage3 @689 + silk_Lag_range_stage3_10_ms @690 + silk_NLSF2A @691 + silk_NLSF2A_FLP @692 + silk_NLSF_CB_NB_MB @693 + silk_NLSF_CB_WB @694 + silk_NLSF_EXT_iCDF @695 + silk_NLSF_VQ @696 + silk_NLSF_VQ_weights_laroia @697 + silk_NLSF_decode @698 + silk_NLSF_del_dec_quant @699 + silk_NLSF_encode @700 + silk_NLSF_interpolation_factor_iCDF @701 + silk_NLSF_stabilize @702 + silk_NLSF_unpack @703 + silk_NSQ @704 + silk_NSQ_del_dec @705 + silk_NSQ_wrapper_FLP @706 + silk_PLC @707 + silk_PLC_Reset @708 + silk_PLC_glue_frames @709 + silk_Quantization_Offsets_Q10 @710 + silk_Resampler_1_2_COEFS @711 + silk_Resampler_1_3_COEFS @712 + silk_Resampler_1_4_COEFS @713 + silk_Resampler_1_6_COEFS @714 + silk_Resampler_2_3_COEFS @715 + silk_Resampler_2_3_COEFS_LQ @716 + silk_Resampler_3_4_COEFS @717 + silk_SNR_table_Q1 @718 + silk_TargetRate_table_MB @719 + silk_TargetRate_table_NB @720 + silk_TargetRate_table_WB @721 + silk_Transition_LP_A_Q28 @722 + silk_Transition_LP_B_Q28 @723 + silk_VAD_GetSA_Q8 @724 + silk_VAD_Init @725 + silk_VQ_WMat_EC @726 + silk_ana_filt_bank_1 @727 + silk_apply_sine_window_FLP @728 + silk_autocorrelation_FLP @729 + silk_biquad_alt @730 + silk_burg_modified_FLP @731 + silk_bwexpander @732 + silk_bwexpander_32 @733 + silk_bwexpander_FLP @734 + silk_control_SNR @735 + silk_control_audio_bandwidth @736 + silk_control_encoder @737 + silk_corrMatrix_FLP @738 + silk_corrVector_FLP @739 + silk_decode_core @740 + silk_decode_frame @741 + silk_decode_indices @742 + silk_decode_parameters @743 + silk_decode_pitch @744 + silk_decode_pulses @745 + silk_decode_signs @746 + silk_decoder_set_fs @747 + silk_delta_gain_iCDF @748 + silk_encode_do_VAD_FLP @749 + silk_encode_frame_FLP @750 + silk_encode_indices @751 + silk_encode_pulses @752 + silk_encode_signs @753 + silk_energy_FLP @754 + silk_find_LPC_FLP @755 + silk_find_LTP_FLP @756 + silk_find_pitch_lags_FLP @757 + silk_find_pred_coefs_FLP @758 + silk_gain_iCDF @759 + silk_gains_ID @760 + silk_gains_dequant @761 + silk_gains_quant @762 + silk_init_decoder @763 + silk_init_encoder @764 + silk_inner_prod_aligned_scale @765 + silk_inner_product_FLP @766 + silk_insertion_sort_decreasing_FLP @767 + silk_insertion_sort_increasing @768 + silk_insertion_sort_increasing_all_values_int16 @769 + silk_interpolate @770 + silk_k2a_FLP @771 + silk_levinsondurbin_FLP @772 + silk_lin2log @773 + silk_log2lin @774 + silk_lsb_iCDF @775 + silk_max_pulses_table @776 + silk_nb_cbk_searchs_stage3 @777 + silk_noise_shape_analysis_FLP @778 + silk_pitch_analysis_core_FLP @779 + silk_pitch_contour_10_ms_NB_iCDF @780 + silk_pitch_contour_10_ms_iCDF @781 + silk_pitch_contour_NB_iCDF @782 + silk_pitch_contour_iCDF @783 + silk_pitch_delta_iCDF @784 + silk_pitch_lag_iCDF @785 + silk_prefilter_FLP @786 + silk_process_NLSFs @787 + silk_process_NLSFs_FLP @788 + silk_process_gains_FLP @789 + silk_pulses_per_block_BITS_Q5 @790 + silk_pulses_per_block_iCDF @791 + silk_quant_LTP_gains @792 + silk_quant_LTP_gains_FLP @793 + silk_rate_levels_BITS_Q5 @794 + silk_rate_levels_iCDF @795 + silk_regularize_correlations_FLP @796 + silk_resampler @797 + silk_resampler_down2 @798 + silk_resampler_down2_3 @799 + silk_resampler_frac_FIR_12 @800 + silk_resampler_init @801 + silk_resampler_private_AR2 @802 + silk_resampler_private_IIR_FIR @803 + silk_resampler_private_down_FIR @804 + silk_resampler_private_up2_HQ @805 + silk_resampler_private_up2_HQ_wrapper @806 + silk_residual_energy_FLP @807 + silk_residual_energy_covar_FLP @808 + silk_scale_copy_vector_FLP @809 + silk_scale_vector_FLP @810 + silk_schur_FLP @811 + silk_shell_code_table0 @812 + silk_shell_code_table1 @813 + silk_shell_code_table2 @814 + silk_shell_code_table3 @815 + silk_shell_code_table_offsets @816 + silk_shell_decoder @817 + silk_shell_encoder @818 + silk_sigm_Q15 @819 + silk_sign_iCDF @820 + silk_solve_LDL_FLP @821 + silk_stereo_LR_to_MS @822 + silk_stereo_MS_to_LR @823 + silk_stereo_decode_mid_only @824 + silk_stereo_decode_pred @825 + silk_stereo_encode_mid_only @826 + silk_stereo_encode_pred @827 + silk_stereo_find_predictor @828 + silk_stereo_only_code_mid_iCDF @829 + silk_stereo_pred_joint_iCDF @830 + silk_stereo_pred_quant_Q13 @831 + silk_stereo_quant_pred @832 + silk_sum_sqr_shift @833 + silk_type_offset_VAD_iCDF @834 + silk_type_offset_no_VAD_iCDF @835 + silk_uniform3_iCDF @836 + silk_uniform4_iCDF @837 + silk_uniform5_iCDF @838 + silk_uniform6_iCDF @839 + silk_uniform8_iCDF @840 + silk_warped_autocorrelation_FLP @841 + sock_valid @842 + sodium_bin2hex @843 + sodium_hex2bin @844 + sodium_init @845 + sodium_memcmp @846 + sodium_memzero @847 + sodium_mlock @848 + sodium_munlock @849 + sodium_runtime_get_cpu_features @850 + sodium_runtime_has_neon @851 + sodium_runtime_has_sse2 @852 + sodium_runtime_has_sse3 @853 + spreading_decision @854 + stereo_itheta @855 + tcp_onion_response_handler @856 + terminate_queue @857 + tf_select_table @858 + thread_print @859 + thread_print_set @860 + to_host_family @861 + to_net_family @862 + tonality_analysis @863 + tonality_get_info @864 + tox_add_friend @865 + tox_add_friend_norequest @866 + tox_add_groupchat @867 + tox_bootstrap_from_address @868 + tox_callback_connection_status @869 + tox_callback_file_control @870 + tox_callback_file_data @871 + tox_callback_file_send_request @872 + tox_callback_friend_action @873 + tox_callback_friend_message @874 + tox_callback_friend_request @875 + tox_callback_group_action @876 + tox_callback_group_invite @877 + tox_callback_group_message @878 + tox_callback_group_namelist_change @879 + tox_callback_name_change @880 + tox_callback_read_receipt @881 + tox_callback_status_message @882 + tox_callback_typing_change @883 + tox_callback_user_status @884 + tox_count_chatlist @885 + tox_count_friendlist @886 + tox_decrypt_dns3_TXT @887 + tox_del_friend @888 + tox_del_groupchat @889 + tox_dns3_kill @890 + tox_dns3_new @891 + tox_do @892 + tox_do_interval @893 + tox_file_data_remaining @894 + tox_file_data_size @895 + tox_file_send_control @896 + tox_file_send_data @897 + tox_friend_exists @898 + tox_generate_dns3_string @899 + tox_get_address @900 + tox_get_chatlist @901 + tox_get_client_id @902 + tox_get_friend_connection_status @903 + tox_get_friend_number @904 + tox_get_friendlist @905 + tox_get_is_typing @906 + tox_get_keys @907 + tox_get_last_online @908 + tox_get_name @909 + tox_get_name_size @910 + tox_get_nospam @911 + tox_get_num_online_friends @912 + tox_get_self_name @913 + tox_get_self_name_size @914 + tox_get_self_status_message @915 + tox_get_self_status_message_size @916 + tox_get_self_user_status @917 + tox_get_status_message @918 + tox_get_status_message_size @919 + tox_get_user_status @920 + tox_group_action_send @921 + tox_group_get_names @922 + tox_group_message_send @923 + tox_group_number_peers @924 + tox_group_peername @925 + tox_invite_friend @926 + tox_isconnected @927 + tox_join_groupchat @928 + tox_kill @929 + tox_load @930 + tox_new @931 + tox_new_file_sender @932 + tox_save @933 + tox_send_action @934 + tox_send_action_withid @935 + tox_send_message @936 + tox_send_message_withid @937 + tox_set_name @938 + tox_set_nospam @939 + tox_set_status_message @940 + tox_set_user_is_typing @941 + tox_set_user_status @942 + tox_size @943 + toxav_answer @944 + toxav_call @945 + toxav_cancel @946 + toxav_capability_supported @947 + toxav_change_settings @948 + toxav_get_call_state @949 + toxav_get_peer_csettings @950 + toxav_get_peer_id @951 + toxav_get_tox @952 + toxav_handle_packet @953 + toxav_hangup @954 + toxav_has_activity @955 + toxav_kill @956 + toxav_kill_transmission @957 + toxav_new @958 + toxav_prepare_audio_frame @959 + toxav_prepare_transmission @960 + toxav_prepare_video_frame @961 + toxav_register_audio_recv_callback @962 + toxav_register_callstate_callback @963 + toxav_register_video_recv_callback @964 + toxav_reject @965 + toxav_send_audio @966 + toxav_send_video @967 + toxav_stop_call @968 + unix_time @969 + unix_time_update @970 + unpack_nodes @971 + unquant_coarse_energy @972 + unquant_energy_finalise @973 + unquant_fine_energy @974 + vp8_ac2quant @975 + vp8_ac_uv_quant @976 + vp8_ac_yquant @977 + vp8_activity_masking @978 + vp8_adjust_key_frame_context @979 + vp8_alloc_compressor_data @980 + vp8_alloc_frame_buffers @981 + vp8_auto_select_speed @982 + vp8_bilinear_filters @983 + vp8_bilinear_filters_x86_4 @984 + vp8_bilinear_filters_x86_8 @985 + vp8_bilinear_predict16x16 @986 + vp8_bilinear_predict16x16_c @987 + vp8_bilinear_predict16x16_mmx @988 + vp8_bilinear_predict16x16_sse2 @989 + vp8_bilinear_predict16x16_ssse3 @990 + vp8_bilinear_predict4x4 @991 + vp8_bilinear_predict4x4_c @992 + vp8_bilinear_predict4x4_mmx @993 + vp8_bilinear_predict8x4 @994 + vp8_bilinear_predict8x4_c @995 + vp8_bilinear_predict8x4_mmx @996 + vp8_bilinear_predict8x8 @997 + vp8_bilinear_predict8x8_c @998 + vp8_bilinear_predict8x8_mmx @999 + vp8_bilinear_predict8x8_sse2 @1000 + vp8_bilinear_predict8x8_ssse3 @1001 + vp8_bits_per_mb @1002 + vp8_blend_b_c @1003 + vp8_blend_mb_inner_c @1004 + vp8_blend_mb_outer_c @1005 + vp8_block2above @1006 + vp8_block2left @1007 + vp8_block_error @1008 + vp8_block_error_c @1009 + vp8_block_error_mmx @1010 + vp8_block_error_xmm @1011 + vp8_bmode_encodings @1012 + vp8_bmode_prob @1013 + vp8_bmode_tree @1014 + vp8_build_block_doffsets @1015 + vp8_build_block_offsets @1016 + vp8_build_component_cost_table @1017 + vp8_build_inter16x16_predictors_mb @1018 + vp8_build_inter16x16_predictors_mbuv @1019 + vp8_build_inter16x16_predictors_mby @1020 + vp8_build_inter4x4_predictors_mbuv @1021 + vp8_build_inter_predictors_b @1022 + vp8_build_inter_predictors_mb @1023 + vp8_build_intra_predictors_mbuv_s @1024 + vp8_build_intra_predictors_mbuv_s_c @1025 + vp8_build_intra_predictors_mbuv_s_sse2 @1026 + vp8_build_intra_predictors_mbuv_s_ssse3 @1027 + vp8_build_intra_predictors_mby_s @1028 + vp8_build_intra_predictors_mby_s_c @1029 + vp8_build_intra_predictors_mby_s_sse2 @1030 + vp8_build_intra_predictors_mby_s_ssse3 @1031 + vp8_cal_sad @1032 + vp8_calc_ref_frame_costs @1033 + vp8_calc_ss_err @1034 + vp8_change_config @1035 + vp8_clear_system_state @1036 + vp8_clear_system_state_c @1037 + vp8_coef_bands @1038 + vp8_coef_encodings @1039 + vp8_coef_tree @1040 + vp8_coef_update_probs @1041 + vp8_compute_frame_size_bounds @1042 + vp8_convert_rfct_to_prob @1043 + vp8_copy32xn @1044 + vp8_copy32xn_c @1045 + vp8_copy32xn_sse2 @1046 + vp8_copy32xn_sse3 @1047 + vp8_copy_and_extend_frame @1048 + vp8_copy_and_extend_frame_with_rect @1049 + vp8_copy_mem16x16 @1050 + vp8_copy_mem16x16_c @1051 + vp8_copy_mem16x16_mmx @1052 + vp8_copy_mem16x16_sse2 @1053 + vp8_copy_mem8x4 @1054 + vp8_copy_mem8x4_c @1055 + vp8_copy_mem8x4_mmx @1056 + vp8_copy_mem8x8 @1057 + vp8_copy_mem8x8_c @1058 + vp8_copy_mem8x8_mmx @1059 + vp8_cost_mv_ref @1060 + vp8_cost_tokens @1061 + vp8_cost_tokens2 @1062 + vp8_create_common @1063 + vp8_create_compressor @1064 + vp8_create_decoder_instances @1065 + vp8_ctf_maps @1066 + vp8_dc2quant @1067 + vp8_dc_only_idct_add @1068 + vp8_dc_only_idct_add_c @1069 + vp8_dc_only_idct_add_mmx @1070 + vp8_dc_quant @1071 + vp8_dc_uv_quant @1072 + vp8_dct_value_cost_ptr @1073 + vp8_dct_value_tokens_ptr @1074 + vp8_de_alloc_frame_buffers @1075 + vp8_deblock @1076 + vp8_decode_frame @1077 + vp8_decode_mb_tokens @1078 + vp8_decode_mode_mvs @1079 + vp8_decoder_create_threads @1080 + vp8_decoder_remove_threads @1081 + vp8_default_bmode_probs @1082 + vp8_default_coef_probs @1083 + vp8_default_inv_zig_zag @1084 + vp8_default_mv_context @1085 + vp8_default_zig_zag1d @1086 + vp8_default_zig_zag_mask @1087 + vp8_denoiser_allocate @1088 + vp8_denoiser_denoise_mb @1089 + vp8_denoiser_filter @1090 + vp8_denoiser_filter_c @1091 + vp8_denoiser_filter_sse2 @1092 + vp8_denoiser_free @1093 + vp8_dequant_idct_add @1094 + vp8_dequant_idct_add_c @1095 + vp8_dequant_idct_add_mmx @1096 + vp8_dequant_idct_add_uv_block @1097 + vp8_dequant_idct_add_uv_block_c @1098 + vp8_dequant_idct_add_uv_block_mmx @1099 + vp8_dequant_idct_add_uv_block_sse2 @1100 + vp8_dequant_idct_add_y_block @1101 + vp8_dequant_idct_add_y_block_c @1102 + vp8_dequant_idct_add_y_block_mmx @1103 + vp8_dequant_idct_add_y_block_sse2 @1104 + vp8_dequantize_b @1105 + vp8_dequantize_b_c @1106 + vp8_dequantize_b_impl_mmx @1107 + vp8_dequantize_b_mmx @1108 + vp8_diamond_search_sad @1109 + vp8_diamond_search_sad_c @1110 + vp8_diamond_search_sadx4 @1111 + vp8_encode_frame @1112 + vp8_encode_inter16x16 @1113 + vp8_encode_inter16x16y @1114 + vp8_encode_intra @1115 + vp8_encode_intra16x16mbuv @1116 + vp8_encode_intra16x16mby @1117 + vp8_encode_intra4x4block @1118 + vp8_encode_intra4x4mby @1119 + vp8_encode_motion_vector @1120 + vp8_encode_value @1121 + vp8_end_first_pass @1122 + vp8_end_second_pass @1123 + vp8_estimate_entropy_savings @1124 + vp8_extend_mb_row @1125 + vp8_extra_bits @1126 + vp8_fast_quantize_b @1127 + vp8_fast_quantize_b_c @1128 + vp8_fast_quantize_b_impl_mmx @1129 + vp8_fast_quantize_b_mmx @1130 + vp8_fast_quantize_b_pair_c @1131 + vp8_fast_quantize_b_sse2 @1132 + vp8_fast_quantize_b_ssse3 @1133 + vp8_filter_block1d16_h6_only_sse2 @1134 + vp8_filter_block1d16_h6_sse2 @1135 + vp8_filter_block1d16_h6_ssse3 @1136 + vp8_filter_block1d16_v6_sse2 @1137 + vp8_filter_block1d16_v6_ssse3 @1138 + vp8_filter_block1d4_h6_ssse3 @1139 + vp8_filter_block1d4_v6_ssse3 @1140 + vp8_filter_block1d8_h6_only_sse2 @1141 + vp8_filter_block1d8_h6_sse2 @1142 + vp8_filter_block1d8_h6_ssse3 @1143 + vp8_filter_block1d8_v6_only_sse2 @1144 + vp8_filter_block1d8_v6_sse2 @1145 + vp8_filter_block1d8_v6_ssse3 @1146 + vp8_filter_block1d_h6_mmx @1147 + vp8_filter_block1dc_v6_mmx @1148 + vp8_filter_block2d_bil4x4_var_mmx @1149 + vp8_filter_block2d_bil_var_mmx @1150 + vp8_filter_block2d_bil_var_sse2 @1151 + vp8_filter_block2d_bil_var_ssse3 @1152 + vp8_filter_by_weight16x16 @1153 + vp8_filter_by_weight16x16_c @1154 + vp8_filter_by_weight16x16_sse2 @1155 + vp8_filter_by_weight4x4_c @1156 + vp8_filter_by_weight8x8 @1157 + vp8_filter_by_weight8x8_c @1158 + vp8_filter_by_weight8x8_sse2 @1159 + vp8_find_best_half_pixel_step @1160 + vp8_find_best_sub_pixel_step @1161 + vp8_find_best_sub_pixel_step_iteratively @1162 + vp8_find_near_mvs @1163 + vp8_find_near_mvs_bias @1164 + vp8_first_pass @1165 + vp8_fix_contexts @1166 + vp8_full_search_sad @1167 + vp8_full_search_sad_c @1168 + vp8_full_search_sadx3 @1169 + vp8_full_search_sadx8 @1170 + vp8_gaussian @1171 + vp8_get16x16var_sse2 @1172 + vp8_get4x4sse_cs @1173 + vp8_get4x4sse_cs_c @1174 + vp8_get4x4sse_cs_mmx @1175 + vp8_get4x4var_mmx @1176 + vp8_get8x8var_mmx @1177 + vp8_get8x8var_sse2 @1178 + vp8_get_compressed_data @1179 + vp8_get_inter_mbpred_error @1180 + vp8_get_mb_ss @1181 + vp8_get_mb_ss_c @1182 + vp8_get_mb_ss_mmx @1183 + vp8_get_mb_ss_sse2 @1184 + vp8_get_preview_raw_frame @1185 + vp8_get_quantizer @1186 + vp8_get_reference @1187 + vp8_gf_boost_qadjustment @1188 + vp8_half_horiz_variance16x_h_sse2 @1189 + vp8_half_horiz_variance8x_h_sse2 @1190 + vp8_half_horiz_vert_variance16x_h_sse2 @1191 + vp8_half_horiz_vert_variance8x_h_sse2 @1192 + vp8_half_vert_variance16x_h_sse2 @1193 + vp8_half_vert_variance8x_h_sse2 @1194 + vp8_hex_search @1195 + vp8_horizontal_line_2_1_scale_c @1196 + vp8_horizontal_line_5_3_scale_c @1197 + vp8_horizontal_line_5_4_scale_c @1198 + vp8_idct_dequant_0_2x_sse2 @1199 + vp8_idct_dequant_dc_0_2x_sse2 @1200 + vp8_idct_dequant_dc_full_2x_sse2 @1201 + vp8_idct_dequant_full_2x_sse2 @1202 + vp8_init3smotion_compensation @1203 + vp8_init_dsmotion_compensation @1204 + vp8_init_first_pass @1205 + vp8_init_mbmode_probs @1206 + vp8_init_mode_costs @1207 + vp8_init_second_pass @1208 + vp8_initialize_rd_consts @1209 + vp8_intra4x4_predict_c @1210 + vp8_intra_pred_uv_dc128_mmx @1211 + vp8_intra_pred_uv_dc_mmx2 @1212 + vp8_intra_pred_uv_dcleft_mmx2 @1213 + vp8_intra_pred_uv_dctop_mmx2 @1214 + vp8_intra_pred_uv_ho_mmx2 @1215 + vp8_intra_pred_uv_ho_ssse3 @1216 + vp8_intra_pred_uv_tm_sse2 @1217 + vp8_intra_pred_uv_tm_ssse3 @1218 + vp8_intra_pred_uv_ve_mmx @1219 + vp8_intra_pred_y_dc128_sse2 @1220 + vp8_intra_pred_y_dc_sse2 @1221 + vp8_intra_pred_y_dcleft_sse2 @1222 + vp8_intra_pred_y_dctop_sse2 @1223 + vp8_intra_pred_y_ho_sse2 @1224 + vp8_intra_pred_y_tm_sse2 @1225 + vp8_intra_pred_y_tm_ssse3 @1226 + vp8_intra_pred_y_ve_sse2 @1227 + vp8_kf_bmode_prob @1228 + vp8_kf_uv_mode_prob @1229 + vp8_kf_ymode_encodings @1230 + vp8_kf_ymode_prob @1231 + vp8_kf_ymode_tree @1232 + vp8_lookahead_depth @1233 + vp8_lookahead_destroy @1234 + vp8_lookahead_init @1235 + vp8_lookahead_peek @1236 + vp8_lookahead_pop @1237 + vp8_lookahead_push @1238 + vp8_loop_filter_bh @1239 + vp8_loop_filter_bh_c @1240 + vp8_loop_filter_bh_mmx @1241 + vp8_loop_filter_bh_sse2 @1242 + vp8_loop_filter_bhs_c @1243 + vp8_loop_filter_bhs_mmx @1244 + vp8_loop_filter_bhs_sse2 @1245 + vp8_loop_filter_bv @1246 + vp8_loop_filter_bv_c @1247 + vp8_loop_filter_bv_mmx @1248 + vp8_loop_filter_bv_sse2 @1249 + vp8_loop_filter_bvs_c @1250 + vp8_loop_filter_bvs_mmx @1251 + vp8_loop_filter_bvs_sse2 @1252 + vp8_loop_filter_frame @1253 + vp8_loop_filter_frame_init @1254 + vp8_loop_filter_frame_yonly @1255 + vp8_loop_filter_horizontal_edge_c @1256 + vp8_loop_filter_horizontal_edge_mmx @1257 + vp8_loop_filter_horizontal_edge_sse2 @1258 + vp8_loop_filter_horizontal_edge_uv_sse2 @1259 + vp8_loop_filter_init @1260 + vp8_loop_filter_mbh @1261 + vp8_loop_filter_mbh_c @1262 + vp8_loop_filter_mbh_mmx @1263 + vp8_loop_filter_mbh_sse2 @1264 + vp8_loop_filter_mbv @1265 + vp8_loop_filter_mbv_c @1266 + vp8_loop_filter_mbv_mmx @1267 + vp8_loop_filter_mbv_sse2 @1268 + vp8_loop_filter_partial_frame @1269 + vp8_loop_filter_row_normal @1270 + vp8_loop_filter_row_simple @1271 + vp8_loop_filter_simple_bh @1272 + vp8_loop_filter_simple_bv @1273 + vp8_loop_filter_simple_horizontal_edge_c @1274 + vp8_loop_filter_simple_horizontal_edge_mmx @1275 + vp8_loop_filter_simple_horizontal_edge_sse2 @1276 + vp8_loop_filter_simple_mbh @1277 + vp8_loop_filter_simple_mbv @1278 + vp8_loop_filter_simple_vertical_edge_c @1279 + vp8_loop_filter_simple_vertical_edge_mmx @1280 + vp8_loop_filter_simple_vertical_edge_sse2 @1281 + vp8_loop_filter_update_sharpness @1282 + vp8_loop_filter_vertical_edge_c @1283 + vp8_loop_filter_vertical_edge_mmx @1284 + vp8_loop_filter_vertical_edge_sse2 @1285 + vp8_loop_filter_vertical_edge_uv_sse2 @1286 + vp8_loopfilter_frame @1287 + vp8_machine_specific_config @1288 + vp8_mb_feature_data_bits @1289 + vp8_mb_init_dequantizer @1290 + vp8_mbblock_error @1291 + vp8_mbblock_error_c @1292 + vp8_mbblock_error_mmx @1293 + vp8_mbblock_error_mmx_impl @1294 + vp8_mbblock_error_xmm @1295 + vp8_mbblock_error_xmm_impl @1296 + vp8_mbloop_filter_horizontal_edge_c @1297 + vp8_mbloop_filter_horizontal_edge_mmx @1298 + vp8_mbloop_filter_horizontal_edge_sse2 @1299 + vp8_mbloop_filter_horizontal_edge_uv_sse2 @1300 + vp8_mbloop_filter_vertical_edge_c @1301 + vp8_mbloop_filter_vertical_edge_mmx @1302 + vp8_mbloop_filter_vertical_edge_sse2 @1303 + vp8_mbloop_filter_vertical_edge_uv_sse2 @1304 + vp8_mbpost_proc_across_ip @1305 + vp8_mbpost_proc_across_ip_c @1306 + vp8_mbpost_proc_across_ip_xmm @1307 + vp8_mbpost_proc_down @1308 + vp8_mbpost_proc_down_c @1309 + vp8_mbpost_proc_down_mmx @1310 + vp8_mbpost_proc_down_xmm @1311 + vp8_mbsplit_count @1312 + vp8_mbsplit_encodings @1313 + vp8_mbsplit_offset @1314 + vp8_mbsplit_probs @1315 + vp8_mbsplit_tree @1316 + vp8_mbsplits @1317 + vp8_mbuverror @1318 + vp8_mbuverror_c @1319 + vp8_mbuverror_mmx @1320 + vp8_mbuverror_mmx_impl @1321 + vp8_mbuverror_xmm @1322 + vp8_mbuverror_xmm_impl @1323 + vp8_mode_contexts @1324 + vp8_mode_order @1325 + vp8_mse16x16 @1326 + vp8_mse16x16_c @1327 + vp8_mse16x16_mmx @1328 + vp8_mse16x16_wmt @1329 + vp8_mse2psnr @1330 + vp8_multiframe_quality_enhance @1331 + vp8_mv_bit_cost @1332 + vp8_mv_cont @1333 + vp8_mv_pred @1334 + vp8_mv_ref_encoding_array @1335 + vp8_mv_ref_probs @1336 + vp8_mv_ref_tree @1337 + vp8_mv_update_probs @1338 + vp8_new_framerate @1339 + vp8_norm @1340 + vp8_optimize_mbuv @1341 + vp8_optimize_mby @1342 + vp8_pack_bitstream @1343 + vp8_pack_tokens_c @1344 + vp8_pick_frame_size @1345 + vp8_pick_inter_mode @1346 + vp8_pick_intra_mode @1347 + vp8_plane_add_noise @1348 + vp8_plane_add_noise_c @1349 + vp8_plane_add_noise_mmx @1350 + vp8_plane_add_noise_wmt @1351 + vp8_post_proc_down_and_across_mb_row @1352 + vp8_post_proc_down_and_across_mb_row_c @1353 + vp8_post_proc_down_and_across_mb_row_sse2 @1354 + vp8_post_proc_frame @1355 + vp8_prev_token_class @1356 + vp8_prob_cost @1357 + vp8_quantize_mb_c @1358 + vp8_quantize_mbuv_c @1359 + vp8_quantize_mby_c @1360 + vp8_rd_pick_inter_mode @1361 + vp8_rd_pick_intra_mode @1362 + vp8_receive_raw_frame @1363 + vp8_ref_frame_order @1364 + vp8_refining_search_sad @1365 + vp8_refining_search_sad_c @1366 + vp8_refining_search_sadx4 @1367 + vp8_regular_quantize_b @1368 + vp8_regular_quantize_b_c @1369 + vp8_regular_quantize_b_pair_c @1370 + vp8_regular_quantize_b_sse2 @1371 + vp8_regulate_q @1372 + vp8_remove_common @1373 + vp8_remove_compressor @1374 + vp8_remove_decoder_instances @1375 + vp8_reset_mb_tokens_context @1376 + vp8_restore_coding_context @1377 + vp8_reverse_trans @1378 + vp8_rtcd @1379 + vp8_rv @1380 + vp8_sad16x16 @1381 + vp8_sad16x16_c @1382 + vp8_sad16x16_mmx @1383 + vp8_sad16x16_sse3 @1384 + vp8_sad16x16_wmt @1385 + vp8_sad16x16x3 @1386 + vp8_sad16x16x3_c @1387 + vp8_sad16x16x3_sse3 @1388 + vp8_sad16x16x3_ssse3 @1389 + vp8_sad16x16x4d @1390 + vp8_sad16x16x4d_c @1391 + vp8_sad16x16x4d_sse3 @1392 + vp8_sad16x16x8 @1393 + vp8_sad16x16x8_c @1394 + vp8_sad16x16x8_sse4 @1395 + vp8_sad16x8 @1396 + vp8_sad16x8_c @1397 + vp8_sad16x8_mmx @1398 + vp8_sad16x8_wmt @1399 + vp8_sad16x8x3 @1400 + vp8_sad16x8x3_c @1401 + vp8_sad16x8x3_sse3 @1402 + vp8_sad16x8x3_ssse3 @1403 + vp8_sad16x8x4d @1404 + vp8_sad16x8x4d_c @1405 + vp8_sad16x8x4d_sse3 @1406 + vp8_sad16x8x8 @1407 + vp8_sad16x8x8_c @1408 + vp8_sad16x8x8_sse4 @1409 + vp8_sad4x4 @1410 + vp8_sad4x4_c @1411 + vp8_sad4x4_mmx @1412 + vp8_sad4x4_wmt @1413 + vp8_sad4x4x3 @1414 + vp8_sad4x4x3_c @1415 + vp8_sad4x4x3_sse3 @1416 + vp8_sad4x4x4d @1417 + vp8_sad4x4x4d_c @1418 + vp8_sad4x4x4d_sse3 @1419 + vp8_sad4x4x8 @1420 + vp8_sad4x4x8_c @1421 + vp8_sad4x4x8_sse4 @1422 + vp8_sad8x16 @1423 + vp8_sad8x16_c @1424 + vp8_sad8x16_mmx @1425 + vp8_sad8x16_wmt @1426 + vp8_sad8x16x3 @1427 + vp8_sad8x16x3_c @1428 + vp8_sad8x16x3_sse3 @1429 + vp8_sad8x16x4d @1430 + vp8_sad8x16x4d_c @1431 + vp8_sad8x16x4d_sse3 @1432 + vp8_sad8x16x8 @1433 + vp8_sad8x16x8_c @1434 + vp8_sad8x16x8_sse4 @1435 + vp8_sad8x8 @1436 + vp8_sad8x8_c @1437 + vp8_sad8x8_mmx @1438 + vp8_sad8x8_wmt @1439 + vp8_sad8x8x3 @1440 + vp8_sad8x8x3_c @1441 + vp8_sad8x8x3_sse3 @1442 + vp8_sad8x8x4d @1443 + vp8_sad8x8x4d_c @1444 + vp8_sad8x8x4d_sse3 @1445 + vp8_sad8x8x8 @1446 + vp8_sad8x8x8_c @1447 + vp8_sad8x8x8_sse4 @1448 + vp8_save_coding_context @1449 + vp8_second_pass @1450 + vp8_set_active_map @1451 + vp8_set_internal_size @1452 + vp8_set_mbmode_and_mvs @1453 + vp8_set_quantizer @1454 + vp8_set_reference @1455 + vp8_set_roimap @1456 + vp8_set_speed_features @1457 + vp8_setup_block_dptrs @1458 + vp8_setup_block_ptrs @1459 + vp8_setup_intra_recon @1460 + vp8_setup_intra_recon_top_line @1461 + vp8_setup_key_frame @1462 + vp8_setup_version @1463 + vp8_short_fdct4x4 @1464 + vp8_short_fdct4x4_c @1465 + vp8_short_fdct4x4_mmx @1466 + vp8_short_fdct4x4_sse2 @1467 + vp8_short_fdct8x4 @1468 + vp8_short_fdct8x4_c @1469 + vp8_short_fdct8x4_mmx @1470 + vp8_short_fdct8x4_sse2 @1471 + vp8_short_idct4x4llm @1472 + vp8_short_idct4x4llm_c @1473 + vp8_short_idct4x4llm_mmx @1474 + vp8_short_inv_walsh4x4 @1475 + vp8_short_inv_walsh4x4_1_c @1476 + vp8_short_inv_walsh4x4_c @1477 + vp8_short_inv_walsh4x4_mmx @1478 + vp8_short_inv_walsh4x4_sse2 @1479 + vp8_short_walsh4x4 @1480 + vp8_short_walsh4x4_c @1481 + vp8_short_walsh4x4_sse2 @1482 + vp8_six_tap_mmx @1483 + vp8_sixtap_predict16x16 @1484 + vp8_sixtap_predict16x16_c @1485 + vp8_sixtap_predict16x16_mmx @1486 + vp8_sixtap_predict16x16_sse2 @1487 + vp8_sixtap_predict16x16_ssse3 @1488 + vp8_sixtap_predict4x4 @1489 + vp8_sixtap_predict4x4_c @1490 + vp8_sixtap_predict4x4_mmx @1491 + vp8_sixtap_predict4x4_ssse3 @1492 + vp8_sixtap_predict8x4 @1493 + vp8_sixtap_predict8x4_c @1494 + vp8_sixtap_predict8x4_mmx @1495 + vp8_sixtap_predict8x4_sse2 @1496 + vp8_sixtap_predict8x4_ssse3 @1497 + vp8_sixtap_predict8x8 @1498 + vp8_sixtap_predict8x8_c @1499 + vp8_sixtap_predict8x8_mmx @1500 + vp8_sixtap_predict8x8_sse2 @1501 + vp8_sixtap_predict8x8_ssse3 @1502 + vp8_skip_fractional_mv_step @1503 + vp8_small_mvencodings @1504 + vp8_small_mvtree @1505 + vp8_start_encode @1506 + vp8_stop_encode @1507 + vp8_strict_quantize_b_c @1508 + vp8_stuff_mb @1509 + vp8_sub_mv_ref_encoding_array @1510 + vp8_sub_mv_ref_prob2 @1511 + vp8_sub_mv_ref_prob3 @1512 + vp8_sub_mv_ref_tree @1513 + vp8_sub_pel_filters @1514 + vp8_sub_pixel_mse16x16 @1515 + vp8_sub_pixel_mse16x16_c @1516 + vp8_sub_pixel_mse16x16_mmx @1517 + vp8_sub_pixel_mse16x16_wmt @1518 + vp8_sub_pixel_variance16x16 @1519 + vp8_sub_pixel_variance16x16_c @1520 + vp8_sub_pixel_variance16x16_mmx @1521 + vp8_sub_pixel_variance16x16_ssse3 @1522 + vp8_sub_pixel_variance16x16_wmt @1523 + vp8_sub_pixel_variance16x8 @1524 + vp8_sub_pixel_variance16x8_c @1525 + vp8_sub_pixel_variance16x8_mmx @1526 + vp8_sub_pixel_variance16x8_ssse3 @1527 + vp8_sub_pixel_variance16x8_wmt @1528 + vp8_sub_pixel_variance4x4 @1529 + vp8_sub_pixel_variance4x4_c @1530 + vp8_sub_pixel_variance4x4_mmx @1531 + vp8_sub_pixel_variance4x4_wmt @1532 + vp8_sub_pixel_variance8x16 @1533 + vp8_sub_pixel_variance8x16_c @1534 + vp8_sub_pixel_variance8x16_mmx @1535 + vp8_sub_pixel_variance8x16_wmt @1536 + vp8_sub_pixel_variance8x8 @1537 + vp8_sub_pixel_variance8x8_c @1538 + vp8_sub_pixel_variance8x8_mmx @1539 + vp8_sub_pixel_variance8x8_wmt @1540 + vp8_subtract_b @1541 + vp8_subtract_b_c @1542 + vp8_subtract_b_mmx @1543 + vp8_subtract_b_mmx_impl @1544 + vp8_subtract_b_sse2 @1545 + vp8_subtract_b_sse2_impl @1546 + vp8_subtract_mbuv @1547 + vp8_subtract_mbuv_c @1548 + vp8_subtract_mbuv_mmx @1549 + vp8_subtract_mbuv_sse2 @1550 + vp8_subtract_mby @1551 + vp8_subtract_mby_c @1552 + vp8_subtract_mby_mmx @1553 + vp8_subtract_mby_sse2 @1554 + vp8_swap_yv12_buffer @1555 + vp8_temporal_filter_apply @1556 + vp8_temporal_filter_apply_c @1557 + vp8_temporal_filter_apply_sse2 @1558 + vp8_temporal_filter_prepare_c @1559 + vp8_tokenize_mb @1560 + vp8_tokens_from_tree @1561 + vp8_tokens_from_tree_offset @1562 + vp8_transform_intra_mby @1563 + vp8_transform_mbuv @1564 + vp8_tree_probs_from_distribution @1565 + vp8_unpack_block1d16_h6_sse2 @1566 + vp8_update_coef_probs @1567 + vp8_update_entropy @1568 + vp8_update_gf_useage_maps @1569 + vp8_update_rate_correction_factors @1570 + vp8_update_reference @1571 + vp8_update_zbin_extra @1572 + vp8_use_as_reference @1573 + vp8_uv_mode_encodings @1574 + vp8_uv_mode_prob @1575 + vp8_uv_mode_tree @1576 + vp8_variance16x16 @1577 + vp8_variance16x16_c @1578 + vp8_variance16x16_mmx @1579 + vp8_variance16x16_wmt @1580 + vp8_variance16x8 @1581 + vp8_variance16x8_c @1582 + vp8_variance16x8_mmx @1583 + vp8_variance16x8_wmt @1584 + vp8_variance4x4 @1585 + vp8_variance4x4_c @1586 + vp8_variance4x4_mmx @1587 + vp8_variance4x4_wmt @1588 + vp8_variance8x16 @1589 + vp8_variance8x16_c @1590 + vp8_variance8x16_mmx @1591 + vp8_variance8x16_wmt @1592 + vp8_variance8x8 @1593 + vp8_variance8x8_c @1594 + vp8_variance8x8_mmx @1595 + vp8_variance8x8_wmt @1596 + vp8_variance_and_sad_16x16_sse2 @1597 + vp8_variance_halfpixvar16x16_h @1598 + vp8_variance_halfpixvar16x16_h_c @1599 + vp8_variance_halfpixvar16x16_h_mmx @1600 + vp8_variance_halfpixvar16x16_h_wmt @1601 + vp8_variance_halfpixvar16x16_hv @1602 + vp8_variance_halfpixvar16x16_hv_c @1603 + vp8_variance_halfpixvar16x16_hv_mmx @1604 + vp8_variance_halfpixvar16x16_hv_wmt @1605 + vp8_variance_halfpixvar16x16_v @1606 + vp8_variance_halfpixvar16x16_v_c @1607 + vp8_variance_halfpixvar16x16_v_mmx @1608 + vp8_variance_halfpixvar16x16_v_wmt @1609 + vp8_vertical_band_2_1_scale_c @1610 + vp8_vertical_band_2_1_scale_i_c @1611 + vp8_vertical_band_5_3_scale_c @1612 + vp8_vertical_band_5_4_scale_c @1613 + vp8_write_mvprobs @1614 + vp8_ymode_encodings @1615 + vp8_ymode_prob @1616 + vp8_ymode_tree @1617 + vp8_yv12_alloc_frame_buffer @1618 + vp8_yv12_copy_frame_c @1619 + vp8_yv12_copy_partial_frame_c @1620 + vp8_yv12_de_alloc_frame_buffer @1621 + vp8_yv12_extend_frame_borders_c @1622 + vp8_yv12_realloc_frame_buffer @1623 + vp8cx_base_skip_false_prob @1624 + vp8cx_create_encoder_threads @1625 + vp8cx_encode_inter_macroblock @1626 + vp8cx_encode_intra_macroblock @1627 + vp8cx_frame_init_quantizer @1628 + vp8cx_init_de_quantizer @1629 + vp8cx_init_mbrthread_data @1630 + vp8cx_init_quantizer @1631 + vp8cx_initialize_me_consts @1632 + vp8cx_mb_init_quantizer @1633 + vp8cx_pick_filter_level @1634 + vp8cx_pick_filter_level_fast @1635 + vp8cx_remove_encoder_threads @1636 + vp8cx_set_alt_lf_level @1637 + vp8dx_bool_decoder_fill @1638 + vp8dx_get_raw_frame @1639 + vp8dx_get_reference @1640 + vp8dx_receive_compressed_data @1641 + vp8dx_references_buffer @1642 + vp8dx_set_reference @1643 + vp8dx_start_decode @1644 + vp8mt_alloc_temp_buffers @1645 + vp8mt_de_alloc_temp_buffers @1646 + vp8mt_decode_mb_rows @1647 + vp9_alloc_frame_buffer @1648 + vp9_extend_frame_borders_c @1649 + vp9_extend_frame_inner_borders_c @1650 + vp9_free_frame_buffer @1651 + vp9_realloc_frame_buffer @1652 + vpx_calloc @1653 + vpx_codec_control_ @1654 + vpx_codec_dec_init_ver @1655 + vpx_codec_decode @1656 + vpx_codec_destroy @1657 + vpx_codec_enc_config_default @1658 + vpx_codec_enc_config_set @1659 + vpx_codec_enc_init_multi_ver @1660 + vpx_codec_enc_init_ver @1661 + vpx_codec_encode @1662 + vpx_codec_err_to_string @1663 + vpx_codec_error @1664 + vpx_codec_error_detail @1665 + vpx_codec_get_caps @1666 + vpx_codec_get_cx_data @1667 + vpx_codec_get_frame @1668 + vpx_codec_get_global_headers @1669 + vpx_codec_get_mem_map @1670 + vpx_codec_get_preview_frame @1671 + vpx_codec_get_stream_info @1672 + vpx_codec_iface_name @1673 + vpx_codec_peek_stream_info @1674 + vpx_codec_pkt_list_add @1675 + vpx_codec_pkt_list_get @1676 + vpx_codec_register_put_frame_cb @1677 + vpx_codec_register_put_slice_cb @1678 + vpx_codec_set_cx_data_buf @1679 + vpx_codec_set_mem_map @1680 + vpx_codec_version @1681 + vpx_codec_version_extra_str @1682 + vpx_codec_version_str @1683 + vpx_codec_vp8_cx @1684 + vpx_codec_vp8_cx_algo @1685 + vpx_codec_vp8_dx @1686 + vpx_codec_vp8_dx_algo @1687 + vpx_free @1688 + vpx_malloc @1689 + vpx_mem_get_version @1690 + vpx_mem_set_functions @1691 + vpx_mem_set_heap_size @1692 + vpx_mem_unset_functions @1693 + vpx_memalign @1694 + vpx_memcpy @1695 + vpx_memmove @1696 + vpx_memset @1697 + vpx_mmap_alloc @1698 + vpx_mmap_dtor @1699 + vpx_realloc @1700 + vpx_reset_mmx_state @1701 + vpx_scale_frame @1702 + vpx_scale_rtcd @1703 + vpx_validate_mmaps @1704 + vpx_yv12_copy_y_c @1705 + write_cryptpacket @1706 diff --git a/protocols/Tox/tox/lib/x86/libtox.exp b/protocols/Tox/tox/lib/x86/libtox.exp new file mode 100644 index 0000000000..b9b3285af6 Binary files /dev/null and b/protocols/Tox/tox/lib/x86/libtox.exp differ diff --git a/protocols/Tox/tox/lib/x86/libtox.lib b/protocols/Tox/tox/lib/x86/libtox.lib new file mode 100644 index 0000000000..e796ec22e0 Binary files /dev/null and b/protocols/Tox/tox/lib/x86/libtox.lib differ -- cgit v1.2.3