dirac_types.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:3k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2. *
  3. * $Id: dirac_types.h,v 1.1 2005/01/30 05:11:40 gabest Exp $ $Name:  $
  4. *
  5. * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  6. *
  7. * The contents of this file are subject to the Mozilla Public License
  8. * Version 1.1 (the "License"); you may not use this file except in compliance
  9. * with the License. You may obtain a copy of the License at
  10. * http://www.mozilla.org/MPL/
  11. *
  12. * Software distributed under the License is distributed on an "AS IS" basis,
  13. * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
  14. * the specific language governing rights and limitations under the License.
  15. *
  16. * The Original Code is BBC Research and Development code.
  17. *
  18. * The Initial Developer of the Original Code is the British Broadcasting
  19. * Corporation.
  20. * Portions created by the Initial Developer are Copyright (C) 2004.
  21. * All Rights Reserved.
  22. *
  23. * Contributor(s): Anuradha Suraparaju (Original Author)
  24. *
  25. * Alternatively, the contents of this file may be used under the terms of
  26. * the GNU General Public License Version 2 (the "GPL"), or the GNU Lesser
  27. * Public License Version 2.1 (the "LGPL"), in which case the provisions of
  28. * the GPL or the LGPL are applicable instead of those above. If you wish to
  29. * allow use of your version of this file only under the terms of the either
  30. * the GPL or LGPL and not to allow others to use your version of this file
  31. * under the MPL, indicate your decision by deleting the provisions above
  32. * and replace them with the notice and other provisions required by the GPL
  33. * or LGPL. If you do not delete the provisions above, a recipient may use
  34. * your version of this file under the terms of any one of the MPL, the GPL
  35. * or the LGPL.
  36. * ***** END LICENSE BLOCK ***** */
  37. #ifndef _DIRAC_TYPES_H
  38. #define _DIRAC_TYPES_H
  39. #include <libdirac_common/common_types.h>
  40. /*! This file contains common enumerated types used throughout 
  41.     the end user interfaces to the encoder and decoder
  42. */
  43. #ifdef __cplusplus
  44. extern "C" {
  45. #endif
  46. #if defined(WIN32) && defined(_WINDLL)
  47. #define DllExport   __declspec( dllexport )
  48. #else
  49. #define DllExport
  50. #endif
  51. /*
  52. * Some basic enumeration types used by end user encoder and decoder ...//
  53. */
  54. typedef ChromaFormat dirac_chroma_t;
  55. typedef FrameSort dirac_frame_type_t;
  56. typedef struct
  57. {
  58.     int numerator;
  59.     int denominator;
  60. } dirac_rational_t;
  61. typedef dirac_rational_t dirac_frame_rate_t;
  62. /*! Structure that holds the sequence parameters */
  63. typedef struct
  64. {
  65.     /*! numper of pixels per line */
  66.     int width;
  67.     /*! number of lines per frame */
  68.     int height;
  69.     /*! chroma type */
  70.     dirac_chroma_t chroma;
  71.     /*! numper of pixels of chroma per line */
  72.     int chroma_width;
  73.     /*! number of lines of chroma per frame */
  74.     int chroma_height;
  75.     /*! frame rate */
  76.     dirac_frame_rate_t frame_rate;
  77.     /*! interlace flag: 0 - progressive; 1 - interlaced */
  78.     int interlace;
  79.     /*! top field comes first : 0 - false; 1 - true */
  80.     int topfieldfirst;
  81. } dirac_seqparams_t;
  82. /*! Structure that holds the frame parameters */
  83. typedef struct
  84. {
  85.     /*! frame type */
  86.     dirac_frame_type_t ftype;
  87.     /*! frame number in decoded order */
  88.     int fnum;
  89. } dirac_frameparams_t;
  90. /*! Structure that holds the frame buffers into which data is written */
  91. typedef struct
  92. {
  93.     /*! buffers to hold the luma and chroma data */
  94.     unsigned char  *buf[3];
  95.     /*! user data */
  96.     void  *id;
  97. } dirac_framebuf_t;
  98. #ifdef __cplusplus
  99. }
  100. #endif
  101. #endif