Merge "CCodec: update skip-cut-buffers for relevant setting changes only" into rvc-dev

gugelfrei
TreeHugger Robot 4 years ago committed by Android (Google) Code Review
commit d155a1fd94

@ -127,20 +127,26 @@ void OutputBuffers::initSkipCutBuffer(
mDelay = delay;
mPadding = padding;
mSampleRate = sampleRate;
setSkipCutBuffer(delay, padding, channelCount);
mChannelCount = channelCount;
setSkipCutBuffer(delay, padding);
}
void OutputBuffers::updateSkipCutBuffer(int32_t sampleRate, int32_t channelCount) {
if (mSkipCutBuffer == nullptr) {
return;
}
if (mSampleRate == sampleRate && mChannelCount == channelCount) {
return;
}
int32_t delay = mDelay;
int32_t padding = mPadding;
if (sampleRate != mSampleRate) {
delay = ((int64_t)delay * sampleRate) / mSampleRate;
padding = ((int64_t)padding * sampleRate) / mSampleRate;
}
setSkipCutBuffer(delay, padding, channelCount);
mSampleRate = sampleRate;
mChannelCount = channelCount;
setSkipCutBuffer(delay, padding);
}
void OutputBuffers::submit(const sp<MediaCodecBuffer> &buffer) {
@ -153,14 +159,14 @@ void OutputBuffers::transferSkipCutBuffer(const sp<SkipCutBuffer> &scb) {
mSkipCutBuffer = scb;
}
void OutputBuffers::setSkipCutBuffer(int32_t skip, int32_t cut, int32_t channelCount) {
void OutputBuffers::setSkipCutBuffer(int32_t skip, int32_t cut) {
if (mSkipCutBuffer != nullptr) {
size_t prevSize = mSkipCutBuffer->size();
if (prevSize != 0u) {
ALOGD("[%s] Replacing SkipCutBuffer holding %zu bytes", mName, prevSize);
}
}
mSkipCutBuffer = new SkipCutBuffer(skip, cut, channelCount);
mSkipCutBuffer = new SkipCutBuffer(skip, cut, mChannelCount);
}
// LocalBufferPool

@ -228,8 +228,9 @@ private:
int32_t mDelay;
int32_t mPadding;
int32_t mSampleRate;
int32_t mChannelCount;
void setSkipCutBuffer(int32_t skip, int32_t cut, int32_t channelCount);
void setSkipCutBuffer(int32_t skip, int32_t cut);
DISALLOW_EVIL_CONSTRUCTORS(OutputBuffers);
};

Loading…
Cancel
Save