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

Commit c72e311b authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 7302914 from 2742709a to sc-release

Change-Id: I67e1833b3a80fd04f6cb40191a7d0e494e0931f2
parents 03a85d57 2742709a
Loading
Loading
Loading
Loading
+26 −3
Original line number Diff line number Diff line
@@ -235,7 +235,8 @@ status_t AudioRecord::set(
        const audio_attributes_t* pAttributes,
        audio_port_handle_t selectedDeviceId,
        audio_microphone_direction_t selectedMicDirection,
        float microphoneFieldDimension)
        float microphoneFieldDimension,
        int32_t maxSharedAudioHistoryMs)
{
    status_t status = NO_ERROR;
    uint32_t channelCount;
@@ -268,6 +269,7 @@ status_t AudioRecord::set(
    mSelectedDeviceId = selectedDeviceId;
    mSelectedMicDirection = selectedMicDirection;
    mSelectedMicFieldDimension = microphoneFieldDimension;
    mMaxSharedAudioHistoryMs = maxSharedAudioHistoryMs;

    switch (transferType) {
    case TRANSFER_DEFAULT:
@@ -816,6 +818,7 @@ status_t AudioRecord::createRecord_l(const Modulo<uint32_t> &epoch)
    input.selectedDeviceId = mSelectedDeviceId;
    input.sessionId = mSessionId;
    originalSessionId = mSessionId;
    input.maxSharedAudioHistoryMs = mMaxSharedAudioHistoryMs;

    do {
        media::CreateRecordResponse response;
@@ -837,7 +840,7 @@ status_t AudioRecord::createRecord_l(const Modulo<uint32_t> &epoch)
        usleep((20 + rand() % 30) * 10000);
    } while (1);

    ALOG_ASSERT(record != 0);
    ALOG_ASSERT(output.audioRecord != 0);

    // AudioFlinger now owns the reference to the I/O handle,
    // so we are no longer responsible for releasing it.
@@ -925,6 +928,10 @@ status_t AudioRecord::createRecord_l(const Modulo<uint32_t> &epoch)
        AudioSystem::addAudioDeviceCallback(this, output.inputId, output.portId);
    }

    if (!mSharedAudioPackageName.empty()) {
        mAudioRecord->shareAudioHistory(mSharedAudioPackageName, mSharedAudioStartMs);
    }

    mPortId = output.portId;
    // We retain a copy of the I/O handle, but don't own the reference
    mInput = output.inputId;
@@ -1589,6 +1596,22 @@ void AudioRecord::setLogSessionId(const char *logSessionId)
         .record();
}

status_t AudioRecord::shareAudioHistory(const std::string& sharedPackageName,
                                        int64_t sharedStartMs)
{
    AutoMutex lock(mLock);
    if (mAudioRecord == 0) {
        return NO_INIT;
    }
    status_t status = statusTFromBinderStatus(
            mAudioRecord->shareAudioHistory(sharedPackageName, sharedStartMs));
    if (status == NO_ERROR) {
        mSharedAudioPackageName = sharedPackageName;
        mSharedAudioStartMs = sharedStartMs;
    }
    return status;
}

// =========================================================================

void AudioRecord::DeathNotifier::binderDied(const wp<IBinder>& who __unused)
+6 −1
Original line number Diff line number Diff line
@@ -138,6 +138,8 @@ IAudioFlinger::CreateRecordInput::toAidl() const {
    aidl.config = VALUE_OR_RETURN(legacy2aidl_audio_config_base_t_AudioConfigBase(config));
    aidl.clientInfo = VALUE_OR_RETURN(legacy2aidl_AudioClient_AudioClient(clientInfo));
    aidl.riid = VALUE_OR_RETURN(legacy2aidl_audio_unique_id_t_int32_t(riid));
    aidl.maxSharedAudioHistoryMs = VALUE_OR_RETURN(
            convertIntegral<int32_t>(maxSharedAudioHistoryMs));
    aidl.flags = VALUE_OR_RETURN(legacy2aidl_audio_input_flags_t_int32_t_mask(flags));
    aidl.frameCount = VALUE_OR_RETURN(convertIntegral<int64_t>(frameCount));
    aidl.notificationFrameCount = VALUE_OR_RETURN(convertIntegral<int64_t>(notificationFrameCount));
@@ -151,10 +153,13 @@ ConversionResult<IAudioFlinger::CreateRecordInput>
IAudioFlinger::CreateRecordInput::fromAidl(
        const media::CreateRecordRequest& aidl) {
    IAudioFlinger::CreateRecordInput legacy;
    legacy.attr = VALUE_OR_RETURN(aidl2legacy_AudioAttributesInternal_audio_attributes_t(aidl.attr));
    legacy.attr = VALUE_OR_RETURN(
            aidl2legacy_AudioAttributesInternal_audio_attributes_t(aidl.attr));
    legacy.config = VALUE_OR_RETURN(aidl2legacy_AudioConfigBase_audio_config_base_t(aidl.config));
    legacy.clientInfo = VALUE_OR_RETURN(aidl2legacy_AudioClient_AudioClient(aidl.clientInfo));
    legacy.riid = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_unique_id_t(aidl.riid));
    legacy.maxSharedAudioHistoryMs = VALUE_OR_RETURN(
            convertIntegral<int32_t>(aidl.maxSharedAudioHistoryMs));
    legacy.flags = VALUE_OR_RETURN(aidl2legacy_int32_t_audio_input_flags_t_mask(aidl.flags));
    legacy.frameCount = VALUE_OR_RETURN(convertIntegral<size_t>(aidl.frameCount));
    legacy.notificationFrameCount = VALUE_OR_RETURN(
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ parcelable CreateRecordRequest {
    AudioClient clientInfo;
    /** Interpreted as audio_unique_id_t. */
    int riid;
    int maxSharedAudioHistoryMs;
    /** Bitmask, indexed by AudioInputFlags. */
    int flags;
    long frameCount;
+2 −0
Original line number Diff line number Diff line
@@ -48,4 +48,6 @@ interface IAudioRecord {
  /* Set the microphone zoom (for processing).
   */
  void setPreferredMicrophoneFieldDimension(float zoom);

  void shareAudioHistory(@utf8InCpp String sharedAudioPackageName, long sharedAudioStartMs);
}
+10 −1
Original line number Diff line number Diff line
@@ -241,7 +241,8 @@ public:
                            audio_port_handle_t selectedDeviceId = AUDIO_PORT_HANDLE_NONE,
                            audio_microphone_direction_t
                                selectedMicDirection = MIC_DIRECTION_UNSPECIFIED,
                            float selectedMicFieldDimension = MIC_FIELD_DIMENSION_DEFAULT);
                            float selectedMicFieldDimension = MIC_FIELD_DIMENSION_DEFAULT,
                            int32_t maxSharedAudioHistoryMs = 0);

    /* Result of constructing the AudioRecord. This must be checked for successful initialization
     * before using any AudioRecord API (except for set()), because using
@@ -596,6 +597,10 @@ public:
     */
            void setLogSessionId(const char *logSessionId);


            status_t shareAudioHistory(const std::string& sharedPackageName,
                                       int64_t sharedStartMs);

     /*
      * Dumps the state of an audio record.
      */
@@ -779,6 +784,10 @@ private:
    audio_microphone_direction_t mSelectedMicDirection;
    float mSelectedMicFieldDimension;

    int32_t                    mMaxSharedAudioHistoryMs = 0;
    std::string                mSharedAudioPackageName = {};
    int64_t                    mSharedAudioStartMs = 0;

private:
    class MediaMetrics {
      public:
Loading