Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4c1f9584 authored by Chong Zhang's avatar Chong Zhang
Browse files

Fix thumbnail hvcc key in ItemTable

In HEIF files the hvcc for main image and the thumbnail
are separate. Add AMEDIAFORMAT_KEY_THUMBNAIL_CSD_HEVC for
thumbnail hvcc, and set it in ItemTable.

test:
- thumbnail test from the bug;
- manual testing of HEIF image decoding of various files;
- cts MediaMetadataRetriverTest.

bug: 128494513
Change-Id: I219a86cf362f641d546236dda78e8559ffcfa8aa
parent 0a2fc30b
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1540,7 +1540,8 @@ AMediaFormat *ItemTable::getImageMeta(const uint32_t imageIndex) {
                AMediaFormat_setInt32(meta,
                        AMEDIAFORMAT_KEY_THUMBNAIL_HEIGHT, thumbnail.height);
                AMediaFormat_setBuffer(meta,
                        AMEDIAFORMAT_KEY_CSD_HEVC, thumbnail.hvcc->data(), thumbnail.hvcc->size());
                        AMEDIAFORMAT_KEY_THUMBNAIL_CSD_HEVC,
                        thumbnail.hvcc->data(), thumbnail.hvcc->size());
                ALOGV("image[%u]: thumbnail: size %dx%d, item index %zd",
                        imageIndex, thumbnail.width, thumbnail.height, thumbItemIndex);
            } else {
+1 −0
Original line number Diff line number Diff line
@@ -642,6 +642,7 @@ static std::vector<std::pair<const char *, uint32_t>> bufferMappings {
        { "icc-profile", kKeyIccProfile },
        { "sei", kKeySEI },
        { "text-format-data", kKeyTextFormatData },
        { "thumbnail-csd-hevc", kKeyThumbnailHVCC },
    }
};

+1 −0
Original line number Diff line number Diff line
@@ -371,6 +371,7 @@ EXPORT const char* AMEDIAFORMAT_KEY_TEMPORAL_LAYER_COUNT = "temporal-layer-count
EXPORT const char* AMEDIAFORMAT_KEY_TEMPORAL_LAYER_ID = "temporal-layer-id";
EXPORT const char* AMEDIAFORMAT_KEY_TEMPORAL_LAYERING = "ts-schema";
EXPORT const char* AMEDIAFORMAT_KEY_TEXT_FORMAT_DATA = "text-format-data";
EXPORT const char* AMEDIAFORMAT_KEY_THUMBNAIL_CSD_HEVC = "thumbnail-csd-hevc";
EXPORT const char* AMEDIAFORMAT_KEY_THUMBNAIL_HEIGHT = "thumbnail-height";
EXPORT const char* AMEDIAFORMAT_KEY_THUMBNAIL_TIME = "thumbnail-time";
EXPORT const char* AMEDIAFORMAT_KEY_THUMBNAIL_WIDTH = "thumbnail-width";
+1 −0
Original line number Diff line number Diff line
@@ -226,6 +226,7 @@ extern const char* AMEDIAFORMAT_KEY_SAR_WIDTH __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_TARGET_TIME __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_TEMPORAL_LAYER_COUNT __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_TEXT_FORMAT_DATA __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_THUMBNAIL_CSD_HEVC __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_THUMBNAIL_HEIGHT __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_THUMBNAIL_TIME __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_THUMBNAIL_WIDTH __INTRODUCED_IN(29);
+1 −0
Original line number Diff line number Diff line
@@ -135,6 +135,7 @@ LIBMEDIANDK {
    AMEDIAFORMAT_KEY_TEMPORAL_LAYER_ID; # var introduced=28
    AMEDIAFORMAT_KEY_TEMPORAL_LAYERING; # var introduced=28
    AMEDIAFORMAT_KEY_TEXT_FORMAT_DATA; # var introduced=29
    AMEDIAFORMAT_KEY_THUMBNAIL_CSD_HEVC; # var introduced=29
    AMEDIAFORMAT_KEY_THUMBNAIL_HEIGHT; # var introduced=29
    AMEDIAFORMAT_KEY_THUMBNAIL_TIME; # var introduced=29
    AMEDIAFORMAT_KEY_THUMBNAIL_WIDTH; # var introduced=29