element-hq / element-call

Group calls powered by Matrix
https://call.element.io
GNU Affero General Public License v3.0
561 stars 90 forks source link

Display non 16:9 video tiles properly (currently crops them to 16:9) #664

Closed autoteelar closed 7 months ago

autoteelar commented 1 year ago

Steps to reproduce

  1. Where are you starting? What can you see?
  2. What do you click?
  3. More steps…

when you join the element-call call with a 4:3 camera, it crops it to 16:9 for the default "full view" of a participant. i think it would be better to make 4:3 cameras show the whole thing including the bottom. or if you like your camera getting chopped off the top and bottom maybe add a toggle for it, but i dont think this is optimal default behaviour imo.

Outcome

What did you expect?

i expected the camera to show itself in its entirety 4:3

What happened instead?

the camera was cropped to 16:9, cutting off a significant amount of viewage

Operating system

affects all of them currently

Browser information

affects all of them currently

URL for webapp

affects all of them currently, usually use netlify and/or call.element.io

Will you send logs?

Yes

notramo commented 1 year ago

It crops to 1:1 on mobile in portrait mode.

This cropping is one of the worst ideas for a video call app.

It's unusable for:

The above covers the majority of use cases. This means that Element Call is practically unusable.

robintown commented 1 year ago

@notramo Screenshare feeds are designed to be letterboxed to fit within their tile rather than cropped. If you're seeing different behavior with them, please open a new bug since that wouldn't be them working as designed

notramo commented 1 year ago

On wlroots based compositors, some users use v4l2loopback + wf-recorder to pipe the screen into a virtual camera. This way, the Pipewire dependency can be avoided. Unfortunately this doesn't work well with Element Call. What about adding the ability to share camera as if it were screencast?