Loading media/extractors/fuzzers/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ cc_defaults { static_libs: [ "liblog", "libstagefright_foundation_colorutils_ndk", "libstagefright_foundation", "libmediandk_format", "libmedia_ndkformatpriv", Loading media/extractors/mkv/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ cc_library { ], static_libs: [ "libstagefright_foundation_colorutils_ndk", // for mainline-safe ColorUtils "libstagefright_foundation", "libstagefright_metadatautils", "libwebm", Loading media/extractors/mp4/MPEG4Extractor.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -1126,7 +1126,9 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { void *data; size_t size; if (AMediaFormat_getBuffer(mLastTrack->meta, AMEDIAFORMAT_KEY_CSD_2, &data, &size)) { if (AMediaFormat_getBuffer(mLastTrack->meta, AMEDIAFORMAT_KEY_CSD_2, &data, &size) && size >= 5) { const uint8_t *ptr = (const uint8_t *)data; const uint8_t profile = ptr[2] >> 1; const uint8_t bl_compatibility_id = (ptr[4]) >> 4; Loading Loading @@ -1163,8 +1165,12 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { mLastTrack->next = track_b; track_b->next = NULL; auto id = track_b->meta->mFormat->findEntryByName(AMEDIAFORMAT_KEY_CSD_2); track_b->meta->mFormat->removeEntryAt(id); // we want to remove the csd-2 key from the metadata, but // don't have an AMediaFormat_* function to do so. Settle // for replacing this csd-2 with an empty csd-2. uint8_t emptybuffer[8] = {}; AMediaFormat_setBuffer(track_b->meta, AMEDIAFORMAT_KEY_CSD_2, emptybuffer, 0); if (4 == profile || 7 == profile || 8 == profile ) { AMediaFormat_setString(track_b->meta, Loading media/extractors/tests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ cc_test { "libstagefright_esds", "libstagefright_mpeg2support", "libstagefright_mpeg2extractor", "libstagefright_foundation_colorutils_ndk", "libstagefright_foundation", "libstagefright_metadatautils", Loading media/libstagefright/foundation/Android.bp +64 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ cc_defaults { "AudioPresentationInfo.cpp", "ByteUtils.cpp", "ColorUtils.cpp", "ColorUtils_fill.cpp", "FoundationUtils.cpp", "MediaBuffer.cpp", "MediaBufferBase.cpp", Loading Loading @@ -148,3 +149,66 @@ cc_library_static { "-DNO_IMEMORY", ], } // this gets linked into extractors in media mainline module // so must be ndk api 29 so that it runs on >=Q cc_library_static { name: "libstagefright_foundation_colorutils_ndk", host_supported: true, vendor_available: true, target: { darwin: { enabled: false, }, }, shared_libs: [ "liblog", "libutils", // for sp<> // actually invokes this, but called from folks who already load it // "libmediandk", ], header_libs: [ // this is only needed for the vendor variant that removes libbinder, but vendor // target below does not allow adding header_libs. "libbinder_headers", "libstagefright_foundation_headers", "media_ndk_headers", "media_plugin_headers", ], local_include_dirs: [ "include/media/stagefright/foundation", ], cflags: [ "-Werror", "-Wall", ], srcs: [ "ColorUtils_ndk.cpp", "ColorUtils_fill.cpp", ], clang: true, sanitize: { misc_undefined: [ "unsigned-integer-overflow", "signed-integer-overflow", ], cfi: true, }, min_sdk_version: "29", apex_available: [ "//apex_available:platform", "com.android.media", "com.android.media.swcodec", ], } Loading
media/extractors/fuzzers/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ cc_defaults { static_libs: [ "liblog", "libstagefright_foundation_colorutils_ndk", "libstagefright_foundation", "libmediandk_format", "libmedia_ndkformatpriv", Loading
media/extractors/mkv/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ cc_library { ], static_libs: [ "libstagefright_foundation_colorutils_ndk", // for mainline-safe ColorUtils "libstagefright_foundation", "libstagefright_metadatautils", "libwebm", Loading
media/extractors/mp4/MPEG4Extractor.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -1126,7 +1126,9 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { void *data; size_t size; if (AMediaFormat_getBuffer(mLastTrack->meta, AMEDIAFORMAT_KEY_CSD_2, &data, &size)) { if (AMediaFormat_getBuffer(mLastTrack->meta, AMEDIAFORMAT_KEY_CSD_2, &data, &size) && size >= 5) { const uint8_t *ptr = (const uint8_t *)data; const uint8_t profile = ptr[2] >> 1; const uint8_t bl_compatibility_id = (ptr[4]) >> 4; Loading Loading @@ -1163,8 +1165,12 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { mLastTrack->next = track_b; track_b->next = NULL; auto id = track_b->meta->mFormat->findEntryByName(AMEDIAFORMAT_KEY_CSD_2); track_b->meta->mFormat->removeEntryAt(id); // we want to remove the csd-2 key from the metadata, but // don't have an AMediaFormat_* function to do so. Settle // for replacing this csd-2 with an empty csd-2. uint8_t emptybuffer[8] = {}; AMediaFormat_setBuffer(track_b->meta, AMEDIAFORMAT_KEY_CSD_2, emptybuffer, 0); if (4 == profile || 7 == profile || 8 == profile ) { AMediaFormat_setString(track_b->meta, Loading
media/extractors/tests/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,7 @@ cc_test { "libstagefright_esds", "libstagefright_mpeg2support", "libstagefright_mpeg2extractor", "libstagefright_foundation_colorutils_ndk", "libstagefright_foundation", "libstagefright_metadatautils", Loading
media/libstagefright/foundation/Android.bp +64 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ cc_defaults { "AudioPresentationInfo.cpp", "ByteUtils.cpp", "ColorUtils.cpp", "ColorUtils_fill.cpp", "FoundationUtils.cpp", "MediaBuffer.cpp", "MediaBufferBase.cpp", Loading Loading @@ -148,3 +149,66 @@ cc_library_static { "-DNO_IMEMORY", ], } // this gets linked into extractors in media mainline module // so must be ndk api 29 so that it runs on >=Q cc_library_static { name: "libstagefright_foundation_colorutils_ndk", host_supported: true, vendor_available: true, target: { darwin: { enabled: false, }, }, shared_libs: [ "liblog", "libutils", // for sp<> // actually invokes this, but called from folks who already load it // "libmediandk", ], header_libs: [ // this is only needed for the vendor variant that removes libbinder, but vendor // target below does not allow adding header_libs. "libbinder_headers", "libstagefright_foundation_headers", "media_ndk_headers", "media_plugin_headers", ], local_include_dirs: [ "include/media/stagefright/foundation", ], cflags: [ "-Werror", "-Wall", ], srcs: [ "ColorUtils_ndk.cpp", "ColorUtils_fill.cpp", ], clang: true, sanitize: { misc_undefined: [ "unsigned-integer-overflow", "signed-integer-overflow", ], cfi: true, }, min_sdk_version: "29", apex_available: [ "//apex_available:platform", "com.android.media", "com.android.media.swcodec", ], }