1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka * Copyright (c) 2015 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka */
5*437bfbebSnyanmisaka
6*437bfbebSnyanmisaka #define MODULE_TAG "mpp_plat_test"
7*437bfbebSnyanmisaka
8*437bfbebSnyanmisaka #include "mpp_log.h"
9*437bfbebSnyanmisaka #include "mpp_platform.h"
10*437bfbebSnyanmisaka #include "vcodec_service.h"
11*437bfbebSnyanmisaka
main()12*437bfbebSnyanmisaka int main()
13*437bfbebSnyanmisaka {
14*437bfbebSnyanmisaka const char *dev = NULL;
15*437bfbebSnyanmisaka RK_U32 vcodec_type = mpp_get_vcodec_type();
16*437bfbebSnyanmisaka MppKernelVersion kernel_version = mpp_get_kernel_version();
17*437bfbebSnyanmisaka MppIoctlVersion ioctl_version = mpp_get_ioctl_version();
18*437bfbebSnyanmisaka
19*437bfbebSnyanmisaka mpp_log("kernel version: %s\n",
20*437bfbebSnyanmisaka kernel_version == KERNEL_UNKNOWN ? "unknown" :
21*437bfbebSnyanmisaka kernel_version == KERNEL_3_10 ? "3.10" :
22*437bfbebSnyanmisaka kernel_version == KERNEL_4_4 ? "4.4" :
23*437bfbebSnyanmisaka kernel_version == KERNEL_4_19 ? "4.19" :
24*437bfbebSnyanmisaka kernel_version == KERNEL_5_10 ? "5.10" :
25*437bfbebSnyanmisaka kernel_version == KERNEL_6_1 ? "6.1" :
26*437bfbebSnyanmisaka NULL);
27*437bfbebSnyanmisaka mpp_log("ioctl version: %s\n",
28*437bfbebSnyanmisaka ioctl_version == IOCTL_VCODEC_SERVICE ? "vcodec_service" :
29*437bfbebSnyanmisaka ioctl_version == IOCTL_MPP_SERVICE_V1 ? "mpp_service" :
30*437bfbebSnyanmisaka "unknown");
31*437bfbebSnyanmisaka mpp_log("\n");
32*437bfbebSnyanmisaka
33*437bfbebSnyanmisaka mpp_log("chip name: %s\n", mpp_get_soc_name());
34*437bfbebSnyanmisaka mpp_log("\n");
35*437bfbebSnyanmisaka mpp_log("chip vcodec type %08x\n", vcodec_type);
36*437bfbebSnyanmisaka
37*437bfbebSnyanmisaka if (vcodec_type & (HAVE_VDPU1 | HAVE_VEPU1))
38*437bfbebSnyanmisaka mpp_log("found vpu1 codec\n");
39*437bfbebSnyanmisaka
40*437bfbebSnyanmisaka if (vcodec_type & (HAVE_VDPU2 | HAVE_VEPU2))
41*437bfbebSnyanmisaka mpp_log("found vpu2 codec\n");
42*437bfbebSnyanmisaka
43*437bfbebSnyanmisaka if (vcodec_type & HAVE_HEVC_DEC)
44*437bfbebSnyanmisaka mpp_log("found rk hevc decoder\n");
45*437bfbebSnyanmisaka
46*437bfbebSnyanmisaka if (vcodec_type & HAVE_RKVDEC)
47*437bfbebSnyanmisaka mpp_log("found rkvdec decoder\n");
48*437bfbebSnyanmisaka
49*437bfbebSnyanmisaka if (vcodec_type & HAVE_AVSDEC)
50*437bfbebSnyanmisaka mpp_log("found avs+ decoder\n");
51*437bfbebSnyanmisaka
52*437bfbebSnyanmisaka if (vcodec_type & HAVE_JPEG_DEC)
53*437bfbebSnyanmisaka mpp_log("found rk jpeg decoder\n");
54*437bfbebSnyanmisaka
55*437bfbebSnyanmisaka if (vcodec_type & HAVE_JPEG_ENC)
56*437bfbebSnyanmisaka mpp_log("found rk jpeg encoder\n");
57*437bfbebSnyanmisaka
58*437bfbebSnyanmisaka if (vcodec_type & HAVE_RKVENC)
59*437bfbebSnyanmisaka mpp_log("found rkvenc encoder\n");
60*437bfbebSnyanmisaka
61*437bfbebSnyanmisaka if (vcodec_type & HAVE_VEPU2)
62*437bfbebSnyanmisaka mpp_log("found vpu2 encoder\n");
63*437bfbebSnyanmisaka
64*437bfbebSnyanmisaka if (vcodec_type & HAVE_VEPU22)
65*437bfbebSnyanmisaka mpp_log("found h265 stand-alone encoder\n");
66*437bfbebSnyanmisaka
67*437bfbebSnyanmisaka mpp_log("\n");
68*437bfbebSnyanmisaka mpp_log("start probing decoder device name:\n");
69*437bfbebSnyanmisaka
70*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_DEC, MPP_VIDEO_CodingAVC);
71*437bfbebSnyanmisaka mpp_log("H.264 decoder: %s\n", dev);
72*437bfbebSnyanmisaka
73*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_DEC, MPP_VIDEO_CodingHEVC);
74*437bfbebSnyanmisaka mpp_log("H.265 decoder: %s\n", dev);
75*437bfbebSnyanmisaka
76*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_DEC, MPP_VIDEO_CodingMJPEG);
77*437bfbebSnyanmisaka mpp_log("MJPEG decoder: %s\n", dev);
78*437bfbebSnyanmisaka
79*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_DEC, MPP_VIDEO_CodingVP9);
80*437bfbebSnyanmisaka mpp_log("VP9 decoder: %s\n", dev);
81*437bfbebSnyanmisaka
82*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_DEC, MPP_VIDEO_CodingAVSPLUS);
83*437bfbebSnyanmisaka mpp_log("avs+ decoder: %s\n", dev);
84*437bfbebSnyanmisaka
85*437bfbebSnyanmisaka mpp_log("\n");
86*437bfbebSnyanmisaka mpp_log("start probing encoder device name:\n");
87*437bfbebSnyanmisaka
88*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_ENC, MPP_VIDEO_CodingAVC);
89*437bfbebSnyanmisaka mpp_log("H.264 encoder: %s\n", dev);
90*437bfbebSnyanmisaka
91*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_ENC, MPP_VIDEO_CodingHEVC);
92*437bfbebSnyanmisaka mpp_log("H.265 encoder: %s\n", dev);
93*437bfbebSnyanmisaka
94*437bfbebSnyanmisaka dev = mpp_get_vcodec_dev_name(MPP_CTX_ENC, MPP_VIDEO_CodingMJPEG);
95*437bfbebSnyanmisaka mpp_log("MJPEG encoder: %s\n", dev);
96*437bfbebSnyanmisaka
97*437bfbebSnyanmisaka mpp_log("mpp platform test done\n");
98*437bfbebSnyanmisaka
99*437bfbebSnyanmisaka return 0;
100*437bfbebSnyanmisaka }
101*437bfbebSnyanmisaka
102