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

Commit d32f2001 authored by Chong Zhang's avatar Chong Zhang
Browse files

Report exif data offset and length in MediaMetadataRetriever

These are to be retrieved via hidden keys in MediaMetadataRetreiver,
and used by ExifInterface for Exif extraction.

bug: 76149934

Change-Id: Ic6ac68cfd3c0f3e93e14db1da620dd069cb2c8c4
parent fcf9a4c7
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -66,6 +66,8 @@ enum {
    METADATA_KEY_IMAGE_HEIGHT    = 30,
    METADATA_KEY_IMAGE_ROTATION  = 31,
    METADATA_KEY_VIDEO_FRAME_COUNT  = 32,
    METADATA_KEY_EXIF_OFFSET     = 33,
    METADATA_KEY_EXIF_LENGTH     = 34,

    // Add more here...
};
+9 −0
Original line number Diff line number Diff line
@@ -438,6 +438,15 @@ void StagefrightMetadataRetriever::parseMetaData() {
        mMetaData.add(METADATA_KEY_CAPTURE_FRAMERATE, String8(tmp));
    }

    int64_t exifOffset, exifSize;
    if (meta->findInt64(kKeyExifOffset, &exifOffset)
     && meta->findInt64(kKeyExifSize, &exifSize)) {
        sprintf(tmp, "%lld", (long long)exifOffset);
        mMetaData.add(METADATA_KEY_EXIF_OFFSET, String8(tmp));
        sprintf(tmp, "%lld", (long long)exifSize);
        mMetaData.add(METADATA_KEY_EXIF_LENGTH, String8(tmp));
    }

    bool hasAudio = false;
    bool hasVideo = false;
    int32_t videoWidth = -1;