nextcloud / nextcloud/talk-android

RFC: Options to maximize field of view for video calls

Open
#2,052 18 comments 0 reactions 1 assignee View on GitHub

@ASerbinski is already working on this.

Since May 16, 2022.

  • #2297 by @ASerbinski — closed without merging
2. developing enhancement pr exists
Dominant language
Kotlin
Stars
739
Forks
321
Avg merge
14h 59m
Merged PRs (30d)
151

Description

There are three aspects of camera configuration that result in cropped video output and a substantially reduced field of view;

  1. Use of 16:9 aspect ratio instead of the sensor native 4:3 https://github.com/nextcloud/talk-android/blob/a43a51b931687c7a3059b2fd5ee1ee30dd828923/app/src/main/java/com/nextcloud/talk/activities/CallActivity.java#L1745
  2. Use of Electronic Image Stabilization (EIS)
  3. Inability to control zoom ratio results in fixed ratio of 1:1.

The aspect ratio will affect devices universally, since as far as I can tell, all camera sensors seem to have a 4:3 native aspect ratio. The other two will apply on a sensor by sensor basis. Some phones have a mixture of available zoom ratios, and support for EIS or OIS (where OIS is available, EIS is disabled).

Naturally, there will be tradeoffs for each of the three causes of cropping;

  1. User may have a preference for a 16:9 ratio.
  2. Holding the device in user's hand will result in a jittery video without stabilization.
  3. Changing the zoom ratio could cause the HAL to select a different sensor with different characteristics, for example, the main camera on a Pixel 6 [/Pro] has OIS, but reducing the zoom level to lower than 1:1 will cause it to switch to the wide angle lens, which does not have OIS.

Consequently, each of these configuration changes should be user-controlled.

Access to the camera on this software is through webrtc, which unfortunately, does not provide means of user control for EIS or zoom ratio, however, others have coerced it into allowing settings; https://stackoverflow.com/questions/48598752/android-how-to-turn-on-flashlight-using-webrtc-android-io-pristine-libjingle1

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.