Implemented proper slice parameter buffer submission for multiple slice streams. (#226)
* * rocDecode: Implemented proper slice parameter buffer submission for multiple slice streams. - We were submitting single slice parameter buffer for multiple slice streams. This works for other APIs but not for VAAPI, which requires to send slice parameter buffer once per slice. - At step 1, all the multi-slice structures are fixed sized (256). Will make them dynamic in the next step. - With this change, all 135 HEVC conformance streams now pass. * * rocDecode: Multiple slice change step 2: make the fixed size slice info structure lists dynamic. * * rocDecode: Minor changes in comments. No functional changes. * *rocDecode: Changed INIT_SLICE_PARAM_LIST_NUM from 256 back to 16. 256 was set during debug process. * * rocDecode: Add suggest changes from code review. * * rocDecode: Moved slice_params_buf_id_ initialization to class VaapiVideoDecoder declaration, as suggested by code review.
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
3211b77aff
Коммит
00127f16f1
@@ -42,6 +42,8 @@ THE SOFTWARE.
|
||||
}\
|
||||
}
|
||||
|
||||
#define INIT_SLICE_PARAM_LIST_NUM 16 // initial slice parameter buffer list size
|
||||
|
||||
class VaapiVideoDecoder {
|
||||
public:
|
||||
VaapiVideoDecoder(RocDecoderCreateInfo &decoder_create_info);
|
||||
@@ -64,7 +66,8 @@ private:
|
||||
|
||||
VABufferID pic_params_buf_id_;
|
||||
VABufferID iq_matrix_buf_id_;
|
||||
VABufferID slice_params_buf_id_;
|
||||
std::vector<VABufferID> slice_params_buf_id_ = std::vector<VABufferID>(INIT_SLICE_PARAM_LIST_NUM, 0);
|
||||
uint32_t num_slices_;
|
||||
VABufferID slice_data_buf_id_;
|
||||
uint32_t slice_data_buf_size_;
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user