Description
I have an interesting problem with the windows SDK using the custom UI, when I render many different videos at once some of the videos will not render if I request a large size for that video. So for example if I have 11 normal videos rendered on a single window of my application some of those videos will not render until I have resized them to a specific small size. To demonstrate this I have modified my app to fill the full window size with the video renderers and resize each video element as the window resizes. I have posted a link to a recording of this in action below.
There seems to be a magic number that each video must first be sized to before the video will start rendering. Additionally, that video size seems to change based on the number of participants in the meeting. For example, using the example I give below, once there are around 10 or 11 videos, any video renderers added after a certain point MUST first be resized (using the SetPos() function) to around 140px wide before they will start rendering. Once those videos are sized at or below 140px wide the video will begin rendering, at that point you can make the videos as large as you want.
I have recorded a video of this happening and posted below
Which Client Desktop SDK version?
v5.4.54802.0124
C# Wrapper
To Reproduce(If applicable)
Steps to reproduce the behavior:
Here is a detailed description of the scenario:
- Render 11 Normal videos in one video container (see POSITION A below for exact render positions of each video)
- Notice as in the start of the attached screen recording the videos on the right panel do not render at this size (We never receive the video status event “Video_ON” for these users.)
- Change the video renderer positions to the updated POSITION B positions of each video
- Notice that the videos now correctly begin rendering. We receive a “Video_ON” video status event from the SDK for the videos that did not initially render
- We are now able to change all the video renderers back to their original larger position (POSITION A) and the videos continue to work
Screenshots
Video of the bug in action:
All I’m doing in this video when resizing the window is calling SetPos(newPos); on each INormalVideoRenderElement with the position RECT values mentioned below in the “Additional context” section
Device (please complete the following information):
- OS: Windows 10 19041.804
Additional context
Render positions of each video:
POSITION A: Starting positions (Some videos do not render)
(Test50 Bright):RESIZING right:1784 bottom:206 left:1592 top:10
(Test47 Bright):RESIZING right:1784 bottom:991 left:1592 top:795
(Test48 Bright):RESIZING right:1784 bottom:598 left:1592 top:402
(Test45 Bright):RESIZING right:1054 bottom:498 left:538 top:3
(Test46 Bright):RESIZING right:1784 bottom:402 left:1592 top:206
(Test42 Bright):RESIZING right:1227 bottom:997 left:884 top:502
(Test40 Bright):RESIZING right:533 bottom:997 left:3 top:3
(Test43 Bright):RESIZING right:1573 bottom:498 left:1057 top:3
(Test41 Bright):RESIZING right:1574 bottom:997 left:1231 top:502
(Test49 Bright):RESIZING right:1784 bottom:795 left:1592 top:599
(Test44 Bright):RESIZING right:880 bottom:997 left:537 top:502
POSITION B: Resized positions (When the videos reach this size they all render properly)
(Test50 Bright):RESIZING right:1405 bottom:149 left:1269 top:10
(Test47 Bright):RESIZING right:1405 bottom:705 left:1269 top:566
(Test48 Bright):RESIZING right:1405 bottom:427 left:1269 top:288
(Test45 Bright):RESIZING right:839 bottom:356 left:428 top:2
(Test46 Bright):RESIZING right:1405 bottom:288 left:1269 top:149
(Test42 Bright):RESIZING right:977 bottom:713 left:704 top:359
(Test40 Bright):RESIZING right:424 bottom:712 left:2 top:2
(Test43 Bright):RESIZING right:1253 bottom:356 left:842 top:2
(Test41 Bright):RESIZING right:1253 bottom:713 left:980 top:359
(Test49 Bright):RESIZING right:1405 bottom:566 left:1269 top:427
(Test44 Bright):RESIZING right:701 bottom:713 left:428 top:359