Open Bug 1262765 Opened 9 years ago Updated 3 years ago

Remove 16 bits fixed point integer sample support

Categories

(Core :: Audio/Video: Playback, defect, P3)

ARM
Android
defect

Tracking

()

Tracking Status
firefox48 --- affected

People

(Reporter: jya, Unassigned)

Details

The only place we are using S16 audio sample format is on Android/B2G. That means that in various places we have two maintain two different code paths. On modern ARM architecture, the speed gain of integers over floats have greatly reduced and that advantage keeps narrowing. There's a few operations where we use fixed 16 bits arithmetic (such as downmixing and resampling) which ought to be noisy with such low precision. We should stop using S16 samples on android platform and use floats.
OS: Unspecified → Android
Hardware: Unspecified → ARM
Eugen, can the android decode API use float? or does that mean we have to convert the S16 to float and back to S16 before playing them?
Flags: needinfo?(esawin)
MediaCodec supports single-precision floating-point samples starting with API level 21 (Android 5) and most of our code implicitly or explicitly assumes 16 bit PCM. We could provide an API level-based conversion fallback, assuming it would perform well on older/low-spec devices.
Flags: needinfo?(esawin)
Mass change P2 -> P3
Priority: P2 → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.