Add v4l2 controls for HEVC encoder
Showing the changes to include/uapi/linux (1 of 2 files). Show all
Unified · Split
| @@ -589,6 +589,98 @@ enum v4l2_vp8_golden_frame_sel { · 588 unmodified lines | |||
| 589 | #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) | 589 | #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) |
| 590 | #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511) | 590 | #define V4L2_CID_MPEG_VIDEO_VPX_PROFILE (V4L2_CID_MPEG_BASE+511) |
| 591 | 591 | ||
| 592 | /* CIDs for HEVC encoding. */ | ||
| 593 | |||
| 594 | #define V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (V4L2_CID_MPEG_BASE + 600) | ||
| 595 | #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (V4L2_CID_MPEG_BASE + 601) | ||
| 596 | #define V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (V4L2_CID_MPEG_BASE + 602) | ||
| 597 | #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (V4L2_CID_MPEG_BASE + 603) | ||
| 598 | #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (V4L2_CID_MPEG_BASE + 604) | ||
| 599 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (V4L2_CID_MPEG_BASE + 605) | ||
| 600 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE (V4L2_CID_MPEG_BASE + 606) | ||
| 601 | enum v4l2_mpeg_video_hevc_hier_coding_type { | ||
| 602 | V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B = 0, | ||
| 603 | V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P = 1, | ||
| 604 | }; | ||
| 605 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (V4L2_CID_MPEG_BASE + 607) | ||
| 606 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (V4L2_CID_MPEG_BASE + 608) | ||
| 607 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (V4L2_CID_MPEG_BASE + 609) | ||
| 608 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (V4L2_CID_MPEG_BASE + 610) | ||
| 609 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (V4L2_CID_MPEG_BASE + 611) | ||
| 610 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (V4L2_CID_MPEG_BASE + 612) | ||
| 611 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (V4L2_CID_MPEG_BASE + 613) | ||
| 612 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (V4L2_CID_MPEG_BASE + 614) | ||
| 613 | #define V4L2_CID_MPEG_VIDEO_HEVC_PROFILE (V4L2_CID_MPEG_BASE + 615) | ||
| 614 | enum v4l2_mpeg_video_hevc_profile { | ||
| 615 | V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN = 0, | ||
| 616 | V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE = 1, | ||
| 617 | V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10 = 2, | ||
| 618 | }; | ||
| 619 | #define V4L2_CID_MPEG_VIDEO_HEVC_LEVEL (V4L2_CID_MPEG_BASE + 616) | ||
| 620 | enum v4l2_mpeg_video_hevc_level { | ||
| 621 | V4L2_MPEG_VIDEO_HEVC_LEVEL_1 = 0, | ||
| 622 | V4L2_MPEG_VIDEO_HEVC_LEVEL_2 = 1, | ||
| 623 | V4L2_MPEG_VIDEO_HEVC_LEVEL_2_1 = 2, | ||
| 624 | V4L2_MPEG_VIDEO_HEVC_LEVEL_3 = 3, | ||
| 625 | V4L2_MPEG_VIDEO_HEVC_LEVEL_3_1 = 4, | ||
| 626 | V4L2_MPEG_VIDEO_HEVC_LEVEL_4 = 5, | ||
| 627 | V4L2_MPEG_VIDEO_HEVC_LEVEL_4_1 = 6, | ||
| 628 | V4L2_MPEG_VIDEO_HEVC_LEVEL_5 = 7, | ||
| 629 | V4L2_MPEG_VIDEO_HEVC_LEVEL_5_1 = 8, | ||
| 630 | V4L2_MPEG_VIDEO_HEVC_LEVEL_5_2 = 9, | ||
| 631 | V4L2_MPEG_VIDEO_HEVC_LEVEL_6 = 10, | ||
| 632 | V4L2_MPEG_VIDEO_HEVC_LEVEL_6_1 = 11, | ||
| 633 | V4L2_MPEG_VIDEO_HEVC_LEVEL_6_2 = 12, | ||
| 634 | }; | ||
| 635 | #define V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION (V4L2_CID_MPEG_BASE + 617) | ||
| 636 | #define V4L2_CID_MPEG_VIDEO_HEVC_TIER (V4L2_CID_MPEG_BASE + 618) | ||
| 637 | enum v4l2_mpeg_video_hevc_tier { | ||
| 638 | V4L2_MPEG_VIDEO_HEVC_TIER_MAIN = 0, | ||
| 639 | V4L2_MPEG_VIDEO_HEVC_TIER_HIGH = 1, | ||
| 640 | }; | ||
| 641 | #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH (V4L2_CID_MPEG_BASE + 619) | ||
| 642 | #define V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE (V4L2_CID_MPEG_BASE + 620) | ||
| 643 | enum v4l2_cid_mpeg_video_hevc_loop_filter_mode { | ||
| 644 | V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED = 0, | ||
| 645 | V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_ENABLED = 1, | ||
| 646 | V4L2_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE_DISABLED_AT_SLICE_BOUNDARY = 2, | ||
| 647 | }; | ||
| 648 | #define V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 621) | ||
| 649 | #define V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2 (V4L2_CID_MPEG_BASE + 622) | ||
| 650 | #define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE (V4L2_CID_MPEG_BASE + 623) | ||
| 651 | enum v4l2_cid_mpeg_video_hevc_refresh_type { | ||
| 652 | V4L2_MPEG_VIDEO_HEVC_REFRESH_NONE = 0, | ||
| 653 | V4L2_MPEG_VIDEO_HEVC_REFRESH_CRA = 1, | ||
| 654 | V4L2_MPEG_VIDEO_HEVC_REFRESH_IDR = 2, | ||
| 655 | }; | ||
| 656 | #define V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD (V4L2_CID_MPEG_BASE + 624) | ||
| 657 | #define V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU (V4L2_CID_MPEG_BASE + 625) | ||
| 658 | #define V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED (V4L2_CID_MPEG_BASE + 626) | ||
| 659 | #define V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT (V4L2_CID_MPEG_BASE + 627) | ||
| 660 | #define V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB (V4L2_CID_MPEG_BASE + 628) | ||
| 661 | #define V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID (V4L2_CID_MPEG_BASE + 629) | ||
| 662 | #define V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING (V4L2_CID_MPEG_BASE + 630) | ||
| 663 | #define V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1 (V4L2_CID_MPEG_BASE + 631) | ||
| 664 | #define V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT (V4L2_CID_MPEG_BASE + 632) | ||
| 665 | #define V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION (V4L2_CID_MPEG_BASE + 633) | ||
| 666 | #define V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE (V4L2_CID_MPEG_BASE + 634) | ||
| 667 | #define V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD (V4L2_CID_MPEG_BASE + 635) | ||
| 668 | enum v4l2_cid_mpeg_video_hevc_size_of_length_field { | ||
| 669 | V4L2_MPEG_VIDEO_HEVC_SIZE_0 = 0, | ||
| 670 | V4L2_MPEG_VIDEO_HEVC_SIZE_1 = 1, | ||
| 671 | V4L2_MPEG_VIDEO_HEVC_SIZE_2 = 2, | ||
| 672 | V4L2_MPEG_VIDEO_HEVC_SIZE_4 = 3, | ||
| 673 | }; | ||
| 674 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR (V4L2_CID_MPEG_BASE + 636) | ||
| 675 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR (V4L2_CID_MPEG_BASE + 637) | ||
| 676 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR (V4L2_CID_MPEG_BASE + 638) | ||
| 677 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR (V4L2_CID_MPEG_BASE + 639) | ||
| 678 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR (V4L2_CID_MPEG_BASE + 640) | ||
| 679 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR (V4L2_CID_MPEG_BASE + 641) | ||
| 680 | #define V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR (V4L2_CID_MPEG_BASE + 642) | ||
| 681 | #define V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES (V4L2_CID_MPEG_BASE + 643) | ||
| 682 | #define V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR (V4L2_CID_MPEG_BASE + 644) | ||
| 683 | |||
| 592 | /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ | 684 | /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ |
| 593 | #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) | 685 | #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) |
| 594 | #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) | 686 | #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_MPEG_CX2341X_BASE+0) |
| @@ -657,7 +749,6 @@ enum v4l2_mpeg_mfc51_video_force_frame_type { · 62 unmodified lines | |||
| 657 | #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) | 749 | #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) |
| 658 | #define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) | 750 | #define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) |
| 659 | 751 | ||
| 660 | |||
| 661 | /* Camera class control IDs */ | 752 | /* Camera class control IDs */ |
| 662 | 753 | ||
| 663 | #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) | 754 | #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) |