Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video call: allow enabling/disabling digital video stabilization #2017

Closed
ASerbinski opened this issue May 10, 2022 · 3 comments
Closed

Video call: allow enabling/disabling digital video stabilization #2017

ASerbinski opened this issue May 10, 2022 · 3 comments
Labels
0. Needs triage enhancement New feature or request

Comments

@ASerbinski
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Digital video stabilization on some devices is implemented by reducing the field of view and moving the capture window around within the full image. This has the positive benefit of a more stable video, but the negative consequence of a reduced field of view. Sometimes a larger field of view is more useful than a more stable video.

Describe the solution you'd like
I would like to see a toggle or other setting to switch stabilization mode on and off.

Describe alternatives you've considered
There are no other options to increase the field of view.

Additional context
#2016
https://issuetracker.google.com/issues/230013960

@ASerbinski
Copy link
Contributor Author

@AndyScherzinger -- while the concept is the same, that pull request is separate, since it implements full field of view for sharing a still image from the camera, whereas this issue is connected to video calls.

@ASerbinski
Copy link
Contributor Author

ASerbinski commented May 16, 2022

Looks like talk-android accesses the camera through webrtc, which doesn't provide any means of setting camera parameters.

Webrtc automatically enables stabilization mode, with a preference for OIS, followed by EIS;
https://webrtc.googlesource.com/src/+/refs/heads/main/sdk/android/src/java/org/webrtc/Camera2Session.java#235

The nice thing is that where OIS is supported, it disables EIS automatically, which means that you have the full field of view. The problem, however, is that the availability of OIS is sensor specific, not device specific. On Pixel 6 Pro, for example, only 2 of the 4 sensors have OIS (main and telephoto). The wide angle and user-facing sensors do NOT have OIS, which means that it will always enable EIS and result in a reduced field of view. This effectively limits how far you can zoom out.

Some have gone through complex hacks to gain access to the appropriate objects (for camera1 and led flash) -- a similar approach could be used for camera2 and EIS: https://stackoverflow.com/questions/48598752/android-how-to-turn-on-flashlight-using-webrtc-android-io-pristine-libjingle1

@ASerbinski
Copy link
Contributor Author

Fold into #2052

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0. Needs triage enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants