xref: /rockchip-linux_mpp/inc/rk_vdec_cmd.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2015 Rockchip Electronics Co. LTD
3*437bfbebSnyanmisaka  *
4*437bfbebSnyanmisaka  * Licensed under the Apache License, Version 2.0 (the "License");
5*437bfbebSnyanmisaka  * you may not use this file except in compliance with the License.
6*437bfbebSnyanmisaka  * You may obtain a copy of the License at
7*437bfbebSnyanmisaka  *
8*437bfbebSnyanmisaka  *      http://www.apache.org/licenses/LICENSE-2.0
9*437bfbebSnyanmisaka  *
10*437bfbebSnyanmisaka  * Unless required by applicable law or agreed to in writing, software
11*437bfbebSnyanmisaka  * distributed under the License is distributed on an "AS IS" BASIS,
12*437bfbebSnyanmisaka  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*437bfbebSnyanmisaka  * See the License for the specific language governing permissions and
14*437bfbebSnyanmisaka  * limitations under the License.
15*437bfbebSnyanmisaka  */
16*437bfbebSnyanmisaka 
17*437bfbebSnyanmisaka #ifndef __RK_VDEC_CMD_H__
18*437bfbebSnyanmisaka #define __RK_VDEC_CMD_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_type.h"
21*437bfbebSnyanmisaka #include "mpp_err.h"
22*437bfbebSnyanmisaka 
23*437bfbebSnyanmisaka /*
24*437bfbebSnyanmisaka  * decoder query interface is only for debug usage
25*437bfbebSnyanmisaka  */
26*437bfbebSnyanmisaka #define MPP_DEC_QUERY_STATUS        (0x00000001)
27*437bfbebSnyanmisaka #define MPP_DEC_QUERY_WAIT          (0x00000002)
28*437bfbebSnyanmisaka #define MPP_DEC_QUERY_FPS           (0x00000004)
29*437bfbebSnyanmisaka #define MPP_DEC_QUERY_BPS           (0x00000008)
30*437bfbebSnyanmisaka #define MPP_DEC_QUERY_DEC_IN_PKT    (0x00000010)
31*437bfbebSnyanmisaka #define MPP_DEC_QUERY_DEC_WORK      (0x00000020)
32*437bfbebSnyanmisaka #define MPP_DEC_QUERY_DEC_OUT_FRM   (0x00000040)
33*437bfbebSnyanmisaka 
34*437bfbebSnyanmisaka #define MPP_DEC_QUERY_ALL           (MPP_DEC_QUERY_STATUS       | \
35*437bfbebSnyanmisaka                                      MPP_DEC_QUERY_WAIT         | \
36*437bfbebSnyanmisaka                                      MPP_DEC_QUERY_FPS          | \
37*437bfbebSnyanmisaka                                      MPP_DEC_QUERY_BPS          | \
38*437bfbebSnyanmisaka                                      MPP_DEC_QUERY_DEC_IN_PKT   | \
39*437bfbebSnyanmisaka                                      MPP_DEC_QUERY_DEC_WORK     | \
40*437bfbebSnyanmisaka                                      MPP_DEC_QUERY_DEC_OUT_FRM)
41*437bfbebSnyanmisaka 
42*437bfbebSnyanmisaka typedef struct MppDecQueryCfg_t {
43*437bfbebSnyanmisaka     /*
44*437bfbebSnyanmisaka      * 32 bit query flag for query data check
45*437bfbebSnyanmisaka      * Each bit represent a query data switch.
46*437bfbebSnyanmisaka      * bit 0 - for querying decoder runtime status
47*437bfbebSnyanmisaka      * bit 1 - for querying decoder runtime waiting status
48*437bfbebSnyanmisaka      * bit 2 - for querying decoder realtime decode fps
49*437bfbebSnyanmisaka      * bit 3 - for querying decoder realtime input bps
50*437bfbebSnyanmisaka      * bit 4 - for querying decoder input packet count
51*437bfbebSnyanmisaka      * bit 5 - for querying decoder start hardware times
52*437bfbebSnyanmisaka      * bit 6 - for querying decoder output frame count
53*437bfbebSnyanmisaka      */
54*437bfbebSnyanmisaka     RK_U32      query_flag;
55*437bfbebSnyanmisaka 
56*437bfbebSnyanmisaka     /* 64 bit query data output */
57*437bfbebSnyanmisaka     RK_U32      rt_status;
58*437bfbebSnyanmisaka     RK_U32      rt_wait;
59*437bfbebSnyanmisaka     RK_U32      rt_fps;
60*437bfbebSnyanmisaka     RK_U32      rt_bps;
61*437bfbebSnyanmisaka     RK_U32      dec_in_pkt_cnt;
62*437bfbebSnyanmisaka     RK_U32      dec_hw_run_cnt;
63*437bfbebSnyanmisaka     RK_U32      dec_out_frm_cnt;
64*437bfbebSnyanmisaka } MppDecQueryCfg;
65*437bfbebSnyanmisaka 
66*437bfbebSnyanmisaka typedef void* MppExtCbCtx;
67*437bfbebSnyanmisaka typedef MPP_RET (*MppExtCbFunc)(MppExtCbCtx cb_ctx, MppCtx mpp, RK_S32 cmd, void *arg);
68*437bfbebSnyanmisaka 
69*437bfbebSnyanmisaka #endif /*__RK_VDEC_CMD_H__*/
70