PixelFormat.cpp revision 5773d3f5b2694c647e010246dff99acc70131289
1/* 2 * Copyright (C) 2007 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#include <ui/PixelFormat.h> 18#include <hardware/hardware.h> 19 20// ---------------------------------------------------------------------------- 21namespace android { 22// ---------------------------------------------------------------------------- 23 24ssize_t bytesPerPixel(PixelFormat format) { 25 switch (format) { 26 case HAL_PIXEL_FORMAT_RGBA_8888: 27 case HAL_PIXEL_FORMAT_RGBX_8888: 28 case HAL_PIXEL_FORMAT_BGRA_8888: 29 return 4; 30 case HAL_PIXEL_FORMAT_RGB_888: 31 return 3; 32 case HAL_PIXEL_FORMAT_RGB_565: 33 case HAL_PIXEL_FORMAT_RGBA_5551: 34 case HAL_PIXEL_FORMAT_RGBA_4444: 35 return 2; 36 case HAL_PIXEL_FORMAT_YCbCr_422_SP: 37 case HAL_PIXEL_FORMAT_YCbCr_422_I: 38 case HAL_PIXEL_FORMAT_YCrCb_420_SP: 39 case HAL_PIXEL_FORMAT_YV12: 40 return 1; 41 } 42 return BAD_VALUE; 43} 44 45ssize_t bitsPerPixel(PixelFormat format) { 46 switch (format) { 47 case HAL_PIXEL_FORMAT_RGBA_8888: 48 case HAL_PIXEL_FORMAT_RGBX_8888: 49 case HAL_PIXEL_FORMAT_BGRA_8888: 50 return 32; 51 case HAL_PIXEL_FORMAT_RGB_888: 52 return 24; 53 case HAL_PIXEL_FORMAT_RGB_565: 54 case HAL_PIXEL_FORMAT_RGBA_5551: 55 case HAL_PIXEL_FORMAT_RGBA_4444: 56 case HAL_PIXEL_FORMAT_YCbCr_422_SP: 57 case HAL_PIXEL_FORMAT_YCbCr_422_I: 58 return 16; 59 case HAL_PIXEL_FORMAT_YCrCb_420_SP: 60 case HAL_PIXEL_FORMAT_YV12: 61 return 12; 62 } 63 return BAD_VALUE; 64} 65 66// ---------------------------------------------------------------------------- 67}; // namespace android 68// ---------------------------------------------------------------------------- 69 70