Loading media/libstagefright/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ cc_library_static { static_libs: [ "libstagefright_esds", "android.media.extractor.flags-aconfig-cc", ], export_include_dirs: [ Loading Loading @@ -321,6 +322,7 @@ cc_library { static_libs: [ "android.media.codec-aconfig-cc", "android.media.extractor.flags-aconfig-cc", "com.android.media.flags.editing-aconfig-cc", "libstagefright_esds", "libstagefright_color_conversion", Loading media/libstagefright/Utils.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ #include <media/AudioParameter.h> #include <system/audio.h> #include <com_android_media_extractor_flags.h> // TODO : Remove the defines once mainline media is built against NDK >= 31. // The mp4 extractor is part of mainline and builds against NDK 29 as of // writing. These keys are available only from NDK 31: Loading Loading @@ -1443,6 +1445,17 @@ status_t convertMetaDataToMessage( buffer->meta()->setInt64("timeUs", 0); msg->setBuffer("csd-0", buffer); parseAV1ProfileLevelFromCsd(buffer, msg); } else if (com::android::media::extractor::flags::extractor_mp4_enable_apv() && meta->findData(kKeyAPVC, &type, &data, &size)) { sp<ABuffer> buffer = new (std::nothrow) ABuffer(size); if (buffer.get() == NULL || buffer->base() == NULL) { return NO_MEMORY; } memcpy(buffer->data(), data, size); buffer->meta()->setInt32("csd", true); buffer->meta()->setInt64("timeUs", 0); msg->setBuffer("csd-0", buffer); } else if (meta->findData(kKeyESDS, &type, &data, &size)) { ESDS esds((const char *)data, size); if (esds.InitCheck() != (status_t)OK) { Loading Loading @@ -2091,6 +2104,9 @@ status_t convertMessageToMetaData(const sp<AMessage> &msg, sp<MetaData> &meta) { } else if (mime == MEDIA_MIMETYPE_VIDEO_AV1 || mime == MEDIA_MIMETYPE_IMAGE_AVIF) { meta->setData(kKeyAV1C, 0, csd0->data(), csd0->size()); } else if (com::android::media::extractor::flags::extractor_mp4_enable_apv() && mime == MEDIA_MIMETYPE_VIDEO_APV) { meta->setData(kKeyAPVC, 0, csd0->data(), csd0->size()); } else if (mime == MEDIA_MIMETYPE_VIDEO_DOLBY_VISION) { int32_t profile = -1; uint8_t blCompatibilityId = -1; Loading Loading
media/libstagefright/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ cc_library_static { static_libs: [ "libstagefright_esds", "android.media.extractor.flags-aconfig-cc", ], export_include_dirs: [ Loading Loading @@ -321,6 +322,7 @@ cc_library { static_libs: [ "android.media.codec-aconfig-cc", "android.media.extractor.flags-aconfig-cc", "com.android.media.flags.editing-aconfig-cc", "libstagefright_esds", "libstagefright_color_conversion", Loading
media/libstagefright/Utils.cpp +16 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,8 @@ #include <media/AudioParameter.h> #include <system/audio.h> #include <com_android_media_extractor_flags.h> // TODO : Remove the defines once mainline media is built against NDK >= 31. // The mp4 extractor is part of mainline and builds against NDK 29 as of // writing. These keys are available only from NDK 31: Loading Loading @@ -1443,6 +1445,17 @@ status_t convertMetaDataToMessage( buffer->meta()->setInt64("timeUs", 0); msg->setBuffer("csd-0", buffer); parseAV1ProfileLevelFromCsd(buffer, msg); } else if (com::android::media::extractor::flags::extractor_mp4_enable_apv() && meta->findData(kKeyAPVC, &type, &data, &size)) { sp<ABuffer> buffer = new (std::nothrow) ABuffer(size); if (buffer.get() == NULL || buffer->base() == NULL) { return NO_MEMORY; } memcpy(buffer->data(), data, size); buffer->meta()->setInt32("csd", true); buffer->meta()->setInt64("timeUs", 0); msg->setBuffer("csd-0", buffer); } else if (meta->findData(kKeyESDS, &type, &data, &size)) { ESDS esds((const char *)data, size); if (esds.InitCheck() != (status_t)OK) { Loading Loading @@ -2091,6 +2104,9 @@ status_t convertMessageToMetaData(const sp<AMessage> &msg, sp<MetaData> &meta) { } else if (mime == MEDIA_MIMETYPE_VIDEO_AV1 || mime == MEDIA_MIMETYPE_IMAGE_AVIF) { meta->setData(kKeyAV1C, 0, csd0->data(), csd0->size()); } else if (com::android::media::extractor::flags::extractor_mp4_enable_apv() && mime == MEDIA_MIMETYPE_VIDEO_APV) { meta->setData(kKeyAPVC, 0, csd0->data(), csd0->size()); } else if (mime == MEDIA_MIMETYPE_VIDEO_DOLBY_VISION) { int32_t profile = -1; uint8_t blCompatibilityId = -1; Loading