Loading libvideoeditor/lvpp/Android.mk +0 −1 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ LOCAL_SRC_FILES:= \ DummyVideoSource.cpp \ VideoEditorBGAudioProcessing.cpp \ AudioPlayerBase.cpp \ PreviewPlayerBase.cpp \ PreviewRenderer.cpp \ I420ColorConverter.cpp \ NativeWindowRenderer.cpp Loading libvideoeditor/lvpp/AudioPlayerBase.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -27,13 +27,13 @@ #include <media/stagefright/MetaData.h> #include "AudioPlayerBase.h" #include "PreviewPlayerBase.h" #include "PreviewPlayer.h" namespace android { AudioPlayerBase::AudioPlayerBase( const sp<MediaPlayerBase::AudioSink> &audioSink, PreviewPlayerBase *observer) PreviewPlayer *observer) : mAudioTrack(NULL), mInputBuffer(NULL), mSampleRate(0), Loading libvideoeditor/lvpp/AudioPlayerBase.h +3 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ namespace android { class MediaSource; class AudioTrack; class PreviewPlayerBase; class PreviewPlayer; class AudioPlayerBase : public TimeSource { public: Loading @@ -37,7 +37,7 @@ public: }; AudioPlayerBase(const sp<MediaPlayerBase::AudioSink> &audioSink, PreviewPlayerBase *audioObserver = NULL); PreviewPlayer *audioObserver = NULL); virtual ~AudioPlayerBase(); Loading Loading @@ -93,7 +93,7 @@ private: MediaBuffer *mFirstBuffer; sp<MediaPlayerBase::AudioSink> mAudioSink; PreviewPlayerBase *mObserver; PreviewPlayer *mObserver; static void AudioCallback(int event, void *user, void *info); void AudioCallback(int event, void *info); Loading libvideoeditor/lvpp/DummyAudioSource.cpp +61 −93 Original line number Diff line number Diff line Loading @@ -14,149 +14,112 @@ * limitations under the License. */ #define LOG_NDEBUG 1 // #define LOG_NDEBUG 0 #define LOG_TAG "DummyAudioSource" #include "utils/Log.h" #include <utils/Log.h> #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MediaDebug.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MediaBuffer.h> #include <media/stagefright/MediaBufferGroup.h> #include <media/stagefright/MetaData.h> #include "DummyAudioSource.h" /* Android includes*/ #include <utils/Log.h> #include <memory.h> /*---------------------*/ /* DEBUG LEVEL SETUP */ /*---------------------*/ #define LOG1 ALOGE /*ERRORS Logging*/ #define LOG2 ALOGV /*WARNING Logging*/ #define LOG3 //ALOGV /*COMMENTS Logging*/ /*---------------------*/ /* CONSTANTS */ /*---------------------*/ namespace android { /*---------------------*/ /* SEEK SOURCE */ /*---------------------*/ //static sp<DummyAudioSource> DummyAudioSource::Create(int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs) { LOG2("DummyAudioSource::Create "); sp<DummyAudioSource> aSource = new DummyAudioSource (samplingRate, sp<DummyAudioSource> DummyAudioSource::Create( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs) { ALOGV("Create "); return new DummyAudioSource(samplingRate, channelCount, frameDurationUs, audioDurationUs); return aSource; } } DummyAudioSource::DummyAudioSource (int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs): mSamplingRate(samplingRate), DummyAudioSource::DummyAudioSource( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs) : mSamplingRate(samplingRate), mChannelCount(channelCount), mFrameDurationUs(frameDurationUs), mNumberOfSamplePerFrame(0), mAudioDurationUs(audioDurationUs), mTimeStampUs(0), mBufferGroup(NULL) { LOG2("DummyAudioSource::DummyAudioSource constructor START"); /* Do nothing here? */ LOG2("DummyAudioSource::DummyAudioSource"); LOG2("DummyAudioSource:: mSamplingRate = %d",samplingRate); LOG2("DummyAudioSource:: mChannelCount = %d",channelCount); LOG2("DummyAudioSource:: frameDurationUs = %lld",frameDurationUs); LOG2("DummyAudioSource:: mAudioDurationUs = %lld",mAudioDurationUs); LOG2("DummyAudioSource::DummyAudioSource constructor END"); } mNumberOfSamplePerFrame = (int32_t) ((1L * mSamplingRate * mFrameDurationUs)/1000000); mNumberOfSamplePerFrame = mNumberOfSamplePerFrame * mChannelCount; ALOGV("Constructor: E"); ALOGV("samplingRate = %d", samplingRate); ALOGV("channelCount = %d", channelCount); ALOGV("frameDurationUs = %lld", frameDurationUs); ALOGV("audioDurationUs = %lld", audioDurationUs); ALOGV("mNumberOfSamplePerFrame = %d", mNumberOfSamplePerFrame); ALOGV("Constructor: X"); } DummyAudioSource::~DummyAudioSource() { /* Do nothing here? */ LOG2("DummyAudioSource::~DummyAudioSource"); ALOGV("~DummyAudioSource"); } void DummyAudioSource::setDuration(int64_t audioDurationUs) { ALOGV("setDuration: %lld us added to %lld us", audioDurationUs, mAudioDurationUs); Mutex::Autolock autoLock(mLock); LOG2("SetDuration %lld", mAudioDurationUs); mAudioDurationUs += audioDurationUs; LOG2("SetDuration %lld", mAudioDurationUs); } status_t DummyAudioSource::start(MetaData *params) { ALOGV("start: E"); status_t err = OK; LOG2("DummyAudioSource::start START"); mTimeStampUs = 0; mNumberOfSamplePerFrame = (int32_t) ((1L * mSamplingRate * mFrameDurationUs)/1000000); mNumberOfSamplePerFrame = mNumberOfSamplePerFrame * mChannelCount; mBufferGroup = new MediaBufferGroup; mBufferGroup->add_buffer( new MediaBuffer(mNumberOfSamplePerFrame * sizeof(int16_t))); LOG2("DummyAudioSource:: mNumberOfSamplePerFrame = %d",mNumberOfSamplePerFrame); LOG2("DummyAudioSource::start END"); ALOGV("start: X"); return err; } status_t DummyAudioSource::stop() { status_t err = OK; LOG2("DummyAudioSource::stop START"); ALOGV("stop"); delete mBufferGroup; mBufferGroup = NULL; LOG2("DummyAudioSource::stop END"); return err; return OK; } sp<MetaData> DummyAudioSource::getFormat() { LOG2("DummyAudioSource::getFormat"); ALOGV("getFormat"); sp<MetaData> meta = new MetaData; meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW); meta->setInt32(kKeyChannelCount, mChannelCount); meta->setInt32(kKeySampleRate, mSamplingRate); meta->setInt64(kKeyDuration, mFrameDurationUs); meta->setCString(kKeyDecoderComponent, "DummyAudioSource"); return meta; } status_t DummyAudioSource::read( MediaBuffer **out, const MediaSource::ReadOptions *options) { status_t err = OK; //LOG2("DummyAudioSource::read START"); MediaBuffer *buffer; status_t DummyAudioSource::read( MediaBuffer **out, const MediaSource::ReadOptions *options) { ALOGV("read: E"); int64_t seekTimeUs; ReadOptions::SeekMode mode; Loading @@ -164,32 +127,37 @@ status_t DummyAudioSource::read( MediaBuffer **out, const MediaSource::ReadOptio CHECK(seekTimeUs >= 0); mTimeStampUs = seekTimeUs; } { Mutex::Autolock autoLock(mLock); if (mTimeStampUs >= mAudioDurationUs) { ALOGI("read: EOS reached %lld > %lld", mTimeStampUs, mAudioDurationUs); *out = NULL; ALOGI("EOS reached"); return ERROR_END_OF_STREAM; } } err = mBufferGroup->acquire_buffer(&buffer); MediaBuffer *buffer; status_t err = mBufferGroup->acquire_buffer(&buffer); if (err != OK) { ALOGE("Failed to acquire buffer from mBufferGroup: %d", err); return err; } memset((uint8_t *) buffer->data() + buffer->range_offset(), 0, mNumberOfSamplePerFrame << 1); buffer->set_range(buffer->range_offset(), (mNumberOfSamplePerFrame << 1)); buffer->meta_data()->setInt64(kKeyTime, mTimeStampUs); LOG2("DummyAudioSource::read Buffer_offset = %d," "Buffer_Size = %d, mTimeStampUs = %lld", ALOGV("read: offset = %d, size = %d, mTimeStampUs = %lld", buffer->range_offset(), buffer->size(), mTimeStampUs); mTimeStampUs = mTimeStampUs + mFrameDurationUs; *out = buffer; return err; return OK; } }// namespace android libvideoeditor/lvpp/DummyAudioSource.h +15 −20 Original line number Diff line number Diff line Loading @@ -15,44 +15,34 @@ */ #ifndef DUMMY_AUDIOSOURCE_H_ #define DUMMY_AUDIOSOURCE_H_ #include <utils/RefBase.h> #include <utils/threads.h> #include <media/stagefright/MediaBufferGroup.h> #include <media/stagefright/MediaSource.h> #include <media/stagefright/DataSource.h> namespace android { class MediaBuffer; class MetaData; struct MediaBufferGroup; struct DummyAudioSource : public MediaSource { public: static sp<DummyAudioSource> Create(int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); static sp<DummyAudioSource> Create( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); virtual status_t start(MetaData *params = NULL); virtual status_t stop(); virtual sp<MetaData> getFormat(); virtual status_t read (MediaBuffer **buffer, virtual status_t read( MediaBuffer **buffer, const MediaSource::ReadOptions *options = NULL); void setDuration(int64_t audioDurationUs); protected: DummyAudioSource (int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); virtual ~DummyAudioSource(); private: Loading @@ -66,6 +56,11 @@ private: MediaBufferGroup *mBufferGroup; DummyAudioSource( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); // Don't call me DummyAudioSource(const DummyAudioSource &); DummyAudioSource &operator=(const DummyAudioSource &); Loading Loading
libvideoeditor/lvpp/Android.mk +0 −1 Original line number Diff line number Diff line Loading @@ -35,7 +35,6 @@ LOCAL_SRC_FILES:= \ DummyVideoSource.cpp \ VideoEditorBGAudioProcessing.cpp \ AudioPlayerBase.cpp \ PreviewPlayerBase.cpp \ PreviewRenderer.cpp \ I420ColorConverter.cpp \ NativeWindowRenderer.cpp Loading
libvideoeditor/lvpp/AudioPlayerBase.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -27,13 +27,13 @@ #include <media/stagefright/MetaData.h> #include "AudioPlayerBase.h" #include "PreviewPlayerBase.h" #include "PreviewPlayer.h" namespace android { AudioPlayerBase::AudioPlayerBase( const sp<MediaPlayerBase::AudioSink> &audioSink, PreviewPlayerBase *observer) PreviewPlayer *observer) : mAudioTrack(NULL), mInputBuffer(NULL), mSampleRate(0), Loading
libvideoeditor/lvpp/AudioPlayerBase.h +3 −3 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ namespace android { class MediaSource; class AudioTrack; class PreviewPlayerBase; class PreviewPlayer; class AudioPlayerBase : public TimeSource { public: Loading @@ -37,7 +37,7 @@ public: }; AudioPlayerBase(const sp<MediaPlayerBase::AudioSink> &audioSink, PreviewPlayerBase *audioObserver = NULL); PreviewPlayer *audioObserver = NULL); virtual ~AudioPlayerBase(); Loading Loading @@ -93,7 +93,7 @@ private: MediaBuffer *mFirstBuffer; sp<MediaPlayerBase::AudioSink> mAudioSink; PreviewPlayerBase *mObserver; PreviewPlayer *mObserver; static void AudioCallback(int event, void *user, void *info); void AudioCallback(int event, void *info); Loading
libvideoeditor/lvpp/DummyAudioSource.cpp +61 −93 Original line number Diff line number Diff line Loading @@ -14,149 +14,112 @@ * limitations under the License. */ #define LOG_NDEBUG 1 // #define LOG_NDEBUG 0 #define LOG_TAG "DummyAudioSource" #include "utils/Log.h" #include <utils/Log.h> #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MediaDebug.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/MediaBuffer.h> #include <media/stagefright/MediaBufferGroup.h> #include <media/stagefright/MetaData.h> #include "DummyAudioSource.h" /* Android includes*/ #include <utils/Log.h> #include <memory.h> /*---------------------*/ /* DEBUG LEVEL SETUP */ /*---------------------*/ #define LOG1 ALOGE /*ERRORS Logging*/ #define LOG2 ALOGV /*WARNING Logging*/ #define LOG3 //ALOGV /*COMMENTS Logging*/ /*---------------------*/ /* CONSTANTS */ /*---------------------*/ namespace android { /*---------------------*/ /* SEEK SOURCE */ /*---------------------*/ //static sp<DummyAudioSource> DummyAudioSource::Create(int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs) { LOG2("DummyAudioSource::Create "); sp<DummyAudioSource> aSource = new DummyAudioSource (samplingRate, sp<DummyAudioSource> DummyAudioSource::Create( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs) { ALOGV("Create "); return new DummyAudioSource(samplingRate, channelCount, frameDurationUs, audioDurationUs); return aSource; } } DummyAudioSource::DummyAudioSource (int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs): mSamplingRate(samplingRate), DummyAudioSource::DummyAudioSource( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs) : mSamplingRate(samplingRate), mChannelCount(channelCount), mFrameDurationUs(frameDurationUs), mNumberOfSamplePerFrame(0), mAudioDurationUs(audioDurationUs), mTimeStampUs(0), mBufferGroup(NULL) { LOG2("DummyAudioSource::DummyAudioSource constructor START"); /* Do nothing here? */ LOG2("DummyAudioSource::DummyAudioSource"); LOG2("DummyAudioSource:: mSamplingRate = %d",samplingRate); LOG2("DummyAudioSource:: mChannelCount = %d",channelCount); LOG2("DummyAudioSource:: frameDurationUs = %lld",frameDurationUs); LOG2("DummyAudioSource:: mAudioDurationUs = %lld",mAudioDurationUs); LOG2("DummyAudioSource::DummyAudioSource constructor END"); } mNumberOfSamplePerFrame = (int32_t) ((1L * mSamplingRate * mFrameDurationUs)/1000000); mNumberOfSamplePerFrame = mNumberOfSamplePerFrame * mChannelCount; ALOGV("Constructor: E"); ALOGV("samplingRate = %d", samplingRate); ALOGV("channelCount = %d", channelCount); ALOGV("frameDurationUs = %lld", frameDurationUs); ALOGV("audioDurationUs = %lld", audioDurationUs); ALOGV("mNumberOfSamplePerFrame = %d", mNumberOfSamplePerFrame); ALOGV("Constructor: X"); } DummyAudioSource::~DummyAudioSource() { /* Do nothing here? */ LOG2("DummyAudioSource::~DummyAudioSource"); ALOGV("~DummyAudioSource"); } void DummyAudioSource::setDuration(int64_t audioDurationUs) { ALOGV("setDuration: %lld us added to %lld us", audioDurationUs, mAudioDurationUs); Mutex::Autolock autoLock(mLock); LOG2("SetDuration %lld", mAudioDurationUs); mAudioDurationUs += audioDurationUs; LOG2("SetDuration %lld", mAudioDurationUs); } status_t DummyAudioSource::start(MetaData *params) { ALOGV("start: E"); status_t err = OK; LOG2("DummyAudioSource::start START"); mTimeStampUs = 0; mNumberOfSamplePerFrame = (int32_t) ((1L * mSamplingRate * mFrameDurationUs)/1000000); mNumberOfSamplePerFrame = mNumberOfSamplePerFrame * mChannelCount; mBufferGroup = new MediaBufferGroup; mBufferGroup->add_buffer( new MediaBuffer(mNumberOfSamplePerFrame * sizeof(int16_t))); LOG2("DummyAudioSource:: mNumberOfSamplePerFrame = %d",mNumberOfSamplePerFrame); LOG2("DummyAudioSource::start END"); ALOGV("start: X"); return err; } status_t DummyAudioSource::stop() { status_t err = OK; LOG2("DummyAudioSource::stop START"); ALOGV("stop"); delete mBufferGroup; mBufferGroup = NULL; LOG2("DummyAudioSource::stop END"); return err; return OK; } sp<MetaData> DummyAudioSource::getFormat() { LOG2("DummyAudioSource::getFormat"); ALOGV("getFormat"); sp<MetaData> meta = new MetaData; meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW); meta->setInt32(kKeyChannelCount, mChannelCount); meta->setInt32(kKeySampleRate, mSamplingRate); meta->setInt64(kKeyDuration, mFrameDurationUs); meta->setCString(kKeyDecoderComponent, "DummyAudioSource"); return meta; } status_t DummyAudioSource::read( MediaBuffer **out, const MediaSource::ReadOptions *options) { status_t err = OK; //LOG2("DummyAudioSource::read START"); MediaBuffer *buffer; status_t DummyAudioSource::read( MediaBuffer **out, const MediaSource::ReadOptions *options) { ALOGV("read: E"); int64_t seekTimeUs; ReadOptions::SeekMode mode; Loading @@ -164,32 +127,37 @@ status_t DummyAudioSource::read( MediaBuffer **out, const MediaSource::ReadOptio CHECK(seekTimeUs >= 0); mTimeStampUs = seekTimeUs; } { Mutex::Autolock autoLock(mLock); if (mTimeStampUs >= mAudioDurationUs) { ALOGI("read: EOS reached %lld > %lld", mTimeStampUs, mAudioDurationUs); *out = NULL; ALOGI("EOS reached"); return ERROR_END_OF_STREAM; } } err = mBufferGroup->acquire_buffer(&buffer); MediaBuffer *buffer; status_t err = mBufferGroup->acquire_buffer(&buffer); if (err != OK) { ALOGE("Failed to acquire buffer from mBufferGroup: %d", err); return err; } memset((uint8_t *) buffer->data() + buffer->range_offset(), 0, mNumberOfSamplePerFrame << 1); buffer->set_range(buffer->range_offset(), (mNumberOfSamplePerFrame << 1)); buffer->meta_data()->setInt64(kKeyTime, mTimeStampUs); LOG2("DummyAudioSource::read Buffer_offset = %d," "Buffer_Size = %d, mTimeStampUs = %lld", ALOGV("read: offset = %d, size = %d, mTimeStampUs = %lld", buffer->range_offset(), buffer->size(), mTimeStampUs); mTimeStampUs = mTimeStampUs + mFrameDurationUs; *out = buffer; return err; return OK; } }// namespace android
libvideoeditor/lvpp/DummyAudioSource.h +15 −20 Original line number Diff line number Diff line Loading @@ -15,44 +15,34 @@ */ #ifndef DUMMY_AUDIOSOURCE_H_ #define DUMMY_AUDIOSOURCE_H_ #include <utils/RefBase.h> #include <utils/threads.h> #include <media/stagefright/MediaBufferGroup.h> #include <media/stagefright/MediaSource.h> #include <media/stagefright/DataSource.h> namespace android { class MediaBuffer; class MetaData; struct MediaBufferGroup; struct DummyAudioSource : public MediaSource { public: static sp<DummyAudioSource> Create(int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); static sp<DummyAudioSource> Create( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); virtual status_t start(MetaData *params = NULL); virtual status_t stop(); virtual sp<MetaData> getFormat(); virtual status_t read (MediaBuffer **buffer, virtual status_t read( MediaBuffer **buffer, const MediaSource::ReadOptions *options = NULL); void setDuration(int64_t audioDurationUs); protected: DummyAudioSource (int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); virtual ~DummyAudioSource(); private: Loading @@ -66,6 +56,11 @@ private: MediaBufferGroup *mBufferGroup; DummyAudioSource( int32_t samplingRate, int32_t channelCount, int64_t frameDurationUs, int64_t audioDurationUs); // Don't call me DummyAudioSource(const DummyAudioSource &); DummyAudioSource &operator=(const DummyAudioSource &); Loading