This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 523b9faa945bf8a69295548389c3c0151cb09251 Author: Romain Beauxis <[email protected]> AuthorDate: Wed Apr 22 10:03:48 2026 -0500 Commit: toots <[email protected]> CommitDate: Sat May 30 17:37:28 2026 +0000 avformat/matroskadec: parse hvcE block addition mapping as AV_PKT_DATA_HEVC_CONF Handle MATROSKA_BLOCK_ADD_ID_TYPE_HVCE in mkv_parse_block_addition_mappings and store the raw HEVCDecoderConfigurationRecord as AV_PKT_DATA_HEVC_CONF on the stream's coded side data, mirroring the existing dvcC/dvvC handling. --- libavformat/matroskadec.c | 25 +++++++++++++++++++++++++ tests/ref/fate/matroska-dovi-hvce-mkv-read | 3 +++ tests/ref/fate/mov-dovi-hvce-mkv-to-mp4 | 7 +++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index bc584abc75..7e125bf61a 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2503,6 +2503,26 @@ static int mkv_parse_dvcc_dvvc(AVFormatContext *s, AVStream *st, const MatroskaT return ff_isom_parse_dvcc_dvvc(s, st, bin->data, bin->size); } +static int mkv_parse_hvce(AVFormatContext *s, AVStream *st, EbmlBin *bin) +{ + AVPacketSideData *sd; + + if (bin->size < 23) { + av_log(s, AV_LOG_ERROR, "Invalid hvcE size %d\n", bin->size); + return AVERROR_INVALIDDATA; + } + + sd = av_packet_side_data_new(&st->codecpar->coded_side_data, + &st->codecpar->nb_coded_side_data, + AV_PKT_DATA_HEVC_CONF, + bin->size, 0); + if (!sd) + return AVERROR(ENOMEM); + + memcpy(sd->data, bin->data, bin->size); + return 0; +} + static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, MatroskaTrack *track) { const EbmlList *mappings_list = &track->block_addition_mappings; @@ -2537,6 +2557,11 @@ static int mkv_parse_block_addition_mappings(AVFormatContext *s, AVStream *st, M if ((ret = mkv_parse_dvcc_dvvc(s, st, track, &mapping->extradata)) < 0) return ret; + break; + case MATROSKA_BLOCK_ADD_ID_TYPE_HVCE: + if ((ret = mkv_parse_hvce(s, st, &mapping->extradata)) < 0) + return ret; + break; default: av_log(s, AV_LOG_DEBUG, diff --git a/tests/ref/fate/matroska-dovi-hvce-mkv-read b/tests/ref/fate/matroska-dovi-hvce-mkv-read index cc826b8f81..0bf9adffbf 100644 --- a/tests/ref/fate/matroska-dovi-hvce-mkv-read +++ b/tests/ref/fate/matroska-dovi-hvce-mkv-read @@ -11,4 +11,7 @@ bl_present_flag=1 dv_bl_signal_compatibility_id=6 dv_md_compression=none [/SIDE_DATA] +[SIDE_DATA] +side_data_type=HEVC enhancement-layer decoder configuration +[/SIDE_DATA] [/STREAM] diff --git a/tests/ref/fate/mov-dovi-hvce-mkv-to-mp4 b/tests/ref/fate/mov-dovi-hvce-mkv-to-mp4 index 7189621216..080b01cd88 100644 --- a/tests/ref/fate/mov-dovi-hvce-mkv-to-mp4 +++ b/tests/ref/fate/mov-dovi-hvce-mkv-to-mp4 @@ -1,5 +1,5 @@ -cf2732a0d8f93e0a8695c1a1c7979b01 *tests/data/fate/mov-dovi-hvce-mkv-to-mp4.mp4 -667954 tests/data/fate/mov-dovi-hvce-mkv-to-mp4.mp4 +1d9ac9b893ed7e990b06fa13ebd97901 *tests/data/fate/mov-dovi-hvce-mkv-to-mp4.mp4 +668149 tests/data/fate/mov-dovi-hvce-mkv-to-mp4.mp4 #extradata 0: 187, 0x34a930cb #tb 0: 1/16000 #media_type 0: video @@ -20,4 +20,7 @@ bl_present_flag=1 dv_bl_signal_compatibility_id=6 dv_md_compression=none [/SIDE_DATA] +[SIDE_DATA] +side_data_type=HEVC enhancement-layer decoder configuration +[/SIDE_DATA] [/STREAM] _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
