blob: 78195c5145f068dcba3734ec96816c21a2c09957 [file] [log] [blame]
Kuang-che Wudb9c20b2014-04-17 16:14:18 +08001// Copyright 2014 The Chromium OS Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
Kuang-che Wudb9c20b2014-04-17 16:14:18 +08004#include <getopt.h>
Kuang-che Wuca2bd582014-07-22 18:24:45 +08005#include <stdio.h>
Kuang-che Wudb9c20b2014-04-17 16:14:18 +08006
7#include "label_detect.h"
8
9int verbose = 0;
10
11/* detector's name and function. detect_func() returns true if the feature is
12 * detected. */
13struct detector {
Tom Hughes0e816952020-08-24 18:04:24 -070014 char* name;
Kuang-che Wudb9c20b2014-04-17 16:14:18 +080015 bool (*detect_func)(void);
16};
17
18struct detector detectors[] = {
Tom Hughes0e816952020-08-24 18:04:24 -070019 {"hw_jpeg_acc_dec", detect_jpeg_acc_dec},
20 {"hw_jpeg_acc_enc", detect_jpeg_acc_enc},
21 {"hw_video_acc_h264", detect_video_acc_h264},
22 {"hw_video_acc_vp8", detect_video_acc_vp8},
23 {"hw_video_acc_vp9", detect_video_acc_vp9},
24 {"hw_video_acc_vp9_2", detect_video_acc_vp9_2},
Steve Cho79784862021-01-22 13:59:00 -080025 {"hw_video_acc_av1", detect_video_acc_av1},
26 {"hw_video_acc_av1_10bpp", detect_video_acc_av1_10bpp},
Jeffrey Kardatzkeeab7cc02021-02-24 12:53:14 -080027 {"hw_video_acc_hevc", detect_video_acc_hevc},
28 {"hw_video_acc_hevc_10bpp", detect_video_acc_hevc_10bpp},
Tom Hughes0e816952020-08-24 18:04:24 -070029 {"hw_video_acc_enc_h264", detect_video_acc_enc_h264},
30 {"hw_video_acc_enc_vp8", detect_video_acc_enc_vp8},
31 {"hw_video_acc_enc_vp9", detect_video_acc_enc_vp9},
32 {"builtin_usb_camera", detect_builtin_usb_camera},
33 {"builtin_mipi_camera", detect_builtin_mipi_camera},
34 {"vivid_camera", detect_vivid_camera},
35 {"builtin_camera", detect_builtin_camera},
36 {"builtin_or_vivid_camera", detect_builtin_or_vivid_camera},
37 {"hw_video_acc_h264_4k", detect_4k_device_h264},
38 {"hw_video_acc_vp8_4k", detect_4k_device_vp8},
39 {"hw_video_acc_vp9_4k", detect_4k_device_vp9},
Steve Cho79784862021-01-22 13:59:00 -080040 {"hw_video_acc_av1_4k", detect_4k_device_av1},
41 {"hw_video_acc_av1_4k_10bpp", detect_4k_device_av1_10bpp},
Jeffrey Kardatzkeeab7cc02021-02-24 12:53:14 -080042 {"hw_video_acc_hevc_4k", detect_4k_device_hevc},
43 {"hw_video_acc_hevc_4k_10bpp", detect_4k_device_hevc_10bpp},
Tom Hughes0e816952020-08-24 18:04:24 -070044 {"hw_video_acc_enc_h264_4k", detect_4k_device_enc_h264},
45 {"hw_video_acc_enc_vp8_4k", detect_4k_device_enc_vp8},
46 {"hw_video_acc_enc_vp9_4k", detect_4k_device_enc_vp9},
Jeffrey Kardatzke819314a2021-03-01 17:10:32 -080047 {"hw_video_prot_cencv1_h264_cbc", detect_video_prot_cencv1_h264_cbc},
48 {"hw_video_prot_cencv1_h264_ctr", detect_video_prot_cencv1_h264_ctr},
49 {"hw_video_prot_cencv3_av1_cbc", detect_video_prot_cencv3_av1_cbc},
50 {"hw_video_prot_cencv3_av1_ctr", detect_video_prot_cencv3_av1_ctr},
51 {"hw_video_prot_cencv3_h264_cbc", detect_video_prot_cencv3_h264_cbc},
52 {"hw_video_prot_cencv3_h264_ctr", detect_video_prot_cencv3_h264_ctr},
53 {"hw_video_prot_cencv3_hevc_cbc", detect_video_prot_cencv3_hevc_cbc},
54 {"hw_video_prot_cencv3_hevc_ctr", detect_video_prot_cencv3_hevc_ctr},
55 {"hw_video_prot_cencv3_vp9_cbc", detect_video_prot_cencv3_vp9_cbc},
56 {"hw_video_prot_cencv3_vp9_ctr", detect_video_prot_cencv3_vp9_ctr},
Tom Hughes0e816952020-08-24 18:04:24 -070057 {NULL, NULL}};
Kuang-che Wudb9c20b2014-04-17 16:14:18 +080058
Tom Hughes0e816952020-08-24 18:04:24 -070059int main(int argc, char* argv[]) {
Kuang-che Wudb9c20b2014-04-17 16:14:18 +080060 int i;
61 int opt;
62
63 while ((opt = getopt(argc, argv, "vh")) != -1) {
64 switch (opt) {
65 case 'v':
66 verbose = 1;
67 break;
68 case 'h':
69 printf("Usage: %s [-vh]\n", argv[0]);
70 return 0;
71 }
72 }
73
74 for (i = 0; detectors[i].name; i++) {
75 TRACE("Detecting [%s]\n", detectors[i].name);
76 if (detectors[i].detect_func()) {
77 printf("Detected label: %s\n", detectors[i].name);
78 }
79 TRACE("\n");
80 }
Kuang-che Wu6b5559a2016-06-23 10:07:59 +080081
82 TRACE("Detect via table look up\n");
83 detect_label_by_board_name();
Kuang-che Wudb9c20b2014-04-17 16:14:18 +080084 return 0;
85}