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

Commit a82216ff authored by Dichen Zhang's avatar Dichen Zhang Committed by Android (Google) Code Review
Browse files

Merge "Erase bufferCount in audio output."

parents 75e4e9b8 303bd2da
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,