I was trying to use the dshowplay sample to play a video file in s3d mode, but an error was shown which said "cannot open this file. hr = 0x80004002".
Then I debugged the program and found out that
CoCreateInstance(CLSID_CustomEVRPresenter, NULL, CLSCTX_INPROC_SERVER, __uuidof(IMFVideoPresenter), (void **)&m_pCustomPresenter);
I had checked the registry and I can ensure that the Custom_EVR_Presenter.dll was registered.
What is the most likely problem with this?
Btw, can a normal video file(not 3d) be played in s3d?
Tony Pabon (Intel) wrote:Hi,Tony I think my monitor does not support full-frame s3d modes. I didn't realize the hardware configuration will influence the initialization steps of the custom_evr_presenter. I will look into the codes to see how the presenter works. And I will be grateful if more detailed documents on S3D(including the presenter) can be provided. ;-) Thank you. -Patrick
There are a few requirements to be able to render S3D. If the Intel Graphics adapter, drivers, monitor and the technology used to connect to the monitor must all support an S3D display mode.
Are you using an 3D monitor connected with HDMI?
Is the monitor capable of supporting full-frame S3D modes?
If so, can you provide model of your display so we can investigate if there is a compatibility issue?
I suspect one of the initialization steps in D3DPresentEngine::InitializeD3D incde the Custom_EVR_Presenter is failing. If the issue is GetPreferableS3DMode(&mode)), the issue may be that the a 3D mode is discovered, but that is it is not a supportable mode for other reasons.
You should be able to play any standard (single-view) content.