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

Commit 288da02b authored by Andy Hung's avatar Andy Hung
Browse files

NuPlayer: Add audio deep buffer configuration

Disabled for video streams now.
Enabled by property media.stagefright.audio.deep 1

Bug: 21198655
Change-Id: I03f3b43091f950637d46779e2e74c1321b2cd268
parent 179652ee
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include "NuPlayerRenderer.h"
#include "NuPlayerSource.h"

#include <cutils/properties.h>
#include <media/ICrypto.h>
#include <media/stagefright/foundation/ABuffer.h>
#include <media/stagefright/foundation/ADebug.h>
@@ -40,6 +41,10 @@

namespace android {

static inline bool getAudioDeepBufferSetting() {
    return property_get_bool("media.stagefright.audio.deep", false /* default_value */);
}

NuPlayer::Decoder::Decoder(
        const sp<AMessage> &notify,
        const sp<Source> &source,
@@ -539,9 +544,10 @@ void NuPlayer::Decoder::handleOutputFormatChange(const sp<AMessage> &format) {
        uint32_t flags;
        int64_t durationUs;
        bool hasVideo = (mSource->getFormat(false /* audio */) != NULL);
        if (!hasVideo &&
                mSource->getDuration(&durationUs) == OK &&
                durationUs > AUDIO_SINK_MIN_DEEP_BUFFER_DURATION_US) {
        if (getAudioDeepBufferSetting() // override regardless of source duration
                || (!hasVideo
                        && mSource->getDuration(&durationUs) == OK
                        && durationUs > AUDIO_SINK_MIN_DEEP_BUFFER_DURATION_US)) {
            flags = AUDIO_OUTPUT_FLAG_DEEP_BUFFER;
        } else {
            flags = AUDIO_OUTPUT_FLAG_NONE;
+3 −0
Original line number Diff line number Diff line
@@ -48,6 +48,9 @@ namespace android {
   #Use audio callbacks for PCM data
   adb shell setprop media.stagefright.audio.cbk 1

   #Use deep buffer for PCM data with video (it is generally enabled for audio-only)
   adb shell setprop media.stagefright.audio.deep 1

   #Set size of buffers for pcm audio sink in msec (example: 1000 msec)
   adb shell setprop media.stagefright.audio.sink 1000