diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2014-05-09 00:21:39 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-05-09 00:21:39 -0700 |
commit | 5222ec66b30fa322c863eb1e83e99efee3de147e (patch) | |
tree | 0243131f1424be2de3582de28e6abb383f462a23 | |
parent | 912034016d4976d9f171f7b5bf1a31336befa209 (diff) | |
parent | ac501f9547365cf42c770a075c2578161e166d41 (diff) | |
download | android_hardware_qcom_media-5222ec66b30fa322c863eb1e83e99efee3de147e.tar.gz android_hardware_qcom_media-5222ec66b30fa322c863eb1e83e99efee3de147e.tar.bz2 android_hardware_qcom_media-5222ec66b30fa322c863eb1e83e99efee3de147e.zip |
Merge "dashplayer: Return DashCodec FillBuffers properly on Error"
-rw-r--r-- | dashplayer/DashPlayer.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/dashplayer/DashPlayer.cpp b/dashplayer/DashPlayer.cpp index 0f3e4c04..f03e938f 100644 --- a/dashplayer/DashPlayer.cpp +++ b/dashplayer/DashPlayer.cpp @@ -410,9 +410,23 @@ void DashPlayer::onMessageReceived(const sp<AMessage> &msg) { track, codecRequest); if (err == -EWOULDBLOCK) { - if (mSource->feedMoreTSData() == OK) { + status_t nRet = mSource->feedMoreTSData(); + if (nRet == OK) { msg->post(10000ll); } + else if(nRet == (status_t)UNKNOWN_ERROR || + nRet == (status_t)ERROR_DRM_CANNOT_HANDLE) { + // reply back to dashcodec if there is an error + ALOGE("FeedMoreTSData error on track %d ",track); + if (track == kText) { + sendTextPacket(NULL, (status_t)UNKNOWN_ERROR); + } else { + sp<AMessage> reply; + CHECK(codecRequest->findMessage("reply", &reply)); + reply->setInt32("err", (status_t)UNKNOWN_ERROR); + reply->post(); + } + } } } else if (what == DashCodec::kWhatEOS) { |