FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cuviddec.h
Go to the documentation of this file.
1 /*
2  * This copyright notice applies to this header file only:
3  *
4  * Copyright (c) 2010-2016 NVIDIA Corporation
5  *
6  * Permission is hereby granted, free of charge, to any person
7  * obtaining a copy of this software and associated documentation
8  * files (the "Software"), to deal in the Software without
9  * restriction, including without limitation the rights to use,
10  * copy, modify, merge, publish, distribute, sublicense, and/or sell
11  * copies of the software, and to permit persons to whom the
12  * software is furnished to do so, subject to the following
13  * conditions:
14  *
15  * The above copyright notice and this permission notice shall be
16  * included in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25  * OTHER DEALINGS IN THE SOFTWARE.
26  */
27 
28 /**
29  * \file cuviddec.h
30  * NvCuvid API provides Video Decoding interface to NVIDIA GPU devices.
31  * \date 2015-2016
32  * This file contains constants, structure definitions and function prototypes used for decoding.
33  */
34 
35 #if !defined(__CUDA_VIDEO_H__)
36 #define __CUDA_VIDEO_H__
37 
38 #ifndef __cuda_cuda_h__
39 #include <cuda.h>
40 #endif // __cuda_cuda_h__
41 
42 #if defined(__x86_64) || defined(AMD64) || defined(_M_AMD64)
43 #if (CUDA_VERSION >= 3020) && (!defined(CUDA_FORCE_API_VERSION) || (CUDA_FORCE_API_VERSION >= 3020))
44 #define __CUVID_DEVPTR64
45 #endif
46 #endif
47 
48 #if defined(__cplusplus)
49 extern "C" {
50 #endif /* __cplusplus */
51 
52 typedef void *CUvideodecoder;
53 typedef struct _CUcontextlock_st *CUvideoctxlock;
54 
55 /**
56  * \addtogroup VIDEO_DECODER Video Decoder
57  * @{
58  */
59 
60 /*!
61  * \enum cudaVideoCodec
62  * Video Codec Enums
63  */
64 typedef enum cudaVideoCodec_enum {
65  cudaVideoCodec_MPEG1=0, /**< MPEG1 */
66  cudaVideoCodec_MPEG2, /**< MPEG2 */
67  cudaVideoCodec_MPEG4, /**< MPEG4 */
68  cudaVideoCodec_VC1, /**< VC1 */
69  cudaVideoCodec_H264, /**< H264 */
70  cudaVideoCodec_JPEG, /**< JPEG */
71  cudaVideoCodec_H264_SVC, /**< H264-SVC */
72  cudaVideoCodec_H264_MVC, /**< H264-MVC */
73  cudaVideoCodec_HEVC, /**< HEVC */
74  cudaVideoCodec_VP8, /**< VP8 */
75  cudaVideoCodec_VP9, /**< VP9 */
76  cudaVideoCodec_NumCodecs, /**< Max COdecs */
77  // Uncompressed YUV
78  cudaVideoCodec_YUV420 = (('I'<<24)|('Y'<<16)|('U'<<8)|('V')), /**< Y,U,V (4:2:0) */
79  cudaVideoCodec_YV12 = (('Y'<<24)|('V'<<16)|('1'<<8)|('2')), /**< Y,V,U (4:2:0) */
80  cudaVideoCodec_NV12 = (('N'<<24)|('V'<<16)|('1'<<8)|('2')), /**< Y,UV (4:2:0) */
81  cudaVideoCodec_YUYV = (('Y'<<24)|('U'<<16)|('Y'<<8)|('V')), /**< YUYV/YUY2 (4:2:2) */
82  cudaVideoCodec_UYVY = (('U'<<24)|('Y'<<16)|('V'<<8)|('Y')) /**< UYVY (4:2:2) */
84 
85 /*!
86  * \enum cudaVideoSurfaceFormat
87  * Video Surface Formats Enums
88  */
89 typedef enum cudaVideoSurfaceFormat_enum {
90  cudaVideoSurfaceFormat_NV12=0 /**< NV12 (currently the only supported output format) */
92 
93 /*!
94  * \enum cudaVideoDeinterlaceMode
95  * Deinterlacing Modes Enums
96  */
97 typedef enum cudaVideoDeinterlaceMode_enum {
98  cudaVideoDeinterlaceMode_Weave=0, /**< Weave both fields (no deinterlacing) */
99  cudaVideoDeinterlaceMode_Bob, /**< Drop one field */
100  cudaVideoDeinterlaceMode_Adaptive /**< Adaptive deinterlacing */
102 
103 /*!
104  * \enum cudaVideoChromaFormat
105  * Chroma Formats Enums
106  */
107 typedef enum cudaVideoChromaFormat_enum {
108  cudaVideoChromaFormat_Monochrome=0, /**< MonoChrome */
113 
114 /*!
115  * \enum cudaVideoCreateFlags
116  * Decoder Flags Enums
117  */
118 typedef enum cudaVideoCreateFlags_enum {
119  cudaVideoCreate_Default = 0x00, /**< Default operation mode: use dedicated video engines */
120  cudaVideoCreate_PreferCUDA = 0x01, /**< Use a CUDA-based decoder if faster than dedicated engines (requires a valid vidLock object for multi-threading) */
121  cudaVideoCreate_PreferDXVA = 0x02, /**< Go through DXVA internally if possible (requires D3D9 interop) */
122  cudaVideoCreate_PreferCUVID = 0x04 /**< Use dedicated video engines directly */
124 
125 /*!
126  * \struct CUVIDDECODECREATEINFO
127  * Struct used in create decoder
128  */
129 typedef struct _CUVIDDECODECREATEINFO
130 {
131  unsigned long ulWidth; /**< Coded Sequence Width */
132  unsigned long ulHeight; /**< Coded Sequence Height */
133  unsigned long ulNumDecodeSurfaces; /**< Maximum number of internal decode surfaces */
134  cudaVideoCodec CodecType; /**< cudaVideoCodec_XXX */
135  cudaVideoChromaFormat ChromaFormat; /**< cudaVideoChromaFormat_XXX (only 4:2:0 is currently supported) */
136  unsigned long ulCreationFlags; /**< Decoder creation flags (cudaVideoCreateFlags_XXX) */
137  unsigned long bitDepthMinus8;
138  unsigned long Reserved1[4]; /**< Reserved for future use - set to zero */
139  /**
140  * area of the frame that should be displayed
141  */
142  struct {
143  short left;
144  short top;
145  short right;
146  short bottom;
147  } display_area;
148 
149  cudaVideoSurfaceFormat OutputFormat; /**< cudaVideoSurfaceFormat_XXX */
150  cudaVideoDeinterlaceMode DeinterlaceMode; /**< cudaVideoDeinterlaceMode_XXX */
151  unsigned long ulTargetWidth; /**< Post-processed Output Width (Should be aligned to 2) */
152  unsigned long ulTargetHeight; /**< Post-processed Output Height (Should be aligbed to 2) */
153  unsigned long ulNumOutputSurfaces; /**< Maximum number of output surfaces simultaneously mapped */
154  CUvideoctxlock vidLock; /**< If non-NULL, context lock used for synchronizing ownership of the cuda context */
155  /**
156  * target rectangle in the output frame (for aspect ratio conversion)
157  * if a null rectangle is specified, {0,0,ulTargetWidth,ulTargetHeight} will be used
158  */
159  struct {
160  short left;
161  short top;
162  short right;
163  short bottom;
164  } target_rect;
165  unsigned long Reserved2[5]; /**< Reserved for future use - set to zero */
167 
168 /*!
169  * \struct CUVIDH264DPBENTRY
170  * H.264 DPB Entry
171  */
172 typedef struct _CUVIDH264DPBENTRY
173 {
174  int PicIdx; /**< picture index of reference frame */
175  int FrameIdx; /**< frame_num(short-term) or LongTermFrameIdx(long-term) */
176  int is_long_term; /**< 0=short term reference, 1=long term reference */
177  int not_existing; /**< non-existing reference frame (corresponding PicIdx should be set to -1) */
178  int used_for_reference; /**< 0=unused, 1=top_field, 2=bottom_field, 3=both_fields */
179  int FieldOrderCnt[2]; /**< field order count of top and bottom fields */
181 
182 /*!
183  * \struct CUVIDH264MVCEXT
184  * H.264 MVC Picture Parameters Ext
185  */
186 typedef struct _CUVIDH264MVCEXT
187 {
189  int view_id;
190  unsigned char inter_view_flag;
191  unsigned char num_inter_view_refs_l0;
192  unsigned char num_inter_view_refs_l1;
193  unsigned char MVCReserved8Bits;
194  int InterViewRefsL0[16];
195  int InterViewRefsL1[16];
197 
198 /*!
199  * \struct CUVIDH264SVCEXT
200  * H.264 SVC Picture Parameters Ext
201  */
202 typedef struct _CUVIDH264SVCEXT
203 {
204  unsigned char profile_idc;
205  unsigned char level_idc;
206  unsigned char DQId;
207  unsigned char DQIdMax;
212 
213  unsigned short DPBEntryValidFlag;
219  unsigned char chroma_phase_y_plus1;
220 
224  unsigned char store_ref_base_pic_flag;
225  unsigned char Reserved8BitsA;
226  unsigned char Reserved8BitsB;
227  // For the 4 scaled_ref_layer_XX fields below,
228  // if (extended_spatial_scalability_idc == 1), SPS field, G.7.3.2.1.4, add prefix "seq_"
229  // if (extended_spatial_scalability_idc == 2), SLH field, G.7.3.3.4,
234  unsigned short Reserved16Bits;
235  struct _CUVIDPICPARAMS *pNextLayer; /**< Points to the picparams for the next layer to be decoded. Linked list ends at the target layer. */
236  int bRefBaseLayer; /**< whether to store ref base pic */
238 
239 /*!
240  * \struct CUVIDH264PICPARAMS
241  * H.264 Picture Parameters
242  */
243 typedef struct _CUVIDH264PICPARAMS
244 {
245  // SPS
252  int num_ref_frames; // NOTE: shall meet level 4.1 restrictions
254  unsigned char bit_depth_luma_minus8; // Must be 0 (only 8-bit supported)
255  unsigned char bit_depth_chroma_minus8; // Must be 0 (only 8-bit supported)
257  // PPS
274  int CurrFieldOrderCnt[2];
275  // DPB
276  CUVIDH264DPBENTRY dpb[16]; // List of reference frames within the DPB
277  // Quantization Matrices (raster-order)
278  unsigned char WeightScale4x4[6][16];
279  unsigned char WeightScale8x8[2][64];
280  // FMO/ASO
281  unsigned char fmo_aso_enable;
282  unsigned char num_slice_groups_minus1;
283  unsigned char slice_group_map_type;
284  signed char pic_init_qs_minus26;
286  union
287  {
288  unsigned long long slice_group_map_addr;
289  const unsigned char *pMb2SliceGroupMap;
290  } fmo;
291  unsigned int Reserved[12];
292  // SVC/MVC
293  union
294  {
297  };
299 
300 
301 /*!
302  * \struct CUVIDMPEG2PICPARAMS
303  * MPEG-2 Picture Parameters
304  */
305 typedef struct _CUVIDMPEG2PICPARAMS
306 {
307  int ForwardRefIdx; // Picture index of forward reference (P/B-frames)
308  int BackwardRefIdx; // Picture index of backward reference (B-frames)
312  int f_code[2][2];
320  // Quantization matrices (raster order)
321  unsigned char QuantMatrixIntra[64];
322  unsigned char QuantMatrixInter[64];
324 
325 ////////////////////////////////////////////////////////////////////////////////////////////////
326 //
327 // MPEG-4 Picture Parameters
328 //
329 
330 // MPEG-4 has VOP types instead of Picture types
331 #define I_VOP 0
332 #define P_VOP 1
333 #define B_VOP 2
334 #define S_VOP 3
335 
336 /*!
337  * \struct CUVIDMPEG4PICPARAMS
338  * MPEG-4 Picture Parameters
339  */
340 typedef struct _CUVIDMPEG4PICPARAMS
341 {
342  int ForwardRefIdx; // Picture index of forward reference (P/B-frames)
343  int BackwardRefIdx; // Picture index of backward reference (B-frames)
344  // VOL
354  // VOP
362  int trd[2];
363  int trb[2];
364  // Quantization matrices (raster order)
365  unsigned char QuantMatrixIntra[64];
366  unsigned char QuantMatrixInter[64];
369 
370 /*!
371  * \struct CUVIDVC1PICPARAMS
372  * VC1 Picture Parameters
373  */
374 typedef struct _CUVIDVC1PICPARAMS
375 {
376  int ForwardRefIdx; /**< Picture index of forward reference (P/B-frames) */
377  int BackwardRefIdx; /**< Picture index of backward reference (B-frames) */
378  int FrameWidth; /**< Actual frame width */
379  int FrameHeight; /**< Actual frame height */
380  // PICTURE
381  int intra_pic_flag; /**< Set to 1 for I,BI frames */
382  int ref_pic_flag; /**< Set to 1 for I,P frames */
383  int progressive_fcm; /**< Progressive frame */
384  // SEQUENCE
385  int profile;
387  int pulldown;
391  int psf;
392  int multires;
394  int rangered;
396  // ENTRYPOINT
400  int dquant;
403  int fastuvmc;
404  int overlap;
411  int rangeredfrm; // range reduction state
413 
414 /*!
415  * \struct CUVIDJPEGPICPARAMS
416  * JPEG Picture Parameters
417  */
418 typedef struct _CUVIDJPEGPICPARAMS
419 {
420  int Reserved;
422 
423 
424  /*!
425  * \struct CUVIDHEVCPICPARAMS
426  * HEVC Picture Parameters
427  */
428 typedef struct _CUVIDHEVCPICPARAMS
429 {
430  // sps
437  unsigned char pcm_enabled_flag;
441 
447  unsigned char amp_enabled_flag;
450 
457  unsigned char IrapPicFlag;
458  unsigned char IdrPicFlag;
459 
460  unsigned char bit_depth_luma_minus8;
461  unsigned char bit_depth_chroma_minus8;
462  unsigned char reserved1[14];
463 
464  // pps
469  unsigned char diff_cu_qp_delta_depth;
470  signed char init_qp_minus26;
471  signed char pps_cb_qp_offset;
472  signed char pps_cr_qp_offset;
473 
475  unsigned char weighted_pred_flag;
476  unsigned char weighted_bipred_flag;
482 
489  unsigned char cabac_init_present_flag;
491 
494  signed char pps_beta_offset_div2;
495  signed char pps_tc_offset_div2;
496  unsigned char tiles_enabled_flag;
497  unsigned char uniform_spacing_flag;
498  unsigned char num_tile_columns_minus1;
499  unsigned char num_tile_rows_minus1;
500 
501  unsigned short column_width_minus1[21];
502  unsigned short row_height_minus1[21];
503  unsigned int reserved3[15];
504 
505  // RefPicSets
513  int RefPicIdx[16]; // [refpic] Indices of valid reference pictures (-1 if unused for reference)
514  int PicOrderCntVal[16]; // [refpic]
515  unsigned char IsLongTerm[16]; // [refpic] 0=not a long-term reference, 1=long-term reference
516  unsigned char RefPicSetStCurrBefore[8]; // [0..NumPocStCurrBefore-1] -> refpic (0..15)
517  unsigned char RefPicSetStCurrAfter[8]; // [0..NumPocStCurrAfter-1] -> refpic (0..15)
518  unsigned char RefPicSetLtCurr[8]; // [0..NumPocLtCurr-1] -> refpic (0..15)
519  unsigned char RefPicSetInterLayer0[8];
520  unsigned char RefPicSetInterLayer1[8];
521  unsigned int reserved4[12];
522 
523  // scaling lists (diag order)
524  unsigned char ScalingList4x4[6][16]; // [matrixId][i]
525  unsigned char ScalingList8x8[6][64]; // [matrixId][i]
526  unsigned char ScalingList16x16[6][64]; // [matrixId][i]
527  unsigned char ScalingList32x32[2][64]; // [matrixId][i]
528  unsigned char ScalingListDCCoeff16x16[6]; // [matrixId]
529  unsigned char ScalingListDCCoeff32x32[2]; // [matrixId]
531 
532 
533 /*!
534  * \struct CUVIDVP8PICPARAMS
535  * VP8 Picture Parameters
536  */
537 typedef struct _CUVIDVP8PICPARAMS
538 {
539  int width;
540  int height;
541  unsigned int first_partition_size;
542  //Frame Indexes
543  unsigned char LastRefIdx;
544  unsigned char GoldenRefIdx;
545  unsigned char AltRefIdx;
546  union {
547  struct {
548  unsigned char frame_type : 1; /**< 0 = KEYFRAME, 1 = INTERFRAME */
549  unsigned char version : 3;
550  unsigned char show_frame : 1;
551  unsigned char update_mb_segmentation_data : 1; /**< Must be 0 if segmentation is not enabled */
552  unsigned char Reserved2Bits : 2;
553  };
554  unsigned char wFrameTagFlags;
555  };
556  unsigned char Reserved1[4];
557  unsigned int Reserved2[3];
559 
560 /*!
561  * \struct CUVIDVP9PICPARAMS
562  * VP9 Picture Parameters
563  */
564 typedef struct _CUVIDVP9PICPARAMS
565 {
566  unsigned int width;
567  unsigned int height;
568 
569  //Frame Indices
570  unsigned char LastRefIdx;
571  unsigned char GoldenRefIdx;
572  unsigned char AltRefIdx;
573  unsigned char colorSpace;
574 
575  unsigned short profile : 3;
576  unsigned short frameContextIdx : 2;
577  unsigned short frameType : 1;
578  unsigned short showFrame : 1;
579  unsigned short errorResilient : 1;
580  unsigned short frameParallelDecoding : 1;
581  unsigned short subSamplingX : 1;
582  unsigned short subSamplingY : 1;
583  unsigned short intraOnly : 1;
584  unsigned short allow_high_precision_mv : 1;
585  unsigned short refreshEntropyProbs : 1;
586  unsigned short reserved2Bits : 2;
587 
588  unsigned short reserved16Bits;
589 
590  unsigned char refFrameSignBias[4];
591 
592  unsigned char bitDepthMinus8Luma;
593  unsigned char bitDepthMinus8Chroma;
594  unsigned char loopFilterLevel;
595  unsigned char loopFilterSharpness;
596 
597  unsigned char modeRefLfEnabled;
598  unsigned char log2_tile_columns;
599  unsigned char log2_tile_rows;
600 
601  unsigned char segmentEnabled : 1;
602  unsigned char segmentMapUpdate : 1;
603  unsigned char segmentMapTemporalUpdate : 1;
604  unsigned char segmentFeatureMode : 1;
605  unsigned char reserved4Bits : 4;
606 
607 
608  unsigned char segmentFeatureEnable[8][4];
609  short segmentFeatureData[8][4];
610  unsigned char mb_segment_tree_probs[7];
611  unsigned char segment_pred_probs[3];
612  unsigned char reservedSegment16Bits[2];
613 
614  int qpYAc;
615  int qpYDc;
616  int qpChDc;
617  int qpChAc;
618 
619  unsigned int activeRefIdx[3];
620  unsigned int resetFrameContext;
621  unsigned int mcomp_filter_type;
622  unsigned int mbRefLfDelta[4];
623  unsigned int mbModeLfDelta[2];
624  unsigned int frameTagSize;
625  unsigned int offsetToDctParts;
626  unsigned int reserved128Bits[4];
627 
629 
630 
631 /*!
632  * \struct CUVIDPICPARAMS
633  * Picture Parameters for Decoding
634  */
635 typedef struct _CUVIDPICPARAMS
636 {
637  int PicWidthInMbs; /**< Coded Frame Size */
638  int FrameHeightInMbs; /**< Coded Frame Height */
639  int CurrPicIdx; /**< Output index of the current picture */
640  int field_pic_flag; /**< 0=frame picture, 1=field picture */
641  int bottom_field_flag; /**< 0=top field, 1=bottom field (ignored if field_pic_flag=0) */
642  int second_field; /**< Second field of a complementary field pair */
643  // Bitstream data
644  unsigned int nBitstreamDataLen; /**< Number of bytes in bitstream data buffer */
645  const unsigned char *pBitstreamData; /**< Ptr to bitstream data for this picture (slice-layer) */
646  unsigned int nNumSlices; /**< Number of slices in this picture */
647  const unsigned int *pSliceDataOffsets; /**< nNumSlices entries, contains offset of each slice within the bitstream data buffer */
648  int ref_pic_flag; /**< This picture is a reference picture */
649  int intra_pic_flag; /**< This picture is entirely intra coded */
650  unsigned int Reserved[30]; /**< Reserved for future use */
651  // Codec-specific data
652  union {
653  CUVIDMPEG2PICPARAMS mpeg2; /**< Also used for MPEG-1 */
661  unsigned int CodecReserved[1024];
662  } CodecSpecific;
664 
665 
666 /*!
667  * \struct CUVIDPROCPARAMS
668  * Picture Parameters for Postprocessing
669  */
670 typedef struct _CUVIDPROCPARAMS
671 {
672  int progressive_frame; /**< Input is progressive (deinterlace_mode will be ignored) */
673  int second_field; /**< Output the second field (ignored if deinterlace mode is Weave) */
674  int top_field_first; /**< Input frame is top field first (1st field is top, 2nd field is bottom) */
675  int unpaired_field; /**< Input only contains one field (2nd field is invalid) */
676  // The fields below are used for raw YUV input
677  unsigned int reserved_flags; /**< Reserved for future use (set to zero) */
678  unsigned int reserved_zero; /**< Reserved (set to zero) */
679  unsigned long long raw_input_dptr; /**< Input CUdeviceptr for raw YUV extensions */
680  unsigned int raw_input_pitch; /**< pitch in bytes of raw YUV input (should be aligned appropriately) */
681  unsigned int raw_input_format; /**< Reserved for future use (set to zero) */
682  unsigned long long raw_output_dptr; /**< Reserved for future use (set to zero) */
683  unsigned int raw_output_pitch; /**< Reserved for future use (set to zero) */
684  unsigned int Reserved[48];
685  void *Reserved3[3];
687 
688 
689 /**
690  *
691  * In order to minimize decode latencies, there should be always at least 2 pictures in the decode
692  * queue at any time, in order to make sure that all decode engines are always busy.
693  *
694  * Overall data flow:
695  * - cuvidCreateDecoder(...)
696  * For each picture:
697  * - cuvidDecodePicture(N)
698  * - cuvidMapVideoFrame(N-4)
699  * - do some processing in cuda
700  * - cuvidUnmapVideoFrame(N-4)
701  * - cuvidDecodePicture(N+1)
702  * - cuvidMapVideoFrame(N-3)
703  * ...
704  * - cuvidDestroyDecoder(...)
705  *
706  * NOTE:
707  * - When the cuda context is created from a D3D device, the D3D device must also be created
708  * with the D3DCREATE_MULTITHREADED flag.
709  * - There is a limit to how many pictures can be mapped simultaneously (ulNumOutputSurfaces)
710  * - cuVidDecodePicture may block the calling thread if there are too many pictures pending
711  * in the decode queue
712  */
713 
714 /**
715  * \fn CUresult CUDAAPI cuvidCreateDecoder(CUvideodecoder *phDecoder, CUVIDDECODECREATEINFO *pdci)
716  * Create the decoder object
717  */
718 CUresult CUDAAPI cuvidCreateDecoder(CUvideodecoder *phDecoder, CUVIDDECODECREATEINFO *pdci);
719 
720 /**
721  * \fn CUresult CUDAAPI cuvidDestroyDecoder(CUvideodecoder hDecoder)
722  * Destroy the decoder object
723  */
724 CUresult CUDAAPI cuvidDestroyDecoder(CUvideodecoder hDecoder);
725 
726 /**
727  * \fn CUresult CUDAAPI cuvidDecodePicture(CUvideodecoder hDecoder, CUVIDPICPARAMS *pPicParams)
728  * Decode a single picture (field or frame)
729  */
730 CUresult CUDAAPI cuvidDecodePicture(CUvideodecoder hDecoder, CUVIDPICPARAMS *pPicParams);
731 
732 
733 #if !defined(__CUVID_DEVPTR64) || defined(__CUVID_INTERNAL)
734 /**
735  * \fn CUresult CUDAAPI cuvidMapVideoFrame(CUvideodecoder hDecoder, int nPicIdx, unsigned int *pDevPtr, unsigned int *pPitch, CUVIDPROCPARAMS *pVPP);
736  * Post-process and map a video frame for use in cuda
737  */
738 CUresult CUDAAPI cuvidMapVideoFrame(CUvideodecoder hDecoder, int nPicIdx,
739  unsigned int *pDevPtr, unsigned int *pPitch,
740  CUVIDPROCPARAMS *pVPP);
741 
742 /**
743  * \fn CUresult CUDAAPI cuvidUnmapVideoFrame(CUvideodecoder hDecoder, unsigned int DevPtr)
744  * Unmap a previously mapped video frame
745  */
746 CUresult CUDAAPI cuvidUnmapVideoFrame(CUvideodecoder hDecoder, unsigned int DevPtr);
747 #endif
748 
749 #if defined(WIN64) || defined(_WIN64) || defined(__x86_64) || defined(AMD64) || defined(_M_AMD64)
750 /**
751  * \fn CUresult CUDAAPI cuvidMapVideoFrame64(CUvideodecoder hDecoder, int nPicIdx, unsigned long long *pDevPtr, unsigned int *pPitch, CUVIDPROCPARAMS *pVPP);
752  * map a video frame
753  */
754 CUresult CUDAAPI cuvidMapVideoFrame64(CUvideodecoder hDecoder, int nPicIdx, unsigned long long *pDevPtr,
755  unsigned int *pPitch, CUVIDPROCPARAMS *pVPP);
756 
757 /**
758  * \fn CUresult CUDAAPI cuvidUnmapVideoFrame64(CUvideodecoder hDecoder, unsigned long long DevPtr);
759  * Unmap a previously mapped video frame
760  */
761 CUresult CUDAAPI cuvidUnmapVideoFrame64(CUvideodecoder hDecoder, unsigned long long DevPtr);
762 
763 #if defined(__CUVID_DEVPTR64) && !defined(__CUVID_INTERNAL)
764 #define cuvidMapVideoFrame cuvidMapVideoFrame64
765 #define cuvidUnmapVideoFrame cuvidUnmapVideoFrame64
766 #endif
767 #endif
768 
769 
770 
771 /**
772  *
773  * Context-locking: to facilitate multi-threaded implementations, the following 4 functions
774  * provide a simple mutex-style host synchronization. If a non-NULL context is specified
775  * in CUVIDDECODECREATEINFO, the codec library will acquire the mutex associated with the given
776  * context before making any cuda calls.
777  * A multi-threaded application could create a lock associated with a context handle so that
778  * multiple threads can safely share the same cuda context:
779  * - use cuCtxPopCurrent immediately after context creation in order to create a 'floating' context
780  * that can be passed to cuvidCtxLockCreate.
781  * - When using a floating context, all cuda calls should only be made within a cuvidCtxLock/cuvidCtxUnlock section.
782  *
783  * NOTE: This is a safer alternative to cuCtxPushCurrent and cuCtxPopCurrent, and is not related to video
784  * decoder in any way (implemented as a critical section associated with cuCtx{Push|Pop}Current calls).
785 */
786 
787 /**
788  * \fn CUresult CUDAAPI cuvidCtxLockCreate(CUvideoctxlock *pLock, CUcontext ctx)
789  */
790 CUresult CUDAAPI cuvidCtxLockCreate(CUvideoctxlock *pLock, CUcontext ctx);
791 
792 /**
793  * \fn CUresult CUDAAPI cuvidCtxLockDestroy(CUvideoctxlock lck)
794  */
795 CUresult CUDAAPI cuvidCtxLockDestroy(CUvideoctxlock lck);
796 
797 /**
798  * \fn CUresult CUDAAPI cuvidCtxLock(CUvideoctxlock lck, unsigned int reserved_flags)
799  */
800 CUresult CUDAAPI cuvidCtxLock(CUvideoctxlock lck, unsigned int reserved_flags);
801 
802 /**
803  * \fn CUresult CUDAAPI cuvidCtxUnlock(CUvideoctxlock lck, unsigned int reserved_flags)
804  */
805 CUresult CUDAAPI cuvidCtxUnlock(CUvideoctxlock lck, unsigned int reserved_flags);
806 
807 /** @} */ /* End VIDEO_DECODER */
808 ////////////////////////////////////////////////////////////////////////////////////////////////
809 
810 #if defined(__cplusplus)
811 
812 // Auto-lock helper for C++ applications
813 class CCtxAutoLock
814 {
815 private:
816  CUvideoctxlock m_ctx;
817 public:
818  CCtxAutoLock(CUvideoctxlock ctx);
819  ~CCtxAutoLock();
820 };
821 
822 }
823 
824 #endif /* __cplusplus */
825 
826 #endif // __CUDA_VIDEO_H__
827 
short scaled_ref_layer_bottom_offset
Definition: cuviddec.h:233
unsigned char loop_filter_across_tiles_enabled_flag
Definition: cuviddec.h:483
int ref_pic_flag
Set to 1 for I,P frames.
Definition: cuviddec.h:382
int PicWidthInMbs
Coded Frame Size.
Definition: cuviddec.h:637
unsigned char bitDepthMinus8Luma
Definition: cuviddec.h:592
unsigned char deblocking_filter_override_enabled_flag
Definition: cuviddec.h:492
short scaled_ref_layer_right_offset
Definition: cuviddec.h:232
int num_ref_idx_l0_active_minus1
Definition: cuviddec.h:260
int unpaired_field
Input only contains one field (2nd field is invalid)
Definition: cuviddec.h:675
signed char pps_tc_offset_div2
Definition: cuviddec.h:495
unsigned int raw_input_format
Reserved for future use (set to zero)
Definition: cuviddec.h:681
int num_ref_idx_l1_active_minus1
Definition: cuviddec.h:261
unsigned char num_tile_columns_minus1
Definition: cuviddec.h:498
short scaled_ref_layer_top_offset
Definition: cuviddec.h:231
unsigned char log2_max_pic_order_cnt_lsb_minus4
Definition: cuviddec.h:449
unsigned char uniform_spacing_flag
Definition: cuviddec.h:497
unsigned char num_ref_idx_l0_default_active_minus1
Definition: cuviddec.h:486
cudaVideoSurfaceFormat
Definition: cuviddec.h:89
unsigned char bit_depth_chroma_minus8
Definition: cuviddec.h:461
CUVIDH264SVCEXT svcext
Definition: cuviddec.h:296
unsigned char diff_cu_qp_delta_depth
Definition: cuviddec.h:469
unsigned char num_long_term_ref_pics_sps
Definition: cuviddec.h:453
int is_long_term
0=short term reference, 1=long term reference
Definition: cuviddec.h:176
unsigned short Reserved16Bits
Definition: cuviddec.h:234
unsigned char pcm_enabled_flag
Definition: cuviddec.h:437
struct _CUVIDPICPARAMS * pNextLayer
Points to the picparams for the next layer to be decoded.
Definition: cuviddec.h:235
CUresult CUDAAPI cuvidMapVideoFrame(CUvideodecoder hDecoder, int nPicIdx, unsigned int *pDevPtr, unsigned int *pPitch, CUVIDPROCPARAMS *pVPP)
Post-process and map a video frame for use in cuda.
unsigned char IrapPicFlag
Definition: cuviddec.h:457
unsigned char inter_view_flag
Definition: cuviddec.h:190
int log2_max_pic_order_cnt_lsb_minus4
Definition: cuviddec.h:248
int FrameIdx
frame_num(short-term) or LongTermFrameIdx(long-term)
Definition: cuviddec.h:175
int version
Definition: avisynth_c.h:766
unsigned char dependent_slice_segments_enabled_flag
Definition: cuviddec.h:465
int field_pic_flag
0=frame picture, 1=field picture
Definition: cuviddec.h:640
static void show_frame(WriterContext *w, AVFrame *frame, AVStream *stream, AVFormatContext *fmt_ctx)
Definition: ffprobe.c:1870
unsigned char chroma_phase_y_plus1
Definition: cuviddec.h:219
unsigned char residual_colour_transform_flag
Definition: cuviddec.h:253
unsigned char GoldenRefIdx
Definition: cuviddec.h:544
unsigned int height
Definition: cuviddec.h:567
Use dedicated video engines directly.
Definition: cuviddec.h:122
unsigned char LastRefIdx
Definition: cuviddec.h:543
const unsigned char * pMb2SliceGroupMap
Definition: cuviddec.h:289
unsigned char loop_filter_across_slices_enabled_flag
Definition: cuviddec.h:484
unsigned char wFrameTagFlags
Definition: cuviddec.h:554
unsigned char pcm_sample_bit_depth_luma_minus1
Definition: cuviddec.h:440
CUVIDH264MVCEXT mvcext
Definition: cuviddec.h:295
int second_chroma_qp_index_offset
Definition: cuviddec.h:271
cudaVideoDeinterlaceMode DeinterlaceMode
cudaVideoDeinterlaceMode_XXX
Definition: cuviddec.h:150
unsigned char bit_depth_luma_minus8
Definition: cuviddec.h:460
signed char pps_cr_qp_offset
Definition: cuviddec.h:472
unsigned char log2_min_luma_coding_block_size_minus3
Definition: cuviddec.h:433
CUVIDH264PICPARAMS h264
Definition: cuviddec.h:654
unsigned char tcoeff_level_prediction_flag
Definition: cuviddec.h:221
cudaVideoCodec CodecType
cudaVideoCodec_XXX
Definition: cuviddec.h:134
unsigned char bit_depth_chroma_minus8
Definition: cuviddec.h:255
Drop one field.
Definition: cuviddec.h:99
int NumBitsForShortTermRPSInSlice
Definition: cuviddec.h:506
unsigned char modeRefLfEnabled
Definition: cuviddec.h:597
cudaVideoSurfaceFormat OutputFormat
cudaVideoSurfaceFormat_XXX
Definition: cuviddec.h:149
unsigned char constrained_intra_pred_flag
Definition: cuviddec.h:474
int ForwardRefIdx
Picture index of forward reference (P/B-frames)
Definition: cuviddec.h:376
int BackwardRefIdx
Picture index of backward reference (B-frames)
Definition: cuviddec.h:377
unsigned char AltRefIdx
Definition: cuviddec.h:545
int num_views_minus1
Definition: cuviddec.h:188
int video_object_layer_width
Definition: cuviddec.h:345
int delta_pic_order_always_zero_flag
Definition: cuviddec.h:249
int PicIdx
picture index of reference frame
Definition: cuviddec.h:174
int intra_pic_flag
Set to 1 for I,BI frames.
Definition: cuviddec.h:381
unsigned char store_ref_base_pic_flag
Definition: cuviddec.h:224
signed char pic_init_qs_minus26
Definition: cuviddec.h:284
unsigned long ulCreationFlags
Decoder creation flags (cudaVideoCreateFlags_XXX)
Definition: cuviddec.h:136
int full_pel_forward_vector
Definition: cuviddec.h:310
unsigned char num_inter_view_refs_l1
Definition: cuviddec.h:192
unsigned char pcm_loop_filter_disabled_flag
Definition: cuviddec.h:443
unsigned int first_partition_size
Definition: cuviddec.h:541
int constrained_intra_pred_flag
Definition: cuviddec.h:269
CUvideoctxlock vidLock
If non-NULL, context lock used for synchronizing ownership of the cuda context.
Definition: cuviddec.h:154
CUresult CUDAAPI cuvidDecodePicture(CUvideodecoder hDecoder, CUVIDPICPARAMS *pPicParams)
Decode a single picture (field or frame)
unsigned char log2_tile_columns
Definition: cuviddec.h:598
unsigned char num_ref_idx_l1_default_active_minus1
Definition: cuviddec.h:487
CUresult CUDAAPI cuvidCreateDecoder(CUvideodecoder *phDecoder, CUVIDDECODECREATEINFO *pdci)
In order to minimize decode latencies, there should be always at least 2 pictures in the decode queue...
unsigned char slice_group_map_type
Definition: cuviddec.h:283
CUresult CUDAAPI cuvidCtxUnlock(CUvideoctxlock lck, unsigned int reserved_flags)
cudaVideoChromaFormat
Definition: cuviddec.h:107
unsigned char fmo_aso_enable
Definition: cuviddec.h:281
unsigned long long slice_group_map_addr
Definition: cuviddec.h:288
#define CUDAAPI
Definition: nvenc.h:38
unsigned int frameTagSize
Definition: cuviddec.h:624
int bRefBaseLayer
whether to store ref base pic
Definition: cuviddec.h:236
void * CUvideodecoder
Definition: cuviddec.h:52
unsigned int raw_output_pitch
Reserved for future use (set to zero)
Definition: cuviddec.h:683
unsigned char log2_parallel_merge_level_minus2
Definition: cuviddec.h:480
unsigned char LastRefIdx
Definition: cuviddec.h:570
Weave both fields (no deinterlacing)
Definition: cuviddec.h:98
int not_existing
non-existing reference frame (corresponding PicIdx should be set to -1)
Definition: cuviddec.h:177
int deblocking_filter_control_present_flag
Definition: cuviddec.h:265
unsigned char MVCReserved8Bits
Definition: cuviddec.h:193
int CurrPicIdx
Output index of the current picture.
Definition: cuviddec.h:639
unsigned char sample_adaptive_offset_enabled_flag
Definition: cuviddec.h:455
unsigned char weighted_pred_flag
Definition: cuviddec.h:475
unsigned char colorSpace
Definition: cuviddec.h:573
unsigned long ulNumDecodeSurfaces
Maximum number of internal decode surfaces.
Definition: cuviddec.h:133
unsigned char pcm_sample_bit_depth_chroma_minus1
Definition: cuviddec.h:442
Use a CUDA-based decoder if faster than dedicated engines (requires a valid vidLock object for multi-...
Definition: cuviddec.h:120
unsigned long ulNumOutputSurfaces
Maximum number of output surfaces simultaneously mapped.
Definition: cuviddec.h:153
unsigned char long_term_ref_pics_present_flag
Definition: cuviddec.h:452
unsigned char extended_spatial_scalability_idc
Definition: cuviddec.h:215
unsigned char profile_idc
Definition: cuviddec.h:204
unsigned char transform_skip_enabled_flag
Definition: cuviddec.h:477
unsigned int nNumSlices
Number of slices in this picture.
Definition: cuviddec.h:646
int FrameHeightInMbs
Coded Frame Height.
Definition: cuviddec.h:638
unsigned short reserved16Bits
Definition: cuviddec.h:588
cudaVideoCreateFlags
Definition: cuviddec.h:118
unsigned char separate_colour_plane_flag
Definition: cuviddec.h:448
unsigned int width
Definition: cuviddec.h:566
Y,V,U (4:2:0)
Definition: cuviddec.h:79
int log2_max_frame_num_minus4
Definition: cuviddec.h:246
unsigned char entropy_coding_sync_enabled_flag
Definition: cuviddec.h:479
unsigned char loopFilterLevel
Definition: cuviddec.h:594
int intra_pic_flag
This picture is entirely intra coded.
Definition: cuviddec.h:649
unsigned char bitDepthMinus8Chroma
Definition: cuviddec.h:593
int progressive_frame
Input is progressive (deinterlace_mode will be ignored)
Definition: cuviddec.h:672
struct _CUcontextlock_st * CUvideoctxlock
Definition: cuviddec.h:53
unsigned long ulTargetHeight
Post-processed Output Height (Should be aligbed to 2)
Definition: cuviddec.h:152
unsigned char scaling_list_enable_flag
Definition: cuviddec.h:456
int FrameHeight
Actual frame height.
Definition: cuviddec.h:379
int pic_order_present_flag
Definition: cuviddec.h:259
Adaptive deinterlacing.
Definition: cuviddec.h:100
int second_field
Output the second field (ignored if deinterlace mode is Weave)
Definition: cuviddec.h:673
unsigned int mcomp_filter_type
Definition: cuviddec.h:621
unsigned char log2_diff_max_min_pcm_luma_coding_block_size
Definition: cuviddec.h:439
Default operation mode: use dedicated video engines.
Definition: cuviddec.h:119
unsigned char num_tile_rows_minus1
Definition: cuviddec.h:499
unsigned int reserved_zero
Reserved (set to zero)
Definition: cuviddec.h:678
unsigned char IdrPicFlag
Definition: cuviddec.h:458
int ref_pic_flag
This picture is a reference picture.
Definition: cuviddec.h:648
signed char pps_beta_offset_div2
Definition: cuviddec.h:494
int top_field_first
Input frame is top field first (1st field is top, 2nd field is bottom)
Definition: cuviddec.h:674
int progressive_fcm
Progressive frame.
Definition: cuviddec.h:383
AVFormatContext * ctx
Definition: movenc.c:48
Y,U,V (4:2:0)
Definition: cuviddec.h:78
CUresult
Definition: nvenc.h:41
const unsigned int * pSliceDataOffsets
nNumSlices entries, contains offset of each slice within the bitstream data buffer ...
Definition: cuviddec.h:647
unsigned short DPBEntryValidFlag
Definition: cuviddec.h:213
int bottom_field_flag
0=top field, 1=bottom field (ignored if field_pic_flag=0)
Definition: cuviddec.h:641
unsigned char slice_header_restriction_flag
Definition: cuviddec.h:217
unsigned long long raw_output_dptr
Reserved for future use (set to zero)
Definition: cuviddec.h:682
unsigned char num_extra_slice_header_bits
Definition: cuviddec.h:481
int vop_time_increment_bitcount
Definition: cuviddec.h:347
unsigned char tiles_enabled_flag
Definition: cuviddec.h:496
short scaled_ref_layer_left_offset
Definition: cuviddec.h:230
unsigned char log2_min_pcm_luma_coding_block_size_minus3
Definition: cuviddec.h:438
unsigned char qpprime_y_zero_transform_bypass_flag
Definition: cuviddec.h:256
CUresult CUDAAPI cuvidDestroyDecoder(CUvideodecoder hDecoder)
Destroy the decoder object.
unsigned char inter_layer_deblocking_filter_control_present_flag
Definition: cuviddec.h:214
signed char inter_layer_slice_alpha_c0_offset_div2
Definition: cuviddec.h:210
int pic_height_in_luma_samples
Definition: cuviddec.h:432
CUVIDVC1PICPARAMS vc1
Definition: cuviddec.h:655
CUVIDVP9PICPARAMS vp9
Definition: cuviddec.h:660
unsigned int resetFrameContext
Definition: cuviddec.h:620
unsigned char slice_segment_header_extension_present_flag
Definition: cuviddec.h:466
int NumDeltaPocsOfRefRpsIdx
Definition: cuviddec.h:507
unsigned char pps_deblocking_filter_disabled_flag
Definition: cuviddec.h:493
unsigned char Reserved8BitsA
Definition: cuviddec.h:225
unsigned char amp_enabled_flag
Definition: cuviddec.h:447
unsigned char sps_temporal_mvp_enabled_flag
Definition: cuviddec.h:454
const unsigned char * pBitstreamData
Ptr to bitstream data for this picture (slice-layer)
Definition: cuviddec.h:645
unsigned int slice_group_change_rate_minus1
Definition: cuviddec.h:285
unsigned char log2_tile_rows
Definition: cuviddec.h:599
unsigned char loopFilterSharpness
Definition: cuviddec.h:595
unsigned char lists_modification_present_flag
Definition: cuviddec.h:488
unsigned char log2_diff_max_min_transform_block_size
Definition: cuviddec.h:436
UYVY (4:2:2)
Definition: cuviddec.h:82
unsigned char Reserved8BitsB
Definition: cuviddec.h:226
CUVIDVP8PICPARAMS vp8
Definition: cuviddec.h:659
int video_object_layer_height
Definition: cuviddec.h:346
unsigned char num_inter_view_refs_l0
Definition: cuviddec.h:191
unsigned char level_idc
Definition: cuviddec.h:205
YUYV/YUY2 (4:2:2)
Definition: cuviddec.h:81
unsigned char DQIdMax
Definition: cuviddec.h:207
unsigned char max_transform_hierarchy_depth_inter
Definition: cuviddec.h:446
int entropy_coding_mode_flag
Definition: cuviddec.h:258
unsigned char pps_slice_chroma_qp_offsets_present_flag
Definition: cuviddec.h:490
int transform_8x8_mode_flag
Definition: cuviddec.h:267
mfxU16 profile
Definition: qsvenc.c:44
unsigned char num_slice_groups_minus1
Definition: cuviddec.h:282
CUVIDJPEGPICPARAMS jpeg
Definition: cuviddec.h:657
Y,UV (4:2:0)
Definition: cuviddec.h:80
unsigned char output_flag_present_flag
Definition: cuviddec.h:485
signed char pps_cb_qp_offset
Definition: cuviddec.h:471
int concealment_motion_vectors
Definition: cuviddec.h:315
CUVIDMPEG2PICPARAMS mpeg2
Also used for MPEG-1.
Definition: cuviddec.h:653
int redundant_pic_cnt_present_flag
Definition: cuviddec.h:266
int used_for_reference
0=unused, 1=top_field, 2=bottom_field, 3=both_fields
Definition: cuviddec.h:178
int direct_8x8_inference_flag
Definition: cuviddec.h:251
unsigned char bit_depth_luma_minus8
Definition: cuviddec.h:254
CUresult CUDAAPI cuvidCtxLockDestroy(CUvideoctxlock lck)
signed char init_qp_minus26
Definition: cuviddec.h:470
unsigned char weighted_bipred_flag
Definition: cuviddec.h:476
unsigned int offsetToDctParts
Definition: cuviddec.h:625
unsigned char adaptive_tcoeff_level_prediction_flag
Definition: cuviddec.h:216
NV12 (currently the only supported output format)
Definition: cuviddec.h:90
unsigned char chroma_phase_x_plus1_flag
Definition: cuviddec.h:218
unsigned long bitDepthMinus8
Definition: cuviddec.h:137
Go through DXVA internally if possible (requires D3D9 interop)
Definition: cuviddec.h:121
unsigned long ulHeight
Coded Sequence Height.
Definition: cuviddec.h:132
unsigned char transquant_bypass_enabled_flag
Definition: cuviddec.h:478
int pic_width_in_luma_samples
Definition: cuviddec.h:431
CUVIDMPEG4PICPARAMS mpeg4
Definition: cuviddec.h:656
unsigned char AltRefIdx
Definition: cuviddec.h:572
unsigned long ulWidth
Coded Sequence Width.
Definition: cuviddec.h:131
unsigned int reserved_flags
Reserved for future use (set to zero)
Definition: cuviddec.h:677
unsigned char log2_diff_max_min_luma_coding_block_size
Definition: cuviddec.h:434
CUresult CUDAAPI cuvidUnmapVideoFrame(CUvideodecoder hDecoder, unsigned int DevPtr)
Unmap a previously mapped video frame.
CUresult CUDAAPI cuvidCtxLockCreate(CUvideoctxlock *pLock, CUcontext ctx)
Context-locking: to facilitate multi-threaded implementations, the following 4 functions provide a si...
unsigned char cabac_init_present_flag
Definition: cuviddec.h:489
unsigned char cu_qp_delta_enabled_flag
Definition: cuviddec.h:468
unsigned char max_transform_hierarchy_depth_intra
Definition: cuviddec.h:445
cudaVideoChromaFormat ChromaFormat
cudaVideoChromaFormat_XXX (only 4:2:0 is currently supported)
Definition: cuviddec.h:135
unsigned long ulTargetWidth
Post-processed Output Width (Should be aligned to 2)
Definition: cuviddec.h:151
unsigned char GoldenRefIdx
Definition: cuviddec.h:571
unsigned char disable_inter_layer_deblocking_filter_idc
Definition: cuviddec.h:208
int second_field
Second field of a complementary field pair.
Definition: cuviddec.h:642
unsigned char sign_data_hiding_enabled_flag
Definition: cuviddec.h:467
cudaVideoCodec
Definition: cuviddec.h:64
unsigned char strong_intra_smoothing_enabled_flag
Definition: cuviddec.h:444
CUresult CUDAAPI cuvidCtxLock(CUvideoctxlock lck, unsigned int reserved_flags)
unsigned long long raw_input_dptr
Input CUdeviceptr for raw YUV extensions.
Definition: cuviddec.h:679
int chroma_qp_index_offset
Definition: cuviddec.h:270
CUVIDHEVCPICPARAMS hevc
Definition: cuviddec.h:658
int alternate_vertical_scan_flag
Definition: cuviddec.h:358
cudaVideoDeinterlaceMode
Definition: cuviddec.h:97
unsigned char ref_layer_chroma_phase_y_plus1
Definition: cuviddec.h:209
void * CUcontext
Definition: nvenc.h:45
int FrameWidth
Actual frame width.
Definition: cuviddec.h:378
unsigned int nBitstreamDataLen
Number of bytes in bitstream data buffer.
Definition: cuviddec.h:644
int full_pel_backward_vector
Definition: cuviddec.h:311
unsigned char DQId
Definition: cuviddec.h:206
unsigned char log2_min_transform_block_size_minus2
Definition: cuviddec.h:435
unsigned char ref_layer_chroma_phase_x_plus1_flag
Definition: cuviddec.h:223
unsigned char constrained_intra_resampling_flag
Definition: cuviddec.h:222
unsigned char num_short_term_ref_pic_sets
Definition: cuviddec.h:451
signed char inter_layer_slice_beta_offset_div2
Definition: cuviddec.h:211
unsigned int raw_input_pitch
pitch in bytes of raw YUV input (should be aligned appropriately)
Definition: cuviddec.h:680