Commit Graph

119 Commits

Author SHA1 Message Date
Jean-Marc Valin
c5117c5ccd
Add dred_end return value to opus_dred_parse() 2024-02-16 03:00:45 -05:00
luzpaz
009d7412e1
Fix various typos
Found using `codespell -q 3 -L caf,highe,inlin,nd,ordert,shft`

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2024-02-02 11:03:50 -05:00
Jean-Marc Valin
a8cb719d05
Add blob loading for DRED encoder and decoder 2023-06-16 13:02:26 -04:00
Jean-Marc Valin
6fb930956f
Add blob loading support to decoder 2023-06-16 13:02:22 -04:00
Jean-Marc Valin
c64b321e7a
DRED API update
output() renamed to decode(), dred objects using alloc() and free(),
OpusDRED now passed as cost for decoding.
2023-06-16 13:02:16 -04:00
Jean-Marc Valin
e0c6eae8cc
Update the API to add an OpusDREDDecoder 2023-06-16 13:01:39 -04:00
Jean-Marc Valin
4402b00fd3
Add API doc, change DRED offsets to be samples 2023-06-16 13:01:34 -04:00
Jean-Marc Valin
75f0dbcad0
Cleanup, remove "old" DRED API 2023-06-16 13:01:33 -04:00
Jean-Marc Valin
5e2440fafc
Complete switching to DRED object 2023-06-16 13:01:33 -04:00
Jean-Marc Valin
ebfa29c7e1
Remove opus_dred_init() 2023-06-16 13:01:33 -04:00
Jean-Marc Valin
1312642f08
More DRED refactoring
progressive decode, avoid storing DRED decoder state
2023-06-16 13:01:32 -04:00
Jean-Marc Valin
906ee4b236
DRED refactoring/renaming 2023-06-16 13:01:32 -04:00
Jean-Marc Valin
8bbfb2ec47
Controlling DRED on the encode side 2023-06-16 13:01:26 -04:00
Jean-Marc Valin
5ad2aebd90
Code for inserting/extracting DRED in/from packets 2023-06-16 13:01:20 -04:00
Marcus Asteborg
caf56aab41
update doc on custom mode
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2022-07-09 01:51:02 -04:00
Mark Harris
51fb8955e4
doc: Use consistent alternative notation
Signed-off-by: Mark Harris <mark.hsj@gmail.com>
2022-07-05 20:14:10 -07:00
Alexander Traud
99afa9c48e
Fix opus.h for doxygen when referencing alternative values
Doxygen was not able to resolve the references because it looked
for OPUS_APPLICATION_VOIP/@ref.

Signed-off-by: Mark Harris <mark.hsj@gmail.com>
2022-07-05 19:51:04 -07:00
Jean-Marc Valin
3acaa70965 Adds OPUS_SET_INBAND_FEC(2) option
Unlike OPUS_SET_INBAND_FEC(1), the encoder does not necessarily
switch to SILK if we have music.
2022-06-30 20:11:26 -04:00
Tim-Philipp Müller
c2b542b6c0 Add support for Meson build system
Tested on:
 - Linux/x86* with gcc
 - Android armv7 arm64 x86 x86_64 with clang
 - Windows x86 x86_64 with Visual Studio 2017
 - Windows x86 x86_64 with MinGW
 - macOS x86_64 with clang
 - iOS arm64 x86_64 with clang

Co-authored by: Nirbheek Chauhan <nirbheek@centricular.com>

https://gitlab.xiph.org/xiph/opus/-/merge_requests/13
2020-10-28 22:29:08 +05:30
Nirbheek Chauhan
907a52315d
Replace WIN32 with _WIN32 everywhere
_WIN32 is defined on all Windows platforms by every compiler that
targets Windows. We do not need WIN32 at all.

Signed-off-by: Mark Harris <mark.hsj@gmail.com>
Resolves https://github.com/xiph/opus/pull/104
2020-08-21 23:35:29 -07:00
Hua, Chunbo
5c94ec3205
Fix a typo in in opus_custom.h.
Signed-off-by: Ralph Giles <giles@thaumas.net>
2020-04-26 09:21:37 -07:00
Gustaf Ullberg
4f4b11c239
API for checking whether the encoder is in DTX
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2019-04-10 17:26:57 -04:00
Mark Harris
19966ccd4b
Fix opus_packet_parse() non-null arg attribute
It is the size array that must be non-null.
2018-05-03 23:02:49 -07:00
Andrew Allen
9b092dd388
Support for Ambisonics.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2018-03-21 13:59:30 -04:00
Andrew Allen
058e8177cb
Decouple OpusProjection* API from static matrices.
Change-Id: I3db285875b6b5548decc436be00096b97be1be3c
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-12-07 18:04:37 -05:00
Kári Tristan Helgason
46560534fc
Define integer types from stdint.h where it's available
This fixes issues when using neon intrinsics on 64-bit
systems.

Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-11-16 16:16:33 -05:00
Andrew Allen
f643c03fba
Support for Channel Mapping 253
OpusProjection* classes
MixingMatrix class
Projection tests

Change-Id: I98644466abf4ffd36e48bdecad1204d69e1539b9
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2017-11-07 17:44:36 -05:00
Carlos Alberto Lopez Perez
1f8cea2d13
Avoid warning when __STDC_VERSION__ is not defined
This fixes an issue with gcc 4.9 on Debian 8, at least,
which defines __STDC__ but not __STDC_VERSION__, unlike
more recent gcc.

Signed-off-by: Ralph Giles <giles@thaumas.net>
2017-05-01 14:37:57 -07:00
Felicia Lim
c43633d1a9
Fix OPUS_ARG_NONNULL indices in opus_multistream.h 2017-03-27 10:36:46 -07:00
Jean-Marc Valin
132ed59464
Removes OPUS_FRAMESIZE_VARIABLE
That experiment never actually worked
2016-11-04 21:25:20 -04:00
Felicia Lim
0962cbe2ae
Support encoding 80/100/120 ms frame lengths
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2016-10-27 23:36:57 -04:00
Mark Harris
691d49355f
Allow disabling phase inversion for multistream
Also clarify in doc that conformance issue relates to decoder only.
2016-09-03 10:42:19 -07:00
Jean-Marc Valin
18a380a7c2
Make it possible to ignore inverted phase stereo for downmix purposes 2016-09-01 01:23:06 -04:00
Mark Harris
1c311423c8 Packets indicating DTX may be up to 2 bytes 2016-07-08 11:13:42 -07:00
Mark Harris
58dbcf23f3 Update URLs 2016-07-06 14:17:51 -07:00
Daniel Verkamp
6e9617371f win32: only use dllexport when building DLL
If building a static library, marking symbols as dllexport causes them
to be exported from the final executable. For example, run
objdump -x opus_demo.exe on a --disabled-shared build and look for the
export table; there should not be one in a normal Win32 .exe file, but
when linking static libopus, the exe exports all of the opus_* public
functions.

Use the libtool-defined DLL_EXPORT flag to determine whether we are
building a DLL and only specify __declspec(dllexport) in that case.
2016-04-20 10:36:00 -07:00
Ralph Giles
811dc74204 Suggest OPUS_LSB_DEPTH(14) for G.711. r=td-linux,mark4o
This is a reasonable choice for the (non-linear) dynamic
range of mu-law. A-law is technically 13 bit, maybe 12;
experimentation is needed.

Per irc discussion with Jean-Marc, Ron, and Mark Harris.
2016-01-07 16:02:46 -08:00
Mark Harris
699b643042 Updating links for both https and new versions
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-10-23 13:19:48 -04:00
Mark Harris
d70b8ed69a Corrections to doc
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2015-10-23 13:18:08 -04:00
Timothy B. Terriberry
25c2f620b6 Improve OPUS_GET_LSB_DEPTH documentation.
We use at most 16 when using fixed-point (for the API or the
 internal implementation), but we didn't tell anyone this.
2015-06-23 11:41:11 -07:00
Timothy B. Terriberry
75d81f5bb3 Document how to tell if your build is fixed-point.
This way we won't break this by accident.
2015-02-20 12:44:10 -08:00
Ralph Giles
5b712da9c2 Document the motivation for the 120 ms repacketizer limit.
See the mailing list discussion at
http://lists.xiph.org/pipermail/opus/2014-December/002802.html
2014-12-20 12:37:48 -08:00
Jean-Marc Valin
e1326fe6c8 Lowered the smallest packet that the multi-stream encoder can encode
Limit now at 2*streams-1 and anything below that returns OPUS_BUFFER_TOO_SMALL
rather than OPUS_BAD_ARG
2014-09-04 01:48:46 -04:00
Bruno Randolf
f5a351a353 Fixes encoder/decoder classification of ctl() requests.
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
2014-02-24 16:08:08 -05:00
Gregory Maxwell
f4d2c034a6 Put custom_encoder_init decl behind CUSTOM_MODES. More softclip tests.
This removes an unused definition warning when compiling without
 custom modes.
2013-11-24 06:49:01 -08:00
Jean-Marc Valin
f183566752 Adds functions for multistream padding/unpadding and single-stream unpadding
These are all completely untested.
2013-11-18 16:46:38 -05:00
Jean-Marc Valin
cbe93e23be Adds OPUS_SET_PREDICTION_DISABLED() ctl to force "independent" frames
Works by turning off pitch and energy prediction in CELT, while
setting first_frame_after_reset in SILK to disable pitch and LSF interpolation
and reduce LPC gain.
2013-11-15 13:50:38 -05:00
Jean-Marc Valin
c5635d284b Adds packet padding that works for all codes and fixes 40/60 ms CBR.
Padding is now handled by the repacketizer.
2013-11-13 23:22:37 -05:00
Jean-Marc Valin
5174817d36 Hides OPUS_FRAMESIZE_VARIABLE from the API until it actually works 2013-11-08 19:54:03 -05:00
Gregory Maxwell
7830cf1bd2 Replace "inline" with OPUS_INLINE.
Newer versions of MSVC are unhappy with the strategy of the build
 environment redefining "inline" (even though they don't support the
 actual keyword). Instead we define OPUS_INLINE to the right thing
 in opus_defines.h.

This is the same approach we use for restrict.
2013-10-28 10:18:54 -07:00