145 Commits

Author SHA1 Message Date
Antoine Soulier
ce2e41faf8 python: Add PLC interface for the python wrapper 2025-05-23 10:04:49 -07:00
anonymix007
9f1e206b34 feature: Add lc3_encoder_disable_ltpf
LTPF requires a lot of processing power, so disabling it might be
required for embedded low-performance devices.
2025-03-04 15:26:10 -08:00
anonymix007
1de85e2d9b fix: Typo in the lc3_frame_block_bytes function implementation 2025-03-04 15:26:10 -08:00
Antoine Soulier
96a3af0beb Bump version to 1.1.3 v1.1.3 2025-02-11 16:41:29 -08:00
Antoine Soulier
47f801dffb python: Build python wrapper wheels with github actions 2025-02-11 16:30:03 -08:00
Gilles Boccon-Gibod
f301a22413 compute the sum over the converted buffer 2025-02-10 10:04:03 -08:00
Antoine Soulier
48bbd3eacd Rename lc3 python package to lc3py, and bump version to 1.1.2 v1.1.2 2025-01-31 10:23:31 -08:00
David Lechner
7558637303 python: remove semicolons
While mostly harmless, random semicolons in Python can be a bit
distracting when reading the code, especially when one uses a syntax
highlighter that flags them as errors.
2025-01-21 16:22:45 -08:00
Antoine Soulier
e4ceb7fa86 fix: Compilation with Xcode 16 2025-01-14 13:54:29 -08:00
Josh Wu
0b28bf28ee Adopt review suggestions 2024-12-17 09:09:49 -08:00
Josh Wu
9c59375ae0 Rework Python binding 2024-12-17 09:09:49 -08:00
Antoine Soulier
bb85f7dde4 math: Remove usage of Infinity that leads to undefined beahior using fast-math 2024-06-06 17:27:30 -07:00
Antoine Soulier
ac02cce7c3 fastmath: Prefer signed addition instead of unsigned wrapped 2024-04-25 10:41:44 -07:00
Antoine Soulier
73bbc00245 conformance: Update version to 1.0.7 and add HFP SWB use-case v1.1.1 2024-04-19 15:17:57 -07:00
Antoine Soulier
8523516b89 test: Fix typo in decoder.py call to ltpf 2024-04-10 10:26:22 -07:00
Rui Chen
5f5251ab7d ci: add build-macos-meson job
Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-04-05 09:24:13 -07:00
Rui Chen
5e528fc543 build: fix rpath issue
While packaging for homebrew, I ran into some rpath issue when building the tools.

```
$ /opt/homebrew/Cellar/liblc3/1.1.0/bin/elc3 -h
dyld[72986]: Library not loaded: @rpath/liblc3.1.dylib
  Referenced from: <1B4E9174-0A9C-3907-8487-40BBBE5B52CB> /opt/homebrew/Cellar/liblc3/1.1.0/bin/elc3
  Reason: no LC_RPATH's found
Abort trap: 6
```

This patch is for fixing the rpath ref issue.

Signed-off-by: Rui Chen <rui@chenrui.dev>
2024-04-05 09:21:59 -07:00
Antoine Soulier
e54cdeb9f0 README: Add wasm compilation 2024-03-27 11:01:57 -07:00
Antoine Soulier
16e082c929 wasm: Remove warnings, and separate builtin backend 2024-03-27 11:01:57 -07:00
Antoine Soulier
bfea2c04c1 msvc: Fix MSVC compilation and CI 2024-03-27 10:31:14 -07:00
Antoine Soulier
ae0fb3757f meson: Bump library version to 1.1.0 2024-03-21 15:19:12 -07:00
Antoine Soulier
7f1c920505 meson: Set buildtype to release by default 2024-03-21 15:18:20 -07:00
David Duarte
36acfbff50 ci: Add a github action workflow
This workflow build liblc3 (linux, linux with meson, wasm) and
run the test in the test directory on linux.
2024-02-29 15:38:55 -08:00
David Duarte
f48f0ff4d7 test: Add numpy include path
test/setup.py currently expects the numpy header to be in the
system include path. This is not always the case,
numpy.get_include() is used to add the include path for those cases.
2024-02-29 15:38:55 -08:00
Antoine Soulier
998150919d conformace: Update results 2024-02-27 15:47:26 -08:00
Eli Schwartz
3f05fcb8f2 python bindings: build/install via integrated meson support
The meson build system has builtin support for python packaging, and
unlike hatchling it is spec-compliant. Additionally, meson is already
responsible for building the shared library itself, which the python
build backend can then distribute inside the wheel. This allows shipping
a wheel that can find its own liblc3.so via ctypes and doesn't require
passing paths to the library around, nor to install both separately and
hope that this works.
2024-02-27 14:36:26 -08:00
Antoine Soulier
a01c060807 fastmath: Increase precision of 2^x, needed for LC3 HR Precision tests 2024-02-27 14:28:28 -08:00
David Duarte
e67bb2d07d wasm: Add a wasm liblc3 library
The wasm library is automatically built when the compiler target
is set to wasm32 in bin/liblc3.wasm.

This can be done using `make CC="clang --target=wasm32"`.

This wasm library doesn't have any import and expose all liblc3
functions.
2024-02-20 17:03:52 -08:00
Antoine Soulier
d7a739849a fastmath: Remove non builtin dependencies to math library 2024-02-20 17:03:52 -08:00
Antoine Soulier
2e655459eb make: Add hidden GNU visibility, and enable LTO 2024-02-20 17:03:52 -08:00
Antoine Soulier
e1f41fc8d4 cpp: Work only with frame blocks 2024-01-30 14:31:39 -08:00
Antoine SOULIER
8b1619706e Merge pull request #41 from google/libpython
Python library wrapper
2024-01-30 14:09:32 -08:00
Antoine Soulier
8e0bd81fe4 python: Add python library wrapper 2024-01-30 14:06:48 -08:00
Antoine Soulier
10999c6c58 dlc3: Fix usage documentation 2024-01-25 11:29:23 -08:00
Antoine Soulier
43d62807a3 hr mode: Allow half bitrate (fallback operation), and remove lower bound on decoding. 2024-01-23 15:33:08 -08:00
Antoine Soulier
d9973b605b tns: Quantize on 16 bits the RC coeffs, required for LC3 Plus HR 2024-01-23 14:09:16 -08:00
Antoine Soulier
5f70c731f5 tns: Change 2.5ms 48KHz TNS division, as HR specification and reference implementation 2024-01-23 10:47:10 -08:00
Antoine Soulier
e88593c03c fix: Compilation warning 2024-01-23 10:43:49 -08:00
Antoine Soulier
a874947933 fix: Wrong gain offset on high bitrate, high resolution 48 KHz 2024-01-19 16:26:29 -08:00
Antoine Soulier
4d014e33e7 tools & cpp: Add support of asymetric frame sizes of a stereo stream 2024-01-19 16:24:19 -08:00
Antoine Soulier
71ffd784d5 fix: crash can occurs with NaN or infinte PCM inputs, and fast-math enabled 2024-01-10 09:17:08 -08:00
Antoine Soulier
834826c9d7 make: switch to shared object library 2024-01-09 10:43:04 -08:00
Antoine Soulier
570ef0b56b Disable linguist detectable for test files 2024-01-04 12:04:30 -08:00
Antoine Soulier
f8728d275e conformance: Update LC3 reports and add LC3+ reports 2023-12-28 15:00:08 -08:00
Antoine SOULIER
5785c3e2b1 Merge pull request #40 from google/lc3plus
Lc3 Plus features
2023-12-28 10:21:17 -08:00
Antoine Soulier
125c682696 Documents LC3 Plus feature 2023-12-28 10:16:57 -08:00
Antoine Soulier
6c99421bac fuzz: Update with LC3-Plus LC3-Plus HR parameters 2023-12-28 10:16:57 -08:00
Antoine Soulier
0aac2a41e1 make: Add makefile LC3_PLUS options 2023-12-28 10:16:57 -08:00
anonymix007
d967d8e63b lc3_cpp: Update to HR interface 2023-12-28 10:16:57 -08:00
Antoine Soulier
daa580235e feature: Add High-Resolution LC3 plus mode
Duplicate interfaces for HR mode

spec: Remove intermediate quantized table

fix: legacy lc3_frame_bytes() and lc3_resolve_bitrate()

Cosmetic: rename fast_xxx math function to lc3_xxx
2023-12-28 10:16:55 -08:00