DircetShow Shared Memory

Hi, i would like to store parts of a camera live stream, which i grab via VideoIn(DirectShow).
I tried using the SharedMemory VideoOut (Camera -> VideoIn -> VideoOut(Shared Memory)).
But when i try to read from shared memory (SharedMemory->VideoOut) the window doesn’t show anything.

Any solutions?

Thanks!

hei ajax,

what exactly do you mean with storing parts of a stream? you want to save screenshots to .bmps or record parts of the stream to .avis? see the Writer nodes…

With “parts” i mean short video samples. I thoght, it would be better to store them in my ram then on my harddrive.
Basically i want to hit a button, which starts recording the sample and hit the button again to stop recording. Later i would like to use the parts i recorded to memory.

so you want to buffer sequences of images in memory. have you tried Queue (EX9.Texture) ? this is storing textures on the graphiccard for fast access but of course the buffer length is limited to your graphiccards memory.

for buffering sequences via sharedmemory there is a Queue (SharedMemory) node missing (which you could code yourself).

Thank you, but how would i split up my DSHow Stream into single frames to store them in the texture buffer?

And another question just came up: Is it possible to draw on the output window DSHow.VideoOut creates. Or the other way: Can i send a DShow stream to a Dx9 renderer?

Edit: Just looked through the documentation a bit. Would VideoTexture (EX9.Texture VMR9) do the trick? I’m currently at work, so i can’t find out by testing ;-)

And another question just came up: Is it possible to draw on the
output window DSHow.VideoOut creates. Or the other way: Can i
send a DShow stream to a Dx9 renderer?

Use VideoIn → VideoTexture → Quad → Renderer (EX9)

ouh…seems you are missing the basics. try something like:

VideoIn->VideoTexture->Queue->Quad->Renderer

and check the helpfiles of those nodes.