omxilvideocomps/omxilgraphicsink/tsrc/src/omxilmmbuffer.h
author hgs
Fri, 08 Oct 2010 22:09:17 +0100
changeset 0 5d29cba61097
permissions -rw-r--r--
2010wk38_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     2
// All rights reserved.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     7
//
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    10
//
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    11
// Contributors:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    12
//
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    13
// Description:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    14
//
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    15
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    16
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    17
/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    18
 @file
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    19
 @internalTechnology
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    20
*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    21
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    22
#ifndef OMXILMMBUFFER_H
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    23
#define OMXILMMBUFFER_H
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    24
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    25
#include <e32base.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    26
#include <e32cmn.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    27
#if 0
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    28
// pixelformats_camera.h needs to be included before surfacemanager.h or the original
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    29
// pixelformats.h will be used for the TUidPixelFormat declaration instead of the one
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    30
// in pixelformats_camera.h and the build will fail.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    31
//#include <pixelformats.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    32
#include <pixelformats_camera.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    33
#else
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    34
// temporary hack to keep STE compiling even if pixelformats_camera.h is not exported
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    35
#ifndef __PIXELFORMATS_H__
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    36
#define __PIXELFORMATS_H__
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    37
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    38
typedef enum
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    39
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    40
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    41
	 Unknown pixel format
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    42
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    43
	EUidPixelFormatUnknown = 0,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    44
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    45
	 32-bit RGB pixel format without alpha, with 8 bits are reserved for each color
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    46
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    47
	EUidPixelFormatXRGB_8888 = 0x10275496,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    48
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    49
	 32-bit BGR pixel format without alpha, where 8 bits are reserved for each color
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    50
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    51
	EUidPixelFormatBGRX_8888 = 0x102754A8,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    52
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    53
	 32-bit BGR pixel format without alpha, where 8 bits are reserved for each color
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    54
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    55
	EUidPixelFormatXBGR_8888 = 0x10273766,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    56
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    57
	 32-bit BGRA pixel format with alpha, using 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    58
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    59
	EUidPixelFormatBGRA_8888 = 0x102754A9,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    60
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    61
	 32-bit ARGB pixel format with alpha, using 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    62
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    63
	EUidPixelFormatARGB_8888 = 0x10275498,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    64
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    65
	 32-bit ABGR pixel format with alpha, using 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    66
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    67
	EUidPixelFormatABGR_8888 = 0x10275499,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    68
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    69
	 32-bit ARGB pixel format with alpha (pre-multiplied), using 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    70
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    71
	EUidPixelFormatARGB_8888_PRE = 0x1027549A,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    72
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    73
	 32-bit ABGR pixel format with alpha (pre-multiplied), using 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    74
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    75
	EUidPixelFormatABGR_8888_PRE = 0x1027549B,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    76
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    77
	 32-bit BGRA pixel format with alpha (pre-multiplied), using 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    78
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    79
	EUidPixelFormatBGRA_8888_PRE = 0x10275497,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    80
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    81
	 32-bit pixel format using 10 bits each for red, green, and blue, and 2 bits for
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    82
	 alpha
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    83
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    84
	EUidPixelFormatARGB_2101010 = 0x1027549D,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    85
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    86
	 32-bit pixel format using 10 bits each for blue, green, and red color and 2
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    87
	 bits for alpha
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    88
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    89
	EUidPixelFormatABGR_2101010 = 0x1027549C,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    90
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    91
	 24-bit BGR pixel format with 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    92
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    93
	EUidPixelFormatBGR_888 = 0x102754A7,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    94
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    95
	 24-bit RGB pixel format with 8 bits per channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    96
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    97
	EUidPixelFormatRGB_888 = 0x10275495,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    98
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
    99
	 16-bit RGB pixel format with 5 bits for red, 6 bits for green, and 5 bits for
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   100
	 blue
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   101
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   102
	EUidPixelFormatRGB_565 = 0x1027549E,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   103
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   104
	 16-bit BGR pixel format with 5 bits for blue, 6 bits for green, and 5 bits for
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   105
	 red
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   106
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   107
	EUidPixelFormatBGR_565 = 0x10273765,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   108
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   109
	 16-bit pixel format where 5 bits are reserved for each color and 1 bit is
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   110
	 reserved for alpha
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   111
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   112
	EUidPixelFormatARGB_1555 = 0x1027549F,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   113
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   114
	 16-bit pixel format where 5 bits are reserved for each color
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   115
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   116
	EUidPixelFormatXRGB_1555 = 0x102754A0,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   117
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   118
	 16-bit ARGB pixel format with 4 bits for each channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   119
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   120
	EUidPixelFormatARGB_4444 = 0x102754A1,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   121
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   122
	 16-bit ARGB texture format using 8 bits for alpha, 3 bits each for red and
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   123
	 green, and 2 bits for blue
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   124
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   125
	EUidPixelFormatARGB_8332 = 0x102754A4,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   126
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   127
	 16-bit pixel format where 5 bits are reserved for each color
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   128
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   129
	EUidPixelFormatBGRX_5551 = 0x102754A5,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   130
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   131
	 16-bit pixel format where 5 bits are reserved for each color and 1 bit is reserved for alpha
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   132
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   133
	EUidPixelFormatBGRA_5551 = 0x102754AA,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   134
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   135
	 16-bit BGRA pixel format with 4 bits for each channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   136
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   137
	EUidPixelFormatBGRA_4444 = 0x102754AC,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   138
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   139
	 16-bit RGB pixel format using 4 bits for each color, without alpha channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   140
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   141
	EUidPixelFormatBGRX_4444 = 0x102754A6,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   142
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   143
	 16-bit color indexed with 8 bits of alpha
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   144
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   145
	EUidPixelFormatAP_88 = 0x102754AB,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   146
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   147
	 16-bit RGB pixel format using 4 bits for each color, without alpha channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   148
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   149
	EUidPixelFormatXRGB_4444 = 0x10273764,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   150
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   151
	 16-bit BGR pixel format using 4 bits for each color, without alpha channel
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   152
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   153
	EUidPixelFormatXBGR_4444 = 0x102754B0,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   154
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   155
	 8-bit RGB texture format using 3 bits for red, 3 bits for green, and 2 bits for blue
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   156
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   157
	EUidPixelFormatRGB_332 = 0x102754A2,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   158
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   159
	 8-bit alpha only
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   160
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   161
	EUidPixelFormatA_8 = 0x102754A3,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   162
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   163
	 8-bit BGR texture format using 3 bits for blue, 3 bits for green, and 2 bits for red
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   164
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   165
	EUidPixelFormatBGR_332 = 0x102754B1,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   166
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   167
	 8-bit indexed (i.e. has a palette)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   168
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   169
	EUidPixelFormatP_8 = 0x10273763,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   170
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   171
	 4-bit indexed (i.e. has a palette)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   172
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   173
	EUidPixelFormatP_4 = 0x102754AD,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   174
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   175
	 2-bit indexed (i.e. has a palette)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   176
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   177
	EUidPixelFormatP_2 = 0x102754AE,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   178
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   179
	 1-bit indexed (i.e. has a palette)
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   180
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   181
	EUidPixelFormatP_1 = 0x102754AF,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   182
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   183
	 YUV - 4:2:0 format, 8 bits per sample, Y00Y01Y10Y11UV.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   184
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   185
	EUidPixelFormatYUV_420Interleaved = 0x10273767,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   186
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   187
	 YUV - Three arrays Y, U, V. 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0...V0...
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   188
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   189
	EUidPixelFormatYUV_420Planar = 0x10273768,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   190
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   191
	 YUV 4:2:0 image format. Planar, 12 bits per pixel, Pixel order: Y00Y01Y02Y03...V0...U0...
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   192
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   193
	EUidPixelFormatYUV_420PlanarReversed = 0x1027376D,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   194
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   195
	 YUV - Two arrays, one is all Y, the other is U and V. 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0V0...
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   196
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   197
	EUidPixelFormatYUV_420SemiPlanar = 0x1027376C,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   198
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   199
	 YUV - Organized as YUYV. 4:2:2 format, 8 bits per sample, UY0VY1
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   200
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   201
	EUidPixelFormatYUV_422Interleaved = 0x10273769,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   202
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   203
	 YUV - Three arrays Y, U, V
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   204
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   205
	EUidPixelFormatYUV_422Planar = 0x102737DA,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   206
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   207
	 YUV - Organized as UYVY. 4:2:2 format, 8 bits per sample, Y0UY1V
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   208
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   209
	EUidPixelFormatYUV_422Reversed = 0x102754B2,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   210
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   211
	 YUV - Two arrays, one is all Y, the other is U and V
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   212
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   213
	EUidPixelFormatYUV_422SemiPlanar = 0x102754B3,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   214
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   215
	 YUV 4:2:2 image format. 16 bits per pixel, 8 bits per sample, Pixel order: Y1VY0U.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   216
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   217
	EUidPixelFormatYUV_422InterleavedReversed = 0x1027376A,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   218
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   219
	 YUV 4:2:2 image format. Interleaved, 16 bits per pixel, 8 bits per sample, Pixel order: Y0Y1UV.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   220
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   221
	EUidPixelFormatYUV_422Interleaved16bit = 0x102737D9,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   222
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   223
	 YUV - 4:4:4 format, each pixel contains equal parts YUV
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   224
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   225
	EUidPixelFormatYUV_444Interleaved = 0x1027376B,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   226
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   227
	 YUV - 4:4:4 format, three arrays Y, U, V
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   228
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   229
	EUidPixelFormatYUV_444Planar = 0x102737DB,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   230
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   231
	 8-bit grayscale.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   232
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   233
	EUidPixelFormatL_8 = 0x102858EC,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   234
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   235
	 4-bit grayscale.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   236
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   237
	EUidPixelFormatL_4 = 0x102858ED,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   238
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   239
	 2-bit grayscale.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   240
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   241
	EUidPixelFormatL_2 = 0x102858EE,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   242
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   243
	 1-bit grayscale (monochrome).
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   244
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   245
	EUidPixelFormatL_1 = 0x102858EF,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   246
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   247
	 Speed Tagged JPEG
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   248
	 */
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   249
	EUidPixelFormatSpeedTaggedJPEG = 0x102869FB,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   250
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   251
	 JPEG
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   252
	*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   253
	EUidPixelFormatJPEG = 0x102869FC,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   254
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   255
	/**
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   256
	 Temporary addition of RAW formats.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   257
	 Needs to be done in pixelformats.h by Base.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   258
	*/
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   259
	EUidPixelFormatRawBayer8bit = 0x102869FD,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   260
	EUidPixelFormatRawBayer10bit = 0x102869FE,
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   261
	EUidPixelFormatRawBayer8compressed = 0x102869FF
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   262
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   263
	} TUidPixelFormat;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   264
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   265
#endif
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   266
#endif
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   267
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   268
#include <graphics/surface.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   269
#include <graphics/surfacemanager.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   270
#include <openmax/il/khronos/v1_x/OMX_Component.h>
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   271
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   272
class COmxILMMBuffer : public CBase
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   273
	{
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   274
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   275
public:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   276
	IMPORT_C static COmxILMMBuffer* NewL(const RChunk& aChunk);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   277
	IMPORT_C static COmxILMMBuffer* CreateL(const COmxILMMBuffer& aCamBuf);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   278
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   279
	IMPORT_C ~COmxILMMBuffer();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   280
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   281
	IMPORT_C RChunk& Chunk();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   282
	IMPORT_C TSurfaceId& SurfaceId();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   283
	IMPORT_C TThreadId& ChunkOwnerThreadId();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   284
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   285
	//This function will be called by OMX_GraphicsSink Component during AllocateBuffer.
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   286
	IMPORT_C RSurfaceManager::TSurfaceInfoV01& SurfaceInfoV01();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   287
	IMPORT_C static TInt BytesPerPixel(OMX_COLOR_FORMATTYPE aPixelFormat);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   288
	IMPORT_C static TInt BytesPerPixel(TUidPixelFormat aPixelFormat);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   289
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   290
	// to maintain offset aligned with buffer ID
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   291
	IMPORT_C RArray<TInt>& OffsetInfoArray();
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   292
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   293
private:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   294
	COmxILMMBuffer(const RChunk& aChunk);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   295
	COmxILMMBuffer(const COmxILMMBuffer& aCamBuf);
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   296
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   297
private:
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   298
	TSurfaceId iSurfaceId;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   299
	RSurfaceManager::TSurfaceInfoV01 iSurfaceInfo;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   300
	RChunk& iChunk;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   301
	TThreadId iChunkOwnerThreadId;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   302
	
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   303
	RArray<TInt> iArrayOffsets;
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   304
	};
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   305
5d29cba61097 2010wk38_02
hgs
parents:
diff changeset
   306
#endif //OMXILMMBUFFER_H