Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Masamitsu_Kijima
Beginner
70 Views

HD 4600 VPP result image is NG.

Jump to solution

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

Accepted Solutions
70 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

4 Replies
70 Views

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

Masamitsu_Kijima
Beginner
70 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 .

71 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

Masamitsu_Kijima
Beginner
70 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.