Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don't have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.

Change-Id: Ic9a9198413431db4ea40bb63b9de91aa8a7183af
related-to-bug: 2587341
diff --git a/media/libstagefright/ESDS.cpp b/media/libstagefright/ESDS.cpp
index 28d338c..b7c8e0c 100644
--- a/media/libstagefright/ESDS.cpp
+++ b/media/libstagefright/ESDS.cpp
@@ -25,7 +25,8 @@
       mSize(size),
       mInitCheck(NO_INIT),
       mDecoderSpecificOffset(0),
-      mDecoderSpecificLength(0) {
+      mDecoderSpecificLength(0),
+      mObjectTypeIndication(0) {
     memcpy(mData, data, size);
 
     mInitCheck = parse();
@@ -40,6 +41,16 @@
     return mInitCheck;
 }
 
+status_t ESDS::getObjectTypeIndication(uint8_t *objectTypeIndication) const {
+    if (mInitCheck != OK) {
+        return mInitCheck;
+    }
+
+    *objectTypeIndication = mObjectTypeIndication;
+
+    return OK;
+}
+
 status_t ESDS::getCodecSpecificInfo(const void **data, size_t *size) const {
     if (mInitCheck != OK) {
         return mInitCheck;
@@ -164,6 +175,8 @@
         return ERROR_MALFORMED;
     }
 
+    mObjectTypeIndication = mData[offset];
+
     offset += 13;
     size -= 13;