» Replacing DirectShow with managed OpenCV. Video playback / capture / CV
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Replacing DirectShow with managed OpenCV. Video playback / capture / CV

statement devvvv

elliotwoods 28/08/11 - 10:06

Simple video playback / video capture using EmguCV in VVVV
Options are open for full replacement of DirectShow, including spreadable video playback, CV tasks, access to images in dynamic plugins, CV in dynamic plugins.

please check readme on github / download from github if you want to play around:
https://github.com/elliotwoods/VVVV.Nodes.EmguCV

45 replies 0 new

VideoPlayer
sites/default/files/imagecache/large/screenshot1314517446.png

VideoIn
sites/default/files/imagecache/large/screenshot1314514524.png

forum doesn't seem to let me embed these images (some auto-formatting issue :()

link | Flag this reply as a solution. io (translator) 28/08/2011 - 11:39

Brilliant! Here s my test, seems like it is dragging some extra ticks but the Videotexture jumps often at over 40, I am going to use your plugin for my next video performace rehearsal and report back.
The only problem I see right now is that vvvv.exe won t close properly when I use it, I have to turn it off from the Task Manager.
S.

Had a couple of sudden quits with chnaging files, but have a project on so can't get into too much testing, probably funny files, but nice start, and I look forward to testing some more, nice one E :)

I'm actually working on the spreading at the moment.
I wouldn't suggest that this is even ready for testing yet, but hopefully will get some minds thinking / looking at what's possible with this / which direction this should go in.

Currently working on the frame locking between nodes
(e.g. VideoIn node uses thread to produce frames, and AsTexture reads back those frames in the main thread, so need to lock the processes properly)
Then there's the details of correctly initialising / destroying / reformatting when you change file selections / capture sources.

Had some good results so far, and things are cleaning up quick. I think we're only a few hours of attentive work away from a reliable video player. but i definitely wouldn't suggest thinking about testing this for reliability right now.

But lets open up the development process! (that's what github's for :))

Concerning license. I'm consdidering buying one here for EmguCV, then I could distribute EmguCV utilising plugins and you could use them without GPL restrictions, but if you wanted to write any of your own EmguCV code, then you'd need to buy a license.

VVVV not closing will be a thread close issue.

@io - fixed closing issue. i thought IPluginEvaluate inherited form IDisposable, had to inherit explicitly to get it to call my thread closing code.

Latest commit is fairly stable at spreaded videos / spreaded capture.
Capture ID is definitely sporadic, and likely a quick fix inside the node will fix it, but not looking at that right now.
Please read the readme on github for full notes on this effort

i tried this on another machine and totally failed.
will see if i can get it running...

EDIT : camera capture works fine, but codec issue loading files.

It's using the HighGUI video loader, which uses VfW on Windows (i.e. not the same codecs as DirectShow)

I'm failing on Win32/XP but succeeding on Win64/7 with same codecs installed (i think :) )

I think we can deprecate WinXP support. Btw, what codecs i need to install on Win7 x64? On windows we have some different ffmpeg compilations like ffdshow and etc.

i was installing ffdshow, which has vfw support
and I also installed Media Player Codec Pack

I still presume the app is running 32bit, unless .NET is doing something magic that allows for 64bit code to run inside a 32bit class.

I'm upgrading that computer to Windows 7 this morning, then hopefully will report back better results.

Elliot

hey guys
this EmguCV looks really cool!
btw in the latest build
in test-FaceTracking patch the FaceTracking (EmguCV) node appear in red.
any ideas?
thanks

Hello, circuitb.

Can you provide some error info from Render(TTY)?
I will also commit new version today.

hi alg,
here is the error log:

00:00:23 - : Texture (Width: 1, Height: 1, Format: X8R8G8B8, Mip Map Count: 1) loaded in 0.000 seconds.
00:00:23 * : couldn't connect pins of nodes FaceTracking (EmguCV) and Vector (2d Split).
00:00:23 * : couldn't connect pins of nodes FaceTracking (EmguCV) and Vector (2d Split).
00:00:23 * : couldn't connect pins of nodes VideoIn (EmguCV) and FaceTracking (EmguCV).
00:00:24 ERR : Corrupt link-message in Patch D:\projects\contributions\plugins\EmguCV\test-FaceTracking.v4p. srcViewPin or dstViewPin is nil!
00:00:24 ERR : Corrupt link-message in Patch D:\projects\contributions\plugins\EmguCV\test-FaceTracking.v4p. srcViewPin or dstViewPin is nil!
00:00:24 ERR : Corrupt link-message in Patch D:\projects\contributions\plugins\EmguCV\test-FaceTracking.v4p. srcViewPin or dstViewPin is nil!
00:00:24 : Creating new texture at slice: 0

Hello. Currently new ObjectTracking node is still in development - we have some minor problems with whole graph. You can track progress here https://github.com/elliotwoods/VVVV.Nodes.EmguCV/network .

Some notes on threading:

I think that the Capture node (either VideoIn, ImageLoader, VideoPlayer, etc) should give an enum pin (probably in config, but could also be a default hidden input pin) which gives these options:

  • Very immediate - completely unthreaded
  • Immediate - threaded capture (i.e. double buffered), unthreaded processing
  • Threaded - threaded capture, threaded processing (all processing in one thread)
  • Background - threaded capture, threaded processing (all processing nodes have their own thread)
  • Very Immediate = 0 frame latency, but vvvv fps can be locked to capture fps
  • Immediate = 0 to 1 frame latency, vvvv fps not hindered by capture fps
  • Threaded = 0 to N frame latency, all processing must run on 1 core (happens inside the capture's thread)
  • Background = 0 to N frame latency, processing can be shared across cores

I think it makes sense for the capture node to decide this option for the graph beneath it (not sure right now what happens if we have a node further down that takes 2 seperate inputs from different captures set to different options. i presume most immediate will take precedence and that immediacy will be carried down the graph).

Examples:
For structured light I'd choose Very immediate
For face tracking with not so much processing I might choose Immediate
For face tracking with lots of processing I might choose Threaded.

It's also possible that a node Immediacy (EmguCV) could accept frames, and change the immediacy mid-graph.

link | Flag this reply as a solution. vux (kollaborateur) 05/09/2011 - 20:25

Sound quite nice to look around that.

Had a play with working on a nice back end system for it, only went trough the subsystem but the idea was to use AddonFactory + Hde nodes to deal with threading.

Roughly filters implements a separate interface, like IImageFilter/IImageSource (so they should not deal with threading/sync, and technically they know nothing about vvvv).

AddonFactory would register Node infos/Pins, and use Hde features to build a subgraph (which runs on it's own thread), with a node holder to wrap filters.

Advantage of this is any improvement to the node holder/graph is immediately benefiting all filters.

Made some working prototypes for that concept, AddonFactory is fairly complete for this, but Hde was missing a few features (mainly Pin Connected/Disconnected Event), Pin Direction, and global graph events, to make it reliable enough.

As datatype Filters have:

  • Streams : Roughly it's an input/output image, it is passed on the separate thread.
  • Parameters (vvvv input pins like value/string), which are synced to the subgraph
  • Output Data (same as above but output, things like contour data for example)

IImageFilter interface has the following methods:

  • CreateInputStream<T>
  • CreateOutputStream<T>
  • CreateParameter<T>
  • CreateOutputData<T>
  • Evaluation model (keeping that for later, enough to do already).

Questions/Ideas welcome :)

link | Flag this reply as a solution. io (translator) 05/09/2011 - 22:04

Hi
here we are trying to use CUDA instead of CPU for face tracking, seems much better on stability.

EDIT: now with compiled dll by Ale

i like this thread :)

thanks for compiled dll, perfect! xd

here screen capture:

@ale I think we can made CUDA and CPU versions of ObjectTracking node. Need to test how CUDA works on ATI cards, maybe we don't even need another version.

how do you get the screencapture in there?

link | Flag this reply as a solution. io (translator) 06/09/2011 - 18:27

Having fun with the new libraries

http://www.youtube.com/watch?v=BdPmECfUFcI

@alg
yes, i hope if opencv implement opencl then all fine

@sebl
me? webcam focus to screen monitor and ImpPant in my keyboard (dual monitor) and cut region for post here

@sugokugenki:

I downloaded the openCV nodes, but they won't behave as 'dynamic plugin', only the compiled ones work when I extract the Prerequisites zip-file. I can't right)click on them and start editing the code...

Anyone knows what I am doing wrong?

I want to check out the code, to see if I could create another video player node that outputs to your custom 'bitmap' format, to make it compatible with these plugins...

@ft you can try my branch https://github.com/smakhtin/VVVV.Nodes.EmguCV . I think it's would not behave like dynamic plugins, because project is not prepared. Just install Visual Studio and setup Debug properties in the project. I have your VLC plugin sources and planned to integrate it by myself, but i still not received latest changes from you and it's would be nice, if you fork my branch on GitHub and just pull your changes. If you have some problems with dependencies or Git - msg me in skype. My skypename - algariol.

This .NET wrapper for FFMPEG looks super simple to implement as a plugin:http://code.google.com/p/ffmpeg-sharp/source/browse/trunk/ffmpeg-sharp/#ffmpeg-sharp%2Fsrc%2FVideo
EDIT: and doesn't have the harsh restrictions of vlc's GPL license.

(just a suggestion!)

Thanks.

I'll take a look at it.

Edit: project seems dead, doesn't compile. Pity.

@ft are you checking my latest commits? I'm uploading only compiling builds.

@all looks like VideoPlayer works only with VFW codecs. All codecs integrated in Windows 7 x64 is not working. It's can be solved by reassign all file formats to ffdshow i think.

Does anyone know how I can create a

new Emgu.CV.Image<Bgr, byte>()

It tells me it is not accessible due to the security level or something (I guess it's not a public class). I don't know anything about OpenCV (yet), or about EmguCV. Is there a way to get an Image, and then fill the bytes of that image with my data? Or a way to create an image, from some byte ptr or something?

From VideoInNode:

FBuffer = new Image<Bgr, byte>(new System.Drawing.Size(FCapture.Width, FCapture.Height));

UPD: AsTexture is slow as hell. We need to fix it.

Hello,

At this time, only ImageRGB has been implemented, which disables the possibility to load textures with an alpha channel for example.

I managed to alter Vlc so that it has an Image Output Pin, so that it can be rendered (or processed in between) using AsTexture. The Vlc plugin can also load image files, but the way it works now, I have to throw away the alpha channel, which is a shame (and I guess one day video codecs that can handle an alpha channel will exist too).

Should we make this more 'open', maybe generic like EmguCV's own Image. That could make it somewhat harder to implement new nodes, since they have to be able to handle multiple formats, but I hope that EmguCV would take care of most of that?

Any ideas in that direction?

Another thing, there are 2 git repositories now. Is there a good reason to do so, or would it be better to merge them together? I think this could be more powerful, if we combine the efforts of multiple people.

Also, it would be nice to have an easy way to expose only the necessary 'Image' classes to people, such that this could become a uniform format to communicate color information. That way, everyone could produce dynamic plugins that fit into the chain, and they wouldn't be forced to use any other EmguCV functionality. Maybe we should even pass a structure around that has no dependencies at all on EmguCV, but only uses Bitmap or something. Nodes that use EmguCV could wrap this Bitmap into an EmguCV Image, and do their thing with it. I don't know if this would be a performance hit, but it would keep things even more open to everyone.

Elliot, Alg, others? What are your opinions on this?

Hey ft

Indeed a more generic Image type is more favorable

EmguCV doesn't provide a single class with this capability, instead preferring to use template classes. In c++ this isn't the case (but in c++ you can more generally type-cast pointers).

My suggestion is in the prototype new CVImage type class described in the 'eventBased' branch https://github.com/elliotwoods/VVVV.Nodes.EmguCV/blob/eventBased/Types/CVImage.cs

Multiple repositories / branches is the natural state from development on git/github.
Generally we should be looking to promote users and developers to look to the central branch (the upsream/master branch), which currently is defacto the master branch on my repo.

And I should then accept pull requests from other developers to bring their code into that branch. I've pulled in alg's changes now so you can use the master branch there now.

However, please have a look also at the eventBased branch (as well as master branch). The eventBased branch sketches out a couple of ideas:

  1. Abstract base classes for inputs and outputs (so people can make their own easily). I'm having issues with multiple inheritance, and need a clever elegant route around it, but this seems like it'd be an issue only for AsTexture / DX9output plugs, so we could work around specificically in this case
  2. Thread in input node drives thread throughout graph using events.
  3. CVImage can hold either 8bit Gray, RGB or RGBA. When a node accepts it as an input it requests one type, and CVImage either provides that type natively (if available) or automatically converts from what is inside (e.g. AsTexture requires RGBA, so if we have an RGB input, CVImage automatically converts to RGBA). So a video playback node can output RGBA if it likes, and nodes downstream can request whichever format they prefer.

Elliot

I will check CVImage out.

Something else I was thinking about.

I think including the lock in the image is a great idea. I would suggest to change that to a ReaderWriterLock though. This way, multiple nodes that are downstream from an 'image-producing-node' could be reading the image at the same time.
This wouldn't be useful if everything is computed in vvvv's main thread, but if also the detection-nodes (like 'blob detection' or something) would work outside the main thread, and only update the output pins when they successfully processed something, these nodes could give you information 'as soon as possible' without slowing down vvvv's framerate.

In some situations this behaviour could be the desired behaviour.

What do you think of the 'more loosely coupled to EmguCV' idea, of passing a Bitmap or something similar around instead of an Emgu.CV.Image?

i cant open any of the example files,,, i have 26.1 win seven 64
i supose to put all the .dll on any vvvv subfolder or only on the same path as the v4p file ?

this is the tty output

Everything you know is wrong
  physical : in use= 29,  total =   4102908 kb,  avail =   2895744 kb
   virtual : in use=  5,  total =   2097024 kb,  avail =   1998192 kb
    paging : in use=  0,  total =   4194304 kb,  avail =   4194304 kb
 
00:00:00  -  : Hid (Human Interface Devices) DeviceController - OnDeviceChange
00:00:00  -  : Hid (Human Interface Devices) DeviceController - OnDeviceChange
00:00:00  -  : enumerating game devices
00:00:00  *  : ISO-10646-UCS-4 already exists in enum StringCodec.
00:00:00  *  : ISO-10646-UCS-4 already exists in enum StringCodec.
00:00:00  *  : ISO-10646-UCS-4 already exists in enum StringCodec.
00:00:00  *  : ISO-10646-UCS-2 already exists in enum StringCodec.
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\help\ to VVVV.Hosting.Factories.PatchFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\plugins to VVVV.Hosting.Factories.DotNetPluginFactory (cached by C:\Program Files (x86)\vvvv_45beta26\nodelist.xml)
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\plugins to VVVV.Hosting.Factories.CSProjectFactory (cached by C:\Program Files (x86)\vvvv_45beta26\nodelist.xml)
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\editors to VVVV.Hosting.Factories.EditorFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\effects to VVVV.Hosting.Factories.EffectsFactory (cached by C:\Program Files (x86)\vvvv_45beta26\nodelist.xml)
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\modules to VVVV.Hosting.Factories.PatchFactory (cached by C:\Program Files (x86)\vvvv_45beta26\nodelist.xml)
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\freeframe to VVVV.Hosting.FreeFrameFactory (cached by C:\Program Files (x86)\vvvv_45beta26\nodelist.xml)
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\vst to VVVV.Hosting.VSTFactory (cached by C:\Program Files (x86)\vvvv_45beta26\nodelist.xml)
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\ to VVVV.Hosting.Factories.DotNetPluginFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\ to VVVV.Hosting.Factories.CSProjectFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\ to VVVV.Hosting.Factories.EditorFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\ to VVVV.Hosting.Factories.EffectsFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\ to VVVV.Hosting.Factories.PatchFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\ to VVVV.Hosting.FreeFrameFactory
00:00:01     : adding C:\Program Files (x86)\vvvv_45beta26\ to VVVV.Hosting.VSTFactory
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\plugins to VVVV.Hosting.Factories.DotNetPluginFactory (cached by C:\Program Files (x86)\vvvv_45beta26\addonpack\nodelist.xml)
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\plugins to VVVV.Hosting.Factories.CSProjectFactory (cached by C:\Program Files (x86)\vvvv_45beta26\addonpack\nodelist.xml)
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\modules to VVVV.Hosting.Factories.PatchFactory (cached by C:\Program Files (x86)\vvvv_45beta26\addonpack\nodelist.xml)
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\ to VVVV.Hosting.Factories.DotNetPluginFactory
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\ to VVVV.Hosting.Factories.CSProjectFactory
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\ to VVVV.Hosting.Factories.EditorFactory
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\ to VVVV.Hosting.Factories.EffectsFactory
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\ to VVVV.Hosting.Factories.PatchFactory
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\ to VVVV.Hosting.FreeFrameFactory
00:00:02     : adding C:\Program Files (x86)\vvvv_45beta26\addonpack\ to VVVV.Hosting.VSTFactory
00:00:02     : adding C:\Users\Andres\Desktop\opencv\tests\ to VVVV.Hosting.Factories.DotNetPluginFactory
00:00:02     : adding C:\Users\Andres\Desktop\opencv\tests\ to VVVV.Hosting.Factories.CSProjectFactory
00:00:02     : adding C:\Users\Andres\Desktop\opencv\tests\ to VVVV.Hosting.Factories.EditorFactory
00:00:02     : adding C:\Users\Andres\Desktop\opencv\tests\ to VVVV.Hosting.Factories.EffectsFactory
00:00:02     : adding C:\Users\Andres\Desktop\opencv\tests\ to VVVV.Hosting.Factories.PatchFactory
00:00:02     : adding C:\Users\Andres\Desktop\opencv\tests\ to VVVV.Hosting.FreeFrameFactory
00:00:02     : adding C:\Users\Andres\Desktop\opencv\tests\ to VVVV.Hosting.VSTFactory
00:00:02  -  : Texture  (Width: 1, Height: 1, Format: X8R8G8B8, Mip Map Count: 1) loaded in 0.002 seconds.
00:00:02  *  : couldn't connect pins of nodes IOBox (String) and ImageLoad (EmguCV). 
00:00:02  *  : couldn't connect pins of nodes ImageLoad (EmguCV) and AsTexture (EmguCV RGB). 
00:00:02  *  : couldn't connect pins of nodes AsTexture (EmguCV RGB) and Quad (DX9). 
00:00:02 ERR : Corrupt link-message in Patch C:\Users\Andres\Desktop\opencv\tests\test-ImageLoad.v4p. srcViewPin or dstViewPin is nil!
00:00:02 ERR : Corrupt link-message in Patch C:\Users\Andres\Desktop\opencv\tests\test-ImageLoad.v4p. srcViewPin or dstViewPin is nil!
00:00:02 ERR : Corrupt link-message in Patch C:\Users\Andres\Desktop\opencv\tests\test-ImageLoad.v4p. srcViewPin or dstViewPin is nil!
00:00:02  -  : Hid (Human Interface Devices) DeviceController - OnDeviceChange

@ft :
nice idea on the read/write lock
we'd then need to trigger events in listeners in seperate threads.
i'm not 100% sure how to use delegates properly for this (as we couldn't use the existing Event model, as each downstream event listener would be activated in series)

but i presume we could have a List of delegates
and then trigger each delegate in a seperate Thread. With each Thread stored in a List<Thread>.

@vjc4 : to confirm: the patch loads but you get red nodes?

make sure you have the dll's fromhttps://github.com/elliotwoods/VVVV.Nodes.EmguCV/blob/master/Prerequisites.zip in the same folder as the plugin (you might want to make sure you don't copy the old version of the plugin from that download).

still the same
tested on beta 25 same issue, on another pc same problem
im doing something wrong for sure, but i dont know what

for some reason the node its looking for VVVV.Nodes.EmguCV.dll file into \bin\Debug

i already try creating that folder, and putting the dll into vvvv main folder, still the same,,,

http://andresc4.com/error.jpg

hi guys
still unable to run the face tracking nodes (cpu or gpu)
the other nodes works as expected in the last release
any tips welcome!
thx
C.

vjc4, circuitb sorry for the long answer, was on vacation and workshops. Hope i can check all code in a day or two and post something like binary release with installation instructions.

We also waiting for the new "Subgraph" framework from vux, so expect big API changes in the future.

Hmm
this project is kind of in it's worst state of rot right now
3 core models
2 of which are currently open
1 of which currently works (except when it doesn't!)

It's going to be great to get the subgraph stuff accessible enough to create our own flexible nodes, and for us properly to discuss points on the platform together.

In fact, this is looking like a really great experiment in distributed development on the VVVV platform of a near-core feature.
I really hope it stays open and flexible enough for lots of ideas / code / different ambitions to get on board and flesh out its success!

But we need to agree on a core, before we start chatting about bug-fixes.
Perhaps we could arrange a skype chat sometime over this/next week.

Propose Monday 7PM UK time / 8PM EU time?
invitations to alg, vux, ft + anyone else who's either a user or developer. let's keep the chat on track and make a proposal for what to do next.

I agree, we need a plan and roadmap. I will create a chatroom for you and vux, but don't have ft contact in skype. For everyone interested, my skypename - algariol.

link | Flag this reply as a solution. io (translator) 17/10/2011 - 15:16

Hi
I am desperately trying to get a http://www.grassvalley.com/products/pegasus to stream into vvvv, it comes with a SDK but no mention of DirectShow.
The task is a bit daunting for my skills but I am stubborn enough... I am not sure if the new OpenCV libraries are a way to go or not... help, ideas, hints?
tx
Simone

link | Flag this reply as a solution. joreg (vvvvgroup) 17/10/2011 - 15:33

if you chat about such stuff, pleasepleaseplease don't do it in an invitation-only chat system (ie. skype), but rather use vvvvs irc channel. we live in the 21st century after all..

@io I think yes. You need to write your own plugin for this board if it's not DirectShow compatible. It would be nice, if you plugin can output Image type together with texture. We still not sure about our datatype and currently have 2 main branches of this project - one is based on subgraph method and another on simple threading. Currently threaded branch is more production ready, but still need some fixes.

@joreg i think this is a good idea.

i wouldn't describe this branch as 'production ready'
but right now it's an awesome cv research resource

@joreg - will try to use irc in future.
what's your opinion on this?

Hi Elliot,

I was just checking out the great stuff from http://www.kimchiandchips.com/blog/?p=725
and I decided to try the patch, but I got this output:

Element: VVVV.Nodes.EmguCV.IntrinsicsSplitNode (ContractName="VVVV.PluginInterfaces.V1.IPluginBase") -->  VVVV.Nodes.EmguCV.IntrinsicsSplitNode -->  TypeCatalog (Types='VVVV.Nodes.EmguCV.IntrinsicsSplitNode').
 
   at System.ComponentModel.Composition.Hosting.CompositionServices.GetExportedValueFromComposedPart(ImportEngine engine, ComposablePart part, ExportDefinition definition)
   at System.ComponentModel.Composition.Hosting.CatalogExportProvider.GetExportedValue(CatalogPart part, ExportDefinition export, Boolean isSharedPart)
   at System.ComponentModel.Composition.Hosting.CatalogExportProvider.CatalogExport.GetExportedValueCore()
   at System.ComponentModel.Composition.Primitives.Export.get_Value()
   at System.ComponentModel.Composition.ExportServices.GetCastedExportedValue[T](Export export)
   at System.ComponentModel.Composition.ExportServices.GetExportLifetimeContextFromExport[T](Export export)
   at System.ComponentModel.Composition.ExportServices.<>c__DisplayClass1c`1.<CreateStronglyTypedExportFactoryOfT>b__1b()
   at System.ComponentModel.Composition.ExportFactory`1.CreateExport()
   at VVVV.Hosting.Factories.DotNetPluginFactory.CreatePlugin(INodeInfo nodeInfo, IPluginHost2 pluginHost)
   at VVVV.Hosting.Factories.DotNetPluginFactory.CreateNode(INodeInfo nodeInfo, IInternalPluginHost pluginHost)
   at VVVV.Hosting.Factories.AbstractFileFactory`1.Create(INodeInfo nodeInfo, INode host)
   at VVVV.Hosting.HDEHost.CreateNode(INode node)
00:00:52 ERR : System.ComponentModel.Composition.CompositionException: The composition produced a single composition error. The root cause is provided below. Review the CompositionException.Errors property for more detailed information.
 
1) Cannot create an instance of type 'VVVV.Nodes.EmguCV.ExtrinsicsSplitNode' because a constructor could not be selected for construction. Ensure that the type either has a default constructor, or a single constructor marked with the 'System.ComponentModel.Composition.ImportingConstructorAttribute'.
 
Resulting in: Cannot activate part 'VVVV.Nodes.EmguCV.ExtrinsicsSplitNode'.
Element: VVVV.Nodes.EmguCV.ExtrinsicsSplitNode -->  VVVV.Nodes.EmguCV.ExtrinsicsSplitNode -->  TypeCatalog (Types='VVVV.Nodes.EmguCV.ExtrinsicsSplitNode').
 
Resulting in: Cannot get export 'VVVV.Nodes.EmguCV.ExtrinsicsSplitNode (ContractName="VVVV.PluginInterfaces.V1.IPluginBase")' from part 'VVVV.Nodes.EmguCV.ExtrinsicsSplitNode'.
Element: VVVV.Nodes.EmguCV.ExtrinsicsSplitNode (ContractName="VVVV.PluginInterfaces.V1.IPluginBase") -->  VVVV.Nodes.EmguCV.ExtrinsicsSplitNode -->  TypeCatalog (Types='VVVV.Nodes.EmguCV.ExtrinsicsSplitNode').

Any ideas?
all the best and thank you!

anonymous user login

Shoutbox

~5h ago

guest: @io Node13's Software Engineering Patterns workshop by Meso essentially fit the MVC pattern. It would be good if they run it again.

~10h ago

joreg: @io more than what?

~10h ago

io: More MVC vvvv theory at node15 please

~3d ago

StiX: see you guys on node, i am trying to get people that use vvvv in cz/sk to come with me

~3d ago

aelfwine: anything have BullEye software?? I don't find the file :( merci

~3d ago

~3d ago

mediadog: @evvvvil you dawwwwg! #1 place I want to go that I haven't been. Enjoy it!

~4d ago

dannielmach: @evvvvil tel whatsapp 55 32 9913 2509

~4d ago

evvvvil: @danielmach: Eu sou "evvvvil" no skype, Qual e seu skype ou email? Nao posso achar no seu vvvv perfil...

~4d ago

evvvvil: @danielmach: Shame Brazil is such a huge country. I might go to Belo Horizonte, if so i'll be in touch :)