summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2015-04-10 17:18:22 -0700
committerLajos Molnar <lajos@google.com>2015-04-10 17:48:56 -0700
commite6109e2f10b43c2cc2561c6fd6633b5f988bd7a9 (patch)
tree3b8f9bd7d8caab7cdd2e58ad5a918619938db9a3 /media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
parent421f47ca9c2dcc78584b2bb609c3755483b55155 (diff)
downloadframeworks_av-e6109e2f10b43c2cc2561c6fd6633b5f988bd7a9.zip
frameworks_av-e6109e2f10b43c2cc2561c6fd6633b5f988bd7a9.tar.gz
frameworks_av-e6109e2f10b43c2cc2561c6fd6633b5f988bd7a9.tar.bz2
mediaplayer: support async mode for widevine legacy mode
Bug: 14679336 Change-Id: Id224eb8c31ec148ca9a144758cc56ddbf5465f5c
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
index cb6954d..3fff1e6 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
@@ -244,15 +244,7 @@ void NuPlayer::Decoder::onConfigure(const sp<AMessage> &format) {
return;
}
- // the following should work after start
-// CHECK_EQ((status_t)OK, mCodec->getInputBuffers(&mInputBuffers));
releaseAndResetMediaBuffers();
-// CHECK_EQ((status_t)OK, mCodec->getOutputBuffers(&mOutputBuffers));
-// ALOGV("[%s] got %zu input and %zu output buffers",
-// mComponentName.c_str(),
-// mInputBuffers.size(),
-// mOutputBuffers.size());
-
mPaused = false;
mResumePending = false;
@@ -262,16 +254,14 @@ void NuPlayer::Decoder::onSetRenderer(const sp<Renderer> &renderer) {
bool hadNoRenderer = (mRenderer == NULL);
mRenderer = renderer;
if (hadNoRenderer && mRenderer != NULL) {
- requestCodecNotification();
+ // this means that the widevine legacy source is ready
+ onRequestInputBuffers();
}
}
void NuPlayer::Decoder::onGetInputBuffers(
Vector<sp<ABuffer> > *dstBuffers) {
- dstBuffers->clear();
- for (size_t i = 0; i < mInputBuffers.size(); i++) {
- dstBuffers->push(mInputBuffers[i]);
- }
+ CHECK_EQ((status_t)OK, mCodec->getWidevineLegacyBuffers(dstBuffers));
}
void NuPlayer::Decoder::onResume(bool notifyComplete) {
@@ -367,7 +357,9 @@ void NuPlayer::Decoder::onShutdown(bool notifyComplete) {
}
void NuPlayer::Decoder::doRequestBuffers() {
- if (isDiscontinuityPending()) {
+ // mRenderer is only NULL if we have a legacy widevine source that
+ // is not yet ready. In this case we must not fetch input.
+ if (isDiscontinuityPending() || mRenderer == NULL) {
return;
}
status_t err = OK;