• Advertisement
Sign in to follow this  

[.net] disposing of Video class in MDX1

This topic is 4337 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

good day everybody, i already posted this in the msdn forums a while ago but never got an answer... so i am hoping maybe somebody here knows the answer. i am using C#, feb2006 sdk and managed directx 1. 1. here is the short version of my question: i create a Video object using the RenderToTexture option. the video plays fine and i get the individual frame textures without problem. however, whenever i call the Dispose method of the object i get an access violation exception. no matter whether i call Dispose on the running video or stop it before disposing of it. i also get this exception if i do not explicitly dispose it but let the framework handle it for me... what is the problem? is this a known bug? 2. here is the longer version: 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 ALWAYS get an access violation exception when i call Video.Dispose(). mind you: this only applies to the render to texture mode. i don't have any problems disposing the object using standard window output. 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 (access violation) exception. i simply close the form and i get the same exception in the Dispose override of the form (when the base.Dispose() method is called in the code generated 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?

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement