Allow propagation of error information and description from the CryptoPlugin to
the higher layers.
Change-Id: I9f434ad55cdf575803c208bedf47b607baff2330
related-to-bug: 6365261
diff --git a/include/media/ICrypto.h b/include/media/ICrypto.h
index 376c326..32a2cf7 100644
--- a/include/media/ICrypto.h
+++ b/include/media/ICrypto.h
@@ -24,6 +24,8 @@
namespace android {
+struct AString;
+
struct ICrypto : public IInterface {
DECLARE_META_INTERFACE(Crypto);
@@ -46,7 +48,8 @@
CryptoPlugin::Mode mode,
const void *srcPtr,
const CryptoPlugin::SubSample *subSamples, size_t numSubSamples,
- void *dstPtr) = 0;
+ void *dstPtr,
+ AString *errorDetailMsg) = 0;
private:
DISALLOW_EVIL_CONSTRUCTORS(ICrypto);
diff --git a/include/media/stagefright/MediaCodec.h b/include/media/stagefright/MediaCodec.h
index 107699e..d09049e 100644
--- a/include/media/stagefright/MediaCodec.h
+++ b/include/media/stagefright/MediaCodec.h
@@ -28,6 +28,7 @@
struct ABuffer;
struct ACodec;
struct AMessage;
+struct AString;
struct ICrypto;
struct SoftwareRenderer;
struct SurfaceTextureClient;
@@ -72,7 +73,8 @@
size_t offset,
size_t size,
int64_t presentationTimeUs,
- uint32_t flags);
+ uint32_t flags,
+ AString *errorDetailMsg = NULL);
status_t queueSecureInputBuffer(
size_t index,
@@ -83,7 +85,8 @@
const uint8_t iv[16],
CryptoPlugin::Mode mode,
int64_t presentationTimeUs,
- uint32_t flags);
+ uint32_t flags,
+ AString *errorDetailMsg = NULL);
status_t dequeueInputBuffer(size_t *index, int64_t timeoutUs = 0ll);
diff --git a/include/media/stagefright/MediaErrors.h b/include/media/stagefright/MediaErrors.h
index 8889520..bb01467 100644
--- a/include/media/stagefright/MediaErrors.h
+++ b/include/media/stagefright/MediaErrors.h
@@ -55,8 +55,12 @@
ERROR_DRM_CANNOT_HANDLE = DRM_ERROR_BASE - 6,
ERROR_DRM_TAMPER_DETECTED = DRM_ERROR_BASE - 7,
- ERROR_DRM_WV_VENDOR_MAX = DRM_ERROR_BASE - 500,
- ERROR_DRM_WV_VENDOR_MIN = DRM_ERROR_BASE - 999,
+ ERROR_DRM_VENDOR_MAX = DRM_ERROR_BASE - 500,
+ ERROR_DRM_VENDOR_MIN = DRM_ERROR_BASE - 999,
+
+ // Deprecated
+ ERROR_DRM_WV_VENDOR_MAX = ERROR_DRM_VENDOR_MAX,
+ ERROR_DRM_WV_VENDOR_MIN = ERROR_DRM_VENDOR_MIN,
// Heartbeat Error Codes
HEARTBEAT_ERROR_BASE = -3000,