dengzedong
2024-12-19 85b2001c0ec2f1adc598db3bf47ad457dcca7074
提交 | 用户 | 时间
149dd0 1 package com.iailab.netsdk.lib.enumeration;
H 2
3 /**
4  * H264 编码级别
5  *
6  * @author 47040
7  * @since Created at 2021/5/26 9:04
8  */
9 public enum EM_H264_PROFILE_RANK {
10     /**
11      * 提供I/P帧,仅支持 progressive(逐行扫描)和 CAVLC
12      */
13     NET_PROFILE_BASELINE(1, "BASELINE"),
14     /**
15      * 提供I/P/B帧,支持 progressive 和 interlaced,提供 CAVLC 或 CABAC
16      */
17     NET_PROFILE_MAIN(2, "MAIN"),
18     /**
19      * 提供I/P/B/SP/SI帧,仅支持 progressive (逐行扫描)和 CAVLC
20      */
21     NET_PROFILE_EXTENDED(3, "EXTENDED"),
22     /**
23      * 即 FRExt,Main_Profile基础上新增:8x8 intra prediction(8x8 帧内预测), custom
24      * quaint(自定义量化), lossless video coding(无损视频编码), 更多的 yuv 格式
25      */
26     NET_PROFILE_HIGH(4, "HIGH");
27
28     private final int value;
29     private final String note;
30
31     EM_H264_PROFILE_RANK(int givenValue, String note) {
32         this.value = givenValue;
33         this.note = note;
34     }
35
36     public String getNote() {
37         return note;
38     }
39
40     public int getValue() {
41         return value;
42     }
43
44     public static String getNoteByValue(int givenValue) {
45         for (EM_H264_PROFILE_RANK enumType : EM_H264_PROFILE_RANK.values()) {
46             if (givenValue == enumType.getValue()) {
47                 return enumType.getNote();
48             }
49         }
50         return null;
51     }
52
53     public static int getValueByNote(String givenNote) {
54         for (EM_H264_PROFILE_RANK enumType : EM_H264_PROFILE_RANK.values()) {
55             if (givenNote.equals(enumType.getNote())) {
56                 return enumType.getValue();
57             }
58         }
59         return -1;
60     }
61
62     public static EM_H264_PROFILE_RANK getEnum(int value) {
63         for (EM_H264_PROFILE_RANK e : EM_H264_PROFILE_RANK.values()) {
64             if (e.getValue() == value)
65                 return e;
66         }
67         return EM_H264_PROFILE_RANK.NET_PROFILE_BASELINE;
68     }
69 }