summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
diff options
context:
space:
mode:
authorPraveen Chavan <pchavan@codeaurora.org>2015-05-21 08:47:34 -0700
committerLajos Molnar <lajos@google.com>2015-06-10 16:48:59 -0700
commit3a20d29ff09ca2568cb904415625cc44db37edb0 (patch)
tree3393ff0050150d5b20a8aa827b83dbea93bd53ad /media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
parente1e5d7a3d3d4d6d644e6c731f977422e004140d5 (diff)
downloadframeworks_av-3a20d29ff09ca2568cb904415625cc44db37edb0.zip
frameworks_av-3a20d29ff09ca2568cb904415625cc44db37edb0.tar.gz
frameworks_av-3a20d29ff09ca2568cb904415625cc44db37edb0.tar.bz2
NuPlayer: print player stats at the end of playback
Print stats at the end of playback if the shell property persist.debug.sf.stats is set Change-Id: Ie4250bf86b12af75c16f108ca09ad02b3e44fd29
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp35
1 files changed, 27 insertions, 8 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
index 6a38e68..551e07a 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDriver.cpp
@@ -18,6 +18,7 @@
#define LOG_TAG "NuPlayerDriver"
#include <inttypes.h>
#include <utils/Log.h>
+#include <cutils/properties.h>
#include "NuPlayerDriver.h"
@@ -484,6 +485,13 @@ status_t NuPlayerDriver::reset() {
notifyListener_l(MEDIA_STOPPED);
}
+ char value[PROPERTY_VALUE_MAX];
+ if (property_get("persist.debug.sf.stats", value, NULL) &&
+ (!strcmp("1", value) || !strcasecmp("true", value))) {
+ Vector<String16> args;
+ dump(-1, args);
+ }
+
mState = STATE_RESET_IN_PROGRESS;
mPlayer->resetAsync();
@@ -656,27 +664,30 @@ status_t NuPlayerDriver::dump(
Vector<sp<AMessage> > trackStats;
mPlayer->getStats(&trackStats);
- FILE *out = fdopen(dup(fd), "w");
+ AString logString(" NuPlayer\n");
+ char buf[256] = {0};
- fprintf(out, " NuPlayer\n");
for (size_t i = 0; i < trackStats.size(); ++i) {
const sp<AMessage> &stats = trackStats.itemAt(i);
AString mime;
if (stats->findString("mime", &mime)) {
- fprintf(out, " mime(%s)\n", mime.c_str());
+ snprintf(buf, sizeof(buf), " mime(%s)\n", mime.c_str());
+ logString.append(buf);
}
AString name;
if (stats->findString("component-name", &name)) {
- fprintf(out, " decoder(%s)\n", name.c_str());
+ snprintf(buf, sizeof(buf), " decoder(%s)\n", name.c_str());
+ logString.append(buf);
}
if (mime.startsWith("video/")) {
int32_t width, height;
if (stats->findInt32("width", &width)
&& stats->findInt32("height", &height)) {
- fprintf(out, " resolution(%d x %d)\n", width, height);
+ snprintf(buf, sizeof(buf), " resolution(%d x %d)\n", width, height);
+ logString.append(buf);
}
int64_t numFramesTotal = 0;
@@ -684,16 +695,24 @@ status_t NuPlayerDriver::dump(
stats->findInt64("frames-total", &numFramesTotal);
stats->findInt64("frames-dropped-output", &numFramesDropped);
- fprintf(out, " numFramesTotal(%lld), numFramesDropped(%lld), "
+ snprintf(buf, sizeof(buf), " numFramesTotal(%lld), numFramesDropped(%lld), "
"percentageDropped(%.2f%%)\n",
(long long)numFramesTotal,
(long long)numFramesDropped,
numFramesTotal == 0
? 0.0 : (double)(numFramesDropped * 100) / numFramesTotal);
+ logString.append(buf);
}
}
- fclose(out);
- out = NULL;
+
+ ALOGI("%s", logString.c_str());
+
+ if (fd >= 0) {
+ FILE *out = fdopen(dup(fd), "w");
+ fprintf(out, "%s", logString.c_str());
+ fclose(out);
+ out = NULL;
+ }
return OK;
}