williamr@2: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: #ifndef IMAGEFRAMECONST_H williamr@2: #define IMAGEFRAMECONST_H williamr@2: williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: williamr@2: /** williamr@2: Constant which defines the maximum number of planes within TFrameLayout. williamr@2: */ williamr@2: const TInt KMaxPlanesInFrame = 4; williamr@2: williamr@2: /** williamr@2: Identifier for TFrameFormat type. williamr@2: @see KIclImageFrameFormatUidValue williamr@2: */ williamr@2: static const TUid KUidIclImageFrameFormat = {KIclImageFrameFormatUidValue}; williamr@2: williamr@2: /** williamr@2: Identifier for TFrameLayout type. williamr@2: @see KIclImageFrameLayoutUidValue williamr@2: */ williamr@2: static const TUid KUidIclImageFrameLayout = {KIclImageFrameLayoutUidValue}; williamr@2: williamr@2: williamr@2: /* Format Uids */ williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV Monochrome image format. williamr@2: Planar, 8 bit per pixel. williamr@2: Single Y plane for monochrome images. williamr@2: Pixel order: Y00Y01.. williamr@2: @note greyscale values, 0=black, 255=white. williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormatMonochrome. williamr@2: williamr@2: Equivalent to Video FourCC code Y800, Y8. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUVMonochromeUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUVMonochrome = {KFormatYUVMonochromeUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:2 image format. williamr@2: Interleaved, 16 bits per pixel, 8 bits per sample. williamr@2: Pixel order: UY0VY1. williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormatYUV422. williamr@2: williamr@2: Equivalent to Video FourCC code UYVY. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV422InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV422Interleaved = {KFormatYUV422InterleavedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:0 image format. williamr@2: Planar, 12 bits per pixel. williamr@2: 8 bit Y plane followed by 8 bit 2x2 subsampled U and V planes. williamr@2: Pixel order: Y00Y01Y02Y03...U0...V0... williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormatYUV420Planar. williamr@2: williamr@2: Equivalent to Video FourCC code I420. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV420PlanarUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV420Planar = {KFormatYUV420PlanarUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:0 image format. williamr@2: Planar, 12 bits per pixel. williamr@2: 8 bit Y plane followed by 8 bit 2x2 subsampled V and U planes. williamr@2: Pixel order: Y00Y01Y02Y03...V0...U0... williamr@2: williamr@2: No equivalent ECam format code. williamr@2: williamr@2: Equivalent to Video FourCC code YV12. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV420InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV420PlanarReversed = {KFormatYUV420PlanarReversedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: RGB Packed image format. williamr@2: Interleaved in triplets, 12 bits per pixel. williamr@2: Pixel order: BGR - 4 bits per pixel with red in the least significant bits williamr@2: and the 4 most significant bits unused. williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormat16bitRGB444. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormat16bitRGB444InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormat16bitRGB444Interleaved = {KFormat16bitRGB444InterleavedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: RGB Packed image format. williamr@2: Interleaved in triplets, 16 bits per pixel. williamr@2: Pixel order: BGR - 5 bits per pixel for red and blue and 6 bits for green, williamr@2: with red in the least significant bits. williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormat16bitRGB565. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormat16BitRGB565InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormat16BitRGB565Interleaved = {KFormat16BitRGB565InterleavedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: RGB Packed image format. williamr@2: Interleaved in triplets, 32 bits per pixel. williamr@2: Pixel order: BGR - 8 bits per pixel with red in the least significant bits williamr@2: and the 8 most significant bits unused. williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormat32BitRGB888. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormat32BitRGB888InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormat32BitRGB888Interleaved = {KFormat32BitRGB888InterleavedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:0 image format. williamr@2: Interleaved, 12 bits per pixel. williamr@2: 8 bit, 4 Y plane samples followed by 2 8 bit U and V samples. williamr@2: Pixel order: Y00Y01Y10Y11UV. williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormatYUV420Interleaved. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV420InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV420Interleaved = {KFormatYUV420InterleavedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:2 image format. williamr@2: Interleaved, 16 bits per pixel, 8 bits per sample. williamr@2: Pixel order: Y1VY0U. williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormatYUV422Reversed. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV422InterleavedReversedUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV422InterleavedReversed = {KFormatYUV422InterleavedReversedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:2 image format. williamr@2: Interleaved, 16 bits per pixel, 8 bits per sample. williamr@2: Pixel order: Y0Y1UV. williamr@2: williamr@2: No equivalent ECam format code. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYYUV422InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormatYYUV422Interleaved = {KFormatYYUV422InterleavedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:2 image format. williamr@2: Planar, 16 bits per pixel, 8 bits per sample. williamr@2: Pixel order: Y00Y01Y02Y03...U00U02...V00V02... williamr@2: williamr@2: No equivalent ECam format code. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV422PlanarUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV422Planar = {KFormatYUV422PlanarUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:4:4 image format. williamr@2: Planar, 24 bits per pixel, 8 bits per sample. williamr@2: Pixel order: Y00Y01Y02Y03...U00U01U02U03...V00V01V02V03... williamr@2: williamr@2: No equivalent ECam format code. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV444PlanarUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV444Planar = {KFormatYUV444PlanarUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:4:4 image format. williamr@2: Interleaved, 24 bit per pixel, 8 bits per sample. williamr@2: Pixel order: Y00U00V00 Y01U01V01... williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormatYUV444. williamr@2: williamr@2: No equivalent Video FourCC code. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV444InterleavedUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV444Interleaved = {KFormatYUV444InterleavedUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat format code. williamr@2: williamr@2: Format Description: williamr@2: YUV 4:2:0 image format. williamr@2: Semiplanar, 12 bits per pixel, 8-bit per sample. williamr@2: Y plane followed by an interleaved U/V plane with 2x2 subsampling. williamr@2: Pixel order: Y00Y01Y02Y03...U0V0... williamr@2: williamr@2: Equivalent to ECam format code CCamera::EFormatYUV420SemiPlanar. williamr@2: williamr@2: Equivalent to Video FourCC code NV12. williamr@2: williamr@2: @see CCamera::TFormat williamr@2: @see KFormatYUV420SemiPlanarUidValue williamr@2: */ williamr@2: const TUid KUidFormatYUV420SemiPlanar = {KFormatYUV420SemiPlanarUidValue}; williamr@2: williamr@2: williamr@2: /* Colour spaces */ williamr@2: williamr@2: /** williamr@2: TFrameFormat image frame color space for YCbCr. williamr@2: @see KColourSpaceYCbCrUidValue williamr@2: */ williamr@2: const TUid KUidColourSpaceYCbCr = {KColourSpaceYCbCrUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat image frame color space for YUV. williamr@2: @see KColourSpaceYUVUidValue williamr@2: */ williamr@2: const TUid KUidColourSpaceYUV = {KColourSpaceYUVUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat image frame color space for RGB. williamr@2: @see KColourSpaceRGBUidValue williamr@2: */ williamr@2: const TUid KUidColourSpaceRGB = {KColourSpaceRGBUidValue}; williamr@2: williamr@2: williamr@2: /* Sampling */ williamr@2: williamr@2: /** williamr@2: TFrameFormat frame sampling for monochrome image data. williamr@2: @see KSamplingMonochromeUidValue williamr@2: */ williamr@2: const TUid KUidSamplingMonochrome = {KSamplingMonochromeUidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat frame sampling for YUV444 image data. williamr@2: @see KSamplingColor444UidValue williamr@2: */ williamr@2: const TUid KUidSamplingColor444 = {KSamplingColor444UidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat frame sampling for YUV422 image data. williamr@2: @see KSamplingColor422UidValue williamr@2: */ williamr@2: const TUid KUidSamplingColor422 = {KSamplingColor422UidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat frame sampling for YUV420 image data. williamr@2: @see KSamplingColor420UidValue williamr@2: */ williamr@2: const TUid KUidSamplingColor420 = {KSamplingColor420UidValue}; williamr@2: williamr@2: /** williamr@2: TFrameFormat frame sampling for YUV411 image data. williamr@2: @see KSamplingColor411UidValue williamr@2: */ williamr@2: const TUid KUidSamplingColor411 = {KSamplingColor411UidValue}; williamr@2: williamr@2: williamr@2: /** williamr@2: Specific JPEG ImageFrame Decoder/Encoder option for the ConvertFrame API. williamr@2: @see KOptionConvertFrameUidValue williamr@2: */ williamr@2: const TUid KUidOptionConvertFrame = {KOptionConvertFrameUidValue}; williamr@2: williamr@2: /** williamr@2: Specific JPEG ImageFrame Decoder option for the RecommendBufferSize API. williamr@2: This option allows the client of the decoder to obtain the recommended size for a ImageFrame williamr@2: and allocate memory accordingly. williamr@2: @see KRecommendBufferSizeUidValue williamr@2: */ williamr@2: const TUid KUidOptionRecommendBufferSize = {KOptionRecommendBufferSizeUidValue}; williamr@2: williamr@2: #endif // IMAGEFRAMECONST_H