AVC error resilience: Treat reference list setup errors as non-critical. Also minor wording correction in sample script output. (#557)

* * AVC error resilience: Treat reference list setup errors as non-critical. Also minor wordking correction in sample script output.

* * AVC error resilience: Minor change.

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
This commit is contained in:
jeffqjiangNew
2025-04-12 09:11:33 -04:00
committad av GitHub
förälder a1ead2a7c1
incheckning 193423300f
2 ändrade filer med 9 tillägg och 7 borttagningar
+8 -6
Visa fil
@@ -239,8 +239,8 @@ ParserResult AvcVideoParser::ParsePictureData(const uint8_t *p_stream, uint32_t
}
// Reference picture lists construction (8.2.4)
if ((ret2 = SetupReflist(&slice_info_list_[num_slices_])) != PARSER_OK) {
return ret2;
if (SetupReflist(&slice_info_list_[num_slices_]) != PARSER_OK) {
ERR("Error occurred in SetupReflist(). Ignore and continue.");
}
if (num_slices_ == 0) {
@@ -2498,8 +2498,9 @@ ParserResult AvcVideoParser::SetupReflist(AvcSliceInfo *p_slice_info) {
AvcPicture *ref_pic_list_x = p_slice_info->ref_list_0_; // RefPicListX
AvcListMod *p_list_mod = p_slice_header->ref_pic_list.modification_l0;
int num_ref_idx_lx_active = p_slice_header->num_ref_idx_l0_active_minus1 + 1;
if (ModifiyRefList(ref_pic_list_x, p_list_mod, num_ref_idx_lx_active, p_slice_header) != PARSER_OK) {
return PARSER_FAIL;
ParserResult ret;
if ((ret = ModifiyRefList(ref_pic_list_x, p_list_mod, num_ref_idx_lx_active, p_slice_header)) != PARSER_OK) {
return ret;
}
}
@@ -2508,8 +2509,9 @@ ParserResult AvcVideoParser::SetupReflist(AvcSliceInfo *p_slice_info) {
AvcPicture *ref_pic_list_x = p_slice_info->ref_list_1_; // RefPicListX
AvcListMod *p_list_mod = p_slice_header->ref_pic_list.modification_l1;
int num_ref_idx_lx_active = p_slice_header->num_ref_idx_l1_active_minus1 + 1;
if (ModifiyRefList(ref_pic_list_x, p_list_mod, num_ref_idx_lx_active, p_slice_header) != PARSER_OK) {
return PARSER_FAIL;
ParserResult ret;
if ((ret = ModifiyRefList(ref_pic_list_x, p_list_mod, num_ref_idx_lx_active, p_slice_header)) != PARSER_OK) {
return ret;
}
}
}
+1 -1
Visa fil
@@ -286,7 +286,7 @@ else:
line = logFile.readline()
print("Decode status report of the", numFiles, "streams:")
print(" - The number of completed decoded streams is", numDecodedStreams)
print(" - The number of completely decoded streams is", numDecodedStreams)
print(" - The number of streams that did not finish decoding is " + str(numFiles - numDecodedStreams))
logFile.close()
if numFiles != numDecodedStreams: