diff options
author | Surajit Podder <spodder@codeaurora.org> | 2015-09-25 19:03:35 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-10-06 22:51:42 -0700 |
commit | 26e6ce2197669040095a225b55b04d41dbd4e4b0 (patch) | |
tree | 235464cf251d7c621c9d08a49942479f143ec0dd /media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | |
parent | b3f0834aa448d6b4bf8dbddaff4fbcefa3ede422 (diff) | |
download | frameworks_av-26e6ce2197669040095a225b55b04d41dbd4e4b0.zip frameworks_av-26e6ce2197669040095a225b55b04d41dbd4e4b0.tar.gz frameworks_av-26e6ce2197669040095a225b55b04d41dbd4e4b0.tar.bz2 |
Revert "Revert "mediaplayer: make frame-accurate avsync configurable""
This reverts commit e17afa888040eb5fbd31249305efd88ee03bb5bc.
Change-Id: I7afb6a055d3efb08fdbdff19f0bbad01934614e8
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index aa993a9..9d2f134 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -83,6 +83,16 @@ const NuPlayer::Renderer::PcmInfo NuPlayer::Renderer::AUDIO_PCMINFO_INITIALIZER // static const int64_t NuPlayer::Renderer::kMinPositionUpdateDelayUs = 100000ll; +static bool sFrameAccurateAVsync = false; + +static void readProperties() { + char value[PROPERTY_VALUE_MAX]; + if (property_get("persist.sys.media.avsync", value, NULL)) { + sFrameAccurateAVsync = + !strcmp("1", value) || !strcasecmp("true", value); + } +} + NuPlayer::Renderer::Renderer( const sp<MediaPlayerBase::AudioSink> &sink, const sp<AMessage> ¬ify, @@ -124,6 +134,7 @@ NuPlayer::Renderer::Renderer( mMediaClock = new MediaClock; mPlaybackRate = mPlaybackSettings.mSpeed; mMediaClock->setPlaybackRate(mPlaybackRate); + readProperties(); } NuPlayer::Renderer::~Renderer() { @@ -1065,6 +1076,11 @@ void NuPlayer::Renderer::postDrainVideoQueue() { ALOGW_IF(delayUs > 500000, "unusually high delayUs: %" PRId64, delayUs); // post 2 display refreshes before rendering is due + // FIXME currently this increases power consumption, so unless frame-accurate + // AV sync is requested, post closer to required render time (at 0.63 vsyncs) + if (!sFrameAccurateAVsync) { + twoVsyncsUs >>= 4; + } msg->post(delayUs > twoVsyncsUs ? delayUs - twoVsyncsUs : 0); mDrainVideoQueuePending = true; @@ -1477,6 +1493,8 @@ void NuPlayer::Renderer::onPause() { } void NuPlayer::Renderer::onResume() { + readProperties(); + if (!mPaused) { return; } |