1 /*
2 * Copyright(c) 2019 Intel Corporation
3 *
4 * This source code is subject to the terms of the BSD 2 Clause License and
5 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6 * was not distributed with this source code in the LICENSE file, you can
7 * obtain it at https://www.aomedia.org/license/software-license. If the Alliance for Open
8 * Media Patent License 1.0 was not distributed with this source code in the
9 * PATENTS file, you can obtain it at https://www.aomedia.org/license/patent-license.
10 */
11 
12 #ifndef EbRateControlTasks_h
13 #define EbRateControlTasks_h
14 
15 #include "EbDefinitions.h"
16 #include "EbSystemResourceManager.h"
17 #include "EbObject.h"
18 
19 /**************************************
20  * Tasks Types
21  **************************************/
22 typedef enum RateControlTaskTypes {
23     RC_INPUT,
24     RC_PACKETIZATION_FEEDBACK_RESULT,
25     RC_ENTROPY_CODING_ROW_FEEDBACK_RESULT,
26     RC_INVALID_TASK
27 } RateControlTaskTypes;
28 
29 /**************************************
30  * Process Results
31  **************************************/
32 typedef struct RateControlTasks {
33     EbDctor              dctor;
34     RateControlTaskTypes task_type;
35     EbObjectWrapper *    pcs_wrapper_ptr;
36     // Following are valid for RC_ENTROPY_CODING_ROW_FEEDBACK_RESULT only
37     uint64_t picture_number;
38     uint32_t row_number;
39     uint32_t bit_count;
40 } RateControlTasks;
41 
42 typedef struct RateControlTasksInitData {
43     int32_t junk;
44 } RateControlTasksInitData;
45 
46 /**************************************
47  * Extern Function Declarations
48  **************************************/
49 extern EbErrorType rate_control_tasks_creator(EbPtr *object_dbl_ptr, EbPtr object_init_data_ptr);
50 
51 #endif // EbRateControlTasks_h
52