XenevaOS
Loading...
Searching...
No Matches
h264bsd_dpb.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2009 The Android Open Source Project
3 * Modified for use by h264bsd standalone library
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/*------------------------------------------------------------------------------
19
20 Table of contents
21
22 1. Include headers
23 2. Module defines
24 3. Data types
25 4. Function prototypes
26
27------------------------------------------------------------------------------*/
28
29#ifndef H264SWDEC_DPB_H
30#define H264SWDEC_DPB_H
31
32/*------------------------------------------------------------------------------
33 1. Include headers
34------------------------------------------------------------------------------*/
35
36#include "basetype.h"
38#include "h264bsd_image.h"
39
40/*------------------------------------------------------------------------------
41 2. Module defines
42------------------------------------------------------------------------------*/
43
44/*------------------------------------------------------------------------------
45 3. Data types
46------------------------------------------------------------------------------*/
47
48/* enumeration to represent status of buffered image */
55
56/* structure to represent a buffered picture */
57typedef struct {
58 u8 *data; /* 16-byte aligned pointer of pAllocatedData */
59 u8 *pAllocatedData; /* allocated picture pointer; (size + 15) bytes */
69
70/* structure to represent display image output from the buffer */
77
78/* structure to represent DPB */
97
98/*------------------------------------------------------------------------------
99 4. Function prototypes
100------------------------------------------------------------------------------*/
101
103 dpbStorage_t *dpb,
104 u32 picSizeInMbs,
105 u32 dpbSize,
106 u32 numRefFrames,
107 u32 maxFrameNum,
108 u32 noReordering);
109
111 dpbStorage_t *dpb,
112 u32 picSizeInMbs,
113 u32 dpbSize,
114 u32 numRefFrames,
115 u32 maxFrameNum,
116 u32 noReordering);
117
119
121
123
125 dpbStorage_t *dpb,
127 u32 currFrameNum,
128 u32 numRefIdxActive);
129
131 dpbStorage_t *dpb,
132 decRefPicMarking_t *mark,
133 image_t *image,
134 u32 frameNum,
135 i32 picOrderCnt,
136 u32 isIdr,
137 u32 picId,
138 u32 numErrMbs);
139
140u32 h264bsdCheckGapsInFrameNum(dpbStorage_t *dpb, u32 frameNum, u32 isRefPic,
141 u32 gapsAllowed);
142
144
146
148
149#endif /* #ifdef H264SWDEC_DPB_H */
150
#define index(str, chr)
Definition string.h:66
signed int i32
Definition basetype.h:34
u8 * h264bsdGetRefPicData(dpbStorage_t *dpb, u32 index)
Definition h264bsd_dpb.c:847
dpbOutPicture_t * h264bsdDpbOutputPicture(dpbStorage_t *dpb)
Definition h264bsd_dpb.c:1473
void h264bsdFlushDpb(dpbStorage_t *dpb)
Definition h264bsd_dpb.c:1501
u8 * h264bsdAllocateDpbImage(dpbStorage_t *dpb)
Definition h264bsd_dpb.c:878
u32 h264bsdResetDpb(dpbStorage_t *dpb, u32 picSizeInMbs, u32 dpbSize, u32 numRefFrames, u32 maxFrameNum, u32 noReordering)
Definition h264bsd_dpb.c:1061
u32 h264bsdMarkDecRefPic(dpbStorage_t *dpb, decRefPicMarking_t *mark, image_t *image, u32 frameNum, i32 picOrderCnt, u32 isIdr, u32 picId, u32 numErrMbs)
Definition h264bsd_dpb.c:629
u32 h264bsdCheckGapsInFrameNum(dpbStorage_t *dpb, u32 frameNum, u32 isRefPic, u32 gapsAllowed)
Definition h264bsd_dpb.c:1245
void h264bsdFreeDpb(dpbStorage_t *dpb)
Definition h264bsd_dpb.c:1524
u32 h264bsdReorderRefPicList(dpbStorage_t *dpb, refPicListReordering_t *order, u32 currFrameNum, u32 numRefIdxActive)
Definition h264bsd_dpb.c:225
void h264bsdInitRefPicList(dpbStorage_t *dpb)
Definition h264bsd_dpb.c:1105
dpbPictureStatus_e
Definition h264bsd_dpb.h:49
@ LONG_TERM
Definition h264bsd_dpb.h:53
@ UNUSED
Definition h264bsd_dpb.h:50
@ NON_EXISTING
Definition h264bsd_dpb.h:51
@ SHORT_TERM
Definition h264bsd_dpb.h:52
u32 h264bsdInitDpb(dpbStorage_t *dpb, u32 picSizeInMbs, u32 dpbSize, u32 numRefFrames, u32 maxFrameNum, u32 noReordering)
Definition h264bsd_dpb.c:981
__u64 image
Definition i915_drm.h:14
uint8_t u8
Definition kernel.h:14
uint32_t u32
Definition kernel.h:16
Definition h264bsd_slice_header.h:101
Definition h264bsd_dpb.h:71
u8 * data
Definition h264bsd_dpb.h:72
u32 numErrMbs
Definition h264bsd_dpb.h:74
u32 picId
Definition h264bsd_dpb.h:73
u32 isIdr
Definition h264bsd_dpb.h:75
Definition h264bsd_dpb.h:57
i32 picNum
Definition h264bsd_dpb.h:60
u8 * pAllocatedData
Definition h264bsd_dpb.h:59
u32 picId
Definition h264bsd_dpb.h:65
u32 frameNum
Definition h264bsd_dpb.h:61
u32 toBeDisplayed
Definition h264bsd_dpb.h:64
dpbPictureStatus_e status
Definition h264bsd_dpb.h:63
u32 isIdr
Definition h264bsd_dpb.h:67
u32 numErrMbs
Definition h264bsd_dpb.h:66
u8 * data
Definition h264bsd_dpb.h:58
i32 picOrderCnt
Definition h264bsd_dpb.h:62
Definition h264bsd_dpb.h:79
u32 numOut
Definition h264bsd_dpb.h:84
u32 outIndex
Definition h264bsd_dpb.h:85
dpbPicture_t * currentOut
Definition h264bsd_dpb.h:82
dpbPicture_t * buffer
Definition h264bsd_dpb.h:80
dpbOutPicture_t * outBuf
Definition h264bsd_dpb.h:83
u32 maxRefFrames
Definition h264bsd_dpb.h:86
u32 flushed
Definition h264bsd_dpb.h:95
u32 numRefFrames
Definition h264bsd_dpb.h:90
u32 maxLongTermFrameIdx
Definition h264bsd_dpb.h:89
u32 noReordering
Definition h264bsd_dpb.h:94
u32 lastContainsMmco5
Definition h264bsd_dpb.h:93
u32 maxFrameNum
Definition h264bsd_dpb.h:88
u32 fullness
Definition h264bsd_dpb.h:91
u32 dpbSize
Definition h264bsd_dpb.h:87
dpbPicture_t ** list
Definition h264bsd_dpb.h:81
u32 prevRefFrameNum
Definition h264bsd_dpb.h:92
Definition h264bsd_image.h:47
Definition h264bsd_slice_header.h:76