diff options
author | James Dong <jdong@google.com> | 2011-05-14 07:22:40 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2011-05-17 12:21:57 -0700 |
commit | 07ec01904613a0bac32caaa8444b4690998faed7 (patch) | |
tree | deee18aea572871265d3b2188928b5cfec5b72d0 /media | |
parent | dc449831cf73a7f1c0f242d1ba655dbeca01e8f7 (diff) | |
download | frameworks_av-07ec01904613a0bac32caaa8444b4690998faed7.zip frameworks_av-07ec01904613a0bac32caaa8444b4690998faed7.tar.gz frameworks_av-07ec01904613a0bac32caaa8444b4690998faed7.tar.bz2 |
Make track informational event optional, depending on system property
o also add a track informational event to return the encoded data in kilo-bytes
Change-Id: I7c383360d57048c8a3606d0b8141ba53e4f4b224
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/MPEG4Writer.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp index 9dc83a6..988392e 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, |