diff --git a/utils/rocvideodecode/roc_video_dec.cpp b/utils/rocvideodecode/roc_video_dec.cpp index 4be8566741..31654cc822 100644 --- a/utils/rocvideodecode/roc_video_dec.cpp +++ b/utils/rocvideodecode/roc_video_dec.cpp @@ -660,7 +660,7 @@ int RocVideoDecoder::HandlePictureDisplay(RocdecParserDispInfo *pDispInfo) { RocdecSeiMessage *sei_message = sei_message_display_q_[pDispInfo->picture_index].sei_message; if (fp_sei_) { for (uint32_t i = 0; i < sei_num_messages; i++) { - if (codec_id_ == rocDecVideoCodec_AVC || rocDecVideoCodec_HEVC) { + if (codec_id_ == rocDecVideoCodec_AVC || codec_id_ == rocDecVideoCodec_HEVC) { switch (sei_message[i].sei_message_type) { case SEI_TYPE_TIME_CODE: { //todo:: check if we need to write timecode @@ -882,7 +882,6 @@ bool RocVideoDecoder::ReleaseFrame(int64_t pTimestamp, bool b_flushing) { if (!vp_frames_q_.empty()) { std::lock_guard lock(mtx_vp_frame_); DecFrameBuffer *fb = &vp_frames_q_.front(); - void *mapped_frame_ptr = fb->frame_ptr; if (pTimestamp != fb->pts) { std::cerr << "Decoded Frame is released out of order" << std::endl; @@ -1078,5 +1077,9 @@ void RocVideoDecoder::WaitForDecodeCompletion() { memset(&dec_status, 0, sizeof(dec_status)); do { rocDecStatus result = rocDecGetDecodeStatus(roc_decoder_, last_decode_surf_idx_, &dec_status); + if (result != ROCDEC_SUCCESS) { + std::cerr << "rocDecGetDecodeStatus failed for picture_index: " << last_decode_surf_idx_ << std::endl; + return; + } } while (dec_status.decode_status == rocDecodeStatus_InProgress); } \ No newline at end of file diff --git a/utils/rocvideodecode/roc_video_dec.h b/utils/rocvideodecode/roc_video_dec.h index 554446e75b..022beb074e 100644 --- a/utils/rocvideodecode/roc_video_dec.h +++ b/utils/rocvideodecode/roc_video_dec.h @@ -473,15 +473,15 @@ class RocVideoDecoder { RocdecVideoParser rocdec_parser_ = nullptr; rocDecDecoderHandle roc_decoder_ = nullptr; OutputSurfaceMemoryType out_mem_type_ = OUT_SURFACE_MEM_DEV_INTERNAL; - bool b_extract_sei_message_ = false; + rocDecVideoCodec codec_id_ = rocDecVideoCodec_NumCodecs; bool b_force_zero_latency_ = false; + bool b_extract_sei_message_ = false; uint32_t disp_delay_; ReconfigParams *p_reconfig_params_ = nullptr; bool b_force_recofig_flush_ = false; int32_t num_frames_flushed_during_reconfig_ = 0; hipDeviceProp_t hip_dev_prop_; hipStream_t hip_stream_; - rocDecVideoCodec codec_id_ = rocDecVideoCodec_NumCodecs; rocDecVideoChromaFormat video_chroma_format_ = rocDecVideoChromaFormat_420; rocDecVideoSurfaceFormat video_surface_format_ = rocDecVideoSurfaceFormat_NV12; RocdecSeiMessageInfo *curr_sei_message_ptr_ = nullptr;