Problem with Camera enums in MediaPipe and OpenCV

Hey together, we are just experiencing problems on several devices (win11 and win10) with the camera enums in MediaPipe and in OpenCV not showing the camera entries. On another device it’s working however. Also the cameras with the Skia/Stride VideoIn are working.

Any idea? Thanks

In MediaPipe, the error is “Not found: CamerasEnum”
In OpecnCV “The EnumEntry ‘Dummy Dynamic Enum’ of “DummyDynamicEnum” is not valid.”

We already went through cleaning the Package Cache and CEF Troubleshooting without success.


  • is this suddenly happening on PCs where this has worked before? if so, what changed? (vvvv version? windows update, camera driver update?)
  • what camera are you using?
  • do you have a chance to test with a different camera?

They were all clean installs, no vvvv on the devices before. The solution suggested from @bjoern (thanks you!) worked here:

For vvvv gamma 6.6 (previously deleting the old nuget folders)

nuget install vl.opencv -version 2.6.4
nuget install VL.MediaPipe -version 0.4.0-alpha

Seems it should also now be fixed in VL.OpenCV 3.0.1 which was just released?

1 Like

Confirmed. Coincidentally both those packs were broken in their last release. They’ve now been updated to work with vvvv gamma 6.6:

  • VL.OpenCV 3.0.3
  • VL.MediaPipe 0.5.0

Thanks for reporting!

2 Likes

I have to come back with this again. With a clean vvvv gamma 6.6 installation, and the VL.MediaPipe 0.5.0 alpha, it will throw the following error: WatsonWebserver.dll not found (however it is in …\VL.MediaPipe.0.5.0-alpha\lib\net6.0).

Back to VL.MediaPipe 0.4.0 everything works again.

Console Message
Exception: "The referenced symbol source 'WatsonWebserver.dll' couldn't be found."
    StackTrace:
        VL.Lang.Platforms.Roslyn.CompiledSymbols { private System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> <get_References>g__Compute|31_0() { ... } } 
        VL.Lang.Platforms.Roslyn.CompiledSymbols { public virtual System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> get_References() { ... } } 
        VL.Lang.Symbols.SymbolSourceReference+<GetAdhocReferences>d__16 { private virtual bool MoveNext() { ... } } 
        VL.Lang.Symbols.DocSymbols { private System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> <get_AllReferences>g__Compute|145_0() { ... } } 
        VL.Lang.Symbols.DocSymbols { public virtual System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> get_AllReferences() { ... } } 
        VL.Lang.Symbols.Layer { internal static void <CollectSymbolSources>g__DoCollect|26_0(System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.LayerEntry>.Builder result, VL.Lang.Symbols.ISymbolSource symbolSource, bool isFriend, System.Collections.Immutable.ImmutableQueue<VL.Lang.Symbols.SymbolSourceReference> currentPath, System.Collections.Generic.HashSet<VL.Lang.Symbols.ISymbolSource> seen, bool firstlevel) { ... } } 
        VL.Lang.Symbols.Layer { private static void CollectSymbolSources(System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.LayerEntry>.Builder result, VL.Lang.Symbols.ISymbolSource symbolSource, System.Collections.Generic.HashSet<VL.Lang.Symbols.ISymbolSource> toBeSkipped) { ... } } 
        VL.Lang.Symbols.Layer { public static VL.Lang.Symbols.Layer Document(VL.Lang.Symbols.DocSymbols document) { ... } } 
        VL.Lang.Symbols.PreCompilation { private void Initialize(VL.Lang.Symbols.PreCompilation previousCompilation, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Lang.Symbols.PreCompilation { internal static VL.Lang.Symbols.PreCompilation Create(VL.Lang.Symbols.IPlatform platform, VL.Model.Internal.Solution solution, VL.Lang.Symbols.PreCompilation previous, VL.Model.CompileOptions options, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Lang.Symbols.PreCompilation { internal VL.Lang.Symbols.PreCompilation WithSolution(VL.Model.Internal.Solution value, VL.Model.CompileOptions options, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Lang.Symbols.PreCompilation { public VL.Lang.Symbols.PreCompilation WithSolution(VL.Model.Solution value, VL.Model.CompileOptions options, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Model.VLSession+<>c__DisplayClass194_0 { internal VL.Lang.Symbols.PreCompilation <PrepareSolutionWithFreshSymbolsAsync>b__0() { ... } } 
        System.Threading.Tasks.Task`1 { internal virtual void InnerInvoke() { ... } } 
        System.Threading.ExecutionContext { internal static void RunFromThreadPoolDispatchLoop(System.Threading.Thread threadPoolThread, System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Threading.ExecutionContext { internal static void RunFromThreadPoolDispatchLoop(System.Threading.Thread threadPoolThread, System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) { ... } } 
        System.Threading.Tasks.Task { private void ExecuteWithThreadLocal(System.Threading.Tasks.Task& currentTaskSlot, System.Threading.Thread threadPoolThread) { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Model.VLSession+<PrepareSolutionWithFreshSymbolsAsync>d__194 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Model.VLSession+<UpdateCompilationAsync>d__192 { private virtual void MoveNext() { ... } } 


Exception: "The referenced symbol source 'WatsonWebserver.dll' couldn't be found."
    StackTrace:
        VL.Lang.Platforms.Roslyn.CompiledSymbols { private System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> <get_References>g__Compute|31_0() { ... } } 
        VL.Lang.Platforms.Roslyn.CompiledSymbols { public virtual System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> get_References() { ... } } 
        VL.Lang.Symbols.SymbolSourceReference+<GetAdhocReferences>d__16 { private virtual bool MoveNext() { ... } } 
        VL.Lang.Symbols.DocSymbols { private System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> <get_AllReferences>g__Compute|145_0() { ... } } 
        VL.Lang.Symbols.DocSymbols { public virtual System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.SymbolSourceReference> get_AllReferences() { ... } } 
        VL.Lang.Symbols.Layer { internal static void <CollectSymbolSources>g__DoCollect|26_0(System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.LayerEntry>.Builder result, VL.Lang.Symbols.ISymbolSource symbolSource, bool isFriend, System.Collections.Immutable.ImmutableQueue<VL.Lang.Symbols.SymbolSourceReference> currentPath, System.Collections.Generic.HashSet<VL.Lang.Symbols.ISymbolSource> seen, bool firstlevel) { ... } } 
        VL.Lang.Symbols.Layer { private static void CollectSymbolSources(System.Collections.Immutable.ImmutableArray<VL.Lang.Symbols.LayerEntry>.Builder result, VL.Lang.Symbols.ISymbolSource symbolSource, System.Collections.Generic.HashSet<VL.Lang.Symbols.ISymbolSource> toBeSkipped) { ... } } 
        VL.Lang.Symbols.Layer { public static VL.Lang.Symbols.Layer Document(VL.Lang.Symbols.DocSymbols document) { ... } } 
        VL.Lang.Symbols.PreCompilation { private void Initialize(VL.Lang.Symbols.PreCompilation previousCompilation, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Lang.Symbols.PreCompilation { internal static VL.Lang.Symbols.PreCompilation Create(VL.Lang.Symbols.IPlatform platform, VL.Model.Internal.Solution solution, VL.Lang.Symbols.PreCompilation previous, VL.Model.CompileOptions options, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Lang.Symbols.PreCompilation { internal VL.Lang.Symbols.PreCompilation WithSolution(VL.Model.Internal.Solution value, VL.Model.CompileOptions options, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Lang.Symbols.PreCompilation { public VL.Lang.Symbols.PreCompilation WithSolution(VL.Model.Solution value, VL.Model.CompileOptions options, System.Threading.CancellationToken token, System.IProgress<VL.Model.LoadMessage> progress) { ... } } 
        VL.Model.VLSession+<>c__DisplayClass194_0 { internal VL.Lang.Symbols.PreCompilation <PrepareSolutionWithFreshSymbolsAsync>b__0() { ... } } 
        System.Threading.Tasks.Task`1 { internal virtual void InnerInvoke() { ... } } 
        System.Threading.ExecutionContext { internal static void RunFromThreadPoolDispatchLoop(System.Threading.Thread threadPoolThread, System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Threading.ExecutionContext { internal static void RunFromThreadPoolDispatchLoop(System.Threading.Thread threadPoolThread, System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) { ... } } 
        System.Threading.Tasks.Task { private void ExecuteWithThreadLocal(System.Threading.Tasks.Task& currentTaskSlot, System.Threading.Thread threadPoolThread) { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Model.VLSession+<PrepareSolutionWithFreshSymbolsAsync>d__194 { private virtual void MoveNext() { ... } } 
        System.Runtime.ExceptionServices.ExceptionDispatchInfo { public void Throw() { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void ThrowForNonSuccess(System.Threading.Tasks.Task task) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter { private static void HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task, System.Threading.Tasks.ConfigureAwaitOptions options) { ... } } 
        System.Runtime.CompilerServices.TaskAwaiter`1 { public TResult GetResult() { ... } } 
        VL.Model.VLSession+<UpdateCompilationAsync>d__192 { private virtual void MoveNext() { ... } }

It should be in the net8.0 folder “besides” the VL.MediaPipe.dll (as should the rest of the dependencies). You can copy them over manually, if you don’t want to wait for a fix.

1 Like

Thanks @bjoern.
Also all the other .dll Files without “VL.” are missing in the .net8.0 folder. Not sure if all of them are needed, but without I could open without crash but not select the camera enums.

Copying all other .dll files (see below) from …\VL.MediaPipe.0.4.0-alpha\lib\net6.0 over to net8.0 (and afterwards deleting the 0.4.0 version) worked so far here.

grafik

hmm… while odd that i cannot reproduce your issue with 0.5.0 on 3 different PCs here, it is definitely not good practice to ship a nuget like this. so i fixed that for 0.5.2-alpha. hope that was it.

1 Like