@@ -507,8 +507,19 @@ typedef struct _VAEncPictureParameterBufferVP9 {
507
507
*/
508
508
uint32_t skip_frames_size ;
509
509
510
+ /** \brief Block size for each Segment ID in Segment Map.
511
+ * This specify the granularity of media driver of reading and processing the segment map.
512
+ * 0: 16x16 block size, default value;
513
+ * 1: 32x32 block size;
514
+ * 2: 64x64 block size;
515
+ * 3: 8x8 block size.
516
+ */
517
+ uint8_t seg_id_block_size ;
518
+
519
+ uint8_t va_reserved8 [3 ];
520
+
510
521
/** \brief Reserved bytes for future use, must be zero */
511
- uint32_t va_reserved [VA_PADDING_MEDIUM ];
522
+ uint32_t va_reserved [7 ];
512
523
} VAEncPictureParameterBufferVP9 ;
513
524
514
525
@@ -594,6 +605,30 @@ typedef struct _VAEncMiscParameterTypeVP9PerSegmantParam {
594
605
*/
595
606
596
607
608
+ /** \brief Attribute value for VAConfigAttribEncVP9. */
609
+ typedef union _VAConfigAttribValEncVP9 {
610
+ struct {
611
+ /**
612
+ * \brief Min segmentId block size accepted.
613
+ * This is the granularity of segmentation map.
614
+ */
615
+ uint32_t min_segid_block_size_accepted : 8 ;
616
+
617
+ /**
618
+ * \brief Type of segment feature supported.
619
+ * (segment_feature_support & 0x01) == 1: SEG_LVL_ALT_Q is supported, 0: not.
620
+ * (segment_feature_support & 0x02) == 1: SEG_LVL_ALT_L is supported, 0: not.
621
+ * (segment_feature_support & 0x04) == 1: SEG_LVL_REF_FRAME is supported, 0: not.
622
+ * (segment_feature_support & 0x08) == 1: SEG_LVL_SKIP is supported, 0: not.
623
+ */
624
+ uint32_t segment_feature_support : 4 ;
625
+
626
+ /** \brief Reserved bits for future, must be zero. */
627
+ uint32_t reserved : 20 ;
628
+ } bits ;
629
+ uint32_t value ;
630
+ } VAConfigAttribValEncVP9 ;
631
+
597
632
/**@}*/
598
633
599
634
#ifdef __cplusplus
0 commit comments