Loading media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ #include "NuPlayerRenderer.h" #include <cutils/properties.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> Loading @@ -39,6 +41,16 @@ static const int64_t kOffloadPauseMaxUs = 60000000ll; // 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, Loading Loading @@ -68,6 +80,7 @@ NuPlayer::Renderer::Renderer( mVideoLateByUs(0ll), mAudioOffloadPauseTimeoutGeneration(0), mAudioOffloadTornDown(false) { readProperties(); } NuPlayer::Renderer::~Renderer() { Loading Loading @@ -576,6 +589,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; Loading Loading @@ -976,6 +994,8 @@ void NuPlayer::Renderer::onPause() { } void NuPlayer::Renderer::onResume() { readProperties(); if (!mPaused) { return; } Loading Loading
media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,8 @@ #include "NuPlayerRenderer.h" #include <cutils/properties.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> Loading @@ -39,6 +41,16 @@ static const int64_t kOffloadPauseMaxUs = 60000000ll; // 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, Loading Loading @@ -68,6 +80,7 @@ NuPlayer::Renderer::Renderer( mVideoLateByUs(0ll), mAudioOffloadPauseTimeoutGeneration(0), mAudioOffloadTornDown(false) { readProperties(); } NuPlayer::Renderer::~Renderer() { Loading Loading @@ -576,6 +589,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; Loading Loading @@ -976,6 +994,8 @@ void NuPlayer::Renderer::onPause() { } void NuPlayer::Renderer::onResume() { readProperties(); if (!mPaused) { return; } Loading