Kuang-che Wu | db9c20b | 2014-04-17 16:14:18 +0800 | [diff] [blame] | 1 | // 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 Wu | db9c20b | 2014-04-17 16:14:18 +0800 | [diff] [blame] | 4 | #include <getopt.h> |
Kuang-che Wu | ca2bd58 | 2014-07-22 18:24:45 +0800 | [diff] [blame] | 5 | #include <stdio.h> |
Kuang-che Wu | db9c20b | 2014-04-17 16:14:18 +0800 | [diff] [blame] | 6 | |
| 7 | #include "label_detect.h" |
| 8 | |
| 9 | int verbose = 0; |
| 10 | |
| 11 | /* detector's name and function. detect_func() returns true if the feature is |
| 12 | * detected. */ |
| 13 | struct detector { |
Tom Hughes | 0e81695 | 2020-08-24 18:04:24 -0700 | [diff] [blame] | 14 | char* name; |
Kuang-che Wu | db9c20b | 2014-04-17 16:14:18 +0800 | [diff] [blame] | 15 | bool (*detect_func)(void); |
| 16 | }; |
| 17 | |
| 18 | struct detector detectors[] = { |
Tom Hughes | 0e81695 | 2020-08-24 18:04:24 -0700 | [diff] [blame] | 19 | {"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 Cho | 7978486 | 2021-01-22 13:59:00 -0800 | [diff] [blame] | 25 | {"hw_video_acc_av1", detect_video_acc_av1}, |
| 26 | {"hw_video_acc_av1_10bpp", detect_video_acc_av1_10bpp}, |
Jeffrey Kardatzke | eab7cc0 | 2021-02-24 12:53:14 -0800 | [diff] [blame] | 27 | {"hw_video_acc_hevc", detect_video_acc_hevc}, |
| 28 | {"hw_video_acc_hevc_10bpp", detect_video_acc_hevc_10bpp}, |
Tom Hughes | 0e81695 | 2020-08-24 18:04:24 -0700 | [diff] [blame] | 29 | {"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 Cho | 7978486 | 2021-01-22 13:59:00 -0800 | [diff] [blame] | 40 | {"hw_video_acc_av1_4k", detect_4k_device_av1}, |
| 41 | {"hw_video_acc_av1_4k_10bpp", detect_4k_device_av1_10bpp}, |
Jeffrey Kardatzke | eab7cc0 | 2021-02-24 12:53:14 -0800 | [diff] [blame] | 42 | {"hw_video_acc_hevc_4k", detect_4k_device_hevc}, |
| 43 | {"hw_video_acc_hevc_4k_10bpp", detect_4k_device_hevc_10bpp}, |
Tom Hughes | 0e81695 | 2020-08-24 18:04:24 -0700 | [diff] [blame] | 44 | {"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 Kardatzke | 819314a | 2021-03-01 17:10:32 -0800 | [diff] [blame] | 47 | {"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 Hughes | 0e81695 | 2020-08-24 18:04:24 -0700 | [diff] [blame] | 57 | {NULL, NULL}}; |
Kuang-che Wu | db9c20b | 2014-04-17 16:14:18 +0800 | [diff] [blame] | 58 | |
Tom Hughes | 0e81695 | 2020-08-24 18:04:24 -0700 | [diff] [blame] | 59 | int main(int argc, char* argv[]) { |
Kuang-che Wu | db9c20b | 2014-04-17 16:14:18 +0800 | [diff] [blame] | 60 | 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 Wu | 6b5559a | 2016-06-23 10:07:59 +0800 | [diff] [blame] | 81 | |
| 82 | TRACE("Detect via table look up\n"); |
| 83 | detect_label_by_board_name(); |
Kuang-che Wu | db9c20b | 2014-04-17 16:14:18 +0800 | [diff] [blame] | 84 | return 0; |
| 85 | } |