hi,
i am using C#, feb2006 sdk and managed directx 1.
i am exploring the Video class, especially the render to texture feature.
setting the whole thing up was not much of a problem, except for the total lack of documentation of this class. anyways, after some trial and error i got it work quite nicely.
the class seems well designed and - once you know how - is easy to use.
my problem is, i haven't found a way of safely disposing of the video object. i either get an access violation exception or a thread belonging to the object will not terminate.
here's what i do in a nutshell:
i have a simple form object with a child window in which i setup a mdx1 device and display the video textures.
i start the video and catch the "TextureReadyToRender" event. since the delegate is invoked in a different thread i send a message to the form on each texture ready event, so that the actual display happens in the original form thread. the texture is processed by a pixel shader.
as i said, everything works nicely while the video is playing. i don't see any memory leaks or stuff like that. and the shader processes each frame as expected.
however, i cannot find a way to dispose of the video object without getting an exception.
whenever i call the dispose method i get an access violation exception. i inserted a Stop button in the form where i manually stop and then dispose the video. i get an exception.
i simply close the form and i get an (access violation) exception in the Dispose override of the form (when the base.Dispose() method is called in the generated code by the ide).
i tried simply dispose without prior call to stop - makes no difference.
all of this does not happen when i simply play the video in a window, whitout the render to texture option. but i need to catch every frame and process it with my pixel shader...
the version of the "Microsoft.DirectX.AudioVideoPlayback" reference is 1.0.2902.0.
the runtime version of the reference is 1.1.4322.
is this a known bug or am i doing something wrong

disposing of video when using "RenderToTexture"