diff options
author | Marco Nelissen <marcone@google.com> | 2014-11-19 13:22:23 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2014-11-19 14:08:55 -0800 |
commit | 6c41e622512a99581afcbdbd6ad284237923c942 (patch) | |
tree | 67cbb3ad6065eede75b52fdd241db1f36f214072 | |
parent | 35b0f7095fac4f2cc112edd4b0298a9cb1ee394f (diff) | |
download | frameworks_av-6c41e622512a99581afcbdbd6ad284237923c942.zip frameworks_av-6c41e622512a99581afcbdbd6ad284237923c942.tar.gz frameworks_av-6c41e622512a99581afcbdbd6ad284237923c942.tar.bz2 |
When aggregating buffers, make sure we don't lose data
Bug: 18277034
Change-Id: Ia8c35791eea88545a873cad339eb6b5fc25d1d97
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index 4f88f02..59ac80a 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -1321,6 +1321,12 @@ status_t NuPlayer::feedDecoderInputData(bool audio, const sp<AMessage> &msg) { // This stream is unaffected by the discontinuity return -EWOULDBLOCK; } + } else if (err == ERROR_END_OF_STREAM + && doBufferAggregation && (mAggregateBuffer != NULL)) { + // send out the last bit of aggregated data + reply->setBuffer("buffer", mAggregateBuffer); + mAggregateBuffer.clear(); + err = OK; } reply->setInt32("err", err); |