1 /*
2 * Copyright(c) 2019 Intel Corporation
3 * SPDX - License - Identifier: BSD - 2 - Clause - Patent
4 */
5 
6 #ifndef EbRateControlTasks_h
7 #define EbRateControlTasks_h
8 
9 #include "EbDefinitions.h"
10 #include "EbSystemResourceManager.h"
11 #include "EbPictureControlSet.h"
12 
13 /**************************************
14  * Tasks Types
15  **************************************/
16 typedef enum RateControlTaskTypes
17 {
18     RC_PICTURE_MANAGER_RESULT,
19     RC_PACKETIZATION_FEEDBACK_RESULT,
20     RC_ENTROPY_CODING_ROW_FEEDBACK_RESULT,
21     RC_INVALID_TASK
22 } RateControlTaskTypes;
23 
24 /**************************************
25  * Process Results
26  **************************************/
27 typedef struct RateControlTasks
28 {
29     RateControlTaskTypes  task_type;
30     EbObjectWrapper      *picture_control_set_wrapper_ptr;
31     uint32_t              segment_index;
32 
33     // Following are valid for RC_ENTROPY_CODING_ROW_FEEDBACK_RESULT only
34     uint64_t              picture_number;
35     uint32_t              row_number;
36     uint32_t              bit_count;
37 
38 } RateControlTasks;
39 
40 typedef struct RateControlTasksInitData {
41     int junk;
42 } RateControlTasksInitData;
43 
44 /**************************************
45  * Extern Function Declarations
46  **************************************/
47 extern EbErrorType eb_vp9_rate_control_tasks_ctor(
48     EbPtr *object_dbl_ptr,
49     EbPtr  object_init_data_ptr);
50 
51 #endif // EbRateControlTasks_h
52