Merge "Make track informational event optional, depending on system property"
This commit is contained in:
@@ -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,
|
||||
};
|
||||
|
||||
|
||||
@@ -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}
|
||||
*/
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user