Hi, I forgot to change the project visibility on GitHub... but additionally I opened a ticket at the link you provided.
Hi,
Thanks for the report.
Looks like an SDK issue. https://github.com/search?q=There+was+no+runtime+pack+for+Microsoft.WindowsDesktop.App.WindowsForms+available+for+the+specified+RuntimeIdentifier+%27win10-arm%27.&type=issues
Maybe updating some dependencies from libvlcsharp.csproj would resolve this. Help is welcome.
When using libvlc with video filters, memory consumption goes to the moon when toggling between play and pause.
I made a small project to demonstrate this behavior.
VlcMemoryTest Project on GitHub
Memory rises and is not lowered when clicking play and stop multiple times with active video filters.
Memory does not rise when clicking play and stop multiple times with active video filters.
Not tested
Hi,
I can't access your project on github but I'd encourage you to create an issue at https://code.videolan.org/videolan/vlc since this is not a dotnet leak, but a native one.
When using libvlc with video filters, memory consumption goes to the moon when toggling between play and pause.
I made a small project to demonstrate this behavior.
VlcMemoryTest Project on GitHub
Memory rises and is not lowered when clicking play and stop multiple times with active video filters.
Memory does not rise when clicking play and stop multiple times with active video filters.
Not tested
Martin Finkel (59ccdc52) at 29 Feb 08:39
CI: Install android SDK API 27-28
Martin Finkel (b00fd3e9) at 29 Feb 08:39
CI: Install android SDK API 27-28
Including LibVLCSharp in an x86/64 project with a versioned windows sdk <TargetFramework>
, along with windows forms enabled, causes the following errors:
Error NETSDK1082 There was no runtime pack for Microsoft.WindowsDesktop.App.WindowsForms available for the specified RuntimeIdentifier 'win10-arm-aot'.
Error NETSDK1082 There was no runtime pack for Microsoft.WindowsDesktop.App.WindowsForms available for the specified RuntimeIdentifier 'win10-arm'.
When ARM is not used or referenced in the project.
Specifically, I have found that there is a combination of 3 things, that when are the case together, lead to the errors:
<UseWindowsForms>true</UseWindowsForms>
in the csproj.If (only) any two of the three is the case, the build succeeds:
It seems that the LibVLCSharp package has some kind of msbuild target setup for this combination of factors that requires an arm runtime/workload installed
Adding <RuntimeIdentifier>win-x64</RuntimeIdentifier>
does not resolve the issue.
I have tried multiple build environments with the same results.
I primarily work in windows/x86 and troubleshooting cross platform build configurations is not my forte, or I would try to dig deeper.
Start with a blank project with arbitrary main() boilerplate.
Sample: https://code.videolan.org/BarrettLewis/build-issue
NOTE: I started with a functional application using LibVLC (and company), encountered this error when switching target frameworks, and then stripped it down to 10 lines of csproj to repro the issue, that is why other packages like VideoLAN.LibVLC.Windows, LibVLC.Forms, etc, are not linked. This is the bare minimum to get the error.
Functionality can be toggled by (for example) removing the csproj line to enable windows forms. In my case I have to close VS, clear the bin
and obj
folders and restart vs. Then it will build until the missing piece of the unholy trinity is added back.
Build fails, complaining about missing ARM workload which is not being used.
Build succeeds, does not require ARM workload to build x86/64
OS: Windows
Version 10 21H2
Device: PC
LibVLC version and architecture 3.0.20 (doesn't matter)
LibVLCSharp version 3.8.2, x64 (desired)
Visual Studio 2022 17.8.3
MSBuild version 17.8.3
When I load any video for the first time in media player, getting black screen for a moment. Do you say that this should also be fixed by ourself?
I don't know. Again, this isn't C# related so I cannot really help you. This is normal libvlc behavior.
I have tried making video view visible only after media started playing, but media started playing in new window, it is not binded to actual wpf tree.
That's also expected. LibVLC needs a valid window to draw on when you start playback. If you start playback without a valid window, it will create one.
@mfkl Thanks for the info, I can understand that the gap-less playback should be fixed by us when we load multiple video one after other
When I load any video for the first time in media player, getting black screen for a moment. Do you say that this should also be fixed by ourself?
I have tried making video view visible only after media started playing, but media started playing in new window, it is not binded to actual wpf tree.
_mediaPlayer.PositionChanged += VLC_MediaPositionChanged; private void VLC_MediaPositionChanged(object sender, MediaPlayerPositionChangedEventArgs e) { if (e.Position > 0) { videoView.Visibility = Visibility.Visible; } }
why is the black screen appearing before starting Video ?
Because there is no gapless playback currently, so while the multimedia pipeline resets itself, there is a black screen (or the last frame).
How can we fix this ?
I've laid out your options in my previous message. You could fix the code yourself in the core of VLC (this is not C# related), or hire a company like videolabs to develop the feature for you.
Black window is visible on switching videos in WPF VideoView control. this issue is observed with LibVLCSharp.WPF 3.8.2
Steps to reproduce.
Play multiple videos on loop in same VideoView control one after another. Black window can be seen at before after playing video when player switches from one video to another.
What is the expected correct behavior? switching between videos should be smooth and no black window should be visible on any part of the screen.
Code https://github.com/Parthiban-P/libvlcWpfTest/tree/main/LibVLCCharpWPF
Black window is visible on switching videos in WPF VideoView control. this issue is observed with LibVLCSharp.WPF 3.8.2
Steps to reproduce.
Play multiple videos on loop in same VideoView control one after another. Black window can be seen at before after playing video when player switches from one video to another.
What is the expected correct behavior? switching between videos should be smooth and no black window should be visible on any part of the screen.
Code https://github.com/Parthiban-P/libvlcWpfTest/tree/main/LibVLCCharpWPF
@mfkl yeah, we are looking for gap-less play back and we are evaluating libraries for our application, why is the black screen appearing before starting Video ?
How can we fix this ?
Seems like it works as intended.
What you're asking for is gap-less playback, I believe. That's a feature currently unavailable from libvlc vlc#549.
You've got a few options:
@mfkl Please find the repo
https://github.com/Parthiban-P/libvlcWpfTest/tree/main/LibVLCCharpWPF
Hi, thanks for the report. As the template says, please use a git repo to share the code so I can just clone and run. Thanks.
Black window is visible on switching videos in WPF VideoView control. this issue is observed with LibVLCSharp.WPF 3.8.2
Steps to reproduce.
Play multiple videos on loop in same VideoView control one after another. Black window can be seen at before after playing video when player switches from one video to another.
What is the expected correct behavior? switching between videos should be smooth and no black window should be visible on any part of the screen.
Code https://github.com/Parthiban-P/libvlcWpfTest/tree/main/LibVLCCharpWPF
WPF The Mute call in a single MediaPlayer causes all MediaPlayer objects to be muted, in the latest version 3.0.20 LibVLCSharp.WPF 3.8.2 VideoLAN.LibVLC.Windows 3.0.20 I had this problem after the upgrade
Known libvlc behavior, unrelated to libvlcsharp. See #105 (closed).
Closing.