Как отлаживать фильтр источника push-уведомлений DirectShow?

Я попробовал одну из образцов виртуальной камеры на основе DirectShow, доступную по адресу https://github.com/roman380/tmhare.mvps.org-vcam
. Я могу скомпилировать и собрать ее, и она отлично работает в браузерах (Chrome и Edge).

Но в случае настольного приложения, такого как Zoom и Team, виртуальная камера распознается, но не показывает никаких кадров. При выборе этой виртуальной камеры виден только черный экран, а не ожидаемый результат.

Я попытался выполнить отладку после прочтения « Отладка фильтров DirectShow» и «Как отлаживать фильтр C++ DirectShow», который я добавил. DbgLog()в конструкторе output pinкласс как

      DbgLog((LOG_TRACE, 3, TEXT("test string")));

И укажите путь к файлу в LogToFileполе Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectShow\Debug\Filters.dll

Но я не вижу никакой строки журнала в vcam-log.txt. Что мне не хватает или как получить строку журнала в этом файле?

1 ответ

Отладка фильтра на основе PushSource/VCam в Zoom должна происходить по той же схеме, что и отладка проекта DLL, работающего в контексте внешнего приложения. А именно процедура такова:

  1. Остановить целевое приложение (Zoom)
  2. Создайте свой проект, зарегистрируйте DLL по мере необходимости с COM (regsvr32)
  3. Запустить целевое приложение
  4. Присоедините Visual Studio к работающему приложению (Ctrl+Alt+P, отладчик собственного кода, процесс Zoom)
  5. Поместите точки останова в свой проект, включите остановку на исключениях
  6. Запустите целевое приложение и интерактивно начните действия, связанные с захватом видео.

Шаги 3-4 можно заменить установкой настроек проекта для запуска Zoom в качестве цели отладки (Настройки проекта, Отладка, Команда).

Кроме того, вы можете поставить точку останова в этой строке и посмотреть, куда именно направляются выходные данные отладки. Вы можете увидеть это во встроенном окне вывода отладки (в случае OutputDebugStringuse) или вы сможете проверить, какой именно файл используется для записи журнала.

Другие вопросы по тегам