2012-06-28 8 views
0

PCM 사운드를 DirectXMediaResampler가있는 IEEE : Float Sound로 리샘플링 할 때이 Hresult가 발생합니다. 동일한 샘플링 속도로 샘플 당 비트를 변경하는 것은 문제가되지 않습니다. 또한 IEEE : Float에서 PCM으로 재구성합니다. 이 HResult는 DMO 개체와 관련하여 문서화되어 있지 않습니다. 그리고 모든 리샘플링마다 발생하지는 않지만 주기적으로 발생합니다.HResult 0x80040204 from IMediaObject :: ProcessInput

누군가 의미를 알거나 추측 할 수 있습니까?

답변

0

DMO_E_NOTACCEPTING; the documentation 메시지 :

DMO_E_NOTACCEPTING : 데이터를 받아 들일 수 없습니다.

당신은 파생 DMO 코드없이 나는이 도움이 생각하지 않지만, dmoimpl.h이를 생성하는 코드를 볼 수는 (은 S_OK를 반환하지 않은 DMO의 InternalAcceptingInput 방법을 의미한다).

이 모든 것이 ResamplerDMO가 입력 데이터를 좋아하지 않는다고 생각합니다. 확실히 올바르게 설정 되었습니까?

+0

아주 작은 패키지 (~ 18ms)를 재 샘플링하기 때문에 몇 초마다 발생합니다 (그러나 인과 출력 샘플 속도의 차이에 따라 달라 지지만 지금은 441000에서 32000으로 재 샘플링됩니다. 4 초마다 발생) 이것은 나에게 이상합니다. 나는 왜 DMO가 단지 몇 초마다 나의 입력을 좋아하지 않는지 전혀 모른다. 또한 모든 샘플에 동일한 데이터가 포함되어있는 경우에도 발생합니다. –

+0

편집 : ... resample from 44100 to 32000 ... –

+1

ProcessOutput을 마지막으로 호출 할 때 출력 버퍼에 "불완전한"플래그가 설정되어 ProcessInput을 계속 진행하기 전에 다시 ProcessOutput을 호출해야합니다. – chris