Fix the media metadata retriever (tests). The native constants must match those published at the java layer.

Change-Id: Ic1efed709e4d93c61913b231a8cd3ef1074f8ca0
diff --git a/include/media/MediaMetadataRetrieverInterface.h b/include/media/MediaMetadataRetrieverInterface.h
index e228357..ff57774 100644
--- a/include/media/MediaMetadataRetrieverInterface.h
+++ b/include/media/MediaMetadataRetrieverInterface.h
@@ -43,6 +43,10 @@
 class MediaMetadataRetrieverInterface : public MediaMetadataRetrieverBase
 {
 public:
+    MediaMetadataRetrieverInterface()
+        : mMode(0) {
+    }
+
     virtual             ~MediaMetadataRetrieverInterface() {}
 
     // @param mode The intended mode of operations:
@@ -57,6 +61,8 @@
                                 mode > METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL) {
                                 return BAD_VALUE;
                             }
+
+                            mMode = mode;
                             return NO_ERROR;
                         }
 
diff --git a/include/media/mediametadataretriever.h b/include/media/mediametadataretriever.h
index 9b12410..dbbcc49 100644
--- a/include/media/mediametadataretriever.h
+++ b/include/media/mediametadataretriever.h
@@ -67,8 +67,8 @@
 //   and meta data retrieval.$
 enum {
     METADATA_MODE_NOOP                                 = 0x00,
-    METADATA_MODE_FRAME_CAPTURE_ONLY                   = 0x01,
-    METADATA_MODE_METADATA_RETRIEVAL_ONLY              = 0x02,
+    METADATA_MODE_METADATA_RETRIEVAL_ONLY              = 0x01,
+    METADATA_MODE_FRAME_CAPTURE_ONLY                   = 0x02,
     METADATA_MODE_FRAME_CAPTURE_AND_METADATA_RETRIEVAL = 0x03
 };
 
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp
index 4679207..2968917 100644
--- a/media/libstagefright/StagefrightMetadataRetriever.cpp
+++ b/media/libstagefright/StagefrightMetadataRetriever.cpp
@@ -206,6 +206,12 @@
 VideoFrame *StagefrightMetadataRetriever::captureFrame() {
     LOGV("captureFrame");
 
+    if (0 == (mMode & METADATA_MODE_FRAME_CAPTURE_ONLY)) {
+        LOGV("captureFrame disabled by mode (0x%08x)", mMode);
+
+        return NULL;
+    }
+
     if (mExtractor.get() == NULL) {
         LOGV("no extractor.");
         return NULL;
@@ -256,6 +262,12 @@
 MediaAlbumArt *StagefrightMetadataRetriever::extractAlbumArt() {
     LOGV("extractAlbumArt (extractor: %s)", mExtractor.get() != NULL ? "YES" : "NO");
 
+    if (0 == (mMode & METADATA_MODE_METADATA_RETRIEVAL_ONLY)) {
+        LOGV("extractAlbumArt/metadata retrieval disabled by mode");
+
+        return NULL;
+    }
+
     if (mExtractor == NULL) {
         return NULL;
     }
@@ -274,6 +286,12 @@
 }
 
 const char *StagefrightMetadataRetriever::extractMetadata(int keyCode) {
+    if (0 == (mMode & METADATA_MODE_METADATA_RETRIEVAL_ONLY)) {
+        LOGV("extractAlbumArt/metadata retrieval disabled by mode");
+
+        return NULL;
+    }
+
     if (mExtractor == NULL) {
         return NULL;
     }