{"id":13420673,"url":"https://github.com/TimothyGu/libilbc","last_synced_at":"2025-03-15T07:31:22.849Z","repository":{"id":2542521,"uuid":"3520152","full_name":"TimothyGu/libilbc","owner":"TimothyGu","description":"Packaged version of iLBC codec from the WebRTC project","archived":false,"fork":false,"pushed_at":"2024-01-27T16:45:42.000Z","size":296571,"stargazers_count":64,"open_issues_count":9,"forks_count":49,"subscribers_count":17,"default_branch":"main","last_synced_at":"2024-10-29T15:51:06.778Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TimothyGu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-02-22T23:06:29.000Z","updated_at":"2024-10-13T11:29:25.000Z","dependencies_parsed_at":"2024-06-19T11:14:04.295Z","dependency_job_id":"cd978f48-9f24-46df-bee4-d79b5f20f1ad","html_url":"https://github.com/TimothyGu/libilbc","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyGu%2Flibilbc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyGu%2Flibilbc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyGu%2Flibilbc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyGu%2Flibilbc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimothyGu","download_url":"https://codeload.github.com/TimothyGu/libilbc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243701056,"owners_count":20333614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T22:01:38.777Z","updated_at":"2025-03-15T07:31:22.513Z","avatar_url":"https://github.com/TimothyGu.png","language":"C","funding_links":[],"categories":["TODO scan for Android support in followings"],"sub_categories":[],"readme":"libilbc\n=======\n\n![Build Status](https://github.com/TimothyGu/libilbc/workflows/CMake/badge.svg)\n\nThis is a packaging-friendly copy of the iLBC codec from the WebRTC project. It\nprovides a base for distribution packages and can be used as drop-in\nreplacement for the code from RFC 3591.\n\nCompiling\n---------\n\nlibilbc requires the following to compile:\n\n- A C compiler\n- A C++ compiler supporting C++14 or later\n- [CMake](https://cmake.org/)\n- A [CMake-compatible build system][cmake-generators];\n  some options are:\n  - [Ninja](https://ninja-build.org/) (recommended)\n  - [GNU Make](https://www.gnu.org/software/make/) for Unix-like systems\n  - [Visual Studio](https://visualstudio.microsoft.com/) for Windows\n\n[Abseil Common C++ Libraries](https://github.com/abseil/abseil-cpp) is also a\nprerequisite, but it comes bundled with release tarballs (or provided as a\nsubmodule for Git users) so there's no need to install it separately.\n\n0. If you are not using a release tarball, you can clone this repo with:\n   ```sh\n   git clone --depth=1 https://github.com/TimothyGu/libilbc.git\n   git submodule update --init\n   ```\n\n1. **[Generate build files][cmake-generate]:** `cmake .`\n\n   If you instead want a static library, instead run `cmake\n   -DBUILD_SHARED_LIBS=OFF .` per [CMake docs][BUILD_SHARED_LIBS].\n\n2. **[Build it][cmake-build]:** `cmake --build .`\n\n   You should now get a library file (.so, .dylib, .dll, .a, or .lib depending\n   on your platform) as well as a ilbc\\_test program.\n\n3. (optional) **Try it out.** This repo comes a sample.pcm audio file that is\n   in a form ilbc\\_test accepts (raw signed 16-bit PCM, mono, sampled at 8000\n   Hz). The following command encodes sample.pcm to encoded.ilbc, and then\n   decode it again to decoded.pcm.\n   ```sh\n   ./ilbc_test 20 sample.pcm encoded.ilbc decoded.pcm\n   ```\n   You can try to play the before/after audio with [mpv][]:\n   ```sh\n   mpv --demuxer=rawaudio --demuxer-rawaudio-rate=8000 --demuxer-rawaudio-channels=1 sample.pcm\n   mpv --demuxer=rawaudio --demuxer-rawaudio-rate=8000 --demuxer-rawaudio-channels=1 decoded.pcm\n   ```\n\n   You can create your own sample file too. The command I used was:\n   ```sh\n   ffmpeg -f pulse -i default -f s16le -filter:a \"pan=1|c0=c0+c1,aresample=8000\" sample.pcm\n   ```\n   which gets the audio input from Linux's PulseAudio, and then remixes and\n   resamples it.\n\n4. (optional; for Unix-like systems) **Installing.** If you want to install the\n   library and the ilbc\\_test utility to system locations, run either `ninja\n   install` or `make install` depending on which build system you chose (or\n   [`cmake --install .`][cmake-install] on CMake 3.15 or later). By default,\n   the library gets installed to /usr/local; to tweak the install prefix, set\n   `-DCMAKE_INSTALL_PREFIX=\u003cpath\u003e` when running `cmake`; see\n   [docs][CMAKE_INSTALL_PREFIX].\n\nSupported platforms\n-------------------\n\nThe following platforms are regularly run on CI and are thus supported:\n\n* Linux\n  * ARMv5–7 (32-bit; soft and hard float)\n  * ARMv8 (64-bit)\n  * PowerPC (little-endian) (64-bit)\n  * MIPS (little-endian) (64-bit)\n  * x86-64\n* macOS on x86-64\n* Windows\n  * x86-64 with Visual C++ 2019\n  * x86-64 with [clang-cl](https://clang.llvm.org/docs/UsersManual.html#clang-cl)\n\nThe following architectures get cross-compiled on CI and thus probably work.\nBut we don't know for sure if it actually runs:\n\n* Linux\n  * MIPS (little-endian) (32-bit)\n  * PowerPC (big-endian) (32/64-bit)\n  * RISC-V (64-bit)\n  * SPARC (64-bit)\n* Windows\n  * ARM64 with Visual C++ 2019\n\nThese platforms are known to _not_ work:\n\n* Linux\n  * MIPS (big-endian) (32-bit)\n* Windows\n  * ARM with Visual C++ 2019 (32-bit)\n\nAll other platforms _may_ work out of the box. If they don't, a simple change\nto rtc\\_base/system/arch.h will most likely fix it up.\n\nFor packagers\n-------------\n\nThere are some additional CMake options available to the fine folks packaging\nthis library. For the most part, we use the\n[GNUInstallDirs](https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html)\nCMake module to determine where things are installed, which should generally do\nthe right thing. If it doesn't, try:\n\n- `-DCMAKE_INSTALL_PREFIX=\u003cdir\u003e` for the prefix (usually defaults to\n  /usr/local)\n- `-DCMAKE_INSTALL_BINDIR=\u003cdir\u003e` for executables and Windows DLLs\n- `-DCMAKE_INSTALL_DOCDIR=\u003cdir\u003e` for various Markdown documentation files\n- `-DCMAKE_INSTALL_INCLUDEDIR=\u003cdir\u003e` for C headers\n- `-DCMAKE_INSTALL_LIBDIR=\u003cdir\u003e` for static libraries (`.a`), Windows DLL\n  import libraries (`.lib`), and non-Windows dynamic libraries (`.so` and\n  `.dylib`)\n\n[BUILD_SHARED_LIBS]: https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html\n[cmake-build]: https://cmake.org/cmake/help/latest/manual/cmake.1.html#build-a-project\n[cmake-install]: https://cmake.org/cmake/help/latest/manual/cmake.1.html#install-a-project\n[cmake-generate]: https://cmake.org/cmake/help/latest/manual/cmake.1.html#generate-a-project-buildsystem\n[cmake-generators]: https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html\n[CMAKE_INSTALL_PREFIX]: https://cmake.org/cmake/help/latest/variable/CMAKE_INSTALL_PREFIX.html\n[GNUInstallDirs]: https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html\n[mpv]: https://mpv.io/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimothyGu%2Flibilbc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTimothyGu%2Flibilbc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTimothyGu%2Flibilbc/lists"}