42 *h_shift =
desc->log2_chroma_w;
43 *v_shift =
desc->log2_chroma_h;
47 #if FF_API_AVCODEC_PIX_FMT
70 int has_alpha,
int *loss_ptr){
77 loss = loss_ptr ? *loss_ptr : 0;
99 for (
i = 0;
i <
desc->nb_components;
i++)
120 y_shift =
desc->log2_chroma_h;
121 x_shift =
desc->log2_chroma_w;
125 dst->
data[0] =
src->data[0] + (top_band *
src->linesize[0]) + left_band;
126 dst->
data[1] =
src->data[1] + ((top_band >> y_shift) *
src->linesize[1]) + (left_band >> x_shift);
127 dst->
data[2] =
src->data[2] + ((top_band >> y_shift) *
src->linesize[2]) + (left_band >> x_shift);
129 if(top_band % (1<<y_shift) || left_band % (1<<x_shift))
131 dst->
data[0] =
src->data[0] + (top_band *
src->linesize[0]) + (left_band * max_step[0]);
161 if (padtop || padleft) {
163 dst->
linesize[0] * padtop + (padleft * max_step[0]));
166 if (padleft || padright) {
168 (dst->
linesize[0] - (padright * max_step[0]));
169 yheight =
height - 1 - (padtop + padbottom);
170 for (y = 0; y < yheight; y++) {
171 memset(optr,
color[0], (padleft + padright) * max_step[0]);
176 if (padbottom || padright) {
178 (padright * max_step[0]);
180 (padright * max_step[0]));
186 for (
i = 0;
i < 3;
i++) {
187 x_shift =
i ?
desc->log2_chroma_w : 0;
188 y_shift =
i ?
desc->log2_chroma_h : 0;
190 if (padtop || padleft) {
192 dst->
linesize[
i] * (padtop >> y_shift) + (padleft >> x_shift));
195 if (padleft || padright) {
197 (dst->
linesize[
i] - (padright >> x_shift));
198 yheight = (
height - 1 - (padtop + padbottom)) >> y_shift;
199 for (y = 0; y < yheight; y++) {
200 memset(optr,
color[
i], (padleft + padright) >> x_shift);
208 (padleft >> x_shift);
209 memcpy(optr, iptr, (
width - padleft - padright) >> x_shift);
210 iptr +=
src->linesize[
i];
212 (dst->
linesize[
i] - (padright >> x_shift));
213 yheight = (
height - 1 - (padtop + padbottom)) >> y_shift;
214 for (y = 0; y < yheight; y++) {
215 memset(optr,
color[
i], (padleft + padright) >> x_shift);
216 memcpy(optr + ((padleft + padright) >> x_shift), iptr,
217 (
width - padleft - padright) >> x_shift);
218 iptr +=
src->linesize[
i];
223 if (padbottom || padright) {
225 ((
height - padbottom) >> y_shift) - (padright >> x_shift);
227 (padbottom >> y_shift) + (padright >> x_shift));