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 EbPictureResults_h
13 #define EbPictureResults_h
14 
15 #include "EbSystemResourceManager.h"
16 #include "EbObject.h"
17 
18 /**************************************
19  * Enums
20  **************************************/
21 typedef enum EbPicType {
22     EB_PIC_INVALID   = 0,
23     EB_PIC_INPUT     = 1,
24     EB_PIC_REFERENCE = 2,
25     EB_PIC_FEEDBACK  = 3
26 } EbPicType;
27 
28 /**************************************
29  * Picture Demux Results
30  **************************************/
31 typedef struct PictureDemuxResults {
32     EbDctor   dctor;
33     EbPicType picture_type;
34 
35     // Only valid for input pictures
36     EbObjectWrapper *pcs_wrapper_ptr;
37 
38     // Only valid for reference pictures
39     EbObjectWrapper *reference_picture_wrapper_ptr;
40     EbObjectWrapper *scs_wrapper_ptr;
41     uint64_t         picture_number;
42     uint64_t         decode_order;
43 } PictureDemuxResults;
44 
45 typedef struct PictureResultInitData {
46     int32_t junk;
47 } PictureResultInitData;
48 
49 /**************************************
50  * Extern Function Declarations
51  **************************************/
52 extern EbErrorType picture_results_creator(EbPtr *object_dbl_ptr, EbPtr object_init_data_ptr);
53 
54 typedef struct PictureManagerResults {
55     EbDctor          dctor;
56     EbObjectWrapper *pcs_wrapper_ptr;
57     uint32_t         segment_index;
58     uint8_t          task_type;
59     uint8_t          tpl_ref_list0_count;
60     uint8_t          tpl_ref_list1_count;
61     uint8_t          temporal_layer_index;
62     EbBool           is_used_as_reference_flag;
63 } PictureManagerResults;
64 
65 typedef struct PictureManagerResultInitData {
66     int32_t junk;
67 } PictureManagerResultInitData;
68 #endif //EbPictureResults_h
69