Re: DirectShow Insanity
From: Roulette (Roulette_at_Roulette.com)
Date: 01/20/05
- Next message: Phil Taylor: "Re: DirectShow Insanity"
- Previous message: Phil Taylor: "Re: DirectShow Insanity"
- In reply to: Phil Taylor: "Re: DirectShow Insanity"
- Next in thread: Phil Taylor: "Re: DirectShow Insanity"
- Reply: Phil Taylor: "Re: DirectShow Insanity"
- Messages sorted by: [ date ] [ thread ]
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;
>> }
>>
>>
>
>
- Next message: Phil Taylor: "Re: DirectShow Insanity"
- Previous message: Phil Taylor: "Re: DirectShow Insanity"
- In reply to: Phil Taylor: "Re: DirectShow Insanity"
- Next in thread: Phil Taylor: "Re: DirectShow Insanity"
- Reply: Phil Taylor: "Re: DirectShow Insanity"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|