From a300436c09422c3f0829a745a9505258865633c5 Mon Sep 17 00:00:00 2001 From: lifumin Date: Sat, 13 Sep 2025 16:41:03 +0800 Subject: [PATCH] lifumin3@h-partners.com Signed-off-by: lifumin --- libexif/huawei/mnote-huawei-entry.c | 12 +++++++++++- libexif/huawei/mnote-huawei-tag.c | 4 ++++ libexif/huawei/mnote-huawei-tag.h | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/libexif/huawei/mnote-huawei-entry.c b/libexif/huawei/mnote-huawei-entry.c index d6ec3d9..8a6a0ee 100644 --- a/libexif/huawei/mnote-huawei-entry.c +++ b/libexif/huawei/mnote-huawei-entry.c @@ -112,6 +112,14 @@ format_exif_components(MnoteHuaweiEntry *e, char *v, unsigned int maxlen, unsign } returnSize = snprintf_s(v + write_pos, maxlen - write_pos, maxlen - write_pos, "%d ", data); + } else if (e->format == EXIF_FORMAT_SHORT) { + ExifShort data = 0; + data = exif_get_short(e->data + i * sizeof(ExifShort), e->order); + if ((get_signed_int_length(data) + BLANK_SIZE) > (maxlen - write_pos)) { + return NULL; + } + returnSize = snprintf_s(v + write_pos, maxlen - write_pos, + maxlen - write_pos, "%hu ", data); } else { snprintf_s(v, maxlen, maxlen, _("unsupported data types: %d"), e->format); return NULL; @@ -628,7 +636,9 @@ static const HuaweiTagInitInfo huawei_tag_init_table[] = { { MNOTE_HUAWEI_XTSTYLE_CUSTOM_SATURATION, EXIF_FORMAT_RATIONAL, 1, NULL, 1 }, { MNOTE_HUAWEI_XTSTYLE_CUSTOM_HUE, EXIF_FORMAT_RATIONAL, 1, NULL, 1 }, { MNOTE_HUAWEI_XTSTYLE_EXPOSUREPARAM_PARAM, EXIF_FORMAT_SSHORT, THREE_COMPONENTS, NULL, 0 }, - { MNOTE_HUAWEI_STARS_INFO, EXIF_FORMAT_SLONG, 1, NULL, 0 } + { MNOTE_HUAWEI_STARS_INFO, EXIF_FORMAT_SLONG, 1, NULL, 0 }, + { MNOTE_HUAWEI_XTSTYLE_ALGO_VERSION, EXIF_FORMAT_SHORT, 1, NULL, 0 }, + { MNOTE_HUAWEI_XTSTYLE_ALGO_VIDEO_ENABLE, EXIF_FORMAT_BYTE, 1, NULL, 0 } }; void mnote_huawei_entry_initialize(MnoteHuaweiEntry *e, MnoteHuaweiTag tag, ExifByteOrder order) diff --git a/libexif/huawei/mnote-huawei-tag.c b/libexif/huawei/mnote-huawei-tag.c index 1c3512b..c77b182 100644 --- a/libexif/huawei/mnote-huawei-tag.c +++ b/libexif/huawei/mnote-huawei-tag.c @@ -64,6 +64,10 @@ static const MnoteHuaweiTable huawei_table[] = { N_("XtStyle Exposure Param"), "XtStyleExposureParam"}, {MNOTE_HUAWEI_STARS_INFO, "HwMnoteStarsInfo", N_("Stars Info"), "StarsInfo"}, + {MNOTE_HUAWEI_XTSTYLE_ALGO_VERSION, "HwMnoteXtStyleAlgoVersion", + N_("Xtstyle Algo Version"), "XtStyleAlgoVersion"}, + {MNOTE_HUAWEI_XTSTYLE_ALGO_VIDEO_ENABLE, "HwMnoteXtStyleAlgoVideoEnable", + N_("Xtstyle Algo Video Enable"), "XtStyleAlgoVideoEnable"}, {0, "HwUnknow", N_("Unknow Tag"), "UnknowTag"}, }; diff --git a/libexif/huawei/mnote-huawei-tag.h b/libexif/huawei/mnote-huawei-tag.h index ed0c93e..f01bf3f 100644 --- a/libexif/huawei/mnote-huawei-tag.h +++ b/libexif/huawei/mnote-huawei-tag.h @@ -49,6 +49,8 @@ enum _MnoteHuaweiTag { MNOTE_HUAWEI_XTSTYLE_CUSTOM_HUE = 0x0303, MNOTE_HUAWEI_XTSTYLE_EXPOSUREPARAM_PARAM = 0x0304, MNOTE_HUAWEI_STARS_INFO = 0x0305, + MNOTE_HUAWEI_XTSTYLE_ALGO_VERSION = 0x0307, + MNOTE_HUAWEI_XTSTYLE_ALGO_VIDEO_ENABLE = 0x0308, MNOTE_HUAWEI_SCENE_INFO = 0x0000, /* subtree */ MNOTE_HUAWEI_SCENE_VERSION = 0x0001, -- Gitee