diff options
author | Lajos Molnar <lajos@google.com> | 2014-05-02 17:21:53 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-05-02 17:21:53 +0000 |
commit | b0210338bba812d27e0e6b1bb4b6b89405209a19 (patch) | |
tree | a67218cf464634821e0f98060da0ed07605fd8b5 /media/libstagefright/AwesomePlayer.cpp | |
parent | 192d6a509cf609a2a4b7f9cb70aeb5daabb0204e (diff) | |
parent | 9e0922ba7dda72fc94d2af2872cfc630ad599c91 (diff) | |
download | frameworks_av-b0210338bba812d27e0e6b1bb4b6b89405209a19.zip frameworks_av-b0210338bba812d27e0e6b1bb4b6b89405209a19.tar.gz frameworks_av-b0210338bba812d27e0e6b1bb4b6b89405209a19.tar.bz2 |
am 9e0922ba: am 6e76fda3: am f9782266: Merge "AwesomePlayer: improve scheduling of video event to hit PTS"
* commit '9e0922ba7dda72fc94d2af2872cfc630ad599c91':
AwesomePlayer: improve scheduling of video event to hit PTS
Diffstat (limited to 'media/libstagefright/AwesomePlayer.cpp')
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 6e5003f..e4e1d42 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -1951,8 +1951,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; } } @@ -2016,7 +2017,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; } |