From 70b14ce6416dfe85c60e25b0e767c0c207969289 Mon Sep 17 00:00:00 2001 From: arvindcheru <90783369+arvindcheru@users.noreply.github.com> Date: Wed, 27 Mar 2024 22:45:06 -0400 Subject: [PATCH] Revert "AMD Media - Fix swscale error when using hwdec for amd_media (#1310)" This reverts commit c515cf9967bee2951f922081dc43ed990cafeb76. --- amd_openvx_extensions/amd_media/decoder.cpp | 24 ++++++++++----------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/amd_openvx_extensions/amd_media/decoder.cpp b/amd_openvx_extensions/amd_media/decoder.cpp index 45e8b2113..9e989cb37 100644 --- a/amd_openvx_extensions/amd_media/decoder.cpp +++ b/amd_openvx_extensions/amd_media/decoder.cpp @@ -536,18 +536,16 @@ vx_status CLoomIoMediaDecoder::Initialize() vxAddLogEntry((vx_reference)node, VX_FAILURE, "ERROR: Failed to create specified HW device.\n"); return VX_FAILURE; } - decoderFormat = codecContext->pix_fmt; - if (decoderFormat == AV_PIX_FMT_YUVJ420P) - decoderFormat = AV_PIX_FMT_YUV420P; // set non-depracated format, vaapi uses NV12 for YUVJ420P - else if (decoderFormat == AV_PIX_FMT_YUVJ422P) - decoderFormat = AV_PIX_FMT_YUV422P; // set non-depracated format - else if (decoderFormat == AV_PIX_FMT_YUVJ444P) - decoderFormat = AV_PIX_FMT_YUV444P; // set non-depracated format - // vaapi uses NV12 for AV_PIX_FMT_YUV420P: looks like FFMpeg is returning the wrong format which can cause swscale to fail - if (decoderFormat == AV_PIX_FMT_YUV420P) - decoderFormat = AV_PIX_FMT_NV12; - } else - decoderFormat = codecContext->pix_fmt; // correct format will be set after + } + + if (codecContext->pix_fmt == AV_PIX_FMT_YUVJ420P) + decoderFormat = AV_PIX_FMT_NV12; // set non-depracated format, vaapi uses NV12 for YUVJ420P + else if (codecContext->pix_fmt == AV_PIX_FMT_YUVJ422P) + decoderFormat = AV_PIX_FMT_YUV422P; // set non-depracated format + else if (codecContext->pix_fmt == AV_PIX_FMT_YUVJ444P) + decoderFormat = AV_PIX_FMT_YUV444P; // set non-depracated format + else + decoderFormat = codecContext->pix_fmt; // correct format will be set after vaapi initialization for hwdec ERROR_CHECK_STATUS(avcodec_open2(codecContext, decoder, nullptr)); SwsContext * swsContext = NULL; @@ -695,7 +693,7 @@ vx_status CLoomIoMediaDecoder::ProcessFrame(vx_image output, vx_array aux_data) // do sws_scale int ret = sws_scale(conversionContext[mediaIndex], frame->data, frame->linesize, 0, frame->height, dst_data, dst_linesize); if (ret < decoderImageHeight) { - fprintf(stderr, "Error in output image scaling using sws_scale <%d>\n", ret); + fprintf(stderr, "Error in output image scaling using sws_scale\n"); return VX_FAILURE; } #if DUMP_DECODED_FRAME