From a1df816c0677185534babba6ffc29970b048e52e Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Thu, 3 Apr 2014 19:13:01 -0700 Subject: stagefright: log uri protocols, and opt-in to log full uri Added property media.stagefright.log-uri. Set it to true or 1 to log uris by AwesomePlayer. Added utility function to get uri debug string based on incognito and log opt-in status. Change-Id: I5ccc23079ddfb120dd9703a3ed651a162ed5acec Related-Bug: 6994761 --- media/libstagefright/Utils.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'media/libstagefright/Utils.cpp') diff --git a/media/libstagefright/Utils.cpp b/media/libstagefright/Utils.cpp index 4ff805f..047fac7 100644 --- a/media/libstagefright/Utils.cpp +++ b/media/libstagefright/Utils.cpp @@ -17,6 +17,7 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "Utils" #include +#include #include "include/ESDS.h" @@ -628,5 +629,40 @@ bool canOffloadStream(const sp& meta, bool hasVideo, return AudioSystem::isOffloadSupported(info); } +AString uriDebugString(const AString &uri, bool incognito) { + if (incognito) { + return AString(""); + } + + char prop[PROPERTY_VALUE_MAX]; + if (property_get("media.stagefright.log-uri", prop, "false") && + (!strcmp(prop, "1") || !strcmp(prop, "true"))) { + return uri; + } + + // find scheme + AString scheme; + const char *chars = uri.c_str(); + for (size_t i = 0; i < uri.size(); i++) { + const char c = chars[i]; + if (!isascii(c)) { + break; + } else if (isalpha(c)) { + continue; + } else if (i == 0) { + // first character must be a letter + break; + } else if (isdigit(c) || c == '+' || c == '.' || c =='-') { + continue; + } else if (c != ':') { + break; + } + scheme = AString(uri, 0, i); + scheme.append("://"); + return scheme; + } + return AString(""); +} + } // namespace android -- cgit v1.1