Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

HD 4600 VPP result image is NG.

Masamitsu_Kijima
Beginner
483 Views

I decode 2992x2992 H.264 contents, use QSV.
I use VPP for image convert NV12 to RGB32.

---
RunFrameVPPAsync( DecOutSurface, VppOutSurface, NULL, &syncp );

for (i = 0; i < VppOutSurface->pInfo.CropH; i++)
{
    fwrite(pData.Y + (VppOutSurface->pInfo.CropY * VppOutSurface->pData.Pitch + VppOutSurface->pInfo.CropX)+ i * VppOutSurface->pData.Pitch, 1, VppOutSurface->pInfo.CropW, m_fDest);
}
---


DriverVer 15.33.22.3621 (10.18.10.3621)

・Use HD4600(Core i7 4770K)
VppOutSurface->pData.Pitch is 3008.
VPP output images stride is 2992. not 3008.

m_fDest image is stripe..


・Use HD4000(Core i7 3770K)
VppOutSurface->pData.Pitch is 3008.
VPP output images stride is 3008.

m_fDest image is good.


Why pData.Pitch is 3008 on HD4600 ?

thank you.

0 Kudos
1 Solution
Sravanthi_K_Intel
483 Views

Thanks for the information.

While I am investigating this issue, the following information would be greatly helpful:

- If you can reproduce the issue you notice using Media SDK samples or tutorials, it would be great. Can you send in the code once you do?

- System details: Can you run the mediasdk_sys_analyzer tool to dump the system info to a file. And attach that file?

- Can you attach the input and output videos is possible (videos under Creative Commons would be good. Example xiph.org or bigBuckBunny).

If you can provide any or all of this information, it can be helpful. Thanks.

View solution in original post

0 Kudos
4 Replies
Sravanthi_K_Intel
483 Views

Hello, Thanks for the question. We are taking a look at it and will keep you updated.

0 Kudos
Masamitsu_Kijima
Beginner
483 Views

Hi.

 

I have a problem that pData.Pitch which has been notified is different from the actual stride. (When i use HD4600)

I'm sorry . this fwrite code is incorrect. Correctly is the following.

---

do {

sts = m_pmfxDEC->DecodeFrameAsync(stream, &(m_pmfxSurfaces[nIndex]), &pmfxOutSurface, &syncp);

} while (MFX_WRN_DEVICE_BUSY == sts);

if (MFX_ERR_NONE == sts)

{

    sts = m_mfxSession.SyncOperation(syncp, MSDK_DEC_WAIT_INTERVAL); 

    sts = m_pmfxVPP->RunFrameVPPAsync( pmfxOutSurface, m_Allocator.pSurfaces[VPP_OUT], NULL, &syncp );

    sts = m_mfxSession.SyncOperation(syncp, MSDK_VPP_WAIT_INTERVAL); 

                BYTE *src = m_Allocator.pSurfaces[VPP_OUT]->Data.B + m_Allocator.pSurfaces[VPP_OUT]->Info.CropY * m_Allocator.pSurfaces[VPP_OUT]->pData.Pitch + m_Allocator.pSurfaces[VPP_OUT]->Info.CropW  ;

                for(int y=0; y<=m_Allocator.pSurfaces[VPP_OUT]->Info.CropH-1; y++ )
                {
                    memcpy( dst, src, stride );
                    dst += stride;
                    src += m_Allocator.pSurfaces[VPP_OUT]->Data.Pitch;
                }

 

When I run this code, the "dst" image of the stripes was obtained .

but use under code , I got good image .

I guess , The output image of VPP is, not stored in accordance with Data.Pitch correctly.

----

                BYTE *src = m_Allocator.pSurfaces[VPP_OUT]->Data.B + m_Allocator.pSurfaces[VPP_OUT]->Info.CropY * m_Allocator.pSurfaces[VPP_OUT]->Info.Widthm_Allocator.pSurfaces[VPP_OUT]->Info.CropW  ;
                for(int y=0; y<=m_Allocator.pSurfaces[VPP_OUT]->Info.CropH-1; y++ )
                {
                    memcpy( dst, src, stride );
                    dst += stride;
                    src += m_Allocator.pSurfaces[VPP_OUT]->Info.Width;
                }

---

 In my case .

m_Allocator.pSurfaces[VPP_OUT]->Info.CropH = 2992

m_Allocator.pSurfaces[VPP_OUT]->Info.CropW = 2992

m_Allocator.pSurfaces[VPP_OUT]->Info.Width = 2992

m_Allocator.pSurfaces[VPP_OUT]->Info.Height = 2992

m_Allocator.pSurfaces[VPP_OUT]->Data.Pitch = 3008

 

thank you .

0 Kudos
Sravanthi_K_Intel
484 Views

Thanks for the information.

While I am investigating this issue, the following information would be greatly helpful:

- If you can reproduce the issue you notice using Media SDK samples or tutorials, it would be great. Can you send in the code once you do?

- System details: Can you run the mediasdk_sys_analyzer tool to dump the system info to a file. And attach that file?

- Can you attach the input and output videos is possible (videos under Creative Commons would be good. Example xiph.org or bigBuckBunny).

If you can provide any or all of this information, it can be helpful. Thanks.

0 Kudos
Masamitsu_Kijima
Beginner
483 Views

Thanks for the advice. 

I was checking the sample_decvpp. 
And, I was able to discover the bug in my code. 

According to Data.Pitch setting, the image has been output correctly.

 

Thank you.

0 Kudos
Reply