Consider removing openmax_dl from Windows (and other desktop builds) |
|||||||||||
Issue descriptionThe README.chromium says it's only for Android. But in https://codereview.webrtc.org/2485303002/ we discovered it's building for desktops in general. https://cs.chromium.org/chromium/src/third_party/webrtc/build/webrtc.gni?rcl=0&l=93 Should it be doing that? Should I remove it from the build on Windows, Linux, and Mac?
,
Nov 14 2016
kjellander@: Can you take a look at this issue related to build files?
,
Nov 15 2016
I don't know enough about openmax to blindly turn it off for those platforms. Assigning to Alex who should know (+CC mgraczyk).
,
Nov 15 2016
I thought that openmax was the preferred FFT implementation except on iOS, ARM and MIPS, but Henrik should know better.
,
Nov 15 2016
Can't speak for webrtc, but webaudio definitely uses openmax for the FFT implementation on Android (all architectures). For desktop, webaudio uses ffmpeg on linux and windows and OSX's vDSP library. But since Project Spitzer has landed, we should probably revisit this on Android. I suspect ffmpeg's FFT is faster on x86. (But slower on ARM the last time I mesaured.)
,
Mar 13 2018
hlundin@: Is this bug still valid?
,
Mar 13 2018
,
Apr 12 2018
Bumping the priority on this - removing openmax on desktop would reduce binary size of the WebRTC lib (when used outside of Chrome) as well as remove a third_party dependency, which is a good step towards running the APM in AudioService.
,
Apr 12 2018
,
Apr 12 2018
Alessio, can you take a look at this situation?
,
Apr 12 2018
Sure
,
Apr 12 2018
,
Apr 12 2018
I've created https://webrtc-review.googlesource.com/c/src/+/69641 just to see how trybots react when openmax_dl is disabled on Windows. Note that such change should not land as it is; the safe way is to first implement a C++ way to not use openmax_dl on Windows in a controlled fashion and then, if we see no fire, we can land the CL that sets rtc_use_openmax_dl as a build flag.
,
Apr 12 2018
Does webrtc need openmax_dl? openmax_dl was written originally to provide the FFT for Android on arm and then it acquired FFTs for arm64, x86, and mips. All for Android. And for WebAudio.
,
Apr 12 2018
#14 By looking at the webrtc.gni, the answer should be yes:
if (!is_ios && (current_cpu != "arm" || arm_version >= 7) &&
current_cpu != "mips64el" && !build_with_mozilla) {
rtc_use_openmax_dl = true
} else {
rtc_use_openmax_dl = false
}
rtc_use_openmax_dl is used in webrtc/common_audio to define RTC_USE_OPENMAX_DL and include the 3pp dep when needed (see https://cs.chromium.org/search/?q=rtc_use_openmax_dl)
And openmax_dl is currently used on Windows (I don't know if this is the original intention). If we want to be 100% sure about the actual usage, we should add stats.
,
Apr 12 2018
Ok. I do know that WebAudio (for which openmax_dl was originally written) does not use openmax_dl except on Android. Windows should be using the FFT from ffmpeg. I don't know anything about webrtc usage of openmax_dl. Perhaps webrtc wants to use some of the fixed-point FFT routines? Don't know why this should only be for windows, though. I'd ask Andrew MacDonald about this, but he's no longer at Google.
,
Apr 20 2018
I just noticed that we have a related bug in webrtc for this (see https://bugs.chromium.org/p/webrtc/issues/detail?id=9071). I will carry on work referring to that bug since its description matches what I'm going to do - i.e., removing openmax_dl.
,
May 7 2018
,
May 7 2018
Note that openmax_dl has been removed only in WebRTC. |
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by jmukthavaram@chromium.org
, Nov 9 2016