Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft Direct3D-körningen anropar visningsdrivrutinens DecodeBeginFrame och DecodeEndFrame funktioner för att ange en tidsperiod mellan dessa funktionsanrop som visningsdrivrutinen i användarläge kan avkoda video. Innan visningsdrivrutinen i användarläge kan utföra några videoavkodningsåtgärder måste Microsoft Direct3D-körningen anropa visningsdrivrutinens SetDecodeRenderTarget funktion för att ange återgivningsmålytan för dessa avkodningsåtgärder. Anropet till SetDecodeRenderTarget- kan dock endast ske utanför tidsperioden för start- och slutram.
I skyddat läge och i anropet till DecodeBeginFrame, ställer Direct3D-körmiljön in eller ändrar en DirectX VA-innehållsnyckel i en variabel som medlemmen pPVPSetKey i strukturen D3DDDIARG_DECODEBEGINFRAME pekar på. Avkodningsenheten använder den här nyckeln för skyddade överföringar av de komprimerade DirectX VA-buffertarna för den här och efterföljande bildrutorna.
Observera att Direct3D-programmiljön anger pPVPSetKey pekaren endast för att ändra eller ange ny nyckel. För att behålla den tidigare inställda nyckeln i bruk anger körningen pekaren till NULL för att undvika potentiellt tidskrävande omladdning av samma nyckel. Drivrutinen eliminerar inte de redundanta inställningarna. Ett avkodarprogram måste undvika redundanta inställningar.
När återgivningsmålytan för avkodningsåtgärder har angetts kan visningsdrivrutinen i användarläge ta emot anrop till sin DecodeExecute funktion för att utföra videodekodningsåtgärder mellan tidsperioden för startramen och slutramen.
I anrop till DecodeExecuteanvänds inte alla bufferttyper som anges i CompressedBufferType- medlemmar i DXVADDI_DECODEBUFFERDESC strukturerna i pCompressedBuffers matrisen för D3DDDIARG_DECODEEXECUTE-strukturen för varje dekodade GUID som hDecode medlem i D3DDDIARG_DECODEEXECUTE anger. Till exempel krävs buffertar för segmentkontroll (D3DDDIFMT_SLICECONTROLDATA), inverterad kvantisering (D3DDDIFMT_INVERSEQUANTIZATIONDATA) och bitströmsbuffertar (D3DDDIFMT_BITSTREAMDATA) endast för VLD-bearbetning (variable-length decode) och avblockeringskontrollbufferten (D3DDDIFMT_DEBLOCKINGDATA) används inte alls av MPEG-2.
I skyddat läge innehåller de buffertar som krypterades för en skyddad överföring med en innehållsnyckel en pekare till initiala räknarvärden i sina buffertbeskrivningar (d.s. i variabler som pCipherCounter medlemmar i DXVADDI_DECODEBUFFERDESC strukturer pekar på). Varje anrop till visningsdrivrutinens DecodeExecute funktion måste utföra en skyddad överföring av sådana buffertar till lokalt videominne innan DecodeExecute använder buffertdata i avkodningsåtgärden. Det finns dock inga planer på att kryptera DirectX VA-komprimerade buffertar av andra typer än residualskillnadstyper (D3DDDIFMT_RESIDUALDIFFERENCEDATA) och bitströmstyper (D3DDDIFMT_BITSTREAMDATA).