xref: /aosp_15_r20/external/libavc/encoder/svc/isvce_rc_mem_interface.h (revision 495ae853bb871d1e5a258cb02c2cc13cde8ddb9a)
1 /******************************************************************************
2  *
3  * Copyright (C) 2022 The Android Open Source Project
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at:
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *****************************************************************************
18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19  */
20 
21 /**
22 ******************************************************************************
23 * @file
24 *  isvce_rc_mem_interface.h
25 *
26 * @brief
27 *  This file contains function declaration and structures for rate control
28 *  memtabs
29 *
30 * @author
31 *  ittiam
32 *
33 * @remarks
34 *  The rate control library is a global library across various codecs. It
35 *  anticipates certain structures definitions. Those definitions are to be
36 *  imported from global workspace. Instead of that, the structures needed for
37 *  rc library are copied in to this file and exported to rc library. If the
38 *  structures / enums / ... in the global workspace change, this file also needs
39 *  to be modified accordingly.
40 *
41 ******************************************************************************
42 */
43 #ifndef _ISVCE_RC_MEM_INTERFACE_H_
44 #define _ISVCE_RC_MEM_INTERFACE_H_
45 
46 #include "irc_mem_req_and_acq.h"
47 
48 /**
49  ***************************************************************************
50  * Enum to hold mem records in RC
51  ****************************************************************************
52  */
53 typedef enum RC_MEM_TYPES_T
54 {
55     RC_MEM_FRAME_TIME,
56 
57     RC_MEM_TIME_STAMP,
58 
59     RC_MEM_FRAME_RATE,
60 
61     RC_MEM_API_L0,
62 
63     RC_MEM_API_L1,
64 
65     RC_MEM_API_L2,
66 
67     RC_MEM_CNT
68 
69     /*
70      * Do not add anything below
71      */
72 } RC_MEM_TYPES_T;
73 
74 extern WORD32 isvce_get_rate_control_mem_tab(void *pv_rate_control, iv_mem_rec_t *ps_mem,
75                                              ITT_FUNC_TYPE_E e_func_type);
76 
77 #endif
78