diff options
-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(); } |