Jump to content
  • Advertisement
Sign in to follow this  
dirtyharry

[.net] disposing of Video class in MDX1

This topic is 4458 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
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!