This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit e88ef42af183b3206a1e5fa36766802f41c86ca3 Author: James Almer <[email protected]> AuthorDate: Mon Oct 19 11:20:16 2026 -0300 Commit: James Almer <[email protected]> CommitDate: Fri Oct 23 11:22:12 2026 -0300 avformat/dump: print Alpha channel Stream Group information And merge all the Layered Video based group types into a single block. Signed-off-by: James Almer <[email protected]> --- libavformat/dump.c | 67 +++++++++++++++++++++++++----------------------------- 1 file changed, 31 insertions(+), 36 deletions(-) diff --git a/libavformat/dump.c b/libavformat/dump.c index c2f9fc6f7b..6bd6b3462c 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -853,16 +853,33 @@ static void dump_stream_group(const AVFormatContext *ic, uint8_t *printed, } break; } + case AV_STREAM_GROUP_PARAMS_ALPHA: case AV_STREAM_GROUP_PARAMS_DOLBY_VISION: + case AV_STREAM_GROUP_PARAMS_GAIN_MAP: case AV_STREAM_GROUP_PARAMS_LCEVC: { const AVStreamGroupLayeredVideo *layered_video = stg->params.layered_video; AVCodecContext *avctx = avcodec_alloc_context3(NULL); const char *ptr = NULL; - av_log(NULL, AV_LOG_INFO, " %s:", stg->type == AV_STREAM_GROUP_PARAMS_DOLBY_VISION ? - "Dolby Vision" : "LCEVC"); + switch (stg->type) { + case AV_STREAM_GROUP_PARAMS_ALPHA: + av_log(NULL, AV_LOG_INFO, " Alpha:"); + break; + case AV_STREAM_GROUP_PARAMS_DOLBY_VISION: + av_log(NULL, AV_LOG_INFO, " Dolby Vision:"); + break; + case AV_STREAM_GROUP_PARAMS_GAIN_MAP: + av_log(NULL, AV_LOG_INFO, " Gain Map:"); + break; + case AV_STREAM_GROUP_PARAMS_LCEVC: + av_log(NULL, AV_LOG_INFO, " LCEVC:"); + break; + } if (avctx && stg->nb_entries == 2 && - stg->entries[!layered_video->el_index]->type == AV_STREAM_GROUP_ENTRY_STREAM) { - const AVStream *st = stg->entries[!layered_video->el_index]->stream; + (stg->entries[ layered_video->el_index]->type == AV_STREAM_GROUP_ENTRY_STREAM || + stg->entries[!layered_video->el_index]->type == AV_STREAM_GROUP_ENTRY_STREAM)) { + const AVStream *st = stg->entries[!layered_video->el_index]->type == AV_STREAM_GROUP_ENTRY_STREAM ? + stg->entries[!layered_video->el_index]->stream : + stg->entries[ layered_video->el_index]->stream; if (!avcodec_parameters_to_context(avctx, st->codecpar)) { avctx->width = layered_video->width; avctx->height = layered_video->height; @@ -874,6 +891,9 @@ static void dump_stream_group(const AVFormatContext *ic, uint8_t *printed, avcodec_string(buf, sizeof(buf), avctx, is_output); ptr = av_stristr(buf, " "); } + } else { + buf[0] = 0; + av_strlcatf(buf, sizeof(buf), " %dx%d", layered_video->width, layered_video->height); } avcodec_free_context(&avctx); if (ptr) @@ -886,11 +906,13 @@ static void dump_stream_group(const AVFormatContext *ic, uint8_t *printed, extra_indent, log_level); for (int i = 0; i < stg->nb_entries; i++) { const AVStreamGroupEntry *entry = stg->entries[i]; - if (entry->type != AV_STREAM_GROUP_ENTRY_STREAM) - continue; - const AVStream *st = entry->stream; - dump_stream_format(ic, st->index, i, index, is_output, AV_LOG_VERBOSE); - printed[st->index] = 1; + if (entry->type == AV_STREAM_GROUP_ENTRY_STREAM) { + const AVStream *st = entry->stream; + dump_stream_format(ic, st->index, i, index, is_output, log_level); + printed[st->index] = 1; + } else if (entry->type == AV_STREAM_GROUP_ENTRY_STREAM_GROUP) + dump_stream_group(ic, printed, entry->stream_group->index, index, + is_output, AV_LOG_VERBOSE); } break; } @@ -906,33 +928,6 @@ static void dump_stream_group(const AVFormatContext *ic, uint8_t *printed, } break; } - case AV_STREAM_GROUP_PARAMS_GAIN_MAP: { - const AVStreamGroupLayeredVideo *layered_video = stg->params.layered_video; - const char *ptr = NULL; - av_log(NULL, AV_LOG_INFO, " Gain Map:"); - buf[0] = 0; - av_strlcatf(buf, sizeof(buf), " %dx%d", layered_video->width, layered_video->height); - ptr = av_stristr(buf, " "); - if (ptr) - av_log(NULL, log_level, "%s", ptr); - dump_disposition(stg->disposition, log_level); - av_log(NULL, log_level, "\n"); - dump_metadata(NULL, stg->metadata, extra_indent, log_level); - dump_sidedata(NULL, stg->coded_side_data, stg->nb_coded_side_data, - layered_video->width, layered_video->height, (AVRational) {0,1}, - extra_indent, log_level); - for (int i = 0; i < stg->nb_entries; i++) { - const AVStreamGroupEntry *entry = stg->entries[i]; - if (entry->type == AV_STREAM_GROUP_ENTRY_STREAM) { - const AVStream *st = entry->stream; - dump_stream_format(ic, st->index, i, index, is_output, log_level); - printed[st->index] = 1; - } else if (entry->type == AV_STREAM_GROUP_ENTRY_STREAM_GROUP) - dump_stream_group(ic, printed, entry->stream_group->index, index, - is_output, AV_LOG_VERBOSE); - } - break; - } default: break; } -- To stop receiving notification emails like this one, please contact [email protected]. _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
