End of stream flush (#86)

* * rocDecode/HEVC: Added picture output operation in DPB and display callback function.
  - To avoid serialization of decode submissions and/or display callback in certain cases, increased DPB buffer size by 1 and tweaked picture bumping procedure.

* * rocDecode/HEVC: Added flushing of the remaining pictures from DPB at the end of decode session.

* * rocDecode/HEVC: Changed output_pic_num to num_output_pics to void some confusion. Set top_field_first to 1.

* * rocDecode/HEVC: Added a few return error checks.

[ROCm/rocdecode commit: 624c3c0f09]
This commit is contained in:
jeffqjiangNew
2023-11-27 13:03:26 -05:00
committed by GitHub
parent 049100d761
commit 7035965722
4 changed files with 89 additions and 51 deletions
+6 -1
View File
@@ -652,7 +652,7 @@ protected:
uint32_t dpb_fullness; // number of pictures in DPB
HevcPicInfo frame_buffer_list[HEVC_MAX_DPB_FRAMES];
uint32_t output_pic_num; // number of pictures are output after the decode call
uint32_t num_output_pics; // number of pictures that are output after the decode call
uint32_t output_pic_list[HEVC_MAX_DPB_FRAMES]; // sorted output picuture index to frame_buffer_list[]
} DecodedPictureBuffer;
@@ -877,6 +877,11 @@ protected:
*/
void EmptyDpb();
/*! \brief Function to send out the remaining pictures that need for output in DPB buffer.
* \return Code in ParserResult form.
*/
int FlushDpb();
/*! \brief Function to output and remove pictures from DPB. C.5.2.2.
* \return Code in ParserResult form.
*/