mirror of
https://github.com/webmproject/libwebp.git
synced 2024-11-20 12:28:26 +01:00
Merge "simplify VP8IteratorSaveBoundary() arg passing"
This commit is contained in:
commit
c663bb214a
@ -720,7 +720,7 @@ static int OneStatPass(VP8Encoder* const enc, float q, VP8RDLevel rd_opt,
|
||||
distortion += info.D;
|
||||
if (percent_delta && !VP8IteratorProgress(&it, percent_delta))
|
||||
return 0;
|
||||
VP8IteratorSaveBoundary(&it, it.yuv_out_);
|
||||
VP8IteratorSaveBoundary(&it);
|
||||
} while (VP8IteratorNext(&it) && --nb_mbs > 0);
|
||||
size += FinalizeSkipProba(enc);
|
||||
size += FinalizeTokenProbas(&enc->proba_);
|
||||
@ -884,7 +884,7 @@ int VP8EncLoop(VP8Encoder* const enc) {
|
||||
VP8StoreFilterStats(&it);
|
||||
VP8IteratorExport(&it);
|
||||
ok = VP8IteratorProgress(&it, 20);
|
||||
VP8IteratorSaveBoundary(&it, it.yuv_out_);
|
||||
VP8IteratorSaveBoundary(&it);
|
||||
} while (ok && VP8IteratorNext(&it));
|
||||
|
||||
return PostLoopFinalize(&it, ok);
|
||||
@ -947,7 +947,7 @@ int VP8EncTokenLoop(VP8Encoder* const enc) {
|
||||
VP8IteratorExport(&it);
|
||||
ok = VP8IteratorProgress(&it, 20);
|
||||
}
|
||||
VP8IteratorSaveBoundary(&it, it.yuv_out_);
|
||||
VP8IteratorSaveBoundary(&it);
|
||||
} while (ok && VP8IteratorNext(&it));
|
||||
}
|
||||
ok = ok && WebPReportProgress(enc->pic_, enc->percent_ + 20, &enc->percent_);
|
||||
|
@ -287,20 +287,19 @@ void VP8IteratorBytesToNz(VP8EncIterator* const it) {
|
||||
//------------------------------------------------------------------------------
|
||||
// Advance to the next position, doing the bookeeping.
|
||||
|
||||
void VP8IteratorSaveBoundary(VP8EncIterator* const it,
|
||||
const uint8_t* const block_to_save) {
|
||||
void VP8IteratorSaveBoundary(VP8EncIterator* const it) {
|
||||
VP8Encoder* const enc = it->enc_;
|
||||
const int x = it->x_, y = it->y_;
|
||||
const uint8_t* const ysrc = block_to_save + Y_OFF;
|
||||
const uint8_t* const usrc = block_to_save + U_OFF;
|
||||
const uint8_t* const ysrc = it->yuv_out_ + Y_OFF;
|
||||
const uint8_t* const uvsrc = it->yuv_out_ + U_OFF;
|
||||
if (x < enc->mb_w_ - 1) { // left
|
||||
int i;
|
||||
for (i = 0; i < 16; ++i) {
|
||||
it->y_left_[i] = ysrc[15 + i * BPS];
|
||||
}
|
||||
for (i = 0; i < 8; ++i) {
|
||||
it->u_left_[i] = usrc[7 + i * BPS];
|
||||
it->v_left_[i] = usrc[15 + i * BPS];
|
||||
it->u_left_[i] = uvsrc[7 + i * BPS];
|
||||
it->v_left_[i] = uvsrc[15 + i * BPS];
|
||||
}
|
||||
// top-left (before 'top'!)
|
||||
it->y_left_[-1] = it->y_top_[15];
|
||||
@ -309,7 +308,7 @@ void VP8IteratorSaveBoundary(VP8EncIterator* const it,
|
||||
}
|
||||
if (y < enc->mb_h_ - 1) { // top
|
||||
memcpy(it->y_top_, ysrc + 15 * BPS, 16);
|
||||
memcpy(it->uv_top_, usrc + 7 * BPS, 8 + 8);
|
||||
memcpy(it->uv_top_, uvsrc + 7 * BPS, 8 + 8);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -326,10 +326,8 @@ void VP8IteratorImport(VP8EncIterator* const it, uint8_t* tmp_32);
|
||||
void VP8IteratorExport(const VP8EncIterator* const it);
|
||||
// go to next macroblock. Returns false if not finished.
|
||||
int VP8IteratorNext(VP8EncIterator* const it);
|
||||
// save the boundary values to top_/left_ arrays for next iterations.
|
||||
// block_to_save can be it->yuv_out_ or it->yuv_in_.
|
||||
void VP8IteratorSaveBoundary(VP8EncIterator* const it,
|
||||
const uint8_t* const block_to_save);
|
||||
// save the yuv_out_ boundary values to top_/left_ arrays for next iterations.
|
||||
void VP8IteratorSaveBoundary(VP8EncIterator* const it);
|
||||
// Report progression based on macroblock rows. Return 0 for user-abort request.
|
||||
int VP8IteratorProgress(const VP8EncIterator* const it,
|
||||
int final_delta_percent);
|
||||
|
Loading…
Reference in New Issue
Block a user