diff options
Diffstat (limited to 'drivers/media/v4l2-core/v4l2-ctrls.c')
-rw-r--r-- | drivers/media/v4l2-core/v4l2-ctrls.c | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c index ce08b50b8290..d29e45516eb7 100644 --- a/drivers/media/v4l2-core/v4l2-ctrls.c +++ b/drivers/media/v4l2-core/v4l2-ctrls.c | |||
@@ -480,6 +480,57 @@ const char * const *v4l2_ctrl_get_menu(u32 id) | |||
480 | NULL, | 480 | NULL, |
481 | }; | 481 | }; |
482 | 482 | ||
483 | static const char * const hevc_profile[] = { | ||
484 | "Main", | ||
485 | "Main Still Picture", | ||
486 | "Main 10", | ||
487 | NULL, | ||
488 | }; | ||
489 | static const char * const hevc_level[] = { | ||
490 | "1", | ||
491 | "2", | ||
492 | "2.1", | ||
493 | "3", | ||
494 | "3.1", | ||
495 | "4", | ||
496 | "4.1", | ||
497 | "5", | ||
498 | "5.1", | ||
499 | "5.2", | ||
500 | "6", | ||
501 | "6.1", | ||
502 | "6.2", | ||
503 | NULL, | ||
504 | }; | ||
505 | static const char * const hevc_hierarchial_coding_type[] = { | ||
506 | "B", | ||
507 | "P", | ||
508 | NULL, | ||
509 | }; | ||
510 | static const char * const hevc_refresh_type[] = { | ||
511 | "None", | ||
512 | "CRA", | ||
513 | "IDR", | ||
514 | NULL, | ||
515 | }; | ||
516 | static const char * const hevc_size_of_length_field[] = { | ||
517 | "0", | ||
518 | "1", | ||
519 | "2", | ||
520 | "4", | ||
521 | NULL, | ||
522 | }; | ||
523 | static const char * const hevc_tier[] = { | ||
524 | "Main", | ||
525 | "High", | ||
526 | NULL, | ||
527 | }; | ||
528 | static const char * const hevc_loop_filter_mode[] = { | ||
529 | "Disabled", | ||
530 | "Enabled", | ||
531 | "Disabled at slice boundary", | ||
532 | "NULL", | ||
533 | }; | ||
483 | 534 | ||
484 | switch (id) { | 535 | switch (id) { |
485 | case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: | 536 | case V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ: |
@@ -575,6 +626,20 @@ const char * const *v4l2_ctrl_get_menu(u32 id) | |||
575 | return dv_it_content_type; | 626 | return dv_it_content_type; |
576 | case V4L2_CID_DETECT_MD_MODE: | 627 | case V4L2_CID_DETECT_MD_MODE: |
577 | return detect_md_mode; | 628 | return detect_md_mode; |
629 | case V4L2_CID_MPEG_VIDEO_HEVC_PROFILE: | ||
630 | return hevc_profile; | ||
631 | case V4L2_CID_MPEG_VIDEO_HEVC_LEVEL: | ||
632 | return hevc_level; | ||
633 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE: | ||
634 | return hevc_hierarchial_coding_type; | ||
635 | case V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE: | ||
636 | return hevc_refresh_type; | ||
637 | case V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD: | ||
638 | return hevc_size_of_length_field; | ||
639 | case V4L2_CID_MPEG_VIDEO_HEVC_TIER: | ||
640 | return hevc_tier; | ||
641 | case V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE: | ||
642 | return hevc_loop_filter_mode; | ||
578 | 643 | ||
579 | default: | 644 | default: |
580 | return NULL; | 645 | return NULL; |
@@ -776,6 +841,53 @@ const char *v4l2_ctrl_get_name(u32 id) | |||
776 | case V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP: return "VPX P-Frame QP Value"; | 841 | case V4L2_CID_MPEG_VIDEO_VPX_P_FRAME_QP: return "VPX P-Frame QP Value"; |
777 | case V4L2_CID_MPEG_VIDEO_VPX_PROFILE: return "VPX Profile"; | 842 | case V4L2_CID_MPEG_VIDEO_VPX_PROFILE: return "VPX Profile"; |
778 | 843 | ||
844 | /* HEVC controls */ | ||
845 | case V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP: return "HEVC I-Frame QP Value"; | ||
846 | case V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP: return "HEVC P-Frame QP Value"; | ||
847 | case V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP: return "HEVC B-Frame QP Value"; | ||
848 | case V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP: return "HEVC Minimum QP Value"; | ||
849 | case V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP: return "HEVC Maximum QP Value"; | ||
850 | case V4L2_CID_MPEG_VIDEO_HEVC_PROFILE: return "HEVC Profile"; | ||
851 | case V4L2_CID_MPEG_VIDEO_HEVC_LEVEL: return "HEVC Level"; | ||
852 | case V4L2_CID_MPEG_VIDEO_HEVC_TIER: return "HEVC Tier"; | ||
853 | case V4L2_CID_MPEG_VIDEO_HEVC_FRAME_RATE_RESOLUTION: return "HEVC Frame Rate Resolution"; | ||
854 | case V4L2_CID_MPEG_VIDEO_HEVC_MAX_PARTITION_DEPTH: return "HEVC Maximum Coding Unit Depth"; | ||
855 | case V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE: return "HEVC Refresh Type"; | ||
856 | case V4L2_CID_MPEG_VIDEO_HEVC_CONST_INTRA_PRED: return "HEVC Constant Intra Prediction"; | ||
857 | case V4L2_CID_MPEG_VIDEO_HEVC_LOSSLESS_CU: return "HEVC Lossless Encoding"; | ||
858 | case V4L2_CID_MPEG_VIDEO_HEVC_WAVEFRONT: return "HEVC Wavefront"; | ||
859 | case V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE: return "HEVC Loop Filter"; | ||
860 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP: return "HEVC QP Values"; | ||
861 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE: return "HEVC Hierarchical Coding Type"; | ||
862 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER: return "HEVC Hierarchical Coding Layer"; | ||
863 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP: return "HEVC Hierarchical Layer 0 QP"; | ||
864 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP: return "HEVC Hierarchical Layer 1 QP"; | ||
865 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP: return "HEVC Hierarchical Layer 2 QP"; | ||
866 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP: return "HEVC Hierarchical Layer 3 QP"; | ||
867 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP: return "HEVC Hierarchical Layer 4 QP"; | ||
868 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP: return "HEVC Hierarchical Layer 5 QP"; | ||
869 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP: return "HEVC Hierarchical Layer 6 QP"; | ||
870 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_BR: return "HEVC Hierarchical Lay 0 BitRate"; | ||
871 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_BR: return "HEVC Hierarchical Lay 1 BitRate"; | ||
872 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_BR: return "HEVC Hierarchical Lay 2 BitRate"; | ||
873 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_BR: return "HEVC Hierarchical Lay 3 BitRate"; | ||
874 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_BR: return "HEVC Hierarchical Lay 4 BitRate"; | ||
875 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_BR: return "HEVC Hierarchical Lay 5 BitRate"; | ||
876 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_BR: return "HEVC Hierarchical Lay 6 BitRate"; | ||
877 | case V4L2_CID_MPEG_VIDEO_HEVC_GENERAL_PB: return "HEVC General PB"; | ||
878 | case V4L2_CID_MPEG_VIDEO_HEVC_TEMPORAL_ID: return "HEVC Temporal ID"; | ||
879 | case V4L2_CID_MPEG_VIDEO_HEVC_STRONG_SMOOTHING: return "HEVC Strong Intra Smoothing"; | ||
880 | case V4L2_CID_MPEG_VIDEO_HEVC_INTRA_PU_SPLIT: return "HEVC Intra PU Split"; | ||
881 | case V4L2_CID_MPEG_VIDEO_HEVC_TMV_PREDICTION: return "HEVC TMV Prediction"; | ||
882 | case V4L2_CID_MPEG_VIDEO_HEVC_MAX_NUM_MERGE_MV_MINUS1: return "HEVC Max Num of Candidate MVs"; | ||
883 | case V4L2_CID_MPEG_VIDEO_HEVC_WITHOUT_STARTCODE: return "HEVC ENC Without Startcode"; | ||
884 | case V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_PERIOD: return "HEVC Num of I-Frame b/w 2 IDR"; | ||
885 | case V4L2_CID_MPEG_VIDEO_HEVC_LF_BETA_OFFSET_DIV2: return "HEVC Loop Filter Beta Offset"; | ||
886 | case V4L2_CID_MPEG_VIDEO_HEVC_LF_TC_OFFSET_DIV2: return "HEVC Loop Filter TC Offset"; | ||
887 | case V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD: return "HEVC Size of Length Field"; | ||
888 | case V4L2_CID_MPEG_VIDEO_REF_NUMBER_FOR_PFRAMES: return "Reference Frames for a P-Frame"; | ||
889 | case V4L2_CID_MPEG_VIDEO_PREPEND_SPSPPS_TO_IDR: return "Prepend SPS and PPS to IDR"; | ||
890 | |||
779 | /* CAMERA controls */ | 891 | /* CAMERA controls */ |
780 | /* Keep the order of the 'case's the same as in v4l2-controls.h! */ | 892 | /* Keep the order of the 'case's the same as in v4l2-controls.h! */ |
781 | case V4L2_CID_CAMERA_CLASS: return "Camera Controls"; | 893 | case V4L2_CID_CAMERA_CLASS: return "Camera Controls"; |
@@ -1069,6 +1181,13 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, | |||
1069 | case V4L2_CID_TUNE_DEEMPHASIS: | 1181 | case V4L2_CID_TUNE_DEEMPHASIS: |
1070 | case V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL: | 1182 | case V4L2_CID_MPEG_VIDEO_VPX_GOLDEN_FRAME_SEL: |
1071 | case V4L2_CID_DETECT_MD_MODE: | 1183 | case V4L2_CID_DETECT_MD_MODE: |
1184 | case V4L2_CID_MPEG_VIDEO_HEVC_PROFILE: | ||
1185 | case V4L2_CID_MPEG_VIDEO_HEVC_LEVEL: | ||
1186 | case V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE: | ||
1187 | case V4L2_CID_MPEG_VIDEO_HEVC_REFRESH_TYPE: | ||
1188 | case V4L2_CID_MPEG_VIDEO_HEVC_SIZE_OF_LENGTH_FIELD: | ||
1189 | case V4L2_CID_MPEG_VIDEO_HEVC_TIER: | ||
1190 | case V4L2_CID_MPEG_VIDEO_HEVC_LOOP_FILTER_MODE: | ||
1072 | *type = V4L2_CTRL_TYPE_MENU; | 1191 | *type = V4L2_CTRL_TYPE_MENU; |
1073 | break; | 1192 | break; |
1074 | case V4L2_CID_LINK_FREQ: | 1193 | case V4L2_CID_LINK_FREQ: |