blob: ed4b855dbe3eca3bf2c8e6ed973eb6cb0770e4ee [file] [log] [blame]
// Copyright 2014 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <getopt.h>
#include <stdio.h>
#include "label_detect.h"
int verbose = 0;
/* detector's name and function. detect_func() returns true if the feature is
* detected. */
struct detector {
char *name;
bool (*detect_func)(void);
};
struct detector detectors[] = {
{ "hw_jpeg_acc_dec", detect_jpeg_acc_dec },
{ "hw_jpeg_acc_enc", detect_jpeg_acc_enc },
{ "hw_video_acc_h264", detect_video_acc_h264 },
{ "hw_video_acc_vp8", detect_video_acc_vp8 },
{ "hw_video_acc_vp9", detect_video_acc_vp9 },
{ "hw_video_acc_vp9_2", detect_video_acc_vp9_2 },
{ "hw_video_acc_enc_h264", detect_video_acc_enc_h264 },
{ "hw_video_acc_enc_vp8", detect_video_acc_enc_vp8 },
{ "hw_video_acc_enc_vp9", detect_video_acc_enc_vp9 },
{ "builtin_usb_camera", detect_builtin_usb_camera },
{ "builtin_mipi_camera", detect_builtin_mipi_camera },
{ "vivid_camera", detect_vivid_camera },
{ "builtin_camera", detect_builtin_camera },
{ "builtin_or_vivid_camera", detect_builtin_or_vivid_camera },
{ "hw_video_acc_h264_4k", detect_4k_device_h264},
{ "hw_video_acc_vp8_4k", detect_4k_device_vp8},
{ "hw_video_acc_vp9_4k", detect_4k_device_vp9},
{ "hw_video_acc_enc_h264_4k", detect_4k_device_enc_h264},
{ "hw_video_acc_enc_vp8_4k", detect_4k_device_enc_vp8},
{ "hw_video_acc_enc_vp9_4k", detect_4k_device_enc_vp9},
{ NULL, NULL }
};
int main(int argc, char *argv[]) {
int i;
int opt;
while ((opt = getopt(argc, argv, "vh")) != -1) {
switch (opt) {
case 'v':
verbose = 1;
break;
case 'h':
printf("Usage: %s [-vh]\n", argv[0]);
return 0;
}
}
for (i = 0; detectors[i].name; i++) {
TRACE("Detecting [%s]\n", detectors[i].name);
if (detectors[i].detect_func()) {
printf("Detected label: %s\n", detectors[i].name);
}
TRACE("\n");
}
TRACE("Detect via table look up\n");
detect_label_by_board_name();
return 0;
}