diff options
author | Steve Kondik <steve@cyngn.com> | 2015-12-09 20:44:26 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-12-13 13:16:01 -0800 |
commit | 6dde130280d6ead297170211b005cc809e7f7bde (patch) | |
tree | a2053b10d736cadc85ce1adfe18d6256875da325 /media/libmediaplayerservice/nuplayer/NuPlayer.h | |
parent | fb9765480b10aaf39ac82149abe28d1805e1fe92 (diff) | |
download | frameworks_av-6dde130280d6ead297170211b005cc809e7f7bde.zip frameworks_av-6dde130280d6ead297170211b005cc809e7f7bde.tar.gz frameworks_av-6dde130280d6ead297170211b005cc809e7f7bde.tar.bz2 |
stagefright: Resurrect PCM offload
* Forward-port the open-source code from L which was moved to closed-source
in M. This is being done out of necessity- the architecture chosen by
Qualcomm is not optimal and doesn't work well with a singular
codebase which attempts to service a large number of devices.
* This patch brings in the code to support PCM offload (AudioFlinger
bypass). This allows for playback of high resolution clips without
decimation stages, and enables reduced power consumption for audio
pipelines which take advantage of the Hexagon DSP (effects).
Change-Id: I0ef15fc3df538ab723f3c12ce0ed71d0e607c99e
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayer.h')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayer.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.h b/media/libmediaplayerservice/nuplayer/NuPlayer.h index ee0f3e6..c093b0f 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.h +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.h @@ -86,11 +86,12 @@ protected: virtual ~NuPlayer(); virtual void onMessageReceived(const sp<AMessage> &msg); - virtual bool ifDecodedPCMOffload() {return false;} - virtual void setDecodedPcmOffload(bool /*decodePcmOffload*/) {} - virtual bool canOffloadDecodedPCMStream(const sp<MetaData> /*meta*/, - bool /*hasVideo*/, bool /*isStreaming*/, audio_stream_type_t /*streamType*/) {return false;} + virtual bool ifDecodedPCMOffload(); + virtual void setDecodedPcmOffload(bool decodePcmOffload); + virtual bool canOffloadDecodedPCMStream(const sp<MetaData> meta, + bool hasVideo, bool isStreaming, audio_stream_type_t streamType); static bool IsHTTPLiveURL(const char *url); + public: struct NuPlayerStreamListener; struct Source; @@ -151,6 +152,7 @@ protected: sp<MediaPlayerBase::AudioSink> mAudioSink; sp<DecoderBase> mVideoDecoder; bool mOffloadAudio; + bool mOffloadDecodedPCM; sp<DecoderBase> mAudioDecoder; sp<CCDecoder> mCCDecoder; sp<Renderer> mRenderer; |