It uses the existing buffer instead of allocating a new one.
Unified · Split
| @@ -390,10 +390,8 @@ uint8_t *get_metadata(AVFormatContext *avctx, uint16_t *buf, size_t width, · 389 unmodified lines | ||
| 390 | 390 | clear_parity_bits(buf, len); |
| 391 | 391 | data = vanc_to_cc(avctx, buf, width, data_len); |
| 392 | 392 | if (data) { |
| 393 | − uint8_t *pkt_cc = av_packet_new_side_data(pkt, AV_PKT_DATA_A53_CC, data_len); | |
| 394 | − if (pkt_cc) | |
| 395 | − memcpy(pkt_cc, data, data_len); | |
| 396 | − av_free(data); | |
| 393 | + if (av_packet_add_side_data(pkt, AV_PKT_DATA_A53_CC, data, data_len) < 0) | |
| 394 | + av_free(data); | |
| 397 | 395 | } |
| 398 | 396 | } else { |
| 399 | 397 | av_log(avctx, AV_LOG_DEBUG, "Unknown meta data DID = 0x%.2x SDID = 0x%.2x\n", |