media/omx-plugin/include/ics/system/graphics.h

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2  * Copyright (C) 2011 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  */
    17 #ifndef SYSTEM_CORE_INCLUDE_ANDROID_GRAPHICS_H
    18 #define SYSTEM_CORE_INCLUDE_ANDROID_GRAPHICS_H
    20 #ifdef __cplusplus
    21 extern "C" {
    22 #endif
    24 /*
    25  * If the HAL needs to create service threads to handle graphics related
    26  * tasks, these threads need to run at HAL_PRIORITY_URGENT_DISPLAY priority
    27  * if they can block the main rendering thread in any way.
    28  *
    29  * the priority of the current thread can be set with:
    30  *
    31  *      #include <sys/resource.h>
    32  *      setpriority(PRIO_PROCESS, 0, HAL_PRIORITY_URGENT_DISPLAY);
    33  *
    34  */
    36 #define HAL_PRIORITY_URGENT_DISPLAY     (-8)
    38 /**
    39  * pixel format definitions
    40  */
    42 enum {
    43     HAL_PIXEL_FORMAT_RGBA_8888          = 1,
    44     HAL_PIXEL_FORMAT_RGBX_8888          = 2,
    45     HAL_PIXEL_FORMAT_RGB_888            = 3,
    46     HAL_PIXEL_FORMAT_RGB_565            = 4,
    47     HAL_PIXEL_FORMAT_BGRA_8888          = 5,
    48     HAL_PIXEL_FORMAT_RGBA_5551          = 6,
    49     HAL_PIXEL_FORMAT_RGBA_4444          = 7,
    51     /* 0x8 - 0xFF range unavailable */
    53     /*
    54      * 0x100 - 0x1FF
    55      *
    56      * This range is reserved for pixel formats that are specific to the HAL
    57      * implementation.  Implementations can use any value in this range to
    58      * communicate video pixel formats between their HAL modules.  These formats
    59      * must not have an alpha channel.  Additionally, an EGLimage created from a
    60      * gralloc buffer of one of these formats must be supported for use with the
    61      * GL_OES_EGL_image_external OpenGL ES extension.
    62      */
    64     /*
    65      * Android YUV format:
    66      *
    67      * This format is exposed outside of the HAL to software decoders and
    68      * applications.  EGLImageKHR must support it in conjunction with the
    69      * OES_EGL_image_external extension.
    70      *
    71      * YV12 is a 4:2:0 YCrCb planar format comprised of a WxH Y plane followed
    72      * by (W/2) x (H/2) Cr and Cb planes.
    73      *
    74      * This format assumes
    75      * - an even width
    76      * - an even height
    77      * - a horizontal stride multiple of 16 pixels
    78      * - a vertical stride equal to the height
    79      *
    80      *   y_size = stride * height
    81      *   c_size = ALIGN(stride/2, 16) * height/2
    82      *   size = y_size + c_size * 2
    83      *   cr_offset = y_size
    84      *   cb_offset = y_size + c_size
    85      *
    86      */
    87     HAL_PIXEL_FORMAT_YV12   = 0x32315659, // YCrCb 4:2:0 Planar
    91     /* Legacy formats (deprecated), used by ImageFormat.java */
    92     HAL_PIXEL_FORMAT_YCbCr_422_SP       = 0x10, // NV16
    93     HAL_PIXEL_FORMAT_YCrCb_420_SP       = 0x11, // NV21
    94     HAL_PIXEL_FORMAT_YCbCr_422_I        = 0x14, // YUY2
    95 };
    98 /**
    99  * Transformation definitions
   100  *
   101  * IMPORTANT NOTE:
   102  * HAL_TRANSFORM_ROT_90 is applied CLOCKWISE and AFTER HAL_TRANSFORM_FLIP_{H|V}.
   103  *
   104  */
   106 enum {
   107     /* flip source image horizontally (around the vertical axis) */
   108     HAL_TRANSFORM_FLIP_H    = 0x01,
   109     /* flip source image vertically (around the horizontal axis)*/
   110     HAL_TRANSFORM_FLIP_V    = 0x02,
   111     /* rotate source image 90 degrees clockwise */
   112     HAL_TRANSFORM_ROT_90    = 0x04,
   113     /* rotate source image 180 degrees */
   114     HAL_TRANSFORM_ROT_180   = 0x03,
   115     /* rotate source image 270 degrees clockwise */
   116     HAL_TRANSFORM_ROT_270   = 0x07,
   117 };
   119 #ifdef __cplusplus
   120 }
   121 #endif
   123 #endif /* SYSTEM_CORE_INCLUDE_ANDROID_GRAPHICS_H */

mercurial