11/*
22 * This copyright notice applies to this header file only:
33 *
4- * Copyright (c) 2010-2023 NVIDIA Corporation
4+ * Copyright (c) 2010-2024 NVIDIA Corporation
55 *
66 * Permission is hereby granted, free of charge, to any person
77 * obtaining a copy of this software and associated documentation
2828/********************************************************************************************************************/
2929//! \file nvcuvid.h
3030//! NVDECODE API provides video decoding interface to NVIDIA GPU devices.
31- //! \date 2015-2022
31+ //! \date 2015-2024
3232//! This file contains the interface constants, structure definitions and function prototypes.
3333/********************************************************************************************************************/
3434
@@ -81,10 +81,10 @@ typedef enum {
8181
8282/************************************************************************/
8383//! \ingroup STRUCTS
84- //! \struct HEVCTIMECODESET
85- //! Used to store Time code extracted from Time code SEI in HEVC codec
84+ //! \struct TIMECODESET
85+ //! Used to store Time code set extracted from H264 and HEVC codecs
8686/************************************************************************/
87- typedef struct _HEVCTIMECODESET
87+ typedef struct _TIMECODESET
8888{
8989 unsigned int time_offset_value ;
9090 unsigned short n_frames ;
@@ -102,18 +102,70 @@ typedef struct _HEVCTIMECODESET
102102 unsigned char hours_flag ;
103103 unsigned char time_offset_length ;
104104 unsigned char reserved ;
105- } HEVCTIMECODESET ;
105+ } TIMECODESET ;
106106
107107/************************************************************************/
108108//! \ingroup STRUCTS
109- //! \struct HEVCSEITIMECODE
110- //! Used to extract Time code SEI in HEVC codec
109+ //! \struct TIMECODE
110+ //! Used to extract Time code in H264 and HEVC codecs
111111/************************************************************************/
112- typedef struct _HEVCSEITIMECODE
112+ typedef struct _TIMECODE
113113{
114- HEVCTIMECODESET time_code_set [MAX_CLOCK_TS ];
114+ TIMECODESET time_code_set [MAX_CLOCK_TS ];
115115 unsigned char num_clock_ts ;
116- } HEVCSEITIMECODE ;
116+ } TIMECODE ;
117+
118+ /**********************************************************************************/
119+ //! \ingroup STRUCTS
120+ //! \struct SEIMASTERINGDISPLAYINFO
121+ //! Used to extract mastering display color volume SEI in H264 and HEVC codecs
122+ /**********************************************************************************/
123+ typedef struct _SEIMASTERINGDISPLAYINFO
124+ {
125+ unsigned short display_primaries_x [3 ];
126+ unsigned short display_primaries_y [3 ];
127+ unsigned short white_point_x ;
128+ unsigned short white_point_y ;
129+ unsigned int max_display_mastering_luminance ;
130+ unsigned int min_display_mastering_luminance ;
131+ } SEIMASTERINGDISPLAYINFO ;
132+
133+ /**********************************************************************************/
134+ //! \ingroup STRUCTS
135+ //! \struct SEICONTENTLIGHTLEVELINFO
136+ //! Used to extract content light level info SEI in H264 and HEVC codecs
137+ /**********************************************************************************/
138+ typedef struct _SEICONTENTLIGHTLEVELINFO
139+ {
140+ unsigned short max_content_light_level ;
141+ unsigned short max_pic_average_light_level ;
142+ unsigned int reserved ;
143+ } SEICONTENTLIGHTLEVELINFO ;
144+
145+ /**********************************************************************************/
146+ //! \ingroup STRUCTS
147+ //! \struct TIMECODEMPEG2
148+ //! Used to extract Time code in MPEG2 codec
149+ /**********************************************************************************/
150+ typedef struct _TIMECODEMPEG2
151+ {
152+ unsigned char drop_frame_flag ;
153+ unsigned char time_code_hours ;
154+ unsigned char time_code_minutes ;
155+ unsigned char marker_bit ;
156+ unsigned char time_code_seconds ;
157+ unsigned char time_code_pictures ;
158+ } TIMECODEMPEG2 ;
159+
160+ /**********************************************************************************/
161+ //! \ingroup STRUCTS
162+ //! \struct SEIALTERNATIVETRANSFERCHARACTERISTICS
163+ //! Used to extract alternative transfer characteristics SEI in H264 and HEVC codecs
164+ /**********************************************************************************/
165+ typedef struct _SEIALTERNATIVETRANSFERCHARACTERISTICS
166+ {
167+ unsigned char preferred_transfer_characteristics ;
168+ } SEIALTERNATIVETRANSFERCHARACTERISTICS ;
117169
118170/**********************************************************************************/
119171//! \ingroup STRUCTS
0 commit comments