diff options
Diffstat (limited to 'libvideoeditor/lvpp/DummyAudioSource.cpp')
-rwxr-xr-x | libvideoeditor/lvpp/DummyAudioSource.cpp | 154 |
1 files changed, 61 insertions, 93 deletions
diff --git a/libvideoeditor/lvpp/DummyAudioSource.cpp b/libvideoeditor/lvpp/DummyAudioSource.cpp index bc38a20..1c497f9 100755 --- a/libvideoeditor/lvpp/DummyAudioSource.cpp +++ b/libvideoeditor/lvpp/DummyAudioSource.cpp @@ -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, - channelCount, - frameDurationUs, - audioDurationUs); - return aSource; -} +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); -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); +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) { + + mNumberOfSamplePerFrame = (int32_t) + ((1L * mSamplingRate * mFrameDurationUs)/1000000); + mNumberOfSamplePerFrame = mNumberOfSamplePerFrame * mChannelCount; - LOG2("DummyAudioSource::DummyAudioSource constructor END"); + 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 () { +DummyAudioSource::~DummyAudioSource() { /* Do nothing here? */ - LOG2("DummyAudioSource::~DummyAudioSource"); + ALOGV("~DummyAudioSource"); } -void DummyAudioSource::setDuration (int64_t audioDurationUs) { +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; @@ -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", - buffer->range_offset(),buffer->size(),mTimeStampUs); + + 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 |