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

Commit d39ac400 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 11859356 from 7f97aa65 to 24Q3-release

Change-Id: I69191c266f56e23d75027836e5f2aa9c2f182bd6
parents e3d060b6 7f97aa65
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -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",
    ],
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -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",
+10 −2
Original line number Original line Diff line number Diff line
@@ -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",
    },
    },
}
}
+12 −35
Original line number Original line Diff line number Diff line
@@ -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) {
@@ -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;
    }
    }
@@ -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]);
+1 −1
Original line number Original line Diff line number Diff line
@@ -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",
    ],
    ],