This struct itself contains vdr_rpu_id, so we can never match it except in the case of i == vdr_rpu_id. So just directly use this ID.
Showing the changes to libavcodec (1 of 1 file). Show all
Unified · Split
| @@ -463,16 +463,7 @@ int ff_dovi_rpu_generate(DOVIContext *s, const AVDOVIMetadata *metadata, · 462 unmodified lines | ||
| 463 | 463 | return AVERROR_INVALIDDATA; |
| 464 | 464 | } |
| 465 | 465 | |
| 466 | − vdr_rpu_id = -1; | |
| 467 | − for (int i = 0; i <= DOVI_MAX_DM_ID; i++) { | |
| 468 | − if (s->vdr[i] && !memcmp(s->vdr[i], mapping, sizeof(*mapping))) { | |
| 469 | − vdr_rpu_id = i; | |
| 470 | − break; | |
| 471 | − } else if (vdr_rpu_id < 0 && (!s->vdr[i] || i == DOVI_MAX_DM_ID)) { | |
| 472 | − vdr_rpu_id = i; | |
| 473 | − } | |
| 474 | − } | |
| 475 | − | |
| 466 | + vdr_rpu_id = mapping->vdr_rpu_id; | |
| 476 | 467 | if (!s->vdr[vdr_rpu_id]) { |
| 477 | 468 | s->vdr[vdr_rpu_id] = ff_refstruct_allocz(sizeof(AVDOVIDataMapping)); |
| 478 | 469 | if (!s->vdr[vdr_rpu_id]) |