717 |
int height, |
int height, |
718 |
uint32_t edged_width, |
uint32_t edged_width, |
719 |
uint8_t * dst[4], |
uint8_t * dst[4], |
720 |
uint32_t dst_stride[4], |
int dst_stride[4], |
721 |
int csp, |
int csp, |
722 |
int interlacing) |
int interlacing) |
723 |
{ |
{ |
1078 |
} |
} |
1079 |
|
|
1080 |
void |
void |
1081 |
output_slice(IMAGE * cur, int std, int width, xvid_image_t* out_frm, int mbx, int mby,int mbl) { |
output_slice(IMAGE * cur, int stride, int width, xvid_image_t* out_frm, int mbx, int mby,int mbl) { |
1082 |
uint8_t *dY,*dU,*dV,*sY,*sU,*sV; |
uint8_t *dY,*dU,*dV,*sY,*sU,*sV; |
1083 |
int std2 = std >> 1; |
int stride2 = stride >> 1; |
1084 |
int w = mbl << 4, w2,i; |
int w = mbl << 4, w2,i; |
1085 |
|
|
1086 |
if(w > width) |
if(w > width) |
1090 |
dY = (uint8_t*)out_frm->plane[0] + (mby << 4) * out_frm->stride[0] + (mbx << 4); |
dY = (uint8_t*)out_frm->plane[0] + (mby << 4) * out_frm->stride[0] + (mbx << 4); |
1091 |
dU = (uint8_t*)out_frm->plane[1] + (mby << 3) * out_frm->stride[1] + (mbx << 3); |
dU = (uint8_t*)out_frm->plane[1] + (mby << 3) * out_frm->stride[1] + (mbx << 3); |
1092 |
dV = (uint8_t*)out_frm->plane[2] + (mby << 3) * out_frm->stride[2] + (mbx << 3); |
dV = (uint8_t*)out_frm->plane[2] + (mby << 3) * out_frm->stride[2] + (mbx << 3); |
1093 |
sY = cur->y + (mby << 4) * std + (mbx << 4); |
sY = cur->y + (mby << 4) * stride + (mbx << 4); |
1094 |
sU = cur->u + (mby << 3) * std2 + (mbx << 3); |
sU = cur->u + (mby << 3) * stride2 + (mbx << 3); |
1095 |
sV = cur->v + (mby << 3) * std2 + (mbx << 3); |
sV = cur->v + (mby << 3) * stride2 + (mbx << 3); |
1096 |
|
|
1097 |
for(i = 0 ; i < 16 ; i++) { |
for(i = 0 ; i < 16 ; i++) { |
1098 |
memcpy(dY,sY,w); |
memcpy(dY,sY,w); |
1099 |
dY += out_frm->stride[0]; |
dY += out_frm->stride[0]; |
1100 |
sY += std; |
sY += stride; |
1101 |
} |
} |
1102 |
for(i = 0 ; i < 8 ; i++) { |
for(i = 0 ; i < 8 ; i++) { |
1103 |
memcpy(dU,sU,w2); |
memcpy(dU,sU,w2); |
1104 |
dU += out_frm->stride[1]; |
dU += out_frm->stride[1]; |
1105 |
sU += std2; |
sU += stride2; |
1106 |
} |
} |
1107 |
for(i = 0 ; i < 8 ; i++) { |
for(i = 0 ; i < 8 ; i++) { |
1108 |
memcpy(dV,sV,w2); |
memcpy(dV,sV,w2); |
1109 |
dV += out_frm->stride[2]; |
dV += out_frm->stride[2]; |
1110 |
sV += std2; |
sV += stride2; |
1111 |
} |
} |
1112 |
} |
} |
1113 |
|
|