xref: /rockchip-linux_mpp/osal/test/mpp_platform_test.c (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
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