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 | 589 | #define V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP (V4L2_CID_MPEG_BASE+510) |
| 590 | 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 | 684 | /* MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */ |
| 593 | 685 | #define V4L2_CID_MPEG_CX2341X_BASE (V4L2_CTRL_CLASS_MPEG | 0x1000) |
| 594 | 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 | 749 | #define V4L2_CID_MPEG_MFC51_VIDEO_H264_ADAPTIVE_RC_STATIC (V4L2_CID_MPEG_MFC51_BASE+53) |
| 658 | 750 | #define V4L2_CID_MPEG_MFC51_VIDEO_H264_NUM_REF_PIC_FOR_P (V4L2_CID_MPEG_MFC51_BASE+54) |
| 659 | 751 | |
| 660 | − | |
| 661 | 752 | /* Camera class control IDs */ |
| 662 | 753 | |
| 663 | 754 | #define V4L2_CID_CAMERA_CLASS_BASE (V4L2_CTRL_CLASS_CAMERA | 0x900) |