Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El tiempo de ejecución de Microsoft Direct3D llama a las funciones DecodeBeginFrame y DecodeEndFrame del controlador de pantalla en modo de usuario para indicar un período de tiempo entre estas llamadas de función que el controlador de pantalla en modo de usuario puede descodificar vídeo. Para que el controlador de pantalla en modo de usuario pueda realizar cualquier operación de descodificación de vídeo, el tiempo de ejecución de Microsoft Direct3D debe llamar a la función SetDecodeRenderTarget del controlador de pantalla en modo de usuario para establecer la superficie de destino de representación para esas operaciones de descodificación. Sin embargo, la llamada a SetDecodeRenderTarget solo puede producirse fuera del período de tiempo de fotograma inicial y final.
En modo protegido y en la llamada a DecodeBeginFrame, el tiempo de ejecución de Direct3D establece o cambia una clave de contenido de Va de DirectX en una variable a la que apunta el miembro pPVPSetKey de la estructura D3DDDIARG_DECODEBEGINFRAME . El dispositivo de descodificación usa esta clave para las transferencias protegidas de los búferes de DirectX VA comprimidos para estos y fotogramas posteriores.
Nota El tiempo de ejecución de Direct3D establece el puntero pPVPSetKey solo para cambiar o establecer la clave. Para mantener la clave establecida anteriormente en uso, el tiempo de ejecución establece el puntero en NULL para evitar la recarga potencialmente lenta de la misma clave. El controlador no elimina la configuración redundante. Una aplicación de descodificador debe evitar la configuración redundante.
Una vez establecida la superficie de destino de representación para las operaciones de descodificación, el controlador de pantalla en modo de usuario puede recibir llamadas a su función DecodeExecute para realizar operaciones de descodificación de vídeo entre el período de tiempo de inicio y de fotograma final.
En llamadas a DecodeExecute, no todos los tipos de búfer especificados en los miembros CompressedBufferType de las estructuras DXVADDI_DECODEBUFFERDESC de la matriz pCompressedBuffers de la estructura D3DDDIARG_DECODEEXECUTE se usan para cada GUID de descodificación que especifica el miembro hDecode de D3DDDIARG_DECODEEXECUTE. Por ejemplo, el control de segmentos (D3DDDIFMT_SLICECONTROLDATA), la cuantificación inversa (D3DDDIFMT_INVERSEQUANTIZATIONDATA) y los búferes de secuencia de bits (D3DDDIFMT_BITSTREAMDATA) solo son necesarios para el procesamiento de descodificación de longitud variable (VLD), y mpeg-2 no usa el búfer de control de desbloqueo (D3DDDIFMT_DEBLOCKINGDATA).
En modo protegido, los búferes que se cifraron para una transferencia protegida con una clave de contenido contienen un puntero a los valores de contador iniciales en sus descriptores de búfer (es decir, en variables a las que apuntan los miembros pCipherCounter de la DXVADDI_DECODEBUFFERDESC estructuras). Cada llamada a la función DecodeExecute del controlador de pantalla en modo de usuario debe realizar una transferencia protegida de dichos búferes a la memoria de vídeo local antes de que DecodeExecute use los datos de los búferes en la operación de descodificación. Sin embargo, no existe ningún plan para cifrar los búferes comprimidos de DirectX VA de tipos distintos de los tipos de diferencia residual (D3DDDIFMT_RESIDUALDIFFERENCEDATA) y de flujo de bits (D3DDDIFMT_BITSTREAMDATA).