Я скомпилировал и зарегистрировал DLL, которая включена в образцы DirectShow (Microsoft SDK \ Windows \ v7.1 \ Samples \ multimedia \ directshow \ filters \ async) Я модифицировал его для дешифрования буфера по мере его получения (потому что полученный мной файл зашифрован. Я могу запустить пример в GraphStudioNext, но всякий раз, когда я пытаюсь построить граф на C# с DirectShowLib, он продолжает давать мне ошибки.DirectShow выдает ошибку в моем исходном фильтре (UNSUPPORTED_STREAM), который я использую для дешифрования потока буфера
IBaseFilter xAsync = CreateFilter("C553F2C0-1529-11D0-B4D1-00805F6CBBEA");
hr = graphBuilder.AddFilter(xAsync, "xAsync");
hr = this.graphBuilder.RenderFile(filename, null);
она возвращает -2147220891 (VFW_E_UNSUPPORTED_STREAM) (не удается воспроизвести файл:. формат не поддерживается)? есть ли способ обойти это
EDIT: Эта проблема не возникает, если я удалю свой код дешифрования.
Возможно вы используете 32-битный граф студии и 64-битный C# приложение. Или наоборот. – Soonts
Для C#, если вы настроили конфигурацию «Любой процессор», битность зависит от «Предпочитайте 32 бит» в настройках проекта. – Soonts
@Soonts - Спасибо за ответ, два prepossess - graphstudionext.exe * 32 и PlayWnd.vshost.exe * 32 в моем диспетчере задач, поэтому я считаю, что они уже 32-битные :( –