diff options
author | Chong Zhang <chz@google.com> | 2014-07-11 16:17:14 -0700 |
---|---|---|
committer | Chong Zhang <chz@google.com> | 2014-07-11 16:19:13 -0700 |
commit | 749dafad09d85f2aaf6902a7ff16b4087e3bc4c7 (patch) | |
tree | 993ec568afe921d76350514bce0f52c643621c91 | |
parent | c5619c7a6dcc1137fde7520351ad5284e3e958ab (diff) | |
download | frameworks_av-749dafad09d85f2aaf6902a7ff16b4087e3bc4c7.zip frameworks_av-749dafad09d85f2aaf6902a7ff16b4087e3bc4c7.tar.gz frameworks_av-749dafad09d85f2aaf6902a7ff16b4087e3bc4c7.tar.bz2 |
MediaCodec: change onError cb to return CodecException
Bug: 11990118
Change-Id: I3278aecb20df88c42fa2709a66e6166eb3cbe56f
-rw-r--r-- | include/media/stagefright/MediaCodec.h | 2 | ||||
-rw-r--r-- | media/libstagefright/MediaCodec.cpp | 12 |
2 files changed, 9 insertions, 5 deletions
diff --git a/include/media/stagefright/MediaCodec.h b/include/media/stagefright/MediaCodec.h index 046496c..a0ff997 100644 --- a/include/media/stagefright/MediaCodec.h +++ b/include/media/stagefright/MediaCodec.h @@ -279,7 +279,7 @@ private: void onInputBufferAvailable(); void onOutputBufferAvailable(); - void onError(int32_t actionCode, status_t err); + void onError(status_t err, int32_t actionCode, const char *detail = NULL); void onOutputFormatChanged(); status_t onSetParameters(const sp<AMessage> ¶ms); diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp index f286659..24fd7ad 100644 --- a/media/libstagefright/MediaCodec.cpp +++ b/media/libstagefright/MediaCodec.cpp @@ -664,7 +664,7 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { cancelPendingDequeueOperations(); if (mFlags & kFlagIsAsync) { - onError(0, omxError); + onError(omxError, 0); } setState(UNINITIALIZED); break; @@ -678,7 +678,7 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { postActivityNotificationIfPossible(); if (mFlags & kFlagIsAsync) { - onError(0, omxError); + onError(omxError, 0); } setState(UNINITIALIZED); break; @@ -1916,12 +1916,16 @@ void MediaCodec::onOutputBufferAvailable() { } } -void MediaCodec::onError(int32_t actionCode, status_t err) { +void MediaCodec::onError(status_t err, int32_t actionCode, const char *detail) { if (mCallback != NULL) { sp<AMessage> msg = mCallback->dup(); msg->setInt32("callbackID", CB_ERROR); - msg->setInt32("actionCode", actionCode); msg->setInt32("err", err); + msg->setInt32("actionCode", actionCode); + + if (detail != NULL) { + msg->setString("detail", detail); + } msg->post(); } |