If the numerical constants for colorspace, transfer characteristics and color primaries coincide, the current code presumes the corresponding names to be identical and prints only one of them obtained via av_get_colorspace_name(). There are two issues with this: The first is that the underlying assumption is wrong: The names only coincide in the 0-7 range, they differ for more recent additions. The second is that av_get_colorspace_name() is outdated itself; it has not been updated with the names of the newly defined colorspaces.
Fix both of this by using the names from av_color_(space|primaries|transfer)_name() and comparing them via strcmp; don't use av_get_colorspace_name() at all. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> --- This was our last internal user of av_get_colorspace_name(). libavcodec/avcodec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 93383dc9fb..68a3179b07 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -655,15 +655,15 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) if (enc->colorspace != AVCOL_SPC_UNSPECIFIED || enc->color_primaries != AVCOL_PRI_UNSPECIFIED || enc->color_trc != AVCOL_TRC_UNSPECIFIED) { - if (enc->colorspace != (int)enc->color_primaries || - enc->colorspace != (int)enc->color_trc) { + const char *col = av_x_if_null(av_color_space_name(enc->colorspace), "unknown"); + const char *pri = av_x_if_null(av_color_primaries_name(enc->color_primaries), "unknown"); + const char *trc = av_x_if_null(av_color_transfer_name(enc->color_trc), "unkown"); + if (strcmp(col, pri) || strcmp(col, trc)) { new_line = 1; av_strlcatf(detail, sizeof(detail), "%s/%s/%s, ", - av_x_if_null(av_color_space_name(enc->colorspace), "unknown"), - av_x_if_null(av_color_primaries_name(enc->color_primaries), "unknown"), - av_x_if_null(av_color_transfer_name(enc->color_trc), "unkown")); - } else if (str = av_get_colorspace_name(enc->colorspace)) - av_strlcatf(detail, sizeof(detail), "%s, ", str); + col, pri, trc); + } else + av_strlcatf(detail, sizeof(detail), "%s, ", col); } if (enc->field_order != AV_FIELD_UNKNOWN) { -- 2.27.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".