Skip to content

Commit

Permalink
Update headers from Video SDK 12.2
Browse files Browse the repository at this point in the history
  • Loading branch information
BtbN committed Mar 31, 2024
1 parent 75f032b commit c692783
Show file tree
Hide file tree
Showing 5 changed files with 214 additions and 84 deletions.
4 changes: 2 additions & 2 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ FFmpeg version of headers required to interface with Nvidias codec APIs.
Corresponds to Video Codec SDK version 12.0.16.

Minimum required driver versions:
Linux: 530.41.03 or newer
Windows: 531.61 or newer
Linux: 550.54.14 or newer
Windows: 551.76 or newer
2 changes: 1 addition & 1 deletion ffnvcodec.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ includedir=${prefix}/include

Name: ffnvcodec
Description: FFmpeg version of Nvidia Codec SDK headers
Version: 12.1.14.1
Version: 12.2.72.0
Cflags: -I${includedir}
4 changes: 2 additions & 2 deletions include/ffnvcodec/dynlink_cuviddec.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* This copyright notice applies to this header file only:
*
* Copyright (c) 2010-2023 NVIDIA Corporation
* Copyright (c) 2010-2024 NVIDIA Corporation
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
Expand Down Expand Up @@ -41,7 +41,7 @@
#endif

#define NVDECAPI_MAJOR_VERSION 12
#define NVDECAPI_MINOR_VERSION 1
#define NVDECAPI_MINOR_VERSION 2

#define NVDECAPI_VERSION (NVDECAPI_MAJOR_VERSION | (NVDECAPI_MINOR_VERSION << 24))

Expand Down
74 changes: 63 additions & 11 deletions include/ffnvcodec/dynlink_nvcuvid.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/*
* This copyright notice applies to this header file only:
*
* Copyright (c) 2010-2023 NVIDIA Corporation
* Copyright (c) 2010-2024 NVIDIA Corporation
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
Expand All @@ -28,7 +28,7 @@
/********************************************************************************************************************/
//! \file nvcuvid.h
//! NVDECODE API provides video decoding interface to NVIDIA GPU devices.
//! \date 2015-2022
//! \date 2015-2024
//! This file contains the interface constants, structure definitions and function prototypes.
/********************************************************************************************************************/

Expand Down Expand Up @@ -81,10 +81,10 @@ typedef enum {

/************************************************************************/
//! \ingroup STRUCTS
//! \struct HEVCTIMECODESET
//! Used to store Time code extracted from Time code SEI in HEVC codec
//! \struct TIMECODESET
//! Used to store Time code set extracted from H264 and HEVC codecs
/************************************************************************/
typedef struct _HEVCTIMECODESET
typedef struct _TIMECODESET
{
unsigned int time_offset_value;
unsigned short n_frames;
Expand All @@ -102,18 +102,70 @@ typedef struct _HEVCTIMECODESET
unsigned char hours_flag;
unsigned char time_offset_length;
unsigned char reserved;
} HEVCTIMECODESET;
} TIMECODESET;

/************************************************************************/
//! \ingroup STRUCTS
//! \struct HEVCSEITIMECODE
//! Used to extract Time code SEI in HEVC codec
//! \struct TIMECODE
//! Used to extract Time code in H264 and HEVC codecs
/************************************************************************/
typedef struct _HEVCSEITIMECODE
typedef struct _TIMECODE
{
HEVCTIMECODESET time_code_set[MAX_CLOCK_TS];
TIMECODESET time_code_set[MAX_CLOCK_TS];
unsigned char num_clock_ts;
} HEVCSEITIMECODE;
} TIMECODE;

/**********************************************************************************/
//! \ingroup STRUCTS
//! \struct SEIMASTERINGDISPLAYINFO
//! Used to extract mastering display color volume SEI in H264 and HEVC codecs
/**********************************************************************************/
typedef struct _SEIMASTERINGDISPLAYINFO
{
unsigned short display_primaries_x[3];
unsigned short display_primaries_y[3];
unsigned short white_point_x;
unsigned short white_point_y;
unsigned int max_display_mastering_luminance;
unsigned int min_display_mastering_luminance;
} SEIMASTERINGDISPLAYINFO;

/**********************************************************************************/
//! \ingroup STRUCTS
//! \struct SEICONTENTLIGHTLEVELINFO
//! Used to extract content light level info SEI in H264 and HEVC codecs
/**********************************************************************************/
typedef struct _SEICONTENTLIGHTLEVELINFO
{
unsigned short max_content_light_level;
unsigned short max_pic_average_light_level;
unsigned int reserved;
} SEICONTENTLIGHTLEVELINFO;

/**********************************************************************************/
//! \ingroup STRUCTS
//! \struct TIMECODEMPEG2
//! Used to extract Time code in MPEG2 codec
/**********************************************************************************/
typedef struct _TIMECODEMPEG2
{
unsigned char drop_frame_flag;
unsigned char time_code_hours;
unsigned char time_code_minutes;
unsigned char marker_bit;
unsigned char time_code_seconds;
unsigned char time_code_pictures;
} TIMECODEMPEG2;

/**********************************************************************************/
//! \ingroup STRUCTS
//! \struct SEIALTERNATIVETRANSFERCHARACTERISTICS
//! Used to extract alternative transfer characteristics SEI in H264 and HEVC codecs
/**********************************************************************************/
typedef struct _SEIALTERNATIVETRANSFERCHARACTERISTICS
{
unsigned char preferred_transfer_characteristics;
} SEIALTERNATIVETRANSFERCHARACTERISTICS;

/**********************************************************************************/
//! \ingroup STRUCTS
Expand Down
Loading

0 comments on commit c692783

Please sign in to comment.