Loading media/libstagefright/codecs/aacdec/AACDecoder.cpp +12 −7 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ AACDecoder::AACDecoder(const sp<MediaSource> &source) mBufferGroup(NULL), mConfig(new tPVMP4AudioDecoderExternal), mDecoderBuf(NULL), mLastSeekTimeUs(0), mAnchorTimeUs(0), mNumSamplesOutput(0), mInputBuffer(NULL) { } Loading Loading @@ -79,7 +79,7 @@ status_t AACDecoder::start(MetaData *params) { mSource->start(); mLastSeekTimeUs = 0; mAnchorTimeUs = 0; mNumSamplesOutput = 0; mStarted = true; Loading Loading @@ -112,13 +112,16 @@ sp<MetaData> AACDecoder::getFormat() { int32_t numChannels; int32_t sampleRate; int64_t durationUs; CHECK(srcFormat->findInt32(kKeyChannelCount, &numChannels)); CHECK(srcFormat->findInt32(kKeySampleRate, &sampleRate)); CHECK(srcFormat->findInt64(kKeyDuration, &durationUs)); sp<MetaData> meta = new MetaData; meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW); meta->setInt32(kKeyChannelCount, numChannels); meta->setInt32(kKeySampleRate, sampleRate); meta->setInt64(kKeyDuration, durationUs); return meta; } Loading Loading @@ -150,11 +153,13 @@ status_t AACDecoder::read( return err; } if (seekTimeUs >= 0) { CHECK(mInputBuffer->meta_data()->findInt64( kKeyTime, &mLastSeekTimeUs)); int64_t timeUs; if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) { mAnchorTimeUs = timeUs; mNumSamplesOutput = 0; } else { // We must have a new timestamp after seeking. CHECK(seekTimeUs < 0); } } Loading Loading @@ -189,7 +194,7 @@ status_t AACDecoder::read( buffer->meta_data()->setInt64( kKeyTime, mLastSeekTimeUs mAnchorTimeUs + (mNumSamplesOutput * 1000000) / mConfig->samplingRate); mNumSamplesOutput += mConfig->frameLength; Loading media/libstagefright/codecs/mp3dec/MP3Decoder.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -78,13 +78,16 @@ sp<MetaData> MP3Decoder::getFormat() { int32_t numChannels; int32_t sampleRate; int64_t durationUs; CHECK(srcFormat->findInt32(kKeyChannelCount, &numChannels)); CHECK(srcFormat->findInt32(kKeySampleRate, &sampleRate)); CHECK(srcFormat->findInt64(kKeyDuration, &durationUs)); sp<MetaData> meta = new MetaData; meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW); meta->setInt32(kKeyChannelCount, numChannels); meta->setInt32(kKeySampleRate, sampleRate); meta->setInt64(kKeyDuration, durationUs); return meta; } Loading Loading @@ -120,6 +123,9 @@ status_t MP3Decoder::read( if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) { mAnchorTimeUs = timeUs; mNumSamplesOutput = 0; } else { // We must have a new timestamp after seeking. CHECK(seekTimeUs < 0); } } Loading media/libstagefright/include/AACDecoder.h +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ private: tPVMP4AudioDecoderExternal *mConfig; void *mDecoderBuf; int64_t mLastSeekTimeUs; int64_t mAnchorTimeUs; int64_t mNumSamplesOutput; MediaBuffer *mInputBuffer; Loading Loading
media/libstagefright/codecs/aacdec/AACDecoder.cpp +12 −7 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ AACDecoder::AACDecoder(const sp<MediaSource> &source) mBufferGroup(NULL), mConfig(new tPVMP4AudioDecoderExternal), mDecoderBuf(NULL), mLastSeekTimeUs(0), mAnchorTimeUs(0), mNumSamplesOutput(0), mInputBuffer(NULL) { } Loading Loading @@ -79,7 +79,7 @@ status_t AACDecoder::start(MetaData *params) { mSource->start(); mLastSeekTimeUs = 0; mAnchorTimeUs = 0; mNumSamplesOutput = 0; mStarted = true; Loading Loading @@ -112,13 +112,16 @@ sp<MetaData> AACDecoder::getFormat() { int32_t numChannels; int32_t sampleRate; int64_t durationUs; CHECK(srcFormat->findInt32(kKeyChannelCount, &numChannels)); CHECK(srcFormat->findInt32(kKeySampleRate, &sampleRate)); CHECK(srcFormat->findInt64(kKeyDuration, &durationUs)); sp<MetaData> meta = new MetaData; meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW); meta->setInt32(kKeyChannelCount, numChannels); meta->setInt32(kKeySampleRate, sampleRate); meta->setInt64(kKeyDuration, durationUs); return meta; } Loading Loading @@ -150,11 +153,13 @@ status_t AACDecoder::read( return err; } if (seekTimeUs >= 0) { CHECK(mInputBuffer->meta_data()->findInt64( kKeyTime, &mLastSeekTimeUs)); int64_t timeUs; if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) { mAnchorTimeUs = timeUs; mNumSamplesOutput = 0; } else { // We must have a new timestamp after seeking. CHECK(seekTimeUs < 0); } } Loading Loading @@ -189,7 +194,7 @@ status_t AACDecoder::read( buffer->meta_data()->setInt64( kKeyTime, mLastSeekTimeUs mAnchorTimeUs + (mNumSamplesOutput * 1000000) / mConfig->samplingRate); mNumSamplesOutput += mConfig->frameLength; Loading
media/libstagefright/codecs/mp3dec/MP3Decoder.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -78,13 +78,16 @@ sp<MetaData> MP3Decoder::getFormat() { int32_t numChannels; int32_t sampleRate; int64_t durationUs; CHECK(srcFormat->findInt32(kKeyChannelCount, &numChannels)); CHECK(srcFormat->findInt32(kKeySampleRate, &sampleRate)); CHECK(srcFormat->findInt64(kKeyDuration, &durationUs)); sp<MetaData> meta = new MetaData; meta->setCString(kKeyMIMEType, MEDIA_MIMETYPE_AUDIO_RAW); meta->setInt32(kKeyChannelCount, numChannels); meta->setInt32(kKeySampleRate, sampleRate); meta->setInt64(kKeyDuration, durationUs); return meta; } Loading Loading @@ -120,6 +123,9 @@ status_t MP3Decoder::read( if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) { mAnchorTimeUs = timeUs; mNumSamplesOutput = 0; } else { // We must have a new timestamp after seeking. CHECK(seekTimeUs < 0); } } Loading
media/libstagefright/include/AACDecoder.h +1 −1 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ private: tPVMP4AudioDecoderExternal *mConfig; void *mDecoderBuf; int64_t mLastSeekTimeUs; int64_t mAnchorTimeUs; int64_t mNumSamplesOutput; MediaBuffer *mInputBuffer; Loading