summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author James Dong <jdong@google.com> 2011-05-17 13:41:42 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2011-05-17 13:41:42 -0700
commit384fa845fb940bdbbfb8b1c4e8dbb5b678dbb53b (patch)
tree1812d8dba628f1d46b7d6f737c89d88044fe99ca
parent78ae81efa9d49b2697629f576e9f4beec6ec8b2b (diff)
parent0f32fb3ecfdfaa03acf880a356629d43da3fe2fe (diff)
Merge "Make track informational event optional, depending on system property"
-rw-r--r--include/media/mediarecorder.h3
-rw-r--r--media/java/android/media/MediaRecorder.java4
-rw-r--r--media/libstagefright/MPEG4Writer.cpp31
3 files changed, 38 insertions, 0 deletions
diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h
index 59093c9234e2..36bf34ebbd10 100644
--- a/include/media/mediarecorder.h
+++ b/include/media/mediarecorder.h
@@ -179,6 +179,9 @@ enum media_recorder_info_type {
// The time used to compensate for initial A/V sync.
MEDIA_RECORDER_TRACK_INFO_START_OFFSET_MS = 1008,
+ // Total number of bytes of the media data.
+ MEDIA_RECORDER_TRACK_INFO_DATA_KBYTES = 1009,
+
MEDIA_RECORDER_TRACK_INFO_LIST_END = 2000,
};
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index 961ee1e57f92..0f5a440b0dbb 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -860,6 +860,10 @@ public class MediaRecorder
* {@hide}
*/
public static final int MEDIA_RECORDER_TRACK_INFO_START_OFFSET_MS = 1008;
+ /** Provide the total number of data (in kilo-bytes) encoded.
+ * {@hide}
+ */
+ public static final int MEDIA_RECORDER_TRACK_INFO_DATA_KBYTES = 1009;
/**
* {@hide}
*/
diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp
index 9dc83a638d05..988392effd54 100644
--- a/media/libstagefright/MPEG4Writer.cpp
+++ b/media/libstagefright/MPEG4Writer.cpp
@@ -33,6 +33,7 @@
#include <media/stagefright/MediaSource.h>
#include <media/stagefright/Utils.h>
#include <media/mediarecorder.h>
+#include <cutils/properties.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
@@ -760,7 +761,27 @@ void MPEG4Writer::writeFtypBox(const MetaData *param) {
endBox();
}
+static bool isTestModeEnabled() {
+#if (PROPERTY_VALUE_MAX < 5)
+#error "PROPERTY_VALUE_MAX must be at least 5"
+#endif
+
+ // Test mode is enabled only if rw.media.record.test system
+ // property is enabled.
+ char value[PROPERTY_VALUE_MAX];
+ if (property_get("rw.media.record.test", value, NULL) &&
+ (!strcasecmp(value, "true") || !strcasecmp(value, "1"))) {
+ return true;
+ }
+ return false;
+}
+
void MPEG4Writer::sendSessionSummary() {
+ // Send session summary only if test mode is enabled
+ if (!isTestModeEnabled()) {
+ return;
+ }
+
for (List<ChunkInfo>::iterator it = mChunkInfos.begin();
it != mChunkInfos.end(); ++it) {
int trackNum = it->mTrack->getTrackId() << 28;
@@ -2227,6 +2248,12 @@ status_t MPEG4Writer::Track::threadEntry() {
}
void MPEG4Writer::Track::sendTrackSummary(bool hasMultipleTracks) {
+
+ // Send track summary only if test mode is enabled.
+ if (!isTestModeEnabled()) {
+ return;
+ }
+
int trackNum = (mTrackId << 28);
mOwner->notify(MEDIA_RECORDER_TRACK_EVENT_INFO,
@@ -2256,6 +2283,10 @@ void MPEG4Writer::Track::sendTrackSummary(bool hasMultipleTracks) {
(initialDelayUs) / 1000);
}
+ mOwner->notify(MEDIA_RECORDER_TRACK_EVENT_INFO,
+ trackNum | MEDIA_RECORDER_TRACK_INFO_DATA_KBYTES,
+ mMdatSizeBytes / 1024);
+
if (hasMultipleTracks) {
mOwner->notify(MEDIA_RECORDER_TRACK_EVENT_INFO,
trackNum | MEDIA_RECORDER_TRACK_INFO_MAX_CHUNK_DUR_MS,