From bb47dd25377fcbcc6024ff7cf480524db12b1995 Mon Sep 17 00:00:00 2001 From: Jeff Jiang <142832361+jeffqjiangNew@users.noreply.github.com> Date: Mon, 5 Jan 2026 16:11:59 -0500 Subject: [PATCH] Utils - Fix for the incorrect MD5 results when user crop is enabled. (#687) * * rocDecode: Fixed the incorrect MD5 results when user crop is enabled. - When the user cropping is enabled, the cropping rect needs to be sent to the output surface info struct, which is used by the MD5 calculation. * * rocDecode: Minor change based on review comment. [ROCm/rocdecode commit: 8fbb195a724e045a1651fb3b077119f908e66537] --- .../rocdecode/utils/rocvideodecode/roc_video_dec.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/projects/rocdecode/utils/rocvideodecode/roc_video_dec.cpp b/projects/rocdecode/utils/rocvideodecode/roc_video_dec.cpp index 03f739c860..5529231aba 100644 --- a/projects/rocdecode/utils/rocvideodecode/roc_video_dec.cpp +++ b/projects/rocdecode/utils/rocvideodecode/roc_video_dec.cpp @@ -388,7 +388,10 @@ int RocVideoDecoder::HandleVideoSequence(RocdecVideoFormat *p_video_format) { output_surface_info_.output_height = target_height_; output_surface_info_.output_pitch = surface_stride_; output_surface_info_.output_vstride = (out_mem_type_ == OUT_SURFACE_MEM_DEV_INTERNAL) ? surface_vstride_ : videoDecodeCreateInfo.target_height; - output_surface_info_.disp_rect = disp_rect_; + output_surface_info_.disp_rect.top = videoDecodeCreateInfo.display_rect.top; + output_surface_info_.disp_rect.bottom = videoDecodeCreateInfo.display_rect.bottom; + output_surface_info_.disp_rect.left = videoDecodeCreateInfo.display_rect.left; + output_surface_info_.disp_rect.right = videoDecodeCreateInfo.display_rect.right; output_surface_info_.chroma_height = chroma_height_; output_surface_info_.bit_depth = bitdepth_minus_8_ + 8; output_surface_info_.bytes_per_pixel = byte_per_pixel_; @@ -567,7 +570,11 @@ int RocVideoDecoder::ReconfigureDecoder(RocdecVideoFormat *p_video_format) { output_surface_info_.output_height = target_height_; output_surface_info_.output_pitch = surface_stride_; output_surface_info_.output_vstride = (out_mem_type_ == OUT_SURFACE_MEM_DEV_INTERNAL) ? surface_vstride_ : target_height_; - output_surface_info_.disp_rect = disp_rect_; + if (!(crop_rect_.right && crop_rect_.bottom)) { + output_surface_info_.disp_rect = disp_rect_; + } else { + output_surface_info_.disp_rect = crop_rect_; + } output_surface_info_.chroma_height = chroma_height_; output_surface_info_.bit_depth = bitdepth_minus_8_ + 8; output_surface_info_.bytes_per_pixel = byte_per_pixel_;