Поделиться через


Синхронизация обмена ключами с Поток данных

Процесс обмена ключами может начаться до обработки всех данных из предыдущего ключа. Примером этого может быть переход от заголовка трейлера к main заголовку программы, заданному в некоторых фильмах. В элементе TypeSpecificFlags структуры KSSTREAM_HEADER есть флаг для каждого пакета данных. Этот флаг KS_AM_UseNewCSSKey, который определен в ksmedia.h. Он указывает, что образец данных сразу после этого заголовка является первым примером данных, к которому применяется новый ключ заголовка.

Если расшифровщик может обработать новый обмен ключами, по-прежнему используя старый ключ, мини-диск для декодера DVD должен обработать обмен ключами при получении свойств. Если расшифровщик должен дождаться обработки всех данных фильма, для которых требуется предыдущий ключ, то расшифровщик содержит SRB для свойства Set . Расшифровщик использует структуру KS_DVDCOPY_SET_COPY_STATE с параметром KS_DVDCOPYSTATE_INITIALIZE или KS_DVDCOPYSTATE_INITIALIZE_TITLE , пока не получит флаг KS_AM_UseNewCSSKey для всех подключенных к нему потоков. После этого мини-диск для декодера DVD обрабатывает все пакеты, полученные до этого момента. Это предотвращает использование неправильного ключа для данных.