Как реализованы Protected Media Path и подобные системы? - PullRequest
0 голосов
/ 21 апреля 2020

Windows обеспечивает функциональность DRM для приложений, которым это требуется.

Некоторые из них, однако, имеют большую защиту, чем другие.

В качестве примера возьмем Edge (как Legacy, так и Chromium) или IE, которые используют путь защищенного носителя. Они получают для отображения> 720p контента Netflix. Другие браузеры не используют PMP и ограничены 720p.

Разница в защите заметна, когда вы пытаетесь захватить экран: пока у вас нет проблем в Firefox / Chrome, в Edge / IE фиксированное черное изображение занимает место воспроизводимого мультимедиа, но вы по-прежнему видите кнопки управления мультимедиа (воспроизведение / пауза / и т. Д. 1034 *), которые обычно накладываются (с альфа-смешиванием) на мультимедийный контент. Пример (недостаточно повторений для публикации напрямую)

Вопрос здесь в основном концептуальный, и фактически может также относиться к системам с идентичным поведением, таким как iOS, который также заменяет Picutre, когда вы снимаете скриншот или снимаете экран на Netflix.

Как можно отобразить два разных изображения на двух разных выходах (API-интерфейсы захвата без DRM-контента и подключенный экран физического монитора с DRM-контентом)?

I ' Я сделаю предположение, и я начну с исключения наложений HW. Причина в том, что кнопки воспроизведения / паузы все еще видны на захваченном выходе. Так как они наложены (альфа-наложение) на носители на экране, и альфа-смешение на оверлеях HW невозможно в DirectX 9 и более поздних версиях, а также при использовании устаревшего DirectDraw, аппаратные наложения должны быть отброшены. И, кстати, ни d3d9.dll, ни ddraw.dll не загружаются mfpmp.exe или iexplore.exe (версия 11). Кроме того, я думаю, что аппаратные оверлеи теперь считаются устаревшей функцией, в то время как Media Foundation (частью которого является Protected Media Path) полностью жив и поддерживается.

Так что я предполагаю, что DWM, который отвечает за Композиция экрана, на самом деле делает две композиции. Либо путем разветвления процесса компоновки в тот момент, когда он сталкивается с областью DRM и передает один вывод на экран (с контентом, защищенным DRM), а другой - для различных методов и API захвата экрана, либо путем полного выполнения двух разных композиций в первом место.

Правильно ли мое предположение? И не могли бы вы предоставить доказательства в поддержку вашего ответа?

Меня интересует понимание того, как реализуются программное обеспечение для составления композиций и DRM, в первую очередь Windows. Но сколько еще может быть способов сделать это в разных ОС?

Заранее спасибо.

...