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

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

Snap for 12404440 from 8e776104 to 24Q4-release

Change-Id: I3146818884913fb95ce885fb1e26343dd587f4c1
parents 0629532e 8e776104
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -1033,17 +1033,11 @@ ToneGenerator::ToneGenerator(audio_stream_type_t streamType, float volume, bool

    mState = TONE_IDLE;

    if (AudioSystem::getOutputSamplingRate(&mSamplingRate, streamType) != NO_ERROR) {
        ALOGE("Unable to marshal AudioFlinger");
        return;
    }
    mThreadCanCallJava = threadCanCallJava;
    mStreamType = streamType;
    mVolume = volume;
    mpToneDesc = NULL;
    mpNewToneDesc = NULL;
    // Generate tone by chunks of 20 ms to keep cadencing precision
    mProcessSize = (mSamplingRate * 20) / 1000;

    char value[PROPERTY_VALUE_MAX];
    if (property_get("gsm.operator.iso-country", value, "") == 0) {
@@ -1321,6 +1315,7 @@ bool ToneGenerator::initAudioTrack() {
    mpAudioTrack = new AudioTrack(attributionSource);
    ALOGV("AudioTrack(%p) created", mpAudioTrack.get());


    audio_attributes_t attr;
    audio_stream_type_t streamType = mStreamType;
    if (mStreamType == AUDIO_STREAM_VOICE_CALL || mStreamType == AUDIO_STREAM_BLUETOOTH_SCO) {
@@ -1329,13 +1324,12 @@ bool ToneGenerator::initAudioTrack() {
    attr = AudioSystem::streamTypeToAttributes(streamType);
    attr.flags = static_cast<audio_flags_mask_t>(attr.flags | AUDIO_FLAG_LOW_LATENCY);

    const size_t frameCount = mProcessSize;
    status_t status = mpAudioTrack->set(
            AUDIO_STREAM_DEFAULT,
            0,    // sampleRate
            AUDIO_FORMAT_PCM_16_BIT,
            AUDIO_CHANNEL_OUT_MONO,
            frameCount,
            0,    // frameCount
            AUDIO_OUTPUT_FLAG_NONE,
            wp<AudioTrack::IAudioTrackCallback>::fromExisting(this),
            0,    // notificationFrames
@@ -1355,6 +1349,10 @@ bool ToneGenerator::initAudioTrack() {
        return false;
    }

    mSamplingRate = mpAudioTrack->getSampleRate();
    // Generate tone by chunks of 20 ms to keep cadencing precision
    mProcessSize = (mSamplingRate * 20) / 1000;

    mpAudioTrack->setVolume(mVolume);
    mState = TONE_INIT;
    return true;
+3 −0
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ cc_defaults {
        "android.hardware.media.omx@1.0",
        "av-types-aidl-cpp",
        "framework-permission-aidl-cpp",
        "libaconfig_storage_read_api_cc",
        "libaudioclient_aidl_conversion",
        "libbase",
        "libbinder_ndk",
@@ -76,6 +77,7 @@ cc_defaults {
        "libstagefright_httplive",
        "libutils",
        "packagemanager_aidl-cpp",
        "server_configurable_flags",
    ],

    header_libs: [
@@ -86,6 +88,7 @@ cc_defaults {
    ],

    static_libs: [
        "com.android.media.flags.editing-aconfig-cc",
        "libplayerservice_datasource",
        "libstagefright_nuplayer",
        "libstagefright_rtsp",
+3 −1
Original line number Diff line number Diff line
@@ -68,6 +68,7 @@
#include <system/audio.h>

#include <media/stagefright/rtsp/ARTPWriter.h>
#include <com_android_media_editing_flags.h>

namespace android {

@@ -2121,7 +2122,8 @@ status_t StagefrightRecorder::setupVideoEncoder(
        uint32_t bLayers = std::min(2u, tsLayers - 1); // use up-to 2 B-layers
        // TODO(b/341121900): Remove this once B frames are handled correctly in screen recorder
        // use case in case of mic only
        if (mAudioSource == AUDIO_SOURCE_MIC && mVideoSource == VIDEO_SOURCE_SURFACE) {
        if (!com::android::media::editing::flags::stagefrightrecorder_enable_b_frames()
                && mAudioSource == AUDIO_SOURCE_MIC && mVideoSource == VIDEO_SOURCE_SURFACE) {
            bLayers = 0;
        }
        uint32_t pLayers = tsLayers - bLayers;
+1 −0
Original line number Diff line number Diff line
@@ -321,6 +321,7 @@ cc_library {

    static_libs: [
        "android.media.codec-aconfig-cc",
        "com.android.media.flags.editing-aconfig-cc",
        "libstagefright_esds",
        "libstagefright_color_conversion",
        "libyuv",
+13 −3
Original line number Diff line number Diff line
@@ -53,6 +53,8 @@
#include <media/esds/ESDS.h>
#include "include/HevcUtils.h"

#include <com_android_media_editing_flags.h>

#ifndef __predict_false
#define __predict_false(exp) __builtin_expect((exp) != 0, 0)
#endif
@@ -4944,6 +4946,8 @@ void MPEG4Writer::Track::writeEdtsBox() {
            // Track with start offset.
            ALOGV("Tracks starting > 0");
            int32_t editDurationTicks = 0;
            int32_t trackStartOffsetBFramesUs = getMinCttsOffsetTimeUs() - kMaxCttsOffsetTimeUs;
            ALOGV("trackStartOffsetBFramesUs:%" PRId32, trackStartOffsetBFramesUs);
            if (mMinCttsOffsetTicks == mMaxCttsOffsetTicks) {
                // Video with no B frame or non-video track.
                editDurationTicks =
@@ -4952,8 +4956,6 @@ void MPEG4Writer::Track::writeEdtsBox() {
                ALOGV("editDuration:%" PRId64 "us", (trackStartOffsetUs + movieStartOffsetBFramesUs));
            } else {
                // Track with B frame.
                int32_t trackStartOffsetBFramesUs = getMinCttsOffsetTimeUs() - kMaxCttsOffsetTimeUs;
                ALOGV("trackStartOffsetBFramesUs:%" PRId32, trackStartOffsetBFramesUs);
                editDurationTicks =
                        ((trackStartOffsetUs + movieStartOffsetBFramesUs +
                          trackStartOffsetBFramesUs) * mvhdTimeScale + 5E5) / 1E6;
@@ -4967,7 +4969,15 @@ void MPEG4Writer::Track::writeEdtsBox() {
            } else if (editDurationTicks < 0) {
                // Only video tracks with B Frames would hit this case.
                ALOGV("Edit list entry to negate start offset by B frames in other tracks");
                if (com::android::media::editing::flags::
                        stagefrightrecorder_enable_b_frames()) {
                    int32_t mediaTimeTicks =
                            ((trackStartOffsetUs + movieStartOffsetBFramesUs +
                              trackStartOffsetBFramesUs) * mTimeScale - 5E5) / 1E6;
                    addOneElstTableEntry(tkhdDurationTicks, std::abs(mediaTimeTicks), 1, 0);
                } else {
                    addOneElstTableEntry(tkhdDurationTicks, std::abs(editDurationTicks), 1, 0);
                }
            } else {
                ALOGV("No edit list entry needed for this track");
            }
Loading