This deprecates av_get_media_type_string() which does return NULL. printf %s with a null pointer is undefined behavior
This also matches behavior with avcodec_get_name() which never returns NULL, instead it returns "unknown_codec". --- doc/APIchanges | 3 +++ libavutil/avutil.h | 10 ++++++++++ libavutil/utils.c | 13 +++++++++++++ 3 files changed, 26 insertions(+) diff --git a/doc/APIchanges b/doc/APIchanges index 1a9f0a303e..53f4378a50 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -14,6 +14,9 @@ libavutil: 2021-04-27 API changes, most recent first: +2022-05-XX - xxxxxxxxxxx - lavu 57.19.100 - avutil.h + Add av_media_type_get_string() which deprecates av_get_media_type_string(). + 2022-03-16 - xxxxxxxxxx - all libraries - version_major.h Add lib<name>/version_major.h as new installed headers, which only contain the major version number (and corresponding API deprecation diff --git a/libavutil/avutil.h b/libavutil/avutil.h index 4d633156d1..0f03080dcb 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -21,6 +21,8 @@ #ifndef AVUTIL_AVUTIL_H #define AVUTIL_AVUTIL_H +#include "attributes.h" + /** * @file * @ingroup lavu @@ -209,9 +211,17 @@ enum AVMediaType { /** * Return a string describing the media_type enum, NULL if media_type * is unknown. + * + * @deprecated Use av_media_type_get_string() instead. */ +attribute_deprecated const char *av_get_media_type_string(enum AVMediaType media_type); +/** + * Return a string describing the media_type enum, never NULL. + */ +const char *av_media_type_get_string(enum AVMediaType media_type); + /** * @defgroup lavu_const Constants * @{ diff --git a/libavutil/utils.c b/libavutil/utils.c index 94d247bbee..5e0be8361f 100644 --- a/libavutil/utils.c +++ b/libavutil/utils.c @@ -37,6 +37,19 @@ const char *av_get_media_type_string(enum AVMediaType media_type) } } +const char *av_media_type_get_string(enum AVMediaType media_type) +{ + switch (media_type) { + case AVMEDIA_TYPE_UNKNOWN: return "unknown"; + case AVMEDIA_TYPE_VIDEO: return "video"; + case AVMEDIA_TYPE_AUDIO: return "audio"; + case AVMEDIA_TYPE_DATA: return "data"; + case AVMEDIA_TYPE_SUBTITLE: return "subtitle"; + case AVMEDIA_TYPE_ATTACHMENT: return "attachment"; + default: return "invalid_media_type"; + } +} + char av_get_picture_type_char(enum AVPictureType pict_type) { switch (pict_type) { -- 2.34.1 _______________________________________________ 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".