Closed Bug 1251502 Opened 9 years ago Closed 9 years ago

Update in-tree libcubeb

Categories

(Core :: Audio/Video: cubeb, defect, P1)

defect

Tracking

()

RESOLVED FIXED
mozilla48
Tracking Status
firefox47 --- affected
firefox48 --- fixed

People

(Reporter: kinetik, Assigned: padenot)

References

Details

Attachments

(7 files, 11 obsolete files)

(deleted), patch
jesup
: review+
Details | Diff | Splinter Review
(deleted), patch
kinetik
: review+
Details | Diff | Splinter Review
(deleted), patch
kinetik
: review+
Details | Diff | Splinter Review
(deleted), patch
kinetik
: review+
Details | Diff | Splinter Review
(deleted), patch
kinetik
: review+
Details | Diff | Splinter Review
(deleted), patch
kinetik
: review+
Details | Diff | Splinter Review
(deleted), patch
kinetik
: review+
Details | Diff | Splinter Review
I've removed the stdint.h generation from libcubeb upstream since it was only needed for old MSVC (pre-2012) and updated the Gecko build to suit. https://treeherder.mozilla.org/#/jobs?repo=try&revision=00adfdb4b66a This also pulls in Paul's resampler rework. It might be good to get that landed sooner rather than later to expose it to more testing (if Paul's okay with that).
Attachment #8723912 - Flags: review?(padenot)
Note for when I get back to this on Monday: Breakage on Win32: update.sh needs to include cubeb_resampler_internal.h Breakage on Android: OpenSL backend needs updating for resampler API changes
The use of unique_ptr that I suggested breaks on Android... https://groups.google.com/forum/#!topic/mozilla.dev.platform/ph-63xS3zwA ...because using 5+ year old C++ features is too much to ask. With polyfill: https://treeherder.mozilla.org/#/jobs?repo=try&revision=cb761062f8cb
Attachment #8723912 - Attachment is obsolete: true
Attachment #8723912 - Flags: review?(padenot)
Forgot to define CUBEB_GECKO_BUILD in the src/moz.build file: https://treeherder.mozilla.org/#/jobs?repo=try&revision=67be7ba3afe4
These warnings in the resampler need investigating: 01:32:56 INFO - /home/worker/workspace/build/src/media/libcubeb/src/cubeb_resampler.cpp:237:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] 01:32:57 INFO - if (got != output_frames_before_processing) { 01:32:57 INFO - /home/worker/workspace/build/src/media/libcubeb/src/cubeb_resampler.cpp:174:8: warning: variable 'got' set but not used [-Wunused-but-set-variable] 01:32:57 INFO - long got = 0; 1:32:57 INFO - /home/worker/workspace/build/src/media/libcubeb/src/cubeb_resampler.cpp:150:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] 01:32:57 INFO - if (got != output_frames_before_processing) { 01:32:57 INFO - ^ 01:32:57 INFO - /home/worker/workspace/build/src/media/libcubeb/src/cubeb_resampler.cpp:135:7: warning: variable 'out_unprocessed' set but not used [-Wunused-but-set-variable] 01:32:57 INFO - T * out_unprocessed = nullptr;
Flags: needinfo?(padenot)
Also: 17:59:18 INFO - Thread 89 (crashed) 17:59:18 INFO - 0 xul.dll!noop_resampler::fill(void *,long *,void *,long) [cubeb_resampler.cpp:67be7ba3afe4 : 65 + 0x6] noop_resampler::fill can't handle a null input_frames_count.
Last try run has a bunch of other crashes and test failures that need investigating too. Not planning to invest any more time on this right now.
Assignee: kinetik → nobody
Status: ASSIGNED → NEW
Thanks, I'll finish this.
Assignee: nobody → padenot
Flags: needinfo?(padenot)
Includes all the full duplex work, including the resampler.
Rank: 10
Priority: -- → P1
Attached patch fix to select devid from webrtc engine (obsolete) (deleted) — Splinter Review
It is uploaded here to make it available to padenot. It contains a fix to select the devid instead of device_id during the device selection in webrtc engine.
Attached file Changes to media/libcubeb/include/moz.build (obsolete) (deleted) —
Changes to media/libcubeb/include/moz.build
Attached file Changes to media/libcubeb/src/moz.build (obsolete) (deleted) —
Attached file Changes to media/libcubeb/update.sh (obsolete) (deleted) —
Attached file Changes to media/libcubeb/update.sh (obsolete) (deleted) —
updated
Attachment #8734715 - Attachment is obsolete: true
Attached file Changes to media/libcubeb/src/moz.build (obsolete) (deleted) —
Attachment #8734713 - Attachment is obsolete: true
Attached patch Changes to media/libcubeb/tests/moz.build (obsolete) (deleted) — Splinter Review
Attachment #8734714 - Attachment is obsolete: true
Attached patch Changes to media/libcubeb/update.sh (obsolete) (deleted) — Splinter Review
Attachment #8734717 - Attachment is obsolete: true
Attachment #8734804 - Flags: review?(kinetik)
Attachment #8734805 - Flags: review?(kinetik)
Attachment #8734785 - Attachment is obsolete: true
Attachment #8734805 - Attachment is obsolete: true
Attachment #8734805 - Flags: review?(kinetik)
This imports the wasapi backend, the resampler code, and various other commits. The OSX code is split to not completely destroy the blame info.
Attachment #8734808 - Flags: review?(kinetik)
This is the OSX part.
Attachment #8734809 - Flags: review?(kinetik)
Attachment #8734781 - Attachment is obsolete: true
Attachment #8734769 - Attachment is obsolete: true
Attachment #8734712 - Attachment is obsolete: true
Attachment #8734313 - Attachment is obsolete: true
Attachment #8734801 - Flags: review?(rjesup) → review+
Looks to me like the remaining issues (assuming they're basically just a cubeb import in the main wasapi patch) are all rubber-stamps/build-nits.
Attachment #8734802 - Flags: review?(kinetik) → review+
Attachment #8734803 - Flags: review?(kinetik) → review+
Attachment #8734804 - Flags: review?(kinetik) → review+
Comment on attachment 8734807 [details] [diff] [review] Update cubeb's udpate.sh script to account for new files. r= Review of attachment 8734807 [details] [diff] [review]: ----------------------------------------------------------------- ::: media/libcubeb/update.sh @@ +33,5 @@ > +cp $1/test/test_resampler.cpp tests/test_resampler.cpp > +cp $1/test/test_duplex.cpp tests/test_duplex.cpp > +cp $1/test/test_record.cpp tests/test_record.cpp > +cp $1/test/test_utils.cpp tests/test_utils.cpp > +cp $1/test/test_devices.c tests/test_devices.cpp Rename it upstream, otherwise it's a pain whenever a reverse-sync is necessary.
Attachment #8734807 - Flags: review?(kinetik) → review+
Attachment #8734808 - Flags: review?(kinetik) → review+
Attachment #8734809 - Flags: review?(kinetik) → review+
(In reply to Matthew Gregan [:kinetik] from comment #40) > Comment on attachment 8734807 [details] [diff] [review] > Update cubeb's udpate.sh script to account for new files. r= > > Review of attachment 8734807 [details] [diff] [review]: > ----------------------------------------------------------------- > > ::: media/libcubeb/update.sh > @@ +33,5 @@ > > +cp $1/test/test_resampler.cpp tests/test_resampler.cpp > > +cp $1/test/test_duplex.cpp tests/test_duplex.cpp > > +cp $1/test/test_record.cpp tests/test_record.cpp > > +cp $1/test/test_utils.cpp tests/test_utils.cpp > > +cp $1/test/test_devices.c tests/test_devices.cpp > > Rename it upstream, otherwise it's a pain whenever a reverse-sync is > necessary. test_devices is not included in gecko unit test. We could stop coping it.
Depends on: 1262345
Depends on: 1263505
Depends on: 1263795
Depends on: 1278612
Depends on: 1314496
Depends on: 1153179
Depends on: 1153151
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: