2012-06-27 3 views
0

미디어 확장 샘플 이 샘플은 미디어 확장을 사용하여 비디오에 효과를 적용하고 비디오를 디코딩하고 구성표 처리기를 사용하여 미디어 스트림을 만드는 방법을 보여줍니다.미디어 확장 샘플 메트로 버그?

샘플을 디버깅하기 만하면됩니다. mpg 파일 하나를 선택하고 파일 길이는 4 분입니다. sdk 응용 프로그램을 실행 확인, 두 개의 중복 블록을 보여줍니다. 하지만 약 1 분 40 초 후 sdk 앱이 다운됩니다. 정보는 다음과 같습니다. "처리되지 않은 예외 (MediaExtensionsCPP.exe의 0x68A95B94 (mfcore.dll)) : 0xC0000005 : 0x68A26A38 위치 읽기 액세스 위반."

다른 파일을 대체 할 때도 같은 오류가 발생합니다. 그래서 Microsoft 샘플에 버그가 있다고 생각합니다. 누군가 같은 문제가 있습니까? 해결 방법을 공유 할 수 있습니다. 고마워요.

+0

해당 문제의 이유를 찾았습니다. 메트로에 대한 dllmain.cpp. 함수는 다음과 같습니다. HRESULT WINAPI DllCanUnloadNow() { auto & module = Microsoft :: WRL :: Module :: GetModule(); return (module.Terminate())? S_OK : S_FALSE; } – ayuppie

답변

1

미디어 팀은이 문제를 해결하기위한 샘플의 새로운 릴리스에 포함될 수정 프로그램을 제공합니다. 다음은 현재 샘플을 수정하기위한 지침입니다.

DLL이 너무 일찍 언로드되는 버그를 Media 샘플에서 발견했습니다. 그 동안에는 MSDN 샘플의 소스/스트림 클래스의 생성자/소멸자에 다음 행을 추가 할 수 있습니다. 참고 : RuntimeClass <> (예 : 스키마 처리기)에서 파생 된 클래스에는 필요하지 않습니다.

생성자 : auto module = :: Microsoft :: WRL :: GetModuleBase(); if (module! = nullptr) { module-> IncrementObjectCount(); }

소멸자 : auto module = :: Microsoft :: WRL :: GetModuleBase(); if (module! = nullptr) { module-> DecrementObjectCount(); }