Fixed the random crash associated with undecodable RASL pictures. (#141)

* * rocDecode/HEVC: Fixed the random crash associated with undecodable RASL pictures.
  - When a CRA picutre occurs, all the pictures in the DPB are emptied. However, the following RASL (Random Access Skipped Leading) picture can still reference these emptied pictures, making them undecodeble.
  - We initialized the reference picture lists with (0xFF), representing invalid picture index. Normally these invalid indices are replaced by valid values during RPS decoding. However, on undecodable RASL pictures, we can not find an existing reference picture in DPB, leaving the invalid index untouched and resulting invalid indexing later on.
  - Now we initialize the reference picture lists with a valid value 0. Also we add index range check on reference buffer at VA-API layer to avoid invalid memory access.

* * rocDecode/HEVC: Fixed a typo in sampel app message.
Tento commit je obsažen v:
jeffqjiangNew
2023-12-15 15:54:43 -05:00
odevzdal GitHub
rodič 3598f4d96e
revize 0fbd030b5d
3 změnil soubory, kde provedl 12 přidání a 8 odebrání
+1 -1
Zobrazit soubor
@@ -238,7 +238,7 @@ int main(int argc, char **argv) {
if (memcmp(digest, ref_md5, 16) == 0) {
std::cout << "MD5 digest matches the reference MD5 digest: ";
} else {
std::cout << "MD5 digest does not matche the reference MD5 digest: ";
std::cout << "MD5 digest does not match the reference MD5 digest: ";
}
ref_md5_file.seekg(0, std::ios_base::beg);
ref_md5_file.getline(ref_md5_string, 33);