Closed Bug 1947565 Opened 1 month ago Closed 1 month ago

Update opus to new version 734aed05d09af3d2690f8cb5aafa97f052746daf from 2025-02-10 14:18:25

Categories

(Core :: Audio/Video: Playback, enhancement)

enhancement

Tracking

()

RESOLVED DUPLICATE of bug 1947916
Tracking Status
firefox137 --- affected

People

(Reporter: update-bot, Assigned: kinetik)

Details

(Whiteboard: [3pl-filed][task_id: f-pwgFkbQ-uOcBsQnBdirA])

Attachments

(1 file)

This update covers 6 commits. Here are the overall diff statistics, and then the commit information.


media/libopus/moz.build | 2 +-
media/libopus/moz.yaml | 4 +-
media/libopus/src/extensions.c | 517 +++++++++++++++++++++++++++++++-------
media/libopus/src/opus_decoder.c | 4 +-
media/libopus/src/opus_private.h | 33 ++-
media/libopus/src/repacketizer.c | 13 +-
6 files changed, 465 insertions(+), 108 deletions(-)


734aed05d09af3d2690f8cb5aafa97f052746daf by Timothy B. Terriberry <tterribe@xiph.org>

https://gitlab.xiph.org/xiph/opus/commit/734aed05d09af3d2690f8cb5aafa97f052746daf
Authored: 2025-02-10 10:54:57 -0800
Committed: 2025-02-10 14:18:25 -0500

Remove commented-out code.

Git will now remember it for us forever.

Signed-off-by: Jean-Marc Valin <jeanmarcv@google.com>

Files Modified:

  • src/extensions.c

60d6c560383c56d7367fd1c5a3d20c7c0cfc71a7 by Timothy B. Terriberry <tterribe@xiph.org>

https://gitlab.xiph.org/xiph/opus/commit/60d6c560383c56d7367fd1c5a3d20c7c0cfc71a7
Authored: 2024-11-04 02:29:40 -0800
Committed: 2025-02-10 14:18:24 -0500

Always use L=0 for last repeated long extension.

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>

Files Modified:

  • src/extensions.c
  • src/opus_private.h
  • tests/test_opus_extensions.c

b49c07d1c460f13a1292723ca5dc38140a782a90 by Timothy B. Terriberry <tterribe@xiph.org>

https://gitlab.xiph.org/xiph/opus/commit/b49c07d1c460f13a1292723ca5dc38140a782a90
Authored: 2024-07-26 06:19:27 -0700
Committed: 2025-02-10 14:18:24 -0500

Advance frame number after an L=0 RTE.

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>

Files Modified:

  • src/extensions.c
  • tests/test_opus_extensions.c

60b527aedd2469ef1810f41087fd791196ac9c5e by Timothy B. Terriberry <tterribe@xiph.org>

https://gitlab.xiph.org/xiph/opus/commit/60b527aedd2469ef1810f41087fd791196ac9c5e
Authored: 2024-07-28 17:02:49 -0700
Committed: 2025-02-10 14:18:24 -0500

Check regenerating then parsing random extensions.

This gives more confidence that the generation code always produces
output that the parsing code can parse.

Signed-off-by: Jean-Marc Valin <jeanmarcv@google.com>

Files Modified:

  • tests/test_opus_extensions.c

10ceaedb30197b9fe366b0a52838f3ec73ed493e by Timothy B. Terriberry <tterribe@xiph.org>

https://gitlab.xiph.org/xiph/opus/commit/10ceaedb30197b9fe366b0a52838f3ec73ed493e
Authored: 2024-07-25 20:48:36 -0700
Committed: 2025-02-10 14:18:23 -0500

Encoder implementation of Repeat These Extensions.

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>

Files Modified:

  • src/extensions.c
  • src/opus_private.h
  • src/repacketizer.c
  • tests/test_opus_extensions.c

58bf8b413c064c41913ac1a5ad734971c811892c by Timothy B. Terriberry <tterribe@xiph.org>

https://gitlab.xiph.org/xiph/opus/commit/58bf8b413c064c41913ac1a5ad734971c811892c
Authored: 2024-07-24 14:28:45 -0700
Committed: 2025-02-10 14:18:21 -0500

Decoder implementation of Repeat These Extensions.

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>

Files Modified:

  • src/extensions.c
  • src/opus_decoder.c
  • src/opus_private.h
  • src/repacketizer.c
  • tests/test_opus_extensions.c

The try push is done, we found jobs with unclassified failures.

Needs Close Investigation:

  • dom/media/webrtc/tests/mochitests/test_peerConnection_stats.html
    • 1 of 4 failed on the same (retriggered) task
      - test-linux1804-64-qr/opt-mochitest-media-spi-2 (Z8FBnbUeSx-0fUjK61QZ5A)
  • test-linux1804-64-qr/opt-mochitest-plain-ioi - 4 of 4 failed on the same (retriggered) task (failed: VlTCkvl0QLuTIRjclUjj0A, b4QFY8C7Q6WdHnCQyFz9VA, bDLxKWO4Q-2_9Hklf-QuzQ, bU5TGaYkShOI49aK7Uprxw)
  • fuzzing-grizzly-osx-opt - 1 of 1 failed (failed: LQhj0YfNQy6kSKUjEUeXxw)
  • fuzzing-grizzly-osx-aarch64-opt - 1 of 1 failed (failed: eNeBNm78Rzqo0Lc61gj03Q)
  • fuzzing-grizzly-osx-aarch64-debug - 1 of 1 failed (failed: PW_sM51rSy2wazg7d_j7Rw)
  • fuzzing-grizzly-osx-debug - 1 of 1 failed (failed: J7iqmS93RmiTpaN5VtEh9w)

Needs Investigation (Possible Intermittents):

  • docshell/test/browser/browser_bug422543.js
    • 2 of 4 failed on the same (retriggered) task
      - test-linux1804-64-qr/opt-mochitest-browser-chrome-spi-nw-2 (OiNIqc6pSei_0hkYeB30dg)
      - test-linux1804-64-qr/opt-mochitest-browser-chrome-spi-nw-2 (AHkN3oRSTrqT49zf6t6-TA)
  • fuzzing-grizzly-linux64-tsan - 1 of 1 failed (failed: HD5mIVdzTo6A5Xv_lITxmQ)

Known Issues:

  • browser/components/sessionstore/test/browser_tab_groups_undo.js
    - test-linux1804-64-qr/opt-mochitest-browser-chrome-spi-nw-2 (OiNIqc6pSei_0hkYeB30dg)
    - test-linux1804-64-qr/opt-mochitest-browser-chrome-spi-nw-2 (AHkN3oRSTrqT49zf6t6-TA)

  • browser/components/sidebar/tests/browser/browser_glean_sidebar.js
    - test-linux1804-64-qr/opt-mochitest-browser-chrome-swr-4 (BDp5bmFuTye2b34JeuLc1Q)

These failures could mean that the library update changed something and caused
tests to fail. You'll need to review them yourself and decide where to go from here.

In either event, I have done all I can and you will need to take it from here. If you
don't want to land my patch, you can replicate it locally for editing with
./mach vendor media/libopus/moz.yaml

When reviewing, please note that this is external code, which needs a full and
careful inspection - not a rubberstamp.

Assignee: nobody → kinetik
Flags: needinfo?(kinetik)

Reviewed and queued for landing.

Flags: needinfo?(kinetik)
Pushed by mgregan@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/456dd8aaba18 Update opus to 734aed05d09af3d2690f8cb5aafa97f052746daf r=kinetik

This bug is being closed because a newer revision of the library is available.
This bug will be marked as a duplicate of it (because although this bug is older, it is superseded by the newer one).

Status: NEW → RESOLVED
Closed: 1 month ago
Duplicate of bug: 1947916
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: