@@ -453,23 +453,22 @@ int ff_h2645_packet_split(H2645Packet *pkt, const uint8_t *buf, int length,
}
}
- if (pkt->nals_allocated < pkt->nb_nals + 1) {
- int new_size = pkt->nals_allocated + 1;
- void *tmp = av_realloc_array(pkt->nals, new_size, sizeof(*pkt->nals));
+ if (pkt->nb_nals >= pkt->nals_allocated) {
+ void *tmp = av_realloc_array(pkt->nals, pkt->nals_allocated + 1, sizeof(*pkt->nals));
if (!tmp)
return AVERROR(ENOMEM);
pkt->nals = tmp;
- memset(pkt->nals + pkt->nals_allocated, 0, sizeof(*pkt->nals));
+ nal = &pkt->nals[pkt->nals_allocated];
- nal = &pkt->nals[pkt->nb_nals];
+ memset(nal, 0, sizeof(*pkt->nals));
nal->skipped_bytes_pos_size = 1024; // initial buffer size
nal->skipped_bytes_pos = av_malloc_array(nal->skipped_bytes_pos_size, sizeof(*nal->skipped_bytes_pos));
if (!nal->skipped_bytes_pos)
return AVERROR(ENOMEM);
- pkt->nals_allocated = new_size;
+ pkt->nals_allocated++;
}
nal = &pkt->nals[pkt->nb_nals];