summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MetaData.cpp
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2012-03-21 12:27:00 -0700
committerMarco Nelissen <marcone@google.com>2012-03-21 15:00:27 -0700
commitfeba11fd788c99b0b63e0bce724730817688d82f (patch)
tree60cdb535b8e065dca3bac358c300f5e973aa7066 /media/libstagefright/MetaData.cpp
parentf6e7ad1543ce19f05600d9414360c74c83e467bb (diff)
downloadframeworks_av-feba11fd788c99b0b63e0bce724730817688d82f.zip
frameworks_av-feba11fd788c99b0b63e0bce724730817688d82f.tar.gz
frameworks_av-feba11fd788c99b0b63e0bce724730817688d82f.tar.bz2
Add MetaData::dumpToLog
Utility method for dumping the content of a MetaData object to the log. Change-Id: I2d91b991e1d9fed2215e8995a73c2b1854205074
Diffstat (limited to 'media/libstagefright/MetaData.cpp')
-rw-r--r--media/libstagefright/MetaData.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/media/libstagefright/MetaData.cpp b/media/libstagefright/MetaData.cpp
index 66dec90..755594a 100644
--- a/media/libstagefright/MetaData.cpp
+++ b/media/libstagefright/MetaData.cpp
@@ -14,6 +14,10 @@
* limitations under the License.
*/
+//#define LOG_NDEBUG 0
+#define LOG_TAG "MetaData"
+#include <utils/Log.h>
+
#include <stdlib.h>
#include <string.h>
@@ -282,5 +286,60 @@ void MetaData::typed_data::freeStorage() {
mSize = 0;
}
+String8 MetaData::typed_data::asString() const {
+ String8 out;
+ const void *data = storage();
+ switch(mType) {
+ case TYPE_NONE:
+ out = String8::format("no type, size %d)", mSize);
+ break;
+ case TYPE_C_STRING:
+ out = String8::format("(char*) %s", (const char *)data);
+ break;
+ case TYPE_INT32:
+ out = String8::format("(int32_t) %d", *(int32_t *)data);
+ break;
+ case TYPE_INT64:
+ out = String8::format("(int64_t) %lld", *(int64_t *)data);
+ break;
+ case TYPE_FLOAT:
+ out = String8::format("(float) %f", *(float *)data);
+ break;
+ case TYPE_POINTER:
+ out = String8::format("(void*) %p", *(void **)data);
+ break;
+ case TYPE_RECT:
+ {
+ const Rect *r = (const Rect *)data;
+ out = String8::format("Rect(%d, %d, %d, %d)",
+ r->mLeft, r->mTop, r->mRight, r->mBottom);
+ break;
+ }
+
+ default:
+ out = String8::format("(unknown type %d, size %d)", mType, mSize);
+ break;
+ }
+ return out;
+}
+
+static void MakeFourCCString(uint32_t x, char *s) {
+ s[0] = x >> 24;
+ s[1] = (x >> 16) & 0xff;
+ s[2] = (x >> 8) & 0xff;
+ s[3] = x & 0xff;
+ s[4] = '\0';
+}
+
+void MetaData::dumpToLog() const {
+ for (int i = mItems.size(); --i >= 0;) {
+ int32_t key = mItems.keyAt(i);
+ char cc[5];
+ MakeFourCCString(key, cc);
+ const typed_data &item = mItems.valueAt(i);
+ ALOGI("%s: %s", cc, item.asString().string());
+ }
+}
+
} // namespace android