diff options
| -rw-r--r-- | include/media/stagefright/MPEG4Writer.h | 1 | ||||
| -rw-r--r-- | include/media/stagefright/MediaWriter.h | 4 | ||||
| -rw-r--r-- | media/libmediaplayerservice/StagefrightRecorder.cpp | 12 | ||||
| -rw-r--r-- | media/libstagefright/MPEG4Writer.cpp | 32 |
4 files changed, 47 insertions, 2 deletions
diff --git a/include/media/stagefright/MPEG4Writer.h b/include/media/stagefright/MPEG4Writer.h index de82b38c0fab..2412f6a8010b 100644 --- a/include/media/stagefright/MPEG4Writer.h +++ b/include/media/stagefright/MPEG4Writer.h @@ -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); diff --git a/include/media/stagefright/MediaWriter.h b/include/media/stagefright/MediaWriter.h index 151bf1639620..5cc8dcffe0d1 100644 --- a/include/media/stagefright/MediaWriter.h +++ b/include/media/stagefright/MediaWriter.h @@ -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; diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 796731b451bc..cf01ff6cd270 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -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); diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp index 568037e65c41..e36d9feba1c0 100644 --- a/media/libstagefright/MPEG4Writer.cpp +++ b/media/libstagefright/MPEG4Writer.cpp @@ -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); |