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