445 int luma = (int)(0.299f * r + 0.587f * g + 0.114f * b); |
445 int luma = (int)(0.299f * r + 0.587f * g + 0.114f * b); |
446 data[0][x] = av_clip_uint8(luma); |
446 data[0][x] = av_clip_uint8(luma); |
447 |
447 |
448 if (!(x & 1) && !(y & 1)) { |
448 if (!(x & 1) && !(y & 1)) { |
449 int r = (buf[x * 4 + 0] + buf[(x + 1) * 4 + 0] + |
449 int r = (buf[x * 4 + 0] + buf[(x + 1) * 4 + 0] + |
450 buf[x * 4 + 0 + stride] + buf[(x + 1) * 4 + 0 + stride]) / 4; |
450 buf[x * 4 + 0 - stride] + buf[(x + 1) * 4 + 0 - stride]) / 4; |
451 int g = (buf[x * 4 + 1] + buf[(x + 1) * 4 + 1] + |
451 int g = (buf[x * 4 + 1] + buf[(x + 1) * 4 + 1] + |
452 buf[x * 4 + 1 + stride] + buf[(x + 1) * 4 + 1 + stride]) / 4; |
452 buf[x * 4 + 1 - stride] + buf[(x + 1) * 4 + 1 - stride]) / 4; |
453 int b = (buf[x * 4 + 2] + buf[(x + 1) * 4 + 2] + |
453 int b = (buf[x * 4 + 2] + buf[(x + 1) * 4 + 2] + |
454 buf[x * 4 + 2 + stride] + buf[(x + 1) * 4 + 2 + stride]) / 4; |
454 buf[x * 4 + 2 - stride] + buf[(x + 1) * 4 + 2 - stride]) / 4; |
455 |
455 |
456 int cr = (int)(-0.14713f * r - 0.28886f * g + 0.436f * b); |
456 int cr = (int)(-0.14713f * r - 0.28886f * g + 0.436f * b); |
457 int cb = (int)( 0.615f * r - 0.51499f * g - 0.10001f * b); |
457 int cb = (int)( 0.615f * r - 0.51499f * g - 0.10001f * b); |
458 data[1][x / 2] = av_clip_uint8(128 + cr); |
458 data[1][x / 2] = av_clip_uint8(128 + cr); |
459 data[2][x / 2] = av_clip_uint8(128 + cb); |
459 data[2][x / 2] = av_clip_uint8(128 + cb); |