Multiple FlyleafHost Matrix Switching #287
Replies: 13 comments 14 replies
-
@webclient163 FlyleafHost's disposal is under discussion, it currently considers that it will be disposed when the Owner window will close. However, the issue that you mention probably is the FlyleafHost.Player and not the FlyleafHost itself. It is not responsible to dispose the Player as it belongs to the user which might want to use it in another FlyleafHost. So what you need is to dispose the Player and not the FlyleafHost (or just Player.Stop() if you want to re-use it later). I will review a FlyleafHost.Dispose() that actually closes the Surface/Overlay windows and not wait the Owner to Close(). |
Beta Was this translation helpful? Give feedback.
-
@webclient163 Just fixed a number of issues with Disposal however you should still have in your window, something like this: - Closed += (o, e) => Player?.Dispose(); You can call safely now the FlyleafHost.Dispose() independently from the main window's close |
Beta Was this translation helpful? Give feedback.
-
Version 3.7.6, I found that all instantiated FlyleafHost must be played once before being removed from the display window for next playback, otherwise it will cause the memory to continue to rise until it is exhausted |
Beta Was this translation helpful? Give feedback.
-
@webclient163 first of all can you please check with the 3.7.7 that I've tried to fix the dispose issues? And make sure you call Dispose for each FlyleafHost that you destroy and the same for each Player that you destroy. Ideally, a sample project would help me see what is going on and fix any issue that still remains in Flyleaf or see what you possible doing in the wrong way. |
Beta Was this translation helpful? Give feedback.
-
My current use case is to switch between 32 or more cameras quickly, and due to the need to switch as quickly as possible, I can only turn on all the cameras and then render the required display to the specified window according to the instructions. |
Beta Was this translation helpful? Give feedback.
-
I can call FlyleafHost.Dispose() normally in version 3.7.7 to close FlyleafHost, and I need to call FlyleafHost.Player.Dispose() at the same time to close Player. The FlyleafHost instance must be played once after initialization, otherwise it will still cause memory exhaustion! |
Beta Was this translation helpful? Give feedback.
-
@webclient163 You are right, there is a memory leak when you start the Player without having a swapchain yet (flyleafhost not rendered yet). I just identified it and I will fix it soon. Thanks for the finding :) (It was initializing the offline renderer which is used for the extractor which had the leak) |
Beta Was this translation helpful? Give feedback.
-
@webclient163 If you can retest with v3.7.8 just to ensure that the issue was been resolved it would be great |
Beta Was this translation helpful? Give feedback.
-
In v3.7.8, if FlyleafHost is not presented to the window, there is still a memory leak. |
Beta Was this translation helpful? Give feedback.
-
I have multiple monitors, and when I place a window on monitor 2 to play surveillance video, double-clicking a video will display a full-screen image of that video on monitor 1, not on monitor 2 |
Beta Was this translation helpful? Give feedback.
-
The overall quality of the Flyleaf player is very high and is appreciated in many ways, thanks |
Beta Was this translation helpful? Give feedback.
-
in version 3.7.16 I have discovered a new issue: when I play 32 way videos, the CPU usage stabilizes at around 25% in the first 5-10 minutes, but after 5-10 minutes, the CPU usage quickly increases to over 75%-90%. |
Beta Was this translation helpful? Give feedback.
-
Do you mean that this issue was not happening in previous v3.7.15? |
Beta Was this translation helpful? Give feedback.
-
When I use multiple FlyleafHost to play 16 videos in one window, and then switch to playing only 4 of them (the other 12 videos are not displayed on the screen temporarily, in order to switch quickly, these 12 videos are not turned off, but just not displayed on the screen), if the FlyleafHost.Dispose() method is called to free FlyleafHost, the memory will continue to grow and quickly cause memory exhaustion, if Dispose() is not used) The method is that the memory will not be freed, and multiple switches will cause the memory to gradually run out!
Beta Was this translation helpful? Give feedback.
All reactions