Re: DirectShow Insanity
From: Phil Taylor (phil_at_private-citizen.com)
Date: 01/20/05
- Next message: The March Hare [MVP]: "Re: DirectShow Insanity"
- Previous message: Roulette: "Re: DirectShow Insanity"
- In reply to: Roulette: "Re: DirectShow Insanity"
- Next in thread: Roulette: "Re: DirectShow Insanity"
- Reply: Roulette: "Re: DirectShow Insanity"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 20 Jan 2005 15:34:33 -0800
its a strange one, but since it only fails in this little test app, it must
be something that is being done differently.
does it vary based on the file chosen? is "test.wma" really being found?
what about other formats?
is there a non-error return code other than S_OK returned from Run()?
what if you turn debug level on high ( 5 ) is more information returned?
somewhere there is a null pointer...
"Roulette" <Roulette@Roulette.com> wrote in message
news:%234W$cA0$EHA.2600@TK2MSFTNGP09.phx.gbl...
> 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: The March Hare [MVP]: "Re: DirectShow Insanity"
- Previous message: Roulette: "Re: DirectShow Insanity"
- In reply to: Roulette: "Re: DirectShow Insanity"
- Next in thread: Roulette: "Re: DirectShow Insanity"
- Reply: Roulette: "Re: DirectShow Insanity"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|