Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.4 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    nvmedia_drm.h
    Go to the documentation of this file.
    1 /*
    2  * SPDX-FileCopyrightText: Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
    3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
    4  *
    5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
    6  * property and proprietary rights in and to this material, related
    7  * documentation and any modifications thereto. Any use, reproduction,
    8  * disclosure or distribution of this material and related documentation
    9  * without an express license agreement from NVIDIA CORPORATION or
    10  * its affiliates is strictly prohibited.
    11  */
    12 
    13 
    14 #ifndef NVMEDIA_DRM_H
    15 #define NVMEDIA_DRM_H
    16 
    17 #ifdef __cplusplus
    18 extern "C" {
    19 #endif
    20 
    21 #include <stdint.h>
    22 #include <stdbool.h>
    23 
    24 #include "nvmedia_common_decode.h"
    25 #include "nvmedia_core.h"
    26 
    47 #define NVMEDIA_MAX_NALS 256
    48 
    50 typedef enum {
    72  NvMDRM_Clear = 0xf,
    78 
    82 typedef struct
    83 {
    85  uint32_t enableEncryption;
    87  uint32_t uDrmMode;
    89  uint32_t InitVector[NVMEDIA_MAX_NALS][4];
    91  uint32_t IvValid[NVMEDIA_MAX_NALS];
    95  uint32_t uEncryptBlkCnt;
    97  uint32_t uSkipBlkCnt;
    99  uint32_t uNumNals;
    101  uint32_t KeySlotNumber;
    103  uint32_t BOED[NVMEDIA_MAX_NALS];
    105  uint32_t BOCD[NVMEDIA_MAX_NALS];
    109  uint32_t non_slice_data;
    111 
    117 typedef struct {
    121  uint8_t *pClearHeaderPtr;
    125 
    127 typedef struct {
    129  uint8_t IV[16];
    131  uint32_t bIvValid;
    132 } NvMediaAESIv;
    133 
    138 typedef struct _NvMediaAESParams
    139 {
    141  uint32_t uDrmMode;
    143  uint8_t *pIV;
    145  uint32_t uEncryptBlkCnt;
    147  uint32_t uSkipBlkCnt;
    149  uint32_t KeySlotNumber;
    151  uint32_t *pBOED;
    153  uint32_t *pBOCD;
    155  uint32_t uMetadataCount;
    161 
    166 #define NVMEDIA_VIDEO_DECRYPT_PROFILING (1<<0)
    167 
    169 typedef struct {
    173  uint32_t hwClockValue;
    175 
    218  NvMediaVideoCodec codec,
    219  uint32_t maxBitstreamSize,
    220  uint32_t flags,
    221  NvMediaDecoderInstanceId instanceId
    222 );
    223 
    244 void
    246  const NvMediaVideoDecrypter *pDecrypter
    247 );
    248 
    249 
    288  const NvMediaVideoDecrypter *pDecrypter,
    289  const void *pictureData,
    290  const NvMediaBitstreamBuffer *pBitstream,
    291  NvMediaDecoderInstanceId instanceId
    292 );
    293 
    294 
    328  NvMediaVideoDecrypter *pDecrypter,
    329  void *pictureData
    330 );
    331 
    334 #ifdef __cplusplus
    335 } /* extern "C" */
    336 #endif
    337 
    338 #endif /* NVMEDIA_DRM_H */
    NVMEDIA_MAX_NALS
    #define NVMEDIA_MAX_NALS
    max number of subsample support
    Definition: nvmedia_drm.h:47
    NvMediaEncryptParams::uNumNals
    uint32_t uNumNals
    total number of subsamples for given buffer
    Definition: nvmedia_drm.h:99
    NvMediaVideoDecrypter::eCodec
    NvMediaVideoCodec eCodec
    Codec type.
    Definition: nvmedia_drm.h:171
    NvMediaEncryptParams::uDrmMode
    uint32_t uDrmMode
    drm mode of encrypted content.
    Definition: nvmedia_drm.h:87
    NvMediaEncryptParams::AesPass1OutputBuffer
    uint32_t * AesPass1OutputBuffer
    encrypted metadata buffer of pass1
    Definition: nvmedia_drm.h:107
    NvMediaAESIv::bIvValid
    uint32_t bIvValid
    intialization vector present or not
    Definition: nvmedia_drm.h:131
    NvMDRM_PiffCbc
    @ NvMDRM_PiffCbc
    drm format: Piff CBC
    Definition: nvmedia_drm.h:62
    _NvMediaAESParams::uNonAlignedOffset
    uint32_t uNonAlignedOffset
    non aligned offset for encrypted buffer
    Definition: nvmedia_drm.h:157
    NvMDRM_MarlinCtr
    @ NvMDRM_MarlinCtr
    drm format: Marlin CTR
    Definition: nvmedia_drm.h:68
    NvMediaAESMetaData::pClearHeaderPtr
    uint8_t * pClearHeaderPtr
    clear hdr pointer to buffer after pass1
    Definition: nvmedia_drm.h:121
    NvMDRM_Netflix
    @ NvMDRM_Netflix
    drm format: Netflix
    Definition: nvmedia_drm.h:52
    NvMDRM_Widevine
    @ NvMDRM_Widevine
    drm format: Widevine
    Definition: nvmedia_drm.h:54
    NvMDRM_Clear
    @ NvMDRM_Clear
    drm format: Clear data
    Definition: nvmedia_drm.h:72
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    NvMediaAESMetaData
    Holds re-encrypted data information that the video decoder returns to the parser.
    Definition: nvmedia_drm.h:117
    NvMediaVideoDecrypterCreate
    NvMediaVideoDecrypter * NvMediaVideoDecrypterCreate(NvMediaVideoCodec codec, uint32_t maxBitstreamSize, uint32_t flags, NvMediaDecoderInstanceId instanceId)
    Creates a video decrypter object.
    NvMediaVideoDecrypterDestroy
    void NvMediaVideoDecrypterDestroy(const NvMediaVideoDecrypter *pDecrypter)
    Destroys a video decoder decrypter object.
    _NvMediaAESParams
    Holds encrypted metadata information that the client sends to the parser.
    Definition: nvmedia_drm.h:138
    _NvMediaAESParams::KeySlotNumber
    uint32_t KeySlotNumber
    keyslot number used where content key is written
    Definition: nvmedia_drm.h:149
    NvMDRM_WidevineCtr
    @ NvMDRM_WidevineCtr
    drm format: Widevine CTR
    Definition: nvmedia_drm.h:70
    _NvMediaAESParams::uEncryptBlkCnt
    uint32_t uEncryptBlkCnt
    encrypt blk count when pattern mode encryption is used
    Definition: nvmedia_drm.h:145
    _NvMediaAESParams::pIV
    uint8_t * pIV
    pointer to intialization vector array
    Definition: nvmedia_drm.h:143
    NvMediaDRMType
    NvMediaDRMType
    Defines the supported DRM formats.
    Definition: nvmedia_drm.h:50
    NvMediaVideoDecryptHeader
    NvMediaStatus NvMediaVideoDecryptHeader(const NvMediaVideoDecrypter *pDecrypter, const void *pictureData, const NvMediaBitstreamBuffer *pBitstream, NvMediaDecoderInstanceId instanceId)
    Decrypts the HDR of the encrypted content.
    NvMDRM_Marlin
    @ NvMDRM_Marlin
    drm format: Marlin
    Definition: nvmedia_drm.h:60
    NvMediaAESMetaData::pAesPass1OutputBuffer
    uint32_t * pAesPass1OutputBuffer
    encrypted metadata struture pointer after pass1
    Definition: nvmedia_drm.h:123
    NvMediaEncryptParams::non_slice_data
    uint32_t non_slice_data
    bytes of non slice data in input buffer
    Definition: nvmedia_drm.h:109
    NvMediaEncryptParams
    Holds encrypted metadata information that the parser passes to the video decoder component.
    Definition: nvmedia_drm.h:82
    NvMediaVideoDecrypter::hwClockValue
    uint32_t hwClockValue
    pass hw decode clock value for otf case
    Definition: nvmedia_drm.h:173
    NvMDRM_Piff
    @ NvMDRM_Piff
    drm format: Piff
    Definition: nvmedia_drm.h:58
    _NvMediaAESParams::pBOCD
    uint32_t * pBOCD
    pointer to bytes of clear data for subsamples
    Definition: nvmedia_drm.h:153
    nvmedia_core.h
    NVIDIA Media Interface: Core
    NvMDRM_None
    @ NvMDRM_None
    drm format: None: This should be the last element
    Definition: nvmedia_drm.h:76
    _NvMediaAESParams::uMetadataCount
    uint32_t uMetadataCount
    total number of subsamples for given buffer
    Definition: nvmedia_drm.h:155
    NvMDRM_ClearAsEncrypted
    @ NvMDRM_ClearAsEncrypted
    drm format: To tell clear data processing in secure buffer
    Definition: nvmedia_drm.h:74
    NvMediaDecoderInstanceId
    NvMediaDecoderInstanceId
    Specifies the decoder instance ID.
    Definition: nvmedia_common_decode.h:56
    NvMediaEncryptParams::uEncryptBlkCnt
    uint32_t uEncryptBlkCnt
    encrypt blk count when pattern mode encryption is used
    Definition: nvmedia_drm.h:95
    NvMediaAESMetaData::uClearHeaderSize
    uint32_t uClearHeaderSize
    clear hdr side after pass1
    Definition: nvmedia_drm.h:119
    NvMediaBitstreamBuffer
    Holds an application data buffer containing compressed video data.
    Definition: nvmedia_common_encode_decode.h:87
    NvMediaVideoCodec
    NvMediaVideoCodec
    Video codec type.
    Definition: nvmedia_common_encode_decode.h:52
    NvMDRM_MarlinCbc
    @ NvMDRM_MarlinCbc
    drm format: Marlin CBC
    Definition: nvmedia_drm.h:66
    NvMDRM_Ultraviolet
    @ NvMDRM_Ultraviolet
    drm format: Ultravoilet
    Definition: nvmedia_drm.h:56
    NvMediaAESParams
    struct _NvMediaAESParams NvMediaAESParams
    Holds encrypted metadata information that the client sends to the parser.
    NvMediaAESIv
    Holds encryption intialization vector information.
    Definition: nvmedia_drm.h:127
    nvmedia_common_decode.h
    NVIDIA Media Interface: Common Types for Image Decode
    _NvMediaAESParams::pBOED
    uint32_t * pBOED
    pointer to bytes of encrypted data for subsamples
    Definition: nvmedia_drm.h:151
    _NvMediaAESParams::uDrmMode
    uint32_t uDrmMode
    drm mode of encrypted content
    Definition: nvmedia_drm.h:141
    NvMediaEncryptParams::KeySlotNumber
    uint32_t KeySlotNumber
    keyslot number used where content key is written
    Definition: nvmedia_drm.h:101
    NvMDRM_PiffCtr
    @ NvMDRM_PiffCtr
    drm format: Piff CTC
    Definition: nvmedia_drm.h:64
    _NvMediaAESParams::IvSet
    NvMediaAESIv IvSet[NVMEDIA_MAX_NALS]
    initialization vector array
    Definition: nvmedia_drm.h:159
    NvMediaEncryptParams::uSkipBlkCnt
    uint32_t uSkipBlkCnt
    skip blk count when pattern mode encryption is used
    Definition: nvmedia_drm.h:97
    _NvMediaAESParams::uSkipBlkCnt
    uint32_t uSkipBlkCnt
    skip blk count when pattern mode encryption is used
    Definition: nvmedia_drm.h:147
    NvMediaEncryptParams::uBytesOfEncryptedData
    uint32_t uBytesOfEncryptedData
    total bytes of encrypted data in input buffer
    Definition: nvmedia_drm.h:93
    NvMediaVideoGetClearHeader
    NvMediaStatus NvMediaVideoGetClearHeader(NvMediaVideoDecrypter *pDecrypter, void *pictureData)
    Gets clear header data after pass1.
    NvMediaEncryptParams::enableEncryption
    uint32_t enableEncryption
    Flag that specifies whether the buffer is encrypted.
    Definition: nvmedia_drm.h:85
    NvMediaVideoDecrypter
    Holds the video decrypter object.
    Definition: nvmedia_drm.h:169
    人人超碰97caoporen国产