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

Commit 65b9d67e authored by Ram Mohan's avatar Ram Mohan Committed by Automerger Merge Worker
Browse files

Update audiorecord tests am: 65c81dfb am: 2787e9b0 am: 96856897 am: 6242d4b1

parents f916a28e 6242d4b1
Loading
Loading
Loading
Loading
+17 −15
Original line number Diff line number Diff line
@@ -402,11 +402,8 @@ status_t AudioCapture::create() {
    }
    if (mFlags & AUDIO_INPUT_FLAG_FAST) {
        ALOGW("Overriding all previous computations");
        const uint32_t kMinNormalCaptureBufferSizeMs = 12;
        size_t maxFrameCount = kMinNormalCaptureBufferSizeMs * mSampleRate / 1000;
        mMaxBytesPerCallback = maxFrameCount * samplesPerFrame * bytesPerSample / 2;
        mNotificationFrames = maxFrameCount / 2;
        mFrameCount = 2 * mNotificationFrames;
        mFrameCount = 0;
        mNotificationFrames = 0;
    }
    mNumFramesToRecord = (mSampleRate * 0.25);  // record .25 sec
    std::string packageName{"AudioCapture"};
@@ -416,10 +413,16 @@ status_t AudioCapture::create() {
    attributionSource.pid = VALUE_OR_FATAL(legacy2aidl_pid_t_int32_t(getpid()));
    attributionSource.token = sp<BBinder>::make();
    if (mTransferType == AudioRecord::TRANSFER_OBTAIN) {
        if (mSampleRate == 48000) {  // test all available constructors
            mRecord = new AudioRecord(mInputSource, mSampleRate, mFormat, mChannelMask,
                                      attributionSource, mFrameCount, nullptr, nullptr,
                                      mNotificationFrames, mSessionId, mTransferType, mFlags);
        } else {
            mRecord = new AudioRecord(attributionSource);
            status = mRecord->set(mInputSource, mSampleRate, mFormat, mChannelMask, mFrameCount,
                                  nullptr, nullptr, 0, false, mSessionId, mTransferType, mFlags,
                                  attributionSource.uid, attributionSource.pid);
        }
        if (NO_ERROR != status) return status;
    } else if (mTransferType == AudioRecord::TRANSFER_CALLBACK) {
        mRecord = new AudioRecord(mInputSource, mSampleRate, mFormat, mChannelMask,
@@ -433,6 +436,11 @@ status_t AudioCapture::create() {
    mRecord->setCallerName(packageName);
    status = mRecord->initCheck();
    if (NO_ERROR == status) mState = REC_READY;
    if (mFlags & AUDIO_INPUT_FLAG_FAST) {
        mFrameCount = mRecord->frameCount();
        mNotificationFrames = mRecord->getNotificationPeriodInFrames();
        mMaxBytesPerCallback = mNotificationFrames * samplesPerFrame * bytesPerSample;
    }
    return status;
}

@@ -458,12 +466,6 @@ status_t AudioCapture::stop() {
    status_t status = OK;
    mStopRecording = true;
    if (mState != REC_STOPPED) {
        uint32_t position;
        status = mRecord->getPosition(&position);
        if (OK == status && mTransferType == AudioRecord::TRANSFER_CALLBACK) {
            if (position - mNumFramesToRecord > mFrameCount)
                if (mBufferOverrun == false) status = BAD_VALUE;
        }
        mRecord->stopAndJoinCallbacks();
        mState = REC_STOPPED;
        LOG_FATAL_IF(true != mRecord->stopped());
+12 −14
Original line number Diff line number Diff line
@@ -162,20 +162,6 @@ TEST_F(AudioRecordTest, TestGetSetMarkerPeriodical) {
            << "configured marker and received cb marker are different";
}

TEST_F(AudioRecordTest, TestMicDirectionConfiguration) {
    EXPECT_EQ(OK, mAC->getAudioRecordHandle()->setPreferredMicrophoneDirection(MIC_DIRECTION_FRONT))
            << "setPreferredMicrophoneDirection() Failed";
    EXPECT_EQ(OK, mAC->start()) << "start recording failed";
    EXPECT_EQ(OK, mAC->audioProcess()) << "audioProcess failed";
}

TEST_F(AudioRecordTest, TestMicFieldConfiguration) {
    EXPECT_EQ(OK, mAC->getAudioRecordHandle()->setPreferredMicrophoneFieldDimension(0.5f))
            << "setPreferredMicrophoneFieldDimension() Failed";
    EXPECT_EQ(OK, mAC->start()) << "start recording failed";
    EXPECT_EQ(OK, mAC->audioProcess()) << "audioProcess failed";
}

TEST_F(AudioRecordTest, TestGetPosition) {
    uint32_t position;
    EXPECT_EQ(OK, mAC->getAudioRecordHandle()->getPosition(&position)) << "getPosition() failed";
@@ -223,6 +209,18 @@ INSTANTIATE_TEST_SUITE_P(AudioRecordPrimaryInput, AudioRecordCreateTest,
                                            ::testing::Values(AUDIO_SESSION_NONE),
                                            ::testing::Values(AUDIO_SOURCE_DEFAULT)));

// for port fast input
INSTANTIATE_TEST_SUITE_P(AudioRecordFastInput, AudioRecordCreateTest,
                         ::testing::Combine(::testing::Values(8000, 11025, 12000, 16000, 22050,
                                                              24000, 32000, 44100, 48000),
                                            ::testing::Values(AUDIO_FORMAT_PCM_8_24_BIT),
                                            ::testing::Values(AUDIO_CHANNEL_IN_MONO,
                                                              AUDIO_CHANNEL_IN_STEREO,
                                                              AUDIO_CHANNEL_IN_FRONT_BACK),
                                            ::testing::Values(AUDIO_INPUT_FLAG_FAST),
                                            ::testing::Values(AUDIO_SESSION_NONE),
                                            ::testing::Values(AUDIO_SOURCE_DEFAULT)));

// misc
INSTANTIATE_TEST_SUITE_P(AudioRecordMiscInput, AudioRecordCreateTest,
                         ::testing::Combine(::testing::Values(48000),