History

allow slice-level data come in for parse only

huili2 committed 11 years ago

Commit 06b8e1a1 parent 5b125785 files · +147 −101Browse files

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

Unified · Split

codec/decoder/core/src/pic_queue.cpp+19−13
@@ -82,19 +82,25 @@ PPicture AllocPicture (PWelsDecoderContext pCtx, const int32_t kiPicWidth, const · 81 unmodified lines
8282 iLumaSize = iPicWidth * iPicHeight;
8383 iChromaSize = iPicChromaWidth * iPicChromaHeight;
8484
85− pPic->pBuffer[0] = static_cast<uint8_t*> (WelsMallocz (iLumaSize /* luma */
86− + (iChromaSize << 1) /* Cb,Cr */, "_pic->buffer[0]"));
87− memset (pPic->pBuffer[0], 128, (iLumaSize + (iChromaSize << 1)));
88−
89− WELS_VERIFY_RETURN_PROC_IF (NULL, NULL == pPic->pBuffer[0], FreePicture (pPic));
90− pPic->iLinesize[0] = iPicWidth;
91− pPic->iLinesize[1] = pPic->iLinesize[2] = iPicChromaWidth;
92− pPic->pBuffer[1] = pPic->pBuffer[0] + iLumaSize;
93− pPic->pBuffer[2] = pPic->pBuffer[1] + iChromaSize;
94− pPic->pData[0] = pPic->pBuffer[0] + (1 + pPic->iLinesize[0]) * PADDING_LENGTH;
95− pPic->pData[1] = pPic->pBuffer[1] + /*WELS_ALIGN*/ (((1 + pPic->iLinesize[1]) * PADDING_LENGTH) >> 1);
96− pPic->pData[2] = pPic->pBuffer[2] + /*WELS_ALIGN*/ (((1 + pPic->iLinesize[2]) * PADDING_LENGTH) >> 1);
97−
85+ if (pCtx->bParseOnly) {
86+ pPic->pBuffer[0] = pPic->pBuffer[1] = pPic->pBuffer[2] = NULL;
87+ pPic->pData[0] = pPic->pData[1] = pPic->pData[2] = NULL;
88+ pPic->iLinesize[0] = iPicWidth;
89+ pPic->iLinesize[1] = pPic->iLinesize[2] = iPicChromaWidth;
90+ } else {
91+ pPic->pBuffer[0] = static_cast<uint8_t*> (WelsMallocz (iLumaSize /* luma */
92+ + (iChromaSize << 1) /* Cb,Cr */, "_pic->buffer[0]"));
93+ memset (pPic->pBuffer[0], 128, (iLumaSize + (iChromaSize << 1)));
94+
95+ WELS_VERIFY_RETURN_PROC_IF (NULL, NULL == pPic->pBuffer[0], FreePicture (pPic));
96+ pPic->iLinesize[0] = iPicWidth;
97+ pPic->iLinesize[1] = pPic->iLinesize[2] = iPicChromaWidth;
98+ pPic->pBuffer[1] = pPic->pBuffer[0] + iLumaSize;
99+ pPic->pBuffer[2] = pPic->pBuffer[1] + iChromaSize;
100+ pPic->pData[0] = pPic->pBuffer[0] + (1 + pPic->iLinesize[0]) * PADDING_LENGTH;
101+ pPic->pData[1] = pPic->pBuffer[1] + /*WELS_ALIGN*/ (((1 + pPic->iLinesize[1]) * PADDING_LENGTH) >> 1);
102+ pPic->pData[2] = pPic->pBuffer[2] + /*WELS_ALIGN*/ (((1 + pPic->iLinesize[2]) * PADDING_LENGTH) >> 1);
103+ }
98104 pPic->iPlanes = 3; // yv12 in default
99105 pPic->iWidthInPixel = kiPicWidth;
100106 pPic->iHeightInPixel = kiPicHeight;

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