- Feb 13, 2025
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
Convert to 16 bits only at the very end
-
- Feb 12, 2025
-
-
Jean-Marc Valin authored
-
- Feb 10, 2025
-
-
Timothy B. Terriberry authored
Git will now remember it for us forever. Signed-off-by:
Jean-Marc Valin <jeanmarcv@google.com>
-
Timothy B. Terriberry authored
Even if it is followed by repeated short extensions with payloads. We track the total size of the short extension payloads that need to be repeated, and remove that from the available space for the last long extension. This means we can no longer use L=0 on a repeat to skip coding a frame separator when the extensions to be repeated contain a long extension followed by one or more short extensions with payloads (and there are no more non-repeated extensions in the current frame, but there are extensions in the next frame), but this case seems uncommon, and hard to explain. The savings from always being able to skip coding a length when the final extensions are repeated extensions with at least one long extension is likely higher. We can still skip a frame separator if we repeat only short extensions. Also update existing tests and add a test for the case where we do not have enough space for the repeated short extensions after the last long extension. Signed-off-by:
Jean-Marc Valin <jeanmarcv@google.com>
-
Timothy B. Terriberry authored
This avoids the need to code a frame separator in the case that the last repeated extension is a short extension, and the next non-repeated extension is in the following frame instead of the current one (saving one additional byte). Also add tests for both encoding and decoding this. Signed-off-by:
Jean-Marc Valin <jeanmarcv@google.com>
-
Timothy B. Terriberry authored
Also adds tests which exercise generating repeated extensions as well as the count_ext() and parse_ext() API for parsing extensions in frame order. Signed-off-by:
Jean-Marc Valin <jeanmarcv@google.com>
-
Timothy B. Terriberry authored
Right now, opus_packet_extensions_parse() returns the extensions in the order they appear in the packet, which is no longer necessarily in frame order. This adds a new (still private) API that returns parsed extensions in frame order, even when repeated extensions are used. Nothing has been converted to use this new API yet. Signed-off-by:
Jean-Marc Valin <jeanmarcv@google.com>
-
- Jan 27, 2025
-
-
Jean-Marc Valin authored
EXTEND32() would warn that the input isn't 16-bit
-
- Sep 11, 2024
-
-
Timothy B. Terriberry authored
Rather than repeating the code to iterate through extensions in three different places, each with slight differences, different edge cases, different error handling, etc., create an iterator that can be used everywhere.
-
- Jul 30, 2024
-
-
Timothy B. Terriberry authored
The function takes an opus_int32 *, but we were passing the address of an int, which might not be the same. This is only likely to affect platforms with a 16-bit int.
-
Timothy B. Terriberry authored
Without this check, a DRED extension encoded with an invalid frame number would still be used, potentially with a surprisingly large dred_frame_offset.
-
Timothy B. Terriberry authored
With an 8+ MB packet it is possible to craft an extension length that would overflow, bypassing the checks to ensure the extension data remains inside the packet. This patch fixes that and adds a test for it.
-
- Apr 23, 2024
-
-
Jan Buethe authored
-
- Apr 09, 2024
-
-
Jean-Marc Valin authored
-
- Apr 08, 2024
-
-
Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
- Mar 04, 2024
-
- Mar 03, 2024
-
-
Jean-Marc Valin authored
-
- Mar 02, 2024
-
-
Jean-Marc Valin authored
-
- Feb 25, 2024
-
-
Jean-Marc Valin authored
-
Jean-Marc Valin authored
-
- Feb 23, 2024
-
-
Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
- Feb 22, 2024
-
-
Since any value of dQ > 0 will cause the initial quantizer to degrade to the format-implied maximum (15) with a sufficient number of DRED frames, allow signaling a maximum smaller than 15. This allows encoders to improve the minimum quality of long DRED sequences (at the expense of bitrate) without requiring a constant quantizer for all frames (dQ == 0).
-
- Feb 21, 2024
-
-
Jean-Marc Valin authored
Also, fix documentation about return value of zero.
-
- Feb 20, 2024
-
-
Jean-Marc Valin authored
Trying to add padding in-place breaks when we have extensions, which causes a memcpy() with overlapping data. Just doing a copy instead.
-
Jean-Marc Valin authored
-
- Feb 16, 2024
-
-
Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-
Signed-off-by:
Jean-Marc Valin <jmvalin@jmvalin.ca>
-