colorlib.h
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:6k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #ifndef __COLORLIB_H__
  36. #define __COLORLIB_H__  1
  37. #include "yuv.h"
  38. #ifdef __cplusplus
  39. extern "C" {
  40. #endif
  41. /*
  42.  * Initializes "from/to I420" converters.
  43.  * Use:
  44.  *  void SetSrcI420Colors (float Brightness, float Contrast, float Saturation, float Hue);
  45.  * Input:
  46.  *  Brightness - brightness adjustment [-1,1], 0 - default;
  47.  *  Contrast   - contrast adjustment   [-1,1], 0 - default;
  48.  *  Saturation - saturation adjustment [-1,1], 0 - default;
  49.  *  Hue        - hue adjustment        [-1,1], 0 - default;
  50.  * Returns:
  51.  *  none.
  52.  */
  53. void SetSrcI420Colors (float Brightness, float Contrast, float Saturation, float Hue,
  54.        color_data_t* pcd);
  55. /*
  56.  * YUV 4:2:0 chroma resampling mode:
  57.  * Input chroma     a b
  58.  *  samples:        c d
  59.  */
  60. #define CRM_11_11   0       /* (a+b+c+d) / 4 */
  61. #define CRM_11_00   1       /* (a+b) / 2     */
  62. #define CRM_00_11   2       /* (c+d) / 2     */
  63. /*
  64.  * Format-conversion routines.
  65.  * Use:
  66.  *  int XXXXtoYYYY (unsigned char *dest_ptr, int dest_width, int dest_height,
  67.  *      int dest_pitch, int dest_x, int dest_y, int dest_dx, int dest_dy,
  68.  *      unsigned char *src_ptr, int src_width, int src_height, int src_pitch,
  69.  *      int src_x, int src_y, int src_dx, int src_dy);
  70.  * Input:
  71.  *  dest_ptr - pointer to a destination buffer
  72.  *  dest_width, dest_height - width/height of the destination image (pixels)
  73.  *  dest_pitch - pitch of the dest. buffer (in bytes; <0 - if bottom up image)
  74.  *  dest_x, dest_y, dest_dx, dest_dy - destination rectangle (pixels)
  75.  *  src_ptr - pointer to an input image
  76.  *  src_width, src_height - width/height of the input image (pixels)
  77.  *  src_pitch - pitch of the source buffer (in bytes; <0 - if bottom up image)
  78.  *  src_x, src_y, src_dx, src_dy - source rectangle (pixels)
  79.  * Returns:
  80.  *  0 - if success; -1 if failure.
  81.  * Notes:
  82.  *  a) In all cases, pointers to the source and destination buffers must be
  83.  *     DWORD aligned, and both pitch parameters must be multiple of 4!!!
  84.  *  b) Converters that deal with YUV 4:2:2, or 4:2:0 formats may also require
  85.  *     rectangle parameters (x,y,dx,dy) to be multiple of 2. Failure to provide
  86.  *     aligned rectangles will result in partially converted image.
  87.  *  c) Currently only scale factors of 1:1 and 2:1 are supported; if the rates
  88.  *     dest_dx/src_dx & dest_dy/src_dy are neither 1, or 2, the converters
  89.  *     will fail.
  90.  */
  91.   int I420toRGB565   (unsigned char *, int, int, int, int, int, int, int, unsigned char *, int, int, int, int, int, int, int, color_data_t* pcd);
  92.   int I420toRGB444   (unsigned char *, int, int, int, int, int, int, int, unsigned char *, int, int, int, int, int, int, int, color_data_t* pcd);
  93.   int I420toRGB444v565   (unsigned char *, int, int, int, int, int, int, int, unsigned char *, int, int, int, int, int, int, int, color_data_t* pcd);
  94.   void InitI420toRGB565(float, float, float, float, color_data_t* pcd);
  95.   void InitI420toRGB444(float, float, float, float, color_data_t* pcd);
  96.   void InitI420toRGB444v565(float, float, float, float, color_data_t* pcd);
  97.   void UninitI420toRGB565( );
  98.   void UninitI420toRGB444( );
  99.   void UninitI420toRGB444v565( );
  100. #if defined(HELIX_FEATURE_SMIL_SITE)
  101.     int RGB32toRGB444( unsigned char *dest_ptr,
  102.                        int dest_width, int dest_height, int dest_pitch, int dest_x,
  103.                        int dest_y, int dest_dx, int dest_dy,
  104.                        unsigned char *src_ptr,
  105.                        int src_width, int src_height, int src_pitch,
  106.                        int src_x, int src_y, int src_dx, int src_dy,
  107.                        color_data_t* not_used);
  108.     int RGB444toRGB444(unsigned char *dest_ptr,
  109.                        int dest_width, int dest_height, int dest_pitch, int dest_x,
  110.                        int dest_y, int dest_dx, int dest_dy,
  111.                        unsigned char *src_ptr,
  112.                        int src_width, int src_height, int src_pitch,
  113.                        int src_x, int src_y, int src_dx, int src_dy,
  114.                        color_data_t* not_used);
  115. #endif
  116. #ifdef __cplusplus
  117. }
  118. #endif
  119. #endif /* __COLORLIB_H__ */