-
Notifications
You must be signed in to change notification settings - Fork 22
H264 decode AV_PIX_FMT_YAMI putsurface error #23
Description
we use the AV_PIX_FMT_YAMI put surface to the window and the code is like below, the decode is ok, but the put surface error.
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108876
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108877
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108878
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108879
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108880
Decode format 335 (1920, 1080) AV_PIX_FMT_YAMI 335 AV_PIX_FMT_NV12 25
vaPutSurface return 0x14 surface id 67108881
AVFrame* pFrame = ph264->decode(raw_media_data, count);
if (pFrame)
{
printf("Decode format %d (%d, %d) AV_PIX_FMT_YAMI %d AV_PIX_FMT_NV12 %d\n", pFrame->format, pFrame->width,
pFrame->height, AV_PIX_FMT_YAMI, AV_PIX_FMT_NV12);
if (m_pWinHandle)
{
VAStatus status = VA_STATUS_SUCCESS;
YamiImage *pImage = (YamiImage *)pFrame->data[3];
status = vaPutSurface(pImage->va_display, (VASurfaceID)pImage->output_frame->surface,
m_pWinHandle, 0, 0, pFrame->width,
pFrame->height, 0, 0, m_winw, m_winh,
NULL, 0, 0);
if (status != VA_STATUS_SUCCESS)
{
printf("vaPutSurface return 0x%x surface id %d\n", status,
(VASurfaceID)pImage->output_frame->surface);
}
}
}