- 论坛徽章:
- 11
|
本帖最后由 zylthinking 于 2015-08-14 12:02 编辑
VIP_fuck 发表于 2015-08-14 10:30
比较无语,匪夷所思的命名,混乱的编码,一天竟然都不懂他一个函数的实际工作,,,
编码规范难道不应该 ...
幼儿园的路过。。。。。。。, 算了, 不标颜色了, 太多了, 这是我写的, 我写的, 我写的。。。。。。。。。。 那个紫色的, 是google的, 是google的, 是google的。。。。。
就是为了让英语党看不懂, 你信不信?
static uintptr_t chunk_size(video_format* fmt, sp<MetaData> meta, MediaBuffer* buffer,
intptr_t chunk0[3][2], intptr_t chunk1[3][2])
{
int32_t w0 = fmt->pixel->size->width;
int32_t h0 = fmt->pixel->size->height;
int32_t nb0 = 0;
int32_t w1, h1, nb1 = 0;
meta->findInt32(kKeyWidth, &w1);
meta->findInt32(kKeyHeight, &h1);
intptr_t chunk[3][2], (*chunk2)[2] = NULL;
int32_t w2, h2, nb2 = 0;
if (0 != ((w1 | h1) & 15)) {
w2 = roundup(w1, 16);
h2 = roundup(h1, 16);
chunk2 = &chunk[0];
}
for (int i = 0; i < fmt->pixel->panels; ++i) {
chunk1[0] = panel_width(i, w1, fmt->pixel->csp);
chunk1[0] = pixels_to_bytes(i, chunk1[0], fmt->pixel->csp);
chunk1[1] = panel_height(i, h1, fmt->pixel->csp);
nb1 += chunk1[0] * chunk1[1];
if (chunk2 != NULL) {
chunk2[0] = panel_width(i, w2, fmt->pixel->csp);
chunk2[0] = pixels_to_bytes(i, chunk2[0], fmt->pixel->csp);
chunk2[1] = panel_height(i, h2, fmt->pixel->csp);
nb2 += chunk2[0] * chunk2[1];
}
chunk0[0] = panel_width(i, w0, fmt->pixel->csp);
chunk0[0] = pixels_to_bytes(i, chunk0[0], fmt->pixel->csp);
chunk0[1] = panel_height(i, h0, fmt->pixel->csp);
nb0 += chunk0[0] * chunk0[1];
}
int32_t nb = (int32_t) buffer->range_length();
if (nb == nb2) {
chunk1 = chunk;
} else if (nb != nb1) {
logmsg_d("nb mismatch %d:%d:%d\n", nb, nb1, nb2);
}
if (chunk1[0] != chunk0[0] || chunk1[1] != chunk0[1]) {
logmsg_d("pic mismatch %d:%d vs %d:%d\n", chunk1[0], chunk1[1], chunk0[0], chunk0[1]);
}
return nb0;
}
|
|