am 9077f8ec: Merge "Not all audio source has the drift time information" into gingerbread
Merge commit '9077f8ec931a4c080948a85ce2e0f793f65e9b62' into gingerbread-plus-aosp * commit '9077f8ec931a4c080948a85ce2e0f793f65e9b62': Not all audio source has the drift time information
This commit is contained in:
@@ -209,7 +209,7 @@ status_t AACEncoder::read(
|
|||||||
CHECK_EQ(mBufferGroup->acquire_buffer(&buffer), OK);
|
CHECK_EQ(mBufferGroup->acquire_buffer(&buffer), OK);
|
||||||
uint8_t *outPtr = (uint8_t *)buffer->data();
|
uint8_t *outPtr = (uint8_t *)buffer->data();
|
||||||
bool readFromSource = false;
|
bool readFromSource = false;
|
||||||
int64_t wallClockTimeUs = 0;
|
int64_t wallClockTimeUs = -1;
|
||||||
|
|
||||||
if (mFrameCount == 0) {
|
if (mFrameCount == 0) {
|
||||||
memcpy(outPtr, mAudioSpecificConfigData, 2);
|
memcpy(outPtr, mAudioSpecificConfigData, 2);
|
||||||
@@ -240,8 +240,9 @@ status_t AACEncoder::read(
|
|||||||
CHECK_EQ(align, 0);
|
CHECK_EQ(align, 0);
|
||||||
|
|
||||||
int64_t timeUs;
|
int64_t timeUs;
|
||||||
CHECK(mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs));
|
if (mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs)) {
|
||||||
wallClockTimeUs = timeUs;
|
wallClockTimeUs = timeUs;
|
||||||
|
}
|
||||||
if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
|
if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
|
||||||
mAnchorTimeUs = timeUs;
|
mAnchorTimeUs = timeUs;
|
||||||
}
|
}
|
||||||
@@ -298,7 +299,7 @@ status_t AACEncoder::read(
|
|||||||
int64_t mediaTimeUs =
|
int64_t mediaTimeUs =
|
||||||
((mFrameCount - 1) * 1000000LL * kNumSamplesPerFrame) / mSampleRate;
|
((mFrameCount - 1) * 1000000LL * kNumSamplesPerFrame) / mSampleRate;
|
||||||
buffer->meta_data()->setInt64(kKeyTime, mAnchorTimeUs + mediaTimeUs);
|
buffer->meta_data()->setInt64(kKeyTime, mAnchorTimeUs + mediaTimeUs);
|
||||||
if (readFromSource) {
|
if (readFromSource && wallClockTimeUs != -1) {
|
||||||
buffer->meta_data()->setInt64(kKeyDriftTime, mediaTimeUs - wallClockTimeUs);
|
buffer->meta_data()->setInt64(kKeyDriftTime, mediaTimeUs - wallClockTimeUs);
|
||||||
}
|
}
|
||||||
++mFrameCount;
|
++mFrameCount;
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ status_t AMRNBEncoder::read(
|
|||||||
ReadOptions::SeekMode mode;
|
ReadOptions::SeekMode mode;
|
||||||
CHECK(options == NULL || !options->getSeekTo(&seekTimeUs, &mode));
|
CHECK(options == NULL || !options->getSeekTo(&seekTimeUs, &mode));
|
||||||
bool readFromSource = false;
|
bool readFromSource = false;
|
||||||
int64_t wallClockTimeUs = 0;
|
int64_t wallClockTimeUs = -1;
|
||||||
|
|
||||||
while (mNumInputSamples < kNumSamplesPerFrame) {
|
while (mNumInputSamples < kNumSamplesPerFrame) {
|
||||||
if (mInputBuffer == NULL) {
|
if (mInputBuffer == NULL) {
|
||||||
@@ -171,8 +171,9 @@ status_t AMRNBEncoder::read(
|
|||||||
readFromSource = true;
|
readFromSource = true;
|
||||||
|
|
||||||
int64_t timeUs;
|
int64_t timeUs;
|
||||||
CHECK(mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs));
|
if (mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs)) {
|
||||||
wallClockTimeUs = timeUs;
|
wallClockTimeUs = timeUs;
|
||||||
|
}
|
||||||
if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
|
if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
|
||||||
mAnchorTimeUs = timeUs;
|
mAnchorTimeUs = timeUs;
|
||||||
}
|
}
|
||||||
@@ -227,7 +228,7 @@ status_t AMRNBEncoder::read(
|
|||||||
buffer->meta_data()->setInt64(
|
buffer->meta_data()->setInt64(
|
||||||
kKeyTime, mAnchorTimeUs + mediaTimeUs);
|
kKeyTime, mAnchorTimeUs + mediaTimeUs);
|
||||||
|
|
||||||
if (readFromSource) {
|
if (readFromSource && wallClockTimeUs != -1) {
|
||||||
buffer->meta_data()->setInt64(kKeyDriftTime,
|
buffer->meta_data()->setInt64(kKeyDriftTime,
|
||||||
mediaTimeUs - wallClockTimeUs);
|
mediaTimeUs - wallClockTimeUs);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ status_t AMRWBEncoder::read(
|
|||||||
ReadOptions::SeekMode mode;
|
ReadOptions::SeekMode mode;
|
||||||
CHECK(options == NULL || !options->getSeekTo(&seekTimeUs, &mode));
|
CHECK(options == NULL || !options->getSeekTo(&seekTimeUs, &mode));
|
||||||
bool readFromSource = false;
|
bool readFromSource = false;
|
||||||
int64_t wallClockTimeUs = 0;
|
int64_t wallClockTimeUs = -1;
|
||||||
|
|
||||||
while (mNumInputSamples < kNumSamplesPerFrame) {
|
while (mNumInputSamples < kNumSamplesPerFrame) {
|
||||||
if (mInputBuffer == NULL) {
|
if (mInputBuffer == NULL) {
|
||||||
@@ -221,8 +221,9 @@ status_t AMRWBEncoder::read(
|
|||||||
CHECK_EQ(align, 0);
|
CHECK_EQ(align, 0);
|
||||||
|
|
||||||
int64_t timeUs;
|
int64_t timeUs;
|
||||||
CHECK(mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs));
|
if (mInputBuffer->meta_data()->findInt64(kKeyDriftTime, &timeUs)) {
|
||||||
wallClockTimeUs = timeUs;
|
wallClockTimeUs = timeUs;
|
||||||
|
}
|
||||||
if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
|
if (mInputBuffer->meta_data()->findInt64(kKeyTime, &timeUs)) {
|
||||||
mAnchorTimeUs = timeUs;
|
mAnchorTimeUs = timeUs;
|
||||||
}
|
}
|
||||||
@@ -285,7 +286,7 @@ status_t AMRWBEncoder::read(
|
|||||||
|
|
||||||
int64_t mediaTimeUs = mNumFramesOutput * 20000LL;
|
int64_t mediaTimeUs = mNumFramesOutput * 20000LL;
|
||||||
buffer->meta_data()->setInt64(kKeyTime, mAnchorTimeUs + mediaTimeUs);
|
buffer->meta_data()->setInt64(kKeyTime, mAnchorTimeUs + mediaTimeUs);
|
||||||
if (readFromSource) {
|
if (readFromSource && wallClockTimeUs != -1) {
|
||||||
buffer->meta_data()->setInt64(kKeyDriftTime, mediaTimeUs - wallClockTimeUs);
|
buffer->meta_data()->setInt64(kKeyDriftTime, mediaTimeUs - wallClockTimeUs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user