summaryrefslogtreecommitdiffstats
path: root/media/libstagefright
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-05-02 17:18:02 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-02 17:18:02 +0000
commit9e0922ba7dda72fc94d2af2872cfc630ad599c91 (patch)
tree5e7501642f232712e9c4da0f5280e65b4179f89b /media/libstagefright
parentedf6131d1eca1fdff3b151805d241a1cc81b52ca (diff)
parent6e76fda36a87e154397de816fa091b721a4c11bd (diff)
downloadframeworks_av-9e0922ba7dda72fc94d2af2872cfc630ad599c91.zip
frameworks_av-9e0922ba7dda72fc94d2af2872cfc630ad599c91.tar.gz
frameworks_av-9e0922ba7dda72fc94d2af2872cfc630ad599c91.tar.bz2
am 6e76fda3: am f9782266: Merge "AwesomePlayer: improve scheduling of video event to hit PTS"
* commit '6e76fda36a87e154397de816fa091b721a4c11bd': AwesomePlayer: improve scheduling of video event to hit PTS
Diffstat (limited to 'media/libstagefright')
-rw-r--r--media/libstagefright/AwesomePlayer.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp
index 0dd867c..391392e 100644
--- a/media/libstagefright/AwesomePlayer.cpp
+++ b/media/libstagefright/AwesomePlayer.cpp
@@ -1944,8 +1944,9 @@ void AwesomePlayer::onVideoEvent() {
}
if (latenessUs < -10000) {
- // We're more than 10ms early.
- postVideoEvent_l(10000);
+ // We're more than 10ms early. Try to schedule at least 12ms
+ // early (to hit this same check), or just on time.
+ postVideoEvent_l(latenessUs < -22000 ? 10000 : -latenessUs);
return;
}
}
@@ -2009,7 +2010,10 @@ void AwesomePlayer::onVideoEvent() {
int64_t nextTimeUs;
CHECK(mVideoBuffer->meta_data()->findInt64(kKeyTime, &nextTimeUs));
int64_t delayUs = nextTimeUs - ts->getRealTimeUs() + mTimeSourceDeltaUs;
- postVideoEvent_l(delayUs > 10000 ? 10000 : delayUs < 0 ? 0 : delayUs);
+ ATRACE_INT("Frame delta (ms)", (nextTimeUs - timeUs) / 1E3);
+ ALOGV("next frame in %" PRId64, delayUs);
+ // try to schedule at least 12ms before due time, or just on time
+ postVideoEvent_l(delayUs > 22000 ? 10000 : delayUs < 0 ? 0 : delayUs);
return;
}