Re: [mediacapture-main] what is the default channelCount (#775)

> The web application isn't going to request stereo, because it may end up with a wasteful upmix of mono audio devices to stereo.

I don't think we should ever upsample, regardless if we're talking about the defaults or constraints, it should be a preference, but this would be capped by what the device is capable of, ensuring you never get upsampling. We don't upsample resolution so I don't see why we would upsample channel count.

> I believe the base specifications should not assume use cases. (For example, echoCancellation by default assumes some sort of bi-directional audio communication where feedback could occur.) Specifying default constraints make assumptions about the use case, as well as the hardware capabilities, user preferences, and application intent.

Even if we don't specify defaults in the spec they still have to be specified in implementation code. You can't get around defaults. The question isn't "defaults or no defaults?" the question is "well-defined defaults or unspecified defaults?". In cases where there are meaningful and configurable OS defaults we could talk about whether or not those should override the browser defaults, but I'm not sure there are meaningful OS/user choices beyond which device to pick.

One reason we might be disagreeing is me not buying the premise that there are meaningful defaults, so if we're going to pick arbitrary ones, we might as well all agree on what those arbitrary defaults are for the sake of predictability. I proposed defaulting to 1, but another option is defaulting to "maximum channels that the device is capable of".

> Give us whatever the underlying system gives us for default channel count, frame size, frame rate, etc. The OS knows better than the user agent does.

On one hand I hear that the OS provides meaningful defaults...

> I'm not aware of a cross-device "OS default". Seems per device on mac and Windows (didn't try linux). My BRIO appears only settable to 2 (max?) channels, although sampleRate can be changed:

... and on the other hand I hear that configurable defaults is only a subset of the capabilities and that it varies by device and platform and maybe you can't configure it at all because you'll only get the maximum? Which one is it?

It seems like the strongest case for not having defaults is being able to configure what the defaults is either by user knowing best or by OS knowing best, but from this discussion I really can't tell if the OS or user does.

> Platforms vary, and devices vary, so having browsers vary in same-platform + same-device situations, seems more like a healthy reminder for apps not to assume every system and device will be the same, than a bug.

Devices varying is inherent to the problem we are trying to solve. OS or OS settings varying is only a problem if we don't have well-defined defaults.

> Wrong spec.

It was just an example proving the point about testability.

GitHub Notification of comment by henbos
Please view or discuss this issue at using your GitHub account

Sent via github-notify-ml as configured in

Received on Tuesday, 2 March 2021 08:17:14 UTC