NVIDIA DRIVE OS Linux SDK API Reference

5.2.0 Release
For Test and Development only
nvmedia_drm.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2017-2019, NVIDIA CORPORATION. All rights reserved. All
3  * information contained herein is proprietary and confidential to NVIDIA
4  * Corporation. Any use, reproduction, or disclosure without the written
5  * permission of NVIDIA Corporation is prohibited.
6  */
7 
8 
9 #ifndef NVMEDIA_DRM_H
10 #define NVMEDIA_DRM_H
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #include "nvmedia_common_decode.h"
17 #include "nvmedia_core.h"
18 
39 #define NVMEDIA_MAX_NALS 32
40 
42 typedef enum {
64  NvMDRM_Clear = 0xf,
70 
74 typedef struct
75 {
79  uint32_t uDrmMode;
81  uint32_t InitVector[NVMEDIA_MAX_NALS][4];
83  uint32_t IvValid[NVMEDIA_MAX_NALS];
87  uint32_t uEncryptBlkCnt;
89  uint32_t uSkipBlkCnt;
91  uint32_t uNumNals;
93  uint32_t KeySlotNumber;
95  uint32_t BOED[NVMEDIA_MAX_NALS];
97  uint32_t BOCD[NVMEDIA_MAX_NALS];
101  uint32_t non_slice_data;
103 
109 typedef struct {
113  uint8_t *pClearHeaderPtr;
117 
119 typedef struct {
121  uint8_t IV[16];
124 } NvMediaAESIv;
125 
130 typedef struct _NvMediaAESParams
131 {
133  uint32_t uDrmMode;
135  uint8_t *pIV;
137  uint32_t uEncryptBlkCnt;
139  uint32_t uSkipBlkCnt;
141  uint32_t KeySlotNumber;
143  uint32_t *pBOED;
145  uint32_t *pBOCD;
147  uint32_t uMetadataCount;
153 
158 #define NVMEDIA_VIDEO_DECRYPT_PROFILING (1<<0)
159 
161 typedef struct {
165  uint32_t hwClockValue;
167 
193  NvMediaVideoCodec codec,
194  uint32_t maxBitstreamSize,
195  uint32_t flags,
196  NvMediaDecoderInstanceId instanceId
197 );
198 
202 void
204  const NvMediaVideoDecrypter *pDecrypter
205 );
206 
207 
228  const NvMediaVideoDecrypter *pDecrypter,
229  const void *pictureData,
230  const NvMediaBitstreamBuffer *pBitstream,
231  NvMediaDecoderInstanceId instanceId
232 );
233 
234 
251  NvMediaVideoDecrypter *pDecrypter,
252  void *pictureData
253 );
254 
257 #ifdef __cplusplus
258 }; /* extern "C" */
259 #endif
260 
261 #endif /* NVMEDIA_DRM_H */
NvMDRM_MarlinCtr
@ NvMDRM_MarlinCtr
drm format: Marlin CTR
Definition: nvmedia_drm.h:60
NvMDRM_None
@ NvMDRM_None
drm format: None: This should be the last element
Definition: nvmedia_drm.h:68
NvMediaEncryptParams::uNumNals
uint32_t uNumNals
total number of subsamples for given buffer
Definition: nvmedia_drm.h:91
NvMediaVideoDecrypter::eCodec
NvMediaVideoCodec eCodec
Codec type.
Definition: nvmedia_drm.h:163
NvMDRM_Marlin
@ NvMDRM_Marlin
drm format: Marlin
Definition: nvmedia_drm.h:52
NvMediaEncryptParams::uDrmMode
uint32_t uDrmMode
drm mode of encrypted content.
Definition: nvmedia_drm.h:79
NvMediaEncryptParams::AesPass1OutputBuffer
uint32_t * AesPass1OutputBuffer
encrypted metadata buffer of pass1
Definition: nvmedia_drm.h:99
NvMediaVideoGetClearHeader
NvMediaStatus NvMediaVideoGetClearHeader(NvMediaVideoDecrypter *pDecrypter, void *pictureData)
Gets clear header data after pass1.
NvMDRM_Clear
@ NvMDRM_Clear
drm format: Clear data
Definition: nvmedia_drm.h:64
NvMDRM_PiffCtr
@ NvMDRM_PiffCtr
drm format: Piff CTC
Definition: nvmedia_drm.h:56
_NvMediaAESParams::uNonAlignedOffset
uint32_t uNonAlignedOffset
non aligned offset for encrypted buffer
Definition: nvmedia_drm.h:149
NvMDRM_Ultraviolet
@ NvMDRM_Ultraviolet
drm format: Ultravoilet
Definition: nvmedia_drm.h:48
NvMediaAESMetaData::pClearHeaderPtr
uint8_t * pClearHeaderPtr
clear hdr pointer to buffer after pass1
Definition: nvmedia_drm.h:113
NvMediaAESMetaData
Holds re-encrypted data information that the video decoder returns to the parser.
Definition: nvmedia_drm.h:109
NvMDRM_PiffCbc
@ NvMDRM_PiffCbc
drm format: Piff CBC
Definition: nvmedia_drm.h:54
NvMediaAESParams
struct _NvMediaAESParams NvMediaAESParams
Holds encrypted metadata information that the client sends to the parser.
NvMediaVideoDecrypterCreate
NvMediaVideoDecrypter * NvMediaVideoDecrypterCreate(NvMediaVideoCodec codec, uint32_t maxBitstreamSize, uint32_t flags, NvMediaDecoderInstanceId instanceId)
Creates a video decrypter object.
NvMDRM_MarlinCbc
@ NvMDRM_MarlinCbc
drm format: Marlin CBC
Definition: nvmedia_drm.h:58
NvMediaDRMType
NvMediaDRMType
Defines the supported DRM formats.
Definition: nvmedia_drm.h:42
NvMediaVideoCodec
NvMediaVideoCodec
Video codec type.
Definition: nvmedia_common_encode_decode.h:38
NvMediaVideoDecryptHeader
NvMediaStatus NvMediaVideoDecryptHeader(const NvMediaVideoDecrypter *pDecrypter, const void *pictureData, const NvMediaBitstreamBuffer *pBitstream, NvMediaDecoderInstanceId instanceId)
Decrypts the HDR of the encrypted content.
_NvMediaAESParams
Holds encrypted metadata information that the client sends to the parser.
Definition: nvmedia_drm.h:130
NvMDRM_Netflix
@ NvMDRM_Netflix
drm format: Netflix
Definition: nvmedia_drm.h:44
_NvMediaAESParams::KeySlotNumber
uint32_t KeySlotNumber
keyslot number used where content key is written
Definition: nvmedia_drm.h:141
_NvMediaAESParams::uEncryptBlkCnt
uint32_t uEncryptBlkCnt
encrypt blk count when pattern mode encryption is used
Definition: nvmedia_drm.h:137
_NvMediaAESParams::pIV
uint8_t * pIV
pointer to intialization vector array
Definition: nvmedia_drm.h:135
NvMDRM_Widevine
@ NvMDRM_Widevine
drm format: Widevine
Definition: nvmedia_drm.h:46
NvMediaAESMetaData::pAesPass1OutputBuffer
uint32_t * pAesPass1OutputBuffer
encrypted metadata struture pointer after pass1
Definition: nvmedia_drm.h:115
NvMediaEncryptParams::non_slice_data
uint32_t non_slice_data
bytes of non slice data in input buffer
Definition: nvmedia_drm.h:101
NvMediaEncryptParams
Holds encrypted metadata information that the parser passes to the video decoder component.
Definition: nvmedia_drm.h:74
NvMediaVideoDecrypter::hwClockValue
uint32_t hwClockValue
pass hw decode clock value for otf case
Definition: nvmedia_drm.h:165
NvMediaAESIv::bIvValid
NvMediaBool bIvValid
intialization vector present or not
Definition: nvmedia_drm.h:123
NvMDRM_ClearAsEncrypted
@ NvMDRM_ClearAsEncrypted
drm format: To tell clear data processing in secure buffer
Definition: nvmedia_drm.h:66
_NvMediaAESParams::pBOCD
uint32_t * pBOCD
pointer to bytes of clear data for subsamples
Definition: nvmedia_drm.h:145
nvmedia_core.h
NVIDIA Media Interface: Core
_NvMediaAESParams::uMetadataCount
uint32_t uMetadataCount
total number of subsamples for given buffer
Definition: nvmedia_drm.h:147
NvMediaStatus
NvMediaStatus
Defines all possible error codes.
Definition: nvmedia_core.h:180
NvMediaEncryptParams::uEncryptBlkCnt
uint32_t uEncryptBlkCnt
encrypt blk count when pattern mode encryption is used
Definition: nvmedia_drm.h:87
NvMediaAESMetaData::uClearHeaderSize
uint32_t uClearHeaderSize
clear hdr side after pass1
Definition: nvmedia_drm.h:111
NvMediaBitstreamBuffer
Holds an application data buffer containing compressed video data.
Definition: nvmedia_common_encode_decode.h:73
NVMEDIA_MAX_NALS
#define NVMEDIA_MAX_NALS
max number of subsample support
Definition: nvmedia_drm.h:39
NvMediaVideoDecrypterDestroy
void NvMediaVideoDecrypterDestroy(const NvMediaVideoDecrypter *pDecrypter)
Destroys a video decoder decrypter object.
NvMDRM_WidevineCtr
@ NvMDRM_WidevineCtr
drm format: Widevine CTR
Definition: nvmedia_drm.h:62
NvMediaAESIv
Holds encryption intialization vector information.
Definition: nvmedia_drm.h:119
nvmedia_common_decode.h
NVIDIA Media Interface: Common Types for Video/Image Decode
_NvMediaAESParams::pBOED
uint32_t * pBOED
pointer to bytes of encrypted data for subsamples
Definition: nvmedia_drm.h:143
_NvMediaAESParams::uDrmMode
uint32_t uDrmMode
drm mode of encrypted content
Definition: nvmedia_drm.h:133
NvMediaBool
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
Definition: nvmedia_core.h:80
NvMediaDecoderInstanceId
NvMediaDecoderInstanceId
Specifies the decoder instance ID.
Definition: nvmedia_common_decode.h:60
NvMediaEncryptParams::KeySlotNumber
uint32_t KeySlotNumber
keyslot number used where content key is written
Definition: nvmedia_drm.h:93
_NvMediaAESParams::IvSet
NvMediaAESIv IvSet[NVMEDIA_MAX_NALS]
initialization vector array
Definition: nvmedia_drm.h:151
NvMDRM_Piff
@ NvMDRM_Piff
drm format: Piff
Definition: nvmedia_drm.h:50
NvMediaEncryptParams::enableEncryption
NvMediaBool enableEncryption
Flag that specifies whether the buffer is encrypted.
Definition: nvmedia_drm.h:77
NvMediaEncryptParams::uSkipBlkCnt
uint32_t uSkipBlkCnt
skip blk count when pattern mode encryption is used
Definition: nvmedia_drm.h:89
_NvMediaAESParams::uSkipBlkCnt
uint32_t uSkipBlkCnt
skip blk count when pattern mode encryption is used
Definition: nvmedia_drm.h:139
NvMediaEncryptParams::uBytesOfEncryptedData
uint32_t uBytesOfEncryptedData
total bytes of encrypted data in input buffer
Definition: nvmedia_drm.h:85
NvMediaVideoDecrypter
Holds the video decrypter object.
Definition: nvmedia_drm.h:161