Closed Bug 1300018 Opened 8 years ago Closed 8 years ago

Support audio 5.1 on Windows(cubeb)

Categories

(Core :: Audio/Video: cubeb, task, P2)

x86_64
Windows
task

Tracking

()

RESOLVED FIXED

People

(Reporter: chunmin, Assigned: chunmin)

References

(Blocks 2 open bugs)

Details

Attachments

(6 files, 13 obsolete files)

53 bytes, text/plain
Details
43 bytes, text/x-github-pull-request
kinetik
: review+
kinetik
: feedback+
Details | Review
594.05 KB, video/ogg
Details
85 bytes, text/plain
Details
85 bytes, text/plain
Details
89 bytes, text/plain
Details
No description provided.
Blocks: 1073786
Assignee: nobody → cchang
Rank: 21
Priority: -- → P2
Attached file [WIP] support audio 5.1 on Windows (obsolete) —
TODO: - Need to check channel mapping information before setting dwChannelMask. There are different masks for same channel counts(e.g., channels = 3 can be <L, R, C> or <L, R, LOW_FREQ>). - If the channel counts is less than 6, maybe we should upmix it to simulated 5.1 surround sounds[0] [0] Real-Time Conversion of Stereo Audio to 5.1 Channel Audio for Providing Realistic Sounds (http://www.sersc.org/journals/IJSIP/vol2_no4/7.pdf)
Attached file Notes for WAS API (obsolete) —
Attached file [WIP] support audio 5.1 on Windows (obsolete) —
change: 1. New a enum for channal_layout. 2. New a member for channal_layout in cubeb_stream. 3. Use cubeb_stream.channal_layout to decide the dwChannelMask for WAS API
Attachment #8800543 - Attachment is obsolete: true
Attached file [WIP] support audio 5.1 on Windows (obsolete) —
fix typo.
Attachment #8802030 - Attachment is obsolete: true
Attached file Notes for WAS API
Attachment #8800579 - Attachment is obsolete: true
Hi kinetik, Could you give me some suggestions?
Attachment #8802056 - Attachment is obsolete: true
Attachment #8802406 - Flags: feedback?(kinetik)
Comment on attachment 8802406 [details] [review] Support audio 5.1 on Windows Feedback in the PR.
Attachment #8802406 - Flags: feedback?(kinetik) → feedback+
With this patch for Windows, I could successfully play the attachment 8803285 [details](ogg file) on all 5.1 channels.
Attached file [WIP] play audio 5.1 in gecko(windows) (obsolete) —
Attachment #8803289 - Attachment is obsolete: true
Attached file [WIP] play audio 5.1 in gecko(windows) (obsolete) —
Attachment #8803781 - Attachment is obsolete: true
Comment on attachment 8802406 [details] [review] Support audio 5.1 on Windows Hi kinetik, Thanks for the feedback. The concerns should have been addressed. Could you help to review the patch? The changes are left in git pull request. Thanks.
Attachment #8802406 - Flags: review?(kinetik)
Comment on attachment 8802406 [details] [review] Support audio 5.1 on Windows I added feedback and questions in the PR.
Attachment #8802406 - Flags: review?(kinetik)
I'll add downmix matrix for 5.1 in next patch.
Attachment #8808933 - Attachment is obsolete: true
Changes: - Add downmix from 3F2(-LFE) to 1F, 2F, 3F, 2F1, 3F1, 2F2 and their LFEs. - Replace "layout_default" with "layout_unsupported". The cubeb user needs to set the layout explicitly. TODO: The downmix/upmix code should be separated into a independent module from WASAPI for following reasons: - It can be reused for all backends. The downmix/upmix is refered to some standards, so it should be same for each backend. - It's easier for testing. We can ignore the internal process of backends and just focus on the correctness of supported layout conversion. - It's flexible to extend. If we want to add some fancy features like stereo-to-5.1 simulation, then only this module needs to be modified, and it will be applied to all backends.
Attachment #8809343 - Attachment is obsolete: true
Attachment #8812096 - Attachment is obsolete: true
Forget to delete unnecessary code from cubeb_wasapi.cpp last time.
Attachment #8812708 - Attachment is obsolete: true
Attached file [WIP] Play audio 5.1 on Windows (obsolete) —
changes: - Convert channelMap(AudioConfig.ChannlLayout().Map()) to SMPTE layout and pass it to cubeb - Use |defined(XP_WIN)| to enable multiple channel on Windows only.
Attachment #8804571 - Attachment is obsolete: true
Move downmix matrix into .cpp instead of .h because there is no reason to expose it.
Attachment #8813550 - Attachment is obsolete: true
Remove windows' invisible "Cr" characters.
Attachment #8813562 - Attachment is obsolete: true
Summary: Support audio 5.1 on Windows → Support audio 5.1 on Windows(cubeb)
Blocks: 1321502
Comment on attachment 8802406 [details] [review] Support audio 5.1 on Windows Hi Matthew, I was wondering if you could review this patch. I add a mixing module in cubeb and there are three policies. The detail is described in [0]. [0] https://wiki.mozilla.org/Media/multichannel#Mixing_Policy
Attachment #8802406 - Flags: review?(kinetik)
Comment on attachment 8802406 [details] [review] Support audio 5.1 on Windows Review comments are on the PR
Attachment #8802406 - Flags: review?(kinetik)
Comment on attachment 8802406 [details] [review] Support audio 5.1 on Windows Thanks for your help. The patch is revised.
Attachment #8802406 - Flags: review?(kinetik)
Blocks: 1324997
Attachment #8802406 - Flags: review?(kinetik) → review+
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Is this reopenable? I just reported bug 1368938
Type: defect → task
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: