Использование PJSIP с поддержкой видео для Windows

Я хочу использовать PJSIP с поддержкой видео для программы Windows (Win32 / MFC / C ++). Посмотрев на сайт проекта PJSIP (http://trac.pjsip.org/repos/wiki/Getting-Started/Windows) Вижу среди прочего (дополнительные требования):

  • DirectShow SDK, включенный в Windows SDK.
  • SDL версия 2.0 или версия 1.3

В этом случае мне нужна следующая конфигурация в моем config_site.h:

#define PJMEDIA_HAS_VIDEO               1
#define PJMEDIA_HAS_FFMPEG              1
#define PJMEDIA_VIDEO_DEV_HAS_SDL       1
#define PJMEDIA_VIDEO_DEV_HAS_DSHOW     1

Если я добавлю эти два компонента в свой проект PJSIP, все будет работать нормально, я получу уведомление о входящем звонке и смогу показать / снять видео с камеры на двери.

Мой вопрос:
Действительно ли мне нужны оба этих компонента (SDL и DirectX / DirectShow) для программы Windows? Это означает, что мне обязательно нужен SDL (я полагаю, нет), и если да, мне также нужен DirectX? Почему я не могу использовать OpenGL для Windows? Может быть, у кого-то есть опыт с этой темой — я был бы признателен за вашу помощь!

0

Решение

Вам определенно нужен DirectShow. Не уверен в необходимости SDL …

DirectShow предоставляет потоковый интерфейс для источников видеозахвата в Windows. Хотя DirectShow в первую очередь представляет собой набор компонентов пользовательского режима, поставляемый фильтр захвата видео (обычно KsProxy.ax) связывается через определенный набор интерфейсов и свойств с драйверами захвата на уровне ядра. Некоторые производители камер предпочитают использовать свой собственный фильтр захвата DirectShow в режиме пользователя с частными (обычно ядром) интерфейсами к своему оборудованию, что делает DirectShow общей точкой доступа для всех устройств захвата видео Windows.

SDL предоставляет кроссплатформенную библиотеку, которая обеспечивает быстрый доступ к дисплею. Это используется кодеками в PJSIP для вывода декодированного видео на дисплей.

Похоже, PJSIP возможно поддерживает использование DirectShow в качестве фильтра рендеринга. Увидеть:
http://svn.pjsip.org/repos/pjproject/trunk/pjmedia/src/pjmedia-videodev/dshow_dev.c

Из источника неясно, будет ли работать код для включения средства визуализации DirectShow в строке 52, если он включен:

/* Temporarily disable DirectShow renderer (VMR) */
#define HAS_VMR         0

Поскольку это закомментировано, я бы предположил, что код не был полностью завершен, поэтому все примеры также требуют SDL.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]