Использование DirectShow для одновременного воспроизведения нескольких видео в Windows Embedded Compact 7

Здравствуйте, я последние несколько дней борюсь с простым приложением, которое могло бы создавать несколько превью для одновременного воспроизведения видео из разных видеопотоков (но тех же форматов в примере mpeg4). На моей платформе нет среды выполнения Xaml, поэтому я использую простые функции WinApi32 с DirectShow.

Но что бы я ни делал, я не могу добиться одновременного воспроизведения более одного видеопотока. Я сейчас сомневаюсь, возможно ли это даже с DirectShow на Windows Embedded Compact. Но, возможно, я ошибаюсь, так как не вдавался в подробности создания графиков фильтров.

Мой подход заключался в том, чтобы просто создать несколько интерфейсов IBuilderGraph, IMediaControl и IMediaEventEx. Затем я использую метод RenderFile для каждого построителя графиков для создания графа фильтров, затем создаю IVideoWindow для каждого окна уведомлений о наборах и использую IMediaControl :: Run для начать воспроизведение файла.

Это работает на настольной платформе Windows 7, но просто не работает на CE. Только один превью действительно воспроизводит видеопоток, а другие черные и ничего не показывают.

Итак, мой вопрос: «Возможно ли многократное воспроизведение видео на Windows Embedded Compact 7?», и если это так, пожалуйста, объясните, какой инструмент я могу использовать.


person Lukasz Foniok    schedule 07.10.2012    source источник
comment
Возможно, ваш видеокодек использует аппаратный чип для декодирования потока, в этом случае вы не сможете декодировать более одного потока за раз, если чип его не поддерживает.   -  person yms    schedule 19.10.2012
comment
Непонятно, что именно пошло не так. Скорее всего, проблема где-то не слишком глубоко, и ее можно обойти.   -  person Roman R.    schedule 20.05.2014


Ответы (1)


Я удивлен, что вы вообще можете запустить потоковую передачу. Я читал это:

Интерфейс IMediaControl также не поддерживается в Windows Embedded Compact. Попытка получить доступ к любому члену приведет к ошибке E_NOTIMPL.

В: http://msdn.microsoft.com/en-us/library/ee494426.aspx

person user3612357    schedule 20.05.2014
comment
Похоже, вы неправильно прочитали свой источник. Не поддерживаются только члены get_FilterCollection и get_RegFilterCollection. - person Nick Udell; 20.05.2014