am 3f51fa78: Runtime dump support for MediaWriter

Merge commit '3f51fa78ada0e064d23db5961337280c267cc2c0' into gingerbread-plus-aosp

* commit '3f51fa78ada0e064d23db5961337280c267cc2c0':
  Runtime dump support for MediaWriter
This commit is contained in:
James Dong
2010-08-23 10:50:29 -07:00
committed by Android Git Automerger
4 changed files with 47 additions and 2 deletions

View File

@@ -40,6 +40,7 @@ public:
virtual status_t stop();
virtual status_t pause();
virtual bool reachedEOS();
virtual status_t dump(int fd, const Vector<String16>& args);
void beginBox(const char *fourcc);
void writeInt8(int8_t x);

View File

@@ -44,6 +44,10 @@ struct MediaWriter : public RefBase {
mListener = listener;
}
virtual status_t dump(int fd, const Vector<String16>& args) {
return OK;
}
protected:
virtual ~MediaWriter() {}
int64_t mMaxFileSizeLimitBytes;

View File

@@ -1162,11 +1162,19 @@ status_t StagefrightRecorder::getMaxAmplitude(int *max) {
return OK;
}
status_t StagefrightRecorder::dump(int fd, const Vector<String16>& args) const {
status_t StagefrightRecorder::dump(
int fd, const Vector<String16>& args) const {
LOGV("dump");
const size_t SIZE = 256;
char buffer[SIZE];
String8 result;
snprintf(buffer, SIZE, " Recorder: %p", this);
if (mWriter != 0) {
mWriter->dump(fd, args);
} else {
snprintf(buffer, SIZE, " No file writer\n");
result.append(buffer);
}
snprintf(buffer, SIZE, " Recorder: %p\n", this);
snprintf(buffer, SIZE, " Output file (fd %d):\n", mOutputFd);
result.append(buffer);
snprintf(buffer, SIZE, " File format: %d\n", mOutputFormat);

View File

@@ -60,6 +60,7 @@ public:
bool isAudio() const { return mIsAudio; }
bool isMPEG4() const { return mIsMPEG4; }
void addChunkOffset(off_t offset) { mChunkOffsets.push_back(offset); }
status_t dump(int fd, const Vector<String16>& args) const;
private:
MPEG4Writer *mOwner;
@@ -217,6 +218,37 @@ MPEG4Writer::~MPEG4Writer() {
mTracks.clear();
}
status_t MPEG4Writer::dump(
int fd, const Vector<String16>& args) {
const size_t SIZE = 256;
char buffer[SIZE];
String8 result;
snprintf(buffer, SIZE, " MPEG4Writer %p\n", this);
result.append(buffer);
snprintf(buffer, SIZE, " mStarted: %s\n", mStarted? "true": "false");
result.append(buffer);
::write(fd, result.string(), result.size());
for (List<Track *>::iterator it = mTracks.begin();
it != mTracks.end(); ++it) {
(*it)->dump(fd, args);
}
return OK;
}
status_t MPEG4Writer::Track::dump(
int fd, const Vector<String16>& args) const {
const size_t SIZE = 256;
char buffer[SIZE];
String8 result;
snprintf(buffer, SIZE, " %s track\n", mIsAudio? "Audio": "Video");
result.append(buffer);
snprintf(buffer, SIZE, " reached EOS: %s\n",
mReachedEOS? "true": "false");
result.append(buffer);
::write(fd, result.string(), result.size());
return OK;
}
status_t MPEG4Writer::addSource(const sp<MediaSource> &source) {
Track *track = new Track(this, source);
mTracks.push_back(track);