Loading Android.bp +16 −0 Original line number Original line Diff line number Diff line Loading @@ -163,3 +163,19 @@ aidl_interface { frozen: true, frozen: true, } } latest_av_audio_types_aidl = "av-audio-types-aidl-V1" cc_defaults { name: "latest_av_audio_types_aidl_ndk_shared", shared_libs: [ latest_av_audio_types_aidl + "-ndk", ], } cc_defaults { name: "latest_av_audio_types_aidl_ndk_static", static_libs: [ latest_av_audio_types_aidl + "-ndk", ], } media/libaudiohal/impl/Android.bp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -227,11 +227,11 @@ cc_defaults { "latest_android_hardware_audio_core_sounddose_ndk_shared", "latest_android_hardware_audio_core_sounddose_ndk_shared", "latest_android_hardware_audio_effect_ndk_shared", "latest_android_hardware_audio_effect_ndk_shared", "latest_android_media_audio_common_types_ndk_shared", "latest_android_media_audio_common_types_ndk_shared", "latest_av_audio_types_aidl_ndk_shared", ], ], shared_libs: [ shared_libs: [ "android.hardware.common-V2-ndk", "android.hardware.common-V2-ndk", "android.hardware.common.fmq-V1-ndk", "android.hardware.common.fmq-V1-ndk", "av-audio-types-aidl-V1-ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_common_ndk_cpp", "libaudio_aidl_conversion_common_ndk_cpp", Loading media/libstagefright/timedtext/test/fuzzer/Android.bp +10 −2 Original line number Original line Diff line number Diff line Loading @@ -48,8 +48,16 @@ cc_fuzz { ], ], fuzz_config: { fuzz_config: { cc: [ cc: [ "android-media-fuzzing-reports@google.com", "android-media-playback@google.com", ], ], componentid: 155276, componentid: 42195, hotlists: [ "4593311", ], description: "This fuzzer targets the APIs of libstagefright_timedtext", vector: "local_no_privileges_required", service_privilege: "constrained", users: "multi_user", fuzzed_code_usage: "shipped", }, }, } } media/module/extractors/mp4/MPEG4Extractor.cpp +12 −35 Original line number Original line Diff line number Diff line Loading @@ -1615,39 +1615,6 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { mLastTrack->timescale = ntohl(timescale); mLastTrack->timescale = ntohl(timescale); // 14496-12 says all ones means indeterminate, but some files seem to use // 0 instead. We treat both the same. int64_t duration = 0; if (version == 1) { if (mDataSource->readAt( timescale_offset + 4, &duration, sizeof(duration)) < (ssize_t)sizeof(duration)) { return ERROR_IO; } if (duration != -1) { duration = ntoh64(duration); } } else { uint32_t duration32; if (mDataSource->readAt( timescale_offset + 4, &duration32, sizeof(duration32)) < (ssize_t)sizeof(duration32)) { return ERROR_IO; } if (duration32 != 0xffffffff) { duration = ntohl(duration32); } } if (duration != 0 && mLastTrack->timescale != 0) { long double durationUs = ((long double)duration * 1000000) / mLastTrack->timescale; if (durationUs < 0 || durationUs > INT64_MAX) { ALOGE("cannot represent %lld * 1000000 / %lld in 64 bits", (long long) duration, (long long) mLastTrack->timescale); return ERROR_MALFORMED; } AMediaFormat_setInt64(mLastTrack->meta, AMEDIAFORMAT_KEY_DURATION, durationUs); } uint8_t lang[2]; uint8_t lang[2]; off64_t lang_offset; off64_t lang_offset; if (version == 1) { if (version == 1) { Loading Loading @@ -3907,17 +3874,18 @@ status_t MPEG4Extractor::parseTrackHeader( } } int32_t id; int32_t id; int64_t duration; if (version == 1) { if (version == 1) { // we can get ctime value from U64_AT(&buffer[4]) // we can get ctime value from U64_AT(&buffer[4]) // we can get mtime value from U64_AT(&buffer[12]) // we can get mtime value from U64_AT(&buffer[12]) id = U32_AT(&buffer[20]); id = U32_AT(&buffer[20]); // we can get duration value from U64_AT(&buffer[28]) duration = U64_AT(&buffer[28]); } else if (version == 0) { } else if (version == 0) { // we can get ctime value from U32_AT(&buffer[4]) // we can get ctime value from U32_AT(&buffer[4]) // we can get mtime value from U32_AT(&buffer[8]) // we can get mtime value from U32_AT(&buffer[8]) id = U32_AT(&buffer[12]); id = U32_AT(&buffer[12]); // we can get duration value from U32_AT(&buffer[20]) duration = U32_AT(&buffer[20]); } else { } else { return ERROR_UNSUPPORTED; return ERROR_UNSUPPORTED; } } Loading @@ -3926,6 +3894,15 @@ status_t MPEG4Extractor::parseTrackHeader( return ERROR_MALFORMED; return ERROR_MALFORMED; AMediaFormat_setInt32(mLastTrack->meta, AMEDIAFORMAT_KEY_TRACK_ID, id); AMediaFormat_setInt32(mLastTrack->meta, AMEDIAFORMAT_KEY_TRACK_ID, id); if (duration != 0 && mHeaderTimescale != 0) { long double durationUs = ((long double)duration * 1000000) / mHeaderTimescale; if (durationUs < 0 || durationUs > INT64_MAX) { ALOGE("cannot represent %lld * 1000000 / %lld in 64 bits", (long long) duration, (long long) mHeaderTimescale); return ERROR_MALFORMED; } AMediaFormat_setInt64(mLastTrack->meta, AMEDIAFORMAT_KEY_DURATION, durationUs); } size_t matrixOffset = dynSize + 16; size_t matrixOffset = dynSize + 16; int32_t a00 = U32_AT(&buffer[matrixOffset]); int32_t a00 = U32_AT(&buffer[matrixOffset]); Loading services/audioparameterparser/Android.bp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -35,10 +35,10 @@ cc_defaults { name: "android.hardware.audio.parameter_parser.example_defaults", name: "android.hardware.audio.parameter_parser.example_defaults", defaults: [ defaults: [ "latest_android_hardware_audio_core_ndk_shared", "latest_android_hardware_audio_core_ndk_shared", "latest_av_audio_types_aidl_ndk_shared", ], ], shared_libs: [ shared_libs: [ "av-audio-types-aidl-V1-ndk", "libbase", "libbase", "libbinder_ndk", "libbinder_ndk", ], ], Loading Loading
Android.bp +16 −0 Original line number Original line Diff line number Diff line Loading @@ -163,3 +163,19 @@ aidl_interface { frozen: true, frozen: true, } } latest_av_audio_types_aidl = "av-audio-types-aidl-V1" cc_defaults { name: "latest_av_audio_types_aidl_ndk_shared", shared_libs: [ latest_av_audio_types_aidl + "-ndk", ], } cc_defaults { name: "latest_av_audio_types_aidl_ndk_static", static_libs: [ latest_av_audio_types_aidl + "-ndk", ], }
media/libaudiohal/impl/Android.bp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -227,11 +227,11 @@ cc_defaults { "latest_android_hardware_audio_core_sounddose_ndk_shared", "latest_android_hardware_audio_core_sounddose_ndk_shared", "latest_android_hardware_audio_effect_ndk_shared", "latest_android_hardware_audio_effect_ndk_shared", "latest_android_media_audio_common_types_ndk_shared", "latest_android_media_audio_common_types_ndk_shared", "latest_av_audio_types_aidl_ndk_shared", ], ], shared_libs: [ shared_libs: [ "android.hardware.common-V2-ndk", "android.hardware.common-V2-ndk", "android.hardware.common.fmq-V1-ndk", "android.hardware.common.fmq-V1-ndk", "av-audio-types-aidl-V1-ndk", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_cpp", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_common_ndk", "libaudio_aidl_conversion_common_ndk_cpp", "libaudio_aidl_conversion_common_ndk_cpp", Loading
media/libstagefright/timedtext/test/fuzzer/Android.bp +10 −2 Original line number Original line Diff line number Diff line Loading @@ -48,8 +48,16 @@ cc_fuzz { ], ], fuzz_config: { fuzz_config: { cc: [ cc: [ "android-media-fuzzing-reports@google.com", "android-media-playback@google.com", ], ], componentid: 155276, componentid: 42195, hotlists: [ "4593311", ], description: "This fuzzer targets the APIs of libstagefright_timedtext", vector: "local_no_privileges_required", service_privilege: "constrained", users: "multi_user", fuzzed_code_usage: "shipped", }, }, } }
media/module/extractors/mp4/MPEG4Extractor.cpp +12 −35 Original line number Original line Diff line number Diff line Loading @@ -1615,39 +1615,6 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { mLastTrack->timescale = ntohl(timescale); mLastTrack->timescale = ntohl(timescale); // 14496-12 says all ones means indeterminate, but some files seem to use // 0 instead. We treat both the same. int64_t duration = 0; if (version == 1) { if (mDataSource->readAt( timescale_offset + 4, &duration, sizeof(duration)) < (ssize_t)sizeof(duration)) { return ERROR_IO; } if (duration != -1) { duration = ntoh64(duration); } } else { uint32_t duration32; if (mDataSource->readAt( timescale_offset + 4, &duration32, sizeof(duration32)) < (ssize_t)sizeof(duration32)) { return ERROR_IO; } if (duration32 != 0xffffffff) { duration = ntohl(duration32); } } if (duration != 0 && mLastTrack->timescale != 0) { long double durationUs = ((long double)duration * 1000000) / mLastTrack->timescale; if (durationUs < 0 || durationUs > INT64_MAX) { ALOGE("cannot represent %lld * 1000000 / %lld in 64 bits", (long long) duration, (long long) mLastTrack->timescale); return ERROR_MALFORMED; } AMediaFormat_setInt64(mLastTrack->meta, AMEDIAFORMAT_KEY_DURATION, durationUs); } uint8_t lang[2]; uint8_t lang[2]; off64_t lang_offset; off64_t lang_offset; if (version == 1) { if (version == 1) { Loading Loading @@ -3907,17 +3874,18 @@ status_t MPEG4Extractor::parseTrackHeader( } } int32_t id; int32_t id; int64_t duration; if (version == 1) { if (version == 1) { // we can get ctime value from U64_AT(&buffer[4]) // we can get ctime value from U64_AT(&buffer[4]) // we can get mtime value from U64_AT(&buffer[12]) // we can get mtime value from U64_AT(&buffer[12]) id = U32_AT(&buffer[20]); id = U32_AT(&buffer[20]); // we can get duration value from U64_AT(&buffer[28]) duration = U64_AT(&buffer[28]); } else if (version == 0) { } else if (version == 0) { // we can get ctime value from U32_AT(&buffer[4]) // we can get ctime value from U32_AT(&buffer[4]) // we can get mtime value from U32_AT(&buffer[8]) // we can get mtime value from U32_AT(&buffer[8]) id = U32_AT(&buffer[12]); id = U32_AT(&buffer[12]); // we can get duration value from U32_AT(&buffer[20]) duration = U32_AT(&buffer[20]); } else { } else { return ERROR_UNSUPPORTED; return ERROR_UNSUPPORTED; } } Loading @@ -3926,6 +3894,15 @@ status_t MPEG4Extractor::parseTrackHeader( return ERROR_MALFORMED; return ERROR_MALFORMED; AMediaFormat_setInt32(mLastTrack->meta, AMEDIAFORMAT_KEY_TRACK_ID, id); AMediaFormat_setInt32(mLastTrack->meta, AMEDIAFORMAT_KEY_TRACK_ID, id); if (duration != 0 && mHeaderTimescale != 0) { long double durationUs = ((long double)duration * 1000000) / mHeaderTimescale; if (durationUs < 0 || durationUs > INT64_MAX) { ALOGE("cannot represent %lld * 1000000 / %lld in 64 bits", (long long) duration, (long long) mHeaderTimescale); return ERROR_MALFORMED; } AMediaFormat_setInt64(mLastTrack->meta, AMEDIAFORMAT_KEY_DURATION, durationUs); } size_t matrixOffset = dynSize + 16; size_t matrixOffset = dynSize + 16; int32_t a00 = U32_AT(&buffer[matrixOffset]); int32_t a00 = U32_AT(&buffer[matrixOffset]); Loading
services/audioparameterparser/Android.bp +1 −1 Original line number Original line Diff line number Diff line Loading @@ -35,10 +35,10 @@ cc_defaults { name: "android.hardware.audio.parameter_parser.example_defaults", name: "android.hardware.audio.parameter_parser.example_defaults", defaults: [ defaults: [ "latest_android_hardware_audio_core_ndk_shared", "latest_android_hardware_audio_core_ndk_shared", "latest_av_audio_types_aidl_ndk_shared", ], ], shared_libs: [ shared_libs: [ "av-audio-types-aidl-V1-ndk", "libbase", "libbase", "libbinder_ndk", "libbinder_ndk", ], ], Loading