History

add set unused in dpb

dong zhang committed 11 years ago

Commit ad38cfe1 parent cc1f3ad1 file · +22 −6Browse files

Showing the changes to codec/decoder/core/src/decoder.cpp (1 of 1 file). Show all

Unified · Split

codec/decoder/core/src/decoder.cpp+22−6
@@ -116,10 +116,7 @@ static int32_t IncreasePicBuff (PWelsDecoderContext pCtx, PPicBuff* ppPicBuf, co · 115 unmodified lines
116116 }
117117 // copy old PicBuf to new PicBuf
118118 memcpy (pPicNewBuf->ppPic, pPicOldBuf->ppPic, kiOldSize * sizeof (PPicture));
119− // initialize context in queue
120− pPicNewBuf->iCapacity = kiNewSize;
121− pPicNewBuf->iCurrentIdx = pPicOldBuf->iCurrentIdx;
122− *ppPicBuf = pPicNewBuf;
119+
123120
124121 // increase new PicBuf
125122 for (iPicIdx = kiOldSize; iPicIdx < kiNewSize; ++ iPicIdx) {
@@ -129,7 +126,18 @@ static int32_t IncreasePicBuff (PWelsDecoderContext pCtx, PPicBuff* ppPicBuf, co · 3 unmodified lines
129126 }
130127 pPicNewBuf->ppPic[iPicIdx] = pPic;
131128 }
132−
129+ // initialize context in queue
130+ pPicNewBuf->iCapacity = kiNewSize;
131+ pPicNewBuf->iCurrentIdx = pPicOldBuf->iCurrentIdx;
132+ *ppPicBuf = pPicNewBuf;
133+
134+ for(int32_t i = 0; i < pPicNewBuf->iCapacity; i++) {
135+ pPicNewBuf->ppPic[i]->bUsedAsRef = false;
136+ pPicNewBuf->ppPic[i]->bIsLongRef = false;
137+ pPicNewBuf->ppPic[i]->uiRefCount = 0;
138+ pPicNewBuf->ppPic[i]->bAvailableFlag = true;
139+ pPicNewBuf->ppPic[i]->bIsComplete = false;
140+ }
133141 // remove old PicBuf
134142 if (pPicOldBuf->ppPic != NULL) {
135143 WelsFree (pPicOldBuf->ppPic, "pPicOldBuf->queue");
@@ -138,7 +146,7 @@ static int32_t IncreasePicBuff (PWelsDecoderContext pCtx, PPicBuff* ppPicBuf, co · 2 unmodified lines
138146 pPicOldBuf->iCapacity = 0;
139147 pPicOldBuf->iCurrentIdx = 0;
140148 WelsFree (pPicOldBuf, "pPicOldBuf");
141−
149+ pPicOldBuf = NULL;
142150 return 0;
143151 }
144152
@@ -195,6 +203,13 @@ static int32_t DecreasePicBuff (PWelsDecoderContext pCtx, PPicBuff* ppPicBuf, co · 50 unmodified lines
195203 pPicNewBuf->iCapacity = kiNewSize;
196204 *ppPicBuf = pPicNewBuf;
197205
206+ for(int32_t i = 0; i < pPicNewBuf->iCapacity; i++) {
207+ pPicNewBuf->ppPic[i]->bUsedAsRef = false;
208+ pPicNewBuf->ppPic[i]->bIsLongRef = false;
209+ pPicNewBuf->ppPic[i]->uiRefCount = 0;
210+ pPicNewBuf->ppPic[i]->bAvailableFlag = true;
211+ pPicNewBuf->ppPic[i]->bIsComplete = false;
212+ }
198213 // remove old PicBuf
199214 if (pPicOldBuf->ppPic != NULL) {
200215 WelsFree (pPicOldBuf->ppPic, "pPicOldBuf->queue");
@@ -203,6 +218,7 @@ static int32_t DecreasePicBuff (PWelsDecoderContext pCtx, PPicBuff* ppPicBuf, co · 2 unmodified lines
203218 pPicOldBuf->iCapacity = 0;
204219 pPicOldBuf->iCurrentIdx = 0;
205220 WelsFree (pPicOldBuf, "pPicOldBuf");
221+ pPicOldBuf = NULL;
206222
207223 return 0;
208224 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t