BindUserVideoFrames (Unity)

- Declaration

public static IDisposable BindUserVideoFrames(this CavrnusUser user, Action<TextureWithUVs> userFrameArrived)

- Description

Triggers an event for every new frame of a user’s video stream. Note that this frame will sometimes be null if there is no stream.

The provided type is TextureWithUVs. This is important because different stream sources sometimes provide odd UVRects. For performance reasons we don’t attempt to flip/correct the Textures, instead we provide you with the UVs to flip the top-level UI when necessary. See the sample below for more details.

- Sample

public class UsersPanelEntry : MonoBehaviour { [SerializeField] private RawImage videoStreamImage; [SerializeField] private AspectRatioFitter aspectRatioFitter; public void Setup(CavrnusUser user) => user.BindUserVideoFrames(AssignVidTexture); private void AssignVidTexture(TextureWithUVs tex) { float aspectRatio = 1.5f; // default value if (tex.Texture.width > 0 && tex.Texture.height > 0) aspectRatio = (float) tex.Texture.width / tex.Texture.height; aspectRatioFitter.aspectRatio = aspectRatio; videoStreamImage.texture = tex.Texture; videoStreamImage.uvRect = tex.UVRect; } }