Advertisement
MagicAndre1981

VP9 support in Windows 10 SDK (Build 10563)

Oct 13th, 2015
428
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. VP9 support in Windows 10 SDK (Build 10563) (dxva.h):
  2.  
  3.  
  4. /* VPx-specific structures */
  5.  
  6. /* VPx picture entry data structure */
  7. typedef struct _DXVA_PicEntry_VPx {
  8.     union {
  9.         struct {
  10.             UCHAR Index7Bits : 7;
  11.             UCHAR AssociatedFlag : 1;
  12.         };
  13.         UCHAR bPicEntry;
  14.     };
  15. } DXVA_PicEntry_VPx, *LPDXVA_PicEntry_VPx;
  16.  
  17. /* VP9 segmentation structure */
  18. typedef struct _segmentation_VP9 {
  19.     union {
  20.         struct {
  21.             UCHAR enabled : 1;
  22.             UCHAR update_map : 1;
  23.             UCHAR temporal_update : 1;
  24.             UCHAR abs_delta : 1;
  25.             UCHAR ReservedSegmentFlags4Bits : 4;
  26.         };
  27.         UCHAR wSegmentInfoFlags;
  28.     };
  29.     UCHAR tree_probs[7];
  30.     UCHAR pred_probs[3];
  31.     SHORT feature_data[8][4];
  32.     UCHAR feature_mask[8];
  33. } DXVA_segmentation_VP9;
  34.  
  35. /* VP9 picture parameters structure */
  36. typedef struct _DXVA_PicParams_VP9 {
  37.     DXVA_PicEntry_VPx    CurrPic;
  38.     UCHAR                profile;
  39.     union {
  40.         struct {
  41.             USHORT frame_type : 1;
  42.             USHORT show_frame : 1;
  43.             USHORT error_resilient_mode : 1;
  44.             USHORT subsampling_x : 1;
  45.             USHORT subsampling_y : 1;
  46.             USHORT extra_plane : 1;
  47.             USHORT refresh_frame_context : 1;
  48.             USHORT frame_parallel_decoding_mode : 1;
  49.             USHORT intra_only : 1;
  50.             USHORT frame_context_idx : 2;
  51.             USHORT reset_frame_context : 2;
  52.             USHORT allow_high_precision_mv : 1;
  53.             USHORT ReservedFormatInfo2Bits : 2;
  54.         };
  55.         USHORT wFormatAndPictureInfoFlags;
  56.     };
  57.     UINT  width;
  58.     UINT  height;
  59.     UCHAR BitDepthMinus8Luma;
  60.     UCHAR BitDepthMinus8Chroma;
  61.     UCHAR interp_filter;
  62.     UCHAR Reserved8Bits;
  63.     DXVA_PicEntry_VPx  ref_frame_map[8];
  64.     UINT  ref_frame_coded_width[8];
  65.     UINT  ref_frame_coded_height[8];
  66.     DXVA_PicEntry_VPx  frame_refs[3];
  67.     CHAR  ref_frame_sign_bias[4];
  68.     CHAR  filter_level;
  69.     CHAR  sharpness_level;
  70.     union {
  71.         struct {
  72.             UCHAR mode_ref_delta_enabled : 1;
  73.             UCHAR mode_ref_delta_update : 1;
  74.             UCHAR use_prev_in_find_mv_refs : 1;
  75.             UCHAR ReservedControlInfo5Bits : 5;
  76.         };
  77.         UCHAR wControlInfoFlags;
  78.     };
  79.     CHAR   ref_deltas[4];
  80.     CHAR   mode_deltas[2];
  81.     SHORT  base_qindex;
  82.     CHAR   y_dc_delta_q;
  83.     CHAR   uv_dc_delta_q;
  84.     CHAR   uv_ac_delta_q;
  85.     DXVA_segmentation_VP9 stVP9Segments;
  86.     UCHAR  log2_tile_cols;
  87.     UCHAR  log2_tile_rows;
  88.     USHORT uncompressed_header_size_byte_aligned;
  89.     USHORT first_partition_size;
  90.     USHORT Reserved16Bits;
  91.     UINT   Reserved32Bits;
  92.     UINT   StatusReportFeedbackNumber;
  93. } DXVA_PicParams_VP9, *LPDXVA_PicParams_VP9;
  94.  
  95. /* VP8 segmentation structure */
  96. typedef struct _segmentation_VP8 {
  97.     union {
  98.         struct {
  99.             UCHAR segmentation_enabled : 1;
  100.             UCHAR update_mb_segmentation_map : 1;
  101.             UCHAR update_mb_segmentation_data : 1;
  102.             UCHAR mb_segement_abs_delta : 1;
  103.             UCHAR ReservedSegmentFlags4Bits : 4;
  104.         };
  105.         UCHAR wSegmentFlags;
  106.     };
  107.     CHAR  segment_feature_data[2][4];
  108.     UCHAR mb_segment_tree_probs[3];
  109. } DXVA_segmentation_VP8;
  110.  
  111. /* VP8 picture parameters structure */
  112. typedef struct _DXVA_PicParams_VP8 {
  113.     UINT first_part_size;
  114.     UINT width;
  115.     UINT height;
  116.     DXVA_PicEntry_VPx  CurrPic;
  117.     union {
  118.         struct {
  119.             UCHAR frame_type : 1;
  120.             UCHAR version : 3;
  121.             UCHAR show_frame : 1;
  122.             UCHAR clamp_type : 1;
  123.             UCHAR ReservedFrameTag3Bits : 2;
  124.         };
  125.         UCHAR wFrameTagFlags;
  126.     };
  127.     DXVA_segmentation_VP8  stVP8Segments;
  128.     UCHAR filter_type;
  129.     UCHAR filter_level;
  130.     UCHAR sharpness_level;
  131.     UCHAR mode_ref_lf_delta_enabled;
  132.     UCHAR mode_ref_lf_delta_update;
  133.     CHAR  ref_lf_deltas[4];
  134.     CHAR  mode_lf_deltas[4];
  135.     UCHAR log2_nbr_of_dct_partitions;
  136.     UCHAR base_qindex;
  137.     CHAR  y1dc_delta_q;
  138.     CHAR  y2dc_delta_q;
  139.     CHAR  y2ac_delta_q;
  140.     CHAR  uvdc_delta_q;
  141.     CHAR  uvac_delta_q;
  142.     DXVA_PicEntry_VPx alt_fb_idx;
  143.     DXVA_PicEntry_VPx gld_fb_idx;
  144.     DXVA_PicEntry_VPx lst_fb_idx;
  145.     UCHAR  ref_frame_sign_bias_golden;
  146.     UCHAR  ref_frame_sign_bias_altref;
  147.     UCHAR  refresh_entropy_probs;
  148.     UCHAR  vp8_coef_update_probs[4][8][3][11];
  149.     UCHAR  mb_no_coeff_skip;
  150.     UCHAR  prob_skip_false;
  151.     UCHAR  prob_intra;
  152.     UCHAR  prob_last;
  153.     UCHAR  prob_golden;
  154.     UCHAR  intra_16x16_prob[4];
  155.     UCHAR  intra_chroma_prob[3];
  156.     UCHAR  vp8_mv_update_probs[2][19];
  157.     USHORT ReservedBits1;
  158.     USHORT ReservedBits2;
  159.     USHORT ReservedBits3;
  160.     UINT   StatusReportFeedbackNumber;
  161. } DXVA_PicParams_VP8, *LPDXVA_PicParams_VP8;
  162.  
  163. /* VPx slice control data structure - short form */
  164. typedef struct _DXVA_Slice_VPx_Short {
  165.     UINT   BSNALunitDataLocation;
  166.     UINT   SliceBytesInBuffer;
  167.     USHORT wBadSliceChopping;
  168. } DXVA_Slice_VPx_Short, *LPDXVA_Slice_VPx_Short;
  169.  
  170. /* VPx status reporting data structure */
  171. typedef struct _DXVA_Status_VPx {
  172.     UINT  StatusReportFeedbackNumber;
  173.     DXVA_PicEntry_VPx CurrPic;
  174.     UCHAR  bBufType;
  175.     UCHAR  bStatus;
  176.     UCHAR  bReserved8Bits;
  177.     USHORT wNumMbsAffected;
  178. } DXVA_Status_VPx, *LPDXVA_Status_VPx;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement