gralloc: Fix ITU formats for camera

Make sure ITU formats are applied exclusively for camera buffers.
Camera HW_TEXTURE buffers go to GPU and should be marked as 601 FR.
Earlier, this was OR'd with video encoder due to which it
incorrectly got marked as 709.

Change-Id: Icaf3692b581b7861229e613dd632123d21dda2cf
This commit is contained in:
Naseer Ahmed
2013-08-14 12:59:24 -04:00
parent 1e67338868
commit 22fa2d3545

View File

@@ -109,11 +109,17 @@ int gpu_context_t::gralloc_alloc_buffer(size_t size, int usage,
#ifndef MDSS_TARGET
flags |= private_handle_t::PRIV_FLAGS_ITU_R_601_FR;
#else
if (usage & (GRALLOC_USAGE_HW_TEXTURE |
GRALLOC_USAGE_HW_VIDEO_ENCODER))
// Per the camera spec ITU 709 format should be set only for
// video encoding.
// It should be set to ITU 601 full range format for any other
// camera buffer
//
if (usage & GRALLOC_USAGE_HW_CAMERA_MASK) {
if (usage & GRALLOC_USAGE_HW_VIDEO_ENCODER)
flags |= private_handle_t::PRIV_FLAGS_ITU_R_709;
else if (usage & GRALLOC_USAGE_HW_CAMERA_ZSL)
else
flags |= private_handle_t::PRIV_FLAGS_ITU_R_601_FR;
}
#endif
} else {
flags |= private_handle_t::PRIV_FLAGS_ITU_R_601;