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

Commit 303bd2da authored by Dichen Zhang's avatar Dichen Zhang
Browse files

Erase bufferCount in audio output.

Test: Build and run on phone

Change-Id: I8fd62b5ac1f343d6b397b3221c1285b22bf8cd06
parent 5e0659c8
Loading
Loading
Loading
Loading
+5 −33
Original line number Original line Diff line number Diff line
@@ -299,14 +299,14 @@ void MediaPlayer2AudioOutput::close_l() {


status_t MediaPlayer2AudioOutput::open(
status_t MediaPlayer2AudioOutput::open(
        uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask,
        uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask,
        audio_format_t format, int bufferCount,
        audio_format_t format,
        AudioCallback cb, void *cookie,
        AudioCallback cb, void *cookie,
        audio_output_flags_t flags,
        audio_output_flags_t flags,
        const audio_offload_info_t *offloadInfo,
        const audio_offload_info_t *offloadInfo,
        bool doNotReconnect,
        bool doNotReconnect,
        uint32_t suggestedFrameCount) {
        uint32_t suggestedFrameCount) {
    ALOGV("open(%u, %d, 0x%x, 0x%x, %d, %d 0x%x)", sampleRate, channelCount, channelMask,
    ALOGV("open(%u, %d, 0x%x, 0x%x, %d 0x%x)", sampleRate, channelCount, channelMask,
                format, bufferCount, mSessionId, flags);
                format, mSessionId, flags);


    // offloading is only supported in callback mode for now.
    // offloading is only supported in callback mode for now.
    // offloadInfo must be present if offload flag is set
    // offloadInfo must be present if offload flag is set
@@ -316,36 +316,8 @@ status_t MediaPlayer2AudioOutput::open(
    }
    }


    // compute frame count for the AudioTrack internal buffer
    // compute frame count for the AudioTrack internal buffer
    size_t frameCount;
    const size_t frameCount =
    if ((flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) != 0) {
           ((flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) != 0) ? 0 : suggestedFrameCount;
        frameCount = 0; // AudioTrack will get frame count from AudioFlinger
    } else {
        // try to estimate the buffer processing fetch size from AudioFlinger.
        // framesPerBuffer is approximate and generally correct, except when it's not :-).
        uint32_t afSampleRate;
        size_t afFrameCount;
        if (AudioSystem::getOutputFrameCount(&afFrameCount, mStreamType) != NO_ERROR) {
            return NO_INIT;
        }
        if (AudioSystem::getOutputSamplingRate(&afSampleRate, mStreamType) != NO_ERROR) {
            return NO_INIT;
        }
        const size_t framesPerBuffer =
                (unsigned long long)sampleRate * afFrameCount / afSampleRate;

        if (bufferCount == 0) {
            // use suggestedFrameCount
            bufferCount = (suggestedFrameCount + framesPerBuffer - 1) / framesPerBuffer;
        }
        // Check argument bufferCount against the mininum buffer count
        if (bufferCount != 0 && bufferCount < mMinBufferCount) {
            ALOGV("bufferCount (%d) increased to %d", bufferCount, mMinBufferCount);
            bufferCount = mMinBufferCount;
        }
        // if frameCount is 0, then AudioTrack will get frame count from AudioFlinger
        // which will be the minimum size permitted.
        frameCount = bufferCount * framesPerBuffer;
    }


    if (channelMask == CHANNEL_MASK_USE_CHANNEL_ORDER) {
    if (channelMask == CHANNEL_MASK_USE_CHANNEL_ORDER) {
        channelMask = audio_channel_out_mask_from_count(channelCount);
        channelMask = audio_channel_out_mask_from_count(channelCount);
+1 −1
Original line number Original line Diff line number Diff line
@@ -58,7 +58,7 @@ public:


    virtual status_t open(
    virtual status_t open(
            uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask,
            uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask,
            audio_format_t format, int bufferCount,
            audio_format_t format,
            AudioCallback cb, void *cookie,
            AudioCallback cb, void *cookie,
            audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
            audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
            const audio_offload_info_t *offloadInfo = NULL,
            const audio_offload_info_t *offloadInfo = NULL,
+0 −2
Original line number Original line Diff line number Diff line
@@ -47,7 +47,6 @@ struct DataSourceDesc;
class Parcel;
class Parcel;
struct ANativeWindowWrapper;
struct ANativeWindowWrapper;


#define DEFAULT_AUDIOSINK_BUFFERCOUNT 4
#define DEFAULT_AUDIOSINK_BUFFERSIZE 1200
#define DEFAULT_AUDIOSINK_BUFFERSIZE 1200
#define DEFAULT_AUDIOSINK_SAMPLERATE 44100
#define DEFAULT_AUDIOSINK_SAMPLERATE 44100


@@ -103,7 +102,6 @@ public:
        virtual status_t open(
        virtual status_t open(
                uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask,
                uint32_t sampleRate, int channelCount, audio_channel_mask_t channelMask,
                audio_format_t format=AUDIO_FORMAT_PCM_16_BIT,
                audio_format_t format=AUDIO_FORMAT_PCM_16_BIT,
                int bufferCount=DEFAULT_AUDIOSINK_BUFFERCOUNT,
                AudioCallback cb = NULL,
                AudioCallback cb = NULL,
                void *cookie = NULL,
                void *cookie = NULL,
                audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
                audio_output_flags_t flags = AUDIO_OUTPUT_FLAG_NONE,
+0 −2
Original line number Original line Diff line number Diff line
@@ -1918,7 +1918,6 @@ status_t NuPlayer2::Renderer::onOpenAudioSink(
                    numChannels,
                    numChannels,
                    (audio_channel_mask_t)channelMask,
                    (audio_channel_mask_t)channelMask,
                    audioFormat,
                    audioFormat,
                    0 /* bufferCount - unused */,
                    &NuPlayer2::Renderer::AudioSinkCallback,
                    &NuPlayer2::Renderer::AudioSinkCallback,
                    this,
                    this,
                    (audio_output_flags_t)offloadFlags,
                    (audio_output_flags_t)offloadFlags,
@@ -2004,7 +2003,6 @@ status_t NuPlayer2::Renderer::onOpenAudioSink(
                    numChannels,
                    numChannels,
                    (audio_channel_mask_t)channelMask,
                    (audio_channel_mask_t)channelMask,
                    AUDIO_FORMAT_PCM_16_BIT,
                    AUDIO_FORMAT_PCM_16_BIT,
                    0 /* bufferCount - unused */,
                    mUseAudioCallback ? &NuPlayer2::Renderer::AudioSinkCallback : NULL,
                    mUseAudioCallback ? &NuPlayer2::Renderer::AudioSinkCallback : NULL,
                    mUseAudioCallback ? this : NULL,
                    mUseAudioCallback ? this : NULL,
                    (audio_output_flags_t)pcmFlags,
                    (audio_output_flags_t)pcmFlags,