Loading cmds/stagefright/stagefright.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ #include <media/mediametadataretriever.h> #include <media/stagefright/foundation/hexdump.h> #include <media/stagefright/MPEG2TSWriter.h> #include <media/stagefright/MPEG4Writer.h> #include <fcntl.h> Loading Loading @@ -366,8 +367,13 @@ status_t DetectSyncSource::read( static void writeSourcesToMP4( Vector<sp<MediaSource> > &sources, bool syncInfoPresent) { #if 0 sp<MPEG4Writer> writer = new MPEG4Writer(gWriteMP4Filename.string()); #else sp<MPEG2TSWriter> writer = new MPEG2TSWriter(gWriteMP4Filename.string()); #endif // at most one minute. writer->setMaxFileDuration(60000000ll); Loading include/media/stagefright/AudioPlayer.h +5 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ namespace android { class MediaSource; class AudioTrack; class AwesomePlayer; class AudioPlayer : public TimeSource { public: Loading @@ -35,7 +36,9 @@ public: SEEK_COMPLETE }; AudioPlayer(const sp<MediaPlayerBase::AudioSink> &audioSink); AudioPlayer(const sp<MediaPlayerBase::AudioSink> &audioSink, AwesomePlayer *audioObserver = NULL); virtual ~AudioPlayer(); // Caller retains ownership of "source". Loading Loading @@ -91,6 +94,7 @@ private: MediaBuffer *mFirstBuffer; sp<MediaPlayerBase::AudioSink> mAudioSink; AwesomePlayer *mObserver; static void AudioCallback(int event, void *user, void *info); void AudioCallback(int event, void *info); Loading include/media/stagefright/MPEG2TSWriter.h 0 → 100644 +72 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MPEG2TS_WRITER_H_ #define MPEG2TS_WRITER_H_ #include <media/stagefright/foundation/ABase.h> #include <media/stagefright/foundation/AHandlerReflector.h> #include <media/stagefright/foundation/ALooper.h> #include <media/stagefright/MediaWriter.h> namespace android { struct MPEG2TSWriter : public MediaWriter { MPEG2TSWriter(const char *filename); virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); virtual status_t stop(); virtual status_t pause(); virtual bool reachedEOS(); virtual status_t dump(int fd, const Vector<String16>& args); void onMessageReceived(const sp<AMessage> &msg); protected: virtual ~MPEG2TSWriter(); private: enum { kWhatSourceNotify = 'noti' }; struct SourceInfo; FILE *mFile; sp<ALooper> mLooper; sp<AHandlerReflector<MPEG2TSWriter> > mReflector; bool mStarted; Vector<sp<SourceInfo> > mSources; size_t mNumSourcesDone; int64_t mNumTSPacketsWritten; int64_t mNumTSPacketsBeforeMeta; void writeTS(); void writeProgramAssociationTable(); void writeProgramMap(); void writeAccessUnit(int32_t sourceIndex, const sp<ABuffer> &buffer); DISALLOW_EVIL_CONSTRUCTORS(MPEG2TSWriter); }; } // namespace android #endif // MPEG2TS_WRITER_H_ include/media/stagefright/MetaData.h +2 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,8 @@ enum { // Ogg files can be tagged to be automatically looping... kKeyAutoLoop = 'autL', // bool (int32_t) kKeyValidSamples = 'valD', // int32_t }; enum { Loading media/libmediaplayerservice/MediaPlayerService.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -534,8 +534,9 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) if (f) { while (!feof(f)) { fgets(buffer, SIZE, f); if (strstr(buffer, " /sdcard/") || if (strstr(buffer, " /mnt/sdcard/") || strstr(buffer, " /system/sounds/") || strstr(buffer, " /data/") || strstr(buffer, " /system/media/")) { result.append(" "); result.append(buffer); Loading Loading @@ -569,8 +570,9 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) } else { linkto[len] = 0; } if (strstr(linkto, "/sdcard/") == linkto || if (strstr(linkto, "/mnt/sdcard/") == linkto || strstr(linkto, "/system/sounds/") == linkto || strstr(linkto, "/data/") == linkto || strstr(linkto, "/system/media/") == linkto) { result.append(" "); result.append(buffer); Loading Loading
cmds/stagefright/stagefright.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ #include <media/mediametadataretriever.h> #include <media/stagefright/foundation/hexdump.h> #include <media/stagefright/MPEG2TSWriter.h> #include <media/stagefright/MPEG4Writer.h> #include <fcntl.h> Loading Loading @@ -366,8 +367,13 @@ status_t DetectSyncSource::read( static void writeSourcesToMP4( Vector<sp<MediaSource> > &sources, bool syncInfoPresent) { #if 0 sp<MPEG4Writer> writer = new MPEG4Writer(gWriteMP4Filename.string()); #else sp<MPEG2TSWriter> writer = new MPEG2TSWriter(gWriteMP4Filename.string()); #endif // at most one minute. writer->setMaxFileDuration(60000000ll); Loading
include/media/stagefright/AudioPlayer.h +5 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ namespace android { class MediaSource; class AudioTrack; class AwesomePlayer; class AudioPlayer : public TimeSource { public: Loading @@ -35,7 +36,9 @@ public: SEEK_COMPLETE }; AudioPlayer(const sp<MediaPlayerBase::AudioSink> &audioSink); AudioPlayer(const sp<MediaPlayerBase::AudioSink> &audioSink, AwesomePlayer *audioObserver = NULL); virtual ~AudioPlayer(); // Caller retains ownership of "source". Loading Loading @@ -91,6 +94,7 @@ private: MediaBuffer *mFirstBuffer; sp<MediaPlayerBase::AudioSink> mAudioSink; AwesomePlayer *mObserver; static void AudioCallback(int event, void *user, void *info); void AudioCallback(int event, void *info); Loading
include/media/stagefright/MPEG2TSWriter.h 0 → 100644 +72 −0 Original line number Diff line number Diff line /* * Copyright (C) 2010 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MPEG2TS_WRITER_H_ #define MPEG2TS_WRITER_H_ #include <media/stagefright/foundation/ABase.h> #include <media/stagefright/foundation/AHandlerReflector.h> #include <media/stagefright/foundation/ALooper.h> #include <media/stagefright/MediaWriter.h> namespace android { struct MPEG2TSWriter : public MediaWriter { MPEG2TSWriter(const char *filename); virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); virtual status_t stop(); virtual status_t pause(); virtual bool reachedEOS(); virtual status_t dump(int fd, const Vector<String16>& args); void onMessageReceived(const sp<AMessage> &msg); protected: virtual ~MPEG2TSWriter(); private: enum { kWhatSourceNotify = 'noti' }; struct SourceInfo; FILE *mFile; sp<ALooper> mLooper; sp<AHandlerReflector<MPEG2TSWriter> > mReflector; bool mStarted; Vector<sp<SourceInfo> > mSources; size_t mNumSourcesDone; int64_t mNumTSPacketsWritten; int64_t mNumTSPacketsBeforeMeta; void writeTS(); void writeProgramAssociationTable(); void writeProgramMap(); void writeAccessUnit(int32_t sourceIndex, const sp<ABuffer> &buffer); DISALLOW_EVIL_CONSTRUCTORS(MPEG2TSWriter); }; } // namespace android #endif // MPEG2TS_WRITER_H_
include/media/stagefright/MetaData.h +2 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,8 @@ enum { // Ogg files can be tagged to be automatically looping... kKeyAutoLoop = 'autL', // bool (int32_t) kKeyValidSamples = 'valD', // int32_t }; enum { Loading
media/libmediaplayerservice/MediaPlayerService.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -534,8 +534,9 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) if (f) { while (!feof(f)) { fgets(buffer, SIZE, f); if (strstr(buffer, " /sdcard/") || if (strstr(buffer, " /mnt/sdcard/") || strstr(buffer, " /system/sounds/") || strstr(buffer, " /data/") || strstr(buffer, " /system/media/")) { result.append(" "); result.append(buffer); Loading Loading @@ -569,8 +570,9 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args) } else { linkto[len] = 0; } if (strstr(linkto, "/sdcard/") == linkto || if (strstr(linkto, "/mnt/sdcard/") == linkto || strstr(linkto, "/system/sounds/") == linkto || strstr(linkto, "/data/") == linkto || strstr(linkto, "/system/media/") == linkto) { result.append(" "); result.append(buffer); Loading