Re: DirectShow Insanity

From: Roulette (Roulette_at_Roulette.com)
Date: 01/20/05


Date: Thu, 20 Jan 2005 16:33:47 -0600


    The exception happens immediately upon executing the
"pMediaControl->Run()" line...hence, waiting for completion of the program
would not affect it. (In addition, as mentioned, the normal application
that executes this code does not terminate...it later receives a callback
when it's time to reset the pointer to loop the music, etc..)

    No error is returned from pMediaControl->Run().

    The specific debug message seen is: "First-chance exception at
0x086c9324 in Test.exe 0xC0000005: Access violation writing location
0x00000000." Four of these messages are displayed - all at once when
pMediaControl->Run() is called - with different addresses (the first
hexadecimal value.) The other information remains the same in each message.

- Roulette

"Phil Taylor" <phil@private-citizen.com> wrote in message
news:usbUC3x$EHA.3120@TK2MSFTNGP12.phx.gbl...
> and what exactly is shown in the debug output window?
>
> what is the return value from MediaControl->Run?
>
> what happens if you wait for completion befor exiting the program?
>
> some operations require the thread that started to remain alive until the
> operation completes. the sample code does this, so perhaps thats the
> issue.
>
> "Roulette" <Roulette@Roulette.com> wrote in message
> news:%23UoVy5p$EHA.1408@TK2MSFTNGP10.phx.gbl...
>> Can someone tell me why the following small snippet of DirectShow
>> code causes a number of "First-chance exception"s to occur? The code
>> actually seems to work fine - the music plays for a couple of seconds
>> before exiting. In the full application, the music plays fine, I receive
>> a callback (after setting it up) and reset the music to loop when its
>> finished, etc..
>>
>> In other words...as far as I can tell on my machine, the code works
>> exactly like it should, but those exceptions (that you can see in the
>> Debug window when running the program from MSDEV) are making me worry
>> that there might be a problem on some other machine.
>>
>> Thanks in advance for any help....
>>
>> - Roulette
>>
>>
>>
>> int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR
>> lpcmdline,int ncmdshow)
>> {
>> // No clean-up is done since this code is just demonstrating a problem.
>>
>> CoInitialize(NULL);
>> IGraphBuilder *pGraph=NULL;
>> IMediaControl *pMediaControl=NULL;
>> const char *filename="Test.wma";
>>
>> HRESULT
>> returnValue=CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void
>> **)&pGraph);
>>
>> if (FAILED(returnValue))
>> return 0;
>>
>> if (pGraph)
>> {
>> pGraph->QueryInterface(IID_IMediaControl,(void **)&pMediaControl);
>>
>> if (pMediaControl)
>> {
>> WCHAR *wfile;
>> int length;
>> length=strlen(filename)+1;
>> wfile=new WCHAR[length];
>> MultiByteToWideChar(CP_ACP,0,filename,-1,wfile,length);
>>
>> returnValue=pGraph->RenderFile(wfile,NULL);
>>
>> if (FAILED(returnValue))
>> return 0;
>>
>> pMediaControl->Run(); // This line causes several exceptions to
>> occur - you can see the debug output when running in MSDEV.
>>
>> Sleep(2000); // Give the music a chance to play for a couple of
>> seconds before exiting the program.
>> }
>> }
>>
>> return 0;
>> }
>>
>>
>
>



Relevant Pages

  • Re: Structured Exception Handling (was: Try Finally...)
    ... >statements will be traversed outwards exactly once, executing each ... What really bite me is the re-raise of the exception ... and the continuation in statementList2. ... This means that during unwinding the code immediately returns, ...
    (comp.lang.pascal.delphi.misc)
  • Re: Why finally?
    ... I get the same results from executing the code as well. ... This seems to be a definite improvement of V1.x of the framework. ... normal exception paths. ... // Inject an asynchronous ThreadAbortException in the target thread, ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: WebRequest problems
    ... > I now close the stream as well as the response, ... And are you always executing that Close? ... could be throwing an exception. ... the problem is that there's a connection pool and if the responses ...
    (microsoft.public.dotnet.framework.compactframework)
  • Re: HasRows() vs. Read() and ERROR suppression
    ... > record found by executing the commandText. ... >> Syntax error converting datetime from character string. ... >> on the Command object, ... >> MUST call .Readon the SqlDataReader, or you don't get the exception. ...
    (microsoft.public.dotnet.framework.adonet)
  • Re: Terminating User-Interface Thread
    ... only need something that will stop executing the thread while it is still ... running without exiting the application.. ... My project is about searching a string in a list. ... In the UI thread message handler, ...
    (microsoft.public.vc.mfc)