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

Commit 5c6a4c57 authored by Ray Essick's avatar Ray Essick
Browse files

Graceful handling of missing extractor metadata

Bug: 187096323
Test: by vendor
Change-Id: If749e223d2d74eb9df39a94eaf8024fe0736f4b6
parent 4450fca8
Loading
Loading
Loading
Loading
+14 −1
Original line number Original line Diff line number Diff line
@@ -307,8 +307,16 @@ status_t NuMediaExtractor::getFileFormat(sp<AMessage> *format) const {


    sp<MetaData> meta = mImpl->getMetaData();
    sp<MetaData> meta = mImpl->getMetaData();


    if (meta == nullptr) {
        //extractor did not publish file metadata
        return -EINVAL;
    }

    const char *mime;
    const char *mime;
    CHECK(meta->findCString(kKeyMIMEType, &mime));
    if (!meta->findCString(kKeyMIMEType, &mime)) {
        // no mime type maps to invalid
        return -EINVAL;
    }
    *format = new AMessage();
    *format = new AMessage();
    (*format)->setString("mime", mime);
    (*format)->setString("mime", mime);


@@ -354,6 +362,11 @@ status_t NuMediaExtractor::getExifOffsetSize(off64_t *offset, size_t *size) cons


    sp<MetaData> meta = mImpl->getMetaData();
    sp<MetaData> meta = mImpl->getMetaData();


    if (meta == nullptr) {
        //extractor did not publish file metadata
        return -EINVAL;
    }

    int64_t exifOffset, exifSize;
    int64_t exifOffset, exifSize;
    if (meta->findInt64(kKeyExifOffset, &exifOffset)
    if (meta->findInt64(kKeyExifOffset, &exifOffset)
     && meta->findInt64(kKeyExifSize, &exifSize)) {
     && meta->findInt64(kKeyExifSize, &exifSize)) {