PR #23425 opened by James Almer (jamrial) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23425 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23425.patch
>From 5ba0d8a0a175919a62693a8adf0dc74ff6699722 Mon Sep 17 00:00:00 2001 From: James Almer <[email protected]> Date: Tue, 9 Jun 2026 20:13:32 -0300 Subject: [PATCH] avformat/matroskaenc: write LCEVC payloads as ITU-T T35 block additional Signed-off-by: James Almer <[email protected]> --- libavformat/matroskaenc.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index c9386db6a0..5e0c7a1b36 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2879,7 +2879,7 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, // and BlockAdditions with three elements per BlockMore // Don't forget to increment the number of BlockMore when adding // support for writing a new blockadditional. - EBML_WRITER(5 + (1 + 3 * 3)); + EBML_WRITER(5 + (1 + 4 * 3)); int ret; mkv->cur_block.track = track; @@ -2987,6 +2987,26 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, track->max_blockaddid = FFMAX(track->max_blockaddid, MATROSKA_BLOCK_ADD_ID_ITU_T_T35); } + side_data = av_packet_get_side_data(pkt, AV_PKT_DATA_LCEVC, + &side_data_size); + if (side_data) { + size_t payload_size = side_data_size + 4; + uint8_t *payload = av_malloc(payload_size); + + if (!payload) + return ret; + + AV_WB8 (payload + 0, ITU_T_T35_COUNTRY_CODE_UK); + AV_WB8 (payload + 1, 0); // t35_uk_country_code_second_octet + AV_WB16(payload + 2, ITU_T_T35_PROVIDER_CODE_VNOVA); + memcpy (payload + 4, side_data, side_data_size); + + mkv_write_blockadditional(&writer, payload, payload_size, + MATROSKA_BLOCK_ADD_ID_ITU_T_T35); + track->max_blockaddid = FFMAX(track->max_blockaddid, + MATROSKA_BLOCK_ADD_ID_ITU_T_T35); + av_free(payload); + } } ebml_writer_close_or_discard_master(&writer); -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]
