xref: /rockchip-linux_mpp/inc/mpp_sys_cfg_st.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __MPP_SYS_CFG_ST_H__
7*437bfbebSnyanmisaka #define __MPP_SYS_CFG_ST_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_type.h"
10*437bfbebSnyanmisaka #include "mpp_err.h"
11*437bfbebSnyanmisaka 
12*437bfbebSnyanmisaka #include "mpp_frame.h"
13*437bfbebSnyanmisaka 
14*437bfbebSnyanmisaka typedef struct MppSysCfgStHStrd_t {
15*437bfbebSnyanmisaka     /* input args start */
16*437bfbebSnyanmisaka     MppCodingType  type;
17*437bfbebSnyanmisaka     RK_U32         fmt_fbc;
18*437bfbebSnyanmisaka     RK_U32         width;
19*437bfbebSnyanmisaka     RK_U32         h_stride_by_byte;
20*437bfbebSnyanmisaka 
21*437bfbebSnyanmisaka     /* output args start */
22*437bfbebSnyanmisaka     RK_U32 h_stride_by_pixel;
23*437bfbebSnyanmisaka } MppSysCfgStHStrd;
24*437bfbebSnyanmisaka 
25*437bfbebSnyanmisaka typedef struct MppSysCfgStHByteStrd_t {
26*437bfbebSnyanmisaka     /* input args start */
27*437bfbebSnyanmisaka     MppCodingType  type;
28*437bfbebSnyanmisaka     MppFrameFormat fmt_codec;
29*437bfbebSnyanmisaka     RK_U32         fmt_fbc;
30*437bfbebSnyanmisaka     RK_U32         width;
31*437bfbebSnyanmisaka 
32*437bfbebSnyanmisaka     /* in/output args start */
33*437bfbebSnyanmisaka     RK_U32 h_stride_by_byte;
34*437bfbebSnyanmisaka } MppSysCfgStHByteStrd;
35*437bfbebSnyanmisaka 
36*437bfbebSnyanmisaka typedef struct MppSysCfgStVStrd_t {
37*437bfbebSnyanmisaka     /* input args start */
38*437bfbebSnyanmisaka     MppCodingType  type;
39*437bfbebSnyanmisaka     RK_U32         fmt_fbc;
40*437bfbebSnyanmisaka     RK_U32         height;
41*437bfbebSnyanmisaka 
42*437bfbebSnyanmisaka     /* in/output args start */
43*437bfbebSnyanmisaka     RK_U32 v_stride;
44*437bfbebSnyanmisaka } MppSysCfgStVStrd;
45*437bfbebSnyanmisaka 
46*437bfbebSnyanmisaka typedef struct MppSysCfgStSize_t {
47*437bfbebSnyanmisaka     /* input args start */
48*437bfbebSnyanmisaka     MppCodingType  type;
49*437bfbebSnyanmisaka     MppFrameFormat fmt_codec;
50*437bfbebSnyanmisaka     RK_U32         fmt_fbc;
51*437bfbebSnyanmisaka     RK_U32         width;
52*437bfbebSnyanmisaka     RK_U32         height;
53*437bfbebSnyanmisaka 
54*437bfbebSnyanmisaka     /* in/output args start */
55*437bfbebSnyanmisaka     RK_U32 h_stride_by_byte;
56*437bfbebSnyanmisaka     RK_U32 v_stride;
57*437bfbebSnyanmisaka 
58*437bfbebSnyanmisaka     /* output args start */
59*437bfbebSnyanmisaka     RK_U32 h_stride_by_pixel;
60*437bfbebSnyanmisaka     RK_U32 size_total;
61*437bfbebSnyanmisaka     RK_U32 size_fbc_hdr;
62*437bfbebSnyanmisaka     RK_U32 size_fbc_bdy;
63*437bfbebSnyanmisaka } MppSysCfgStSize;
64*437bfbebSnyanmisaka 
65*437bfbebSnyanmisaka #ifdef __cplusplus
66*437bfbebSnyanmisaka extern "C" {
67*437bfbebSnyanmisaka #endif
68*437bfbebSnyanmisaka 
69*437bfbebSnyanmisaka MPP_RET mpp_sys_cfg_st_get_h_stride(MppSysCfgStHStrd *h_stride_cfg);
70*437bfbebSnyanmisaka MPP_RET mpp_sys_cfg_st_get_byte_stride(MppSysCfgStHByteStrd *byte_stride_cfg);
71*437bfbebSnyanmisaka MPP_RET mpp_sys_cfg_st_get_v_stride(MppSysCfgStVStrd *v_stride_cfg);
72*437bfbebSnyanmisaka MPP_RET mpp_sys_cfg_st_get_size(MppSysCfgStSize *size_cfg);
73*437bfbebSnyanmisaka 
74*437bfbebSnyanmisaka #ifdef __cplusplus
75*437bfbebSnyanmisaka }
76*437bfbebSnyanmisaka #endif
77*437bfbebSnyanmisaka 
78*437bfbebSnyanmisaka #endif /* MPP_SYS_CFGI_H__ */
79