Multiple Data Streams on the same Hardware

Many decoders have several streams using the same piece of decoder hardware. For these devices, it is not necessary to perform key negotiation separately on each stream. To indicate this to the DVD decoder model, use the KS_DVDCOPY_SET_COPY_STATE property. When a get operation is issued on this property, a decoder may respond with either of the following:

KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED

KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED

KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED indicates that the given stream does not require key negotiation because another stream on the same hardware has already performed it. For example, if the decoder receives the Get property on the audio stream first, it responds with KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED on the audio stream and KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED on all other streams. After replying with AUTHENTICATION_NOT_REQUIRED, that stream does not receive any more key exchange properties until the next title key is negotiated. At that point, the decoder may again choose to reply with AUTHENTICATION_NOT_REQUIRED.

To allow for other applications besides DVD playback ones, in the case where a decoder needs to perform copyright protection on only one stream, the decoder performs negotiation on the first stream to receive a Get property call for KS_DVDCOPY_SET_COPY_STATE after stream opening. Do not hardcode the copyright protection properties to work with only one stream.