Skip to content

Commit e612904

Browse files
authored
Merge pull request #182 from Wenlong-Zhu/master
Fix cudaExtent.width set error.
2 parents 81cf058 + 9316529 commit e612904

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

Samples/4_CUDA_Libraries/cudaNvSciNvMedia/cuda_consumer.cu

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ static void cudaImportNvSciImage(cudaExternalResInterop &cudaExtResObj,
158158
pairArrayOut[numAttrs++].key = NvSciBufImageAttrKey_Layout;
159159
pairArrayOut[numAttrs++].key = NvSciBufImageAttrKey_PlaneBitsPerPixel;
160160
pairArrayOut[numAttrs++].key = NvSciBufImageAttrKey_PlaneOffset;
161+
pairArrayOut[numAttrs++].key = NvSciBufImageAttrKey_PlanePitch;
162+
pairArrayOut[numAttrs++].key = NvSciBufImageAttrKey_PlaneAlignedHeight;
163+
164+
uint32_t planePitchs[10];
165+
uint32_t planePixel[10];
166+
uint32_t planeAlignedHeight[10];
161167

162168
checkNvSciErrors(NvSciBufAttrListGetAttrs(attrlist, pairArrayOut, numAttrs));
163169

@@ -177,6 +183,13 @@ static void cudaImportNvSciImage(cudaExternalResInterop &cudaExtResObj,
177183
cudaExtResObj.planeCount * sizeof(int32_t));
178184
memcpy(cudaExtResObj.planeOffset, (uint64_t *)pairArrayOut[7].value,
179185
cudaExtResObj.planeCount * sizeof(uint64_t));
186+
memcpy(planePixel, (uint32_t *)pairArrayOut[6].value,
187+
cudaExtResObj.planeCount * sizeof(uint32_t));
188+
memcpy(planePitchs, (uint32_t *)pairArrayOut[8].value,
189+
cudaExtResObj.planeCount * sizeof(uint32_t));
190+
memcpy(planeAlignedHeight, (uint32_t *)pairArrayOut[9].value,
191+
cudaExtResObj.planeCount * sizeof(uint32_t));
192+
180193

181194
NvSciBufAttrValImageLayoutType layout =
182195
*(NvSciBufAttrValImageLayoutType *)pairArrayOut[5].value;
@@ -201,8 +214,8 @@ static void cudaImportNvSciImage(cudaExternalResInterop &cudaExtResObj,
201214
for (int i = 0; i < cudaExtResObj.planeCount; i++) {
202215
cudaExtent extent = {};
203216
memset(&extent, 0, sizeof(extent));
204-
extent.width = cudaExtResObj.imageWidth[i];
205-
extent.height = cudaExtResObj.imageHeight[i];
217+
extent.width = planePitchs[i] / (planePixel[i] / 8);
218+
extent.height = planeAlignedHeight[i];
206219
extent.depth = 0;
207220
cudaChannelFormatDesc desc;
208221
switch (channelCount) {

0 commit comments

Comments
 (0)