Применение уровней родительского управления

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Любому названию или его части на DVD-Video диске можно назначить общий уровень родительского управления (PML) от 1 до 8. Когда DVD-навигатор читает содержимое с PML, он, как говорят, находится в родительском блоке. Родительский блок может состоять из части главы, нескольких глав или нескольких названий. Приложение DVD, предназначенное для международного рынка, не должно жестко запрограммировать определенную систему рейтинга в логику родительского управления.

Сам DVD-навигатор не применяет pmls. он просто информирует приложение при обнаружении сведений о PML на диске. По умолчанию она игнорирует эти сведения на диске и воспроизводит содержимое самого высокого уровня. Для принудительного применения PML приложение должно реализовать определенную логику управления паролями, которая связывает пользователей с уровнями, указать DVD-навигатору отправлять уведомления о событиях PML (путем вызова метода IDvdControl2::SetOption при запуске с параметрами DVD_NotifyParentalLevelChange и TRUE), а также реагировать на эти события, чтобы разрешить или запретить доступ соответствующим образом.

Название DVD-диска может иметь один общий PML, но авторы диска могут дать определенные разделы этого заголовка выше или более строгие PML. Они называются временными командами PML; Эти команды всегда содержат две инструкции ветвления: одну для выполнения, если временная команда PML принимается приложением проигрывателя, а другая — для выполнения, если команда отклонена. Последовательность событий выглядит следующим образом. Dvd-навигатор считывает видеосодержимое (домен заголовка DVD), когда обнаруживает временную команду PML на диске. Он проверяет свой внутренний флаг, чтобы узнать, запросило ли приложение уведомление об этом событии. Если флаг не установлен, DVD-диск продолжает воспроизводиться после ветви "Изменение родительского уровня отклонено", указанной на диске. Если флаг установлен, DVD-диск отправляет в приложение событие EC_DVD_PARENTAL_LEVEL_CHANGE и ожидает приостановки, пока не получит ответ. Когда приложение получает событие, оно использует собственную логику, чтобы определить, следует ли принимать команду. Затем он вызывает IDvdControl2::AcceptParentalLevelChange с аргументом TRUE или FALSE. Если задано значение TRUE, DVD-навигатор возобновляет воспроизведение после ветви "Изменение родительского уровня принято" на диске. В противном случае он возобновляет игру и следует за ветвью "изменение родительского уровня отклонено".

Dvd-приложения