OSDN Git Service

- Move the business rule management down to DRM agents.
authorGloria Wang <gwang@google.com>
Fri, 29 Oct 2010 17:09:47 +0000 (10:09 -0700)
committerGloria Wang <gwang@google.com>
Mon, 1 Nov 2010 23:12:16 +0000 (16:12 -0700)
- Do not register DRM sniffer because drmserver is not enabled.

Change-Id: I7a1052fe406f5087051a482b7e85a458f3ec7b8f

media/libstagefright/AwesomePlayer.cpp
media/libstagefright/DataSource.cpp

index 7bbc9eb..9789e36 100644 (file)
@@ -288,14 +288,9 @@ status_t AwesomePlayer::setDataSource_l(
     }
 
     dataSource->getDrmInfo(&mDecryptHandle, &mDrmManagerClient);
-    if (mDecryptHandle != NULL) {
-        if (RightsStatus::RIGHTS_VALID == mDecryptHandle->status) {
-            if (DecryptApiType::CONTAINER_BASED == mDecryptHandle->decryptApiType) {
-                mDrmManagerClient->consumeRights(mDecryptHandle, Action::PLAY, true);
-            }
-        } else {
-            notifyListener_l(MEDIA_ERROR, MEDIA_ERROR_UNKNOWN, ERROR_NO_LICENSE);
-        }
+    if (mDecryptHandle != NULL
+            && RightsStatus::RIGHTS_VALID != mDecryptHandle->status) {
+        notifyListener_l(MEDIA_ERROR, MEDIA_ERROR_UNKNOWN, ERROR_NO_LICENSE);
     }
 
     return setDataSource_l(extractor);
@@ -328,11 +323,6 @@ status_t AwesomePlayer::setDataSource_l(const sp<MediaExtractor> &extractor) {
     }
 
     mExtractorFlags = extractor->flags();
-    if (mDecryptHandle != NULL) {
-        if (DecryptApiType::ELEMENTARY_STREAM_BASED == mDecryptHandle->decryptApiType) {
-            mDrmManagerClient->consumeRights(mDecryptHandle, Action::PLAY, true);
-        }
-    }
 
     return OK;
 }
@@ -346,8 +336,6 @@ void AwesomePlayer::reset_l() {
     if (mDecryptHandle != NULL) {
             mDrmManagerClient->setPlaybackStatus(mDecryptHandle,
                     Playback::STOP, 0);
-            mDrmManagerClient->consumeRights(mDecryptHandle,
-                    Action::PLAY, false);
             mDecryptHandle = NULL;
             mDrmManagerClient = NULL;
     }
@@ -1190,14 +1178,9 @@ status_t AwesomePlayer::finishSetDataSource_l() {
     }
 
     dataSource->getDrmInfo(&mDecryptHandle, &mDrmManagerClient);
-    if (mDecryptHandle != NULL) {
-        if (RightsStatus::RIGHTS_VALID == mDecryptHandle->status) {
-            if (DecryptApiType::CONTAINER_BASED == mDecryptHandle->decryptApiType) {
-                mDrmManagerClient->consumeRights(mDecryptHandle, Action::PLAY, true);
-            }
-        } else {
-            notifyListener_l(MEDIA_ERROR, MEDIA_ERROR_UNKNOWN, ERROR_NO_LICENSE);
-        }
+    if (mDecryptHandle != NULL
+            && RightsStatus::RIGHTS_VALID != mDecryptHandle->status) {
+        notifyListener_l(MEDIA_ERROR, MEDIA_ERROR_UNKNOWN, ERROR_NO_LICENSE);
     }
 
     if (dataSource->flags() & DataSource::kWantsPrefetching) {
index d7dd4e5..23c4790 100644 (file)
@@ -28,6 +28,8 @@
 #include <media/stagefright/MediaErrors.h>
 #include <utils/String8.h>
 
+#include <cutils/properties.h>
+
 namespace android {
 
 bool DataSource::getUInt16(off_t offset, uint16_t *x) {
@@ -95,7 +97,12 @@ void DataSource::RegisterDefaultSniffers() {
     RegisterSniffer(SniffAMR);
     RegisterSniffer(SniffWAV);
     RegisterSniffer(SniffOgg);
-    RegisterSniffer(SniffDRM);
+
+    char value[PROPERTY_VALUE_MAX];
+    if (property_get("drm.service.enabled", value, NULL)
+            && (!strcmp(value, "1") || !strcasecmp(value, "true"))) {
+        RegisterSniffer(SniffDRM);
+    }
 }
 
 // static