decore.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /**************************************************************************
  2.  *                                                                        *
  3.  * This code has been developed by Adam Li. This software is an           *
  4.  * implementation of a part of one or more MPEG-4 Video tools as          *
  5.  * specified in ISO/IEC 14496-2 standard.  Those intending to use this    *
  6.  * software module in hardware or software products are advised that its  *
  7.  * use may infringe existing patents or copyrights, and any such use      *
  8.  * would be at such party's own risk.  The original developer of this     *
  9.  * software module and his/her company, and subsequent editors and their  *
  10.  * companies (including Project Mayo), will have no liability for use of  *
  11.  * this software or modifications or derivatives thereof.                 *
  12.  *                                                                        *
  13.  * Project Mayo gives users of the Codec a license to this software       *
  14.  * module or modifications thereof for use in hardware or software        *
  15.  * products claiming conformance to the MPEG-4 Video Standard as          *
  16.  * described in the Open DivX license.                                    *
  17.  *                                                                        *
  18.  * The complete Open DivX license can be found at                         *
  19.  * http://www.projectmayo.com/opendivx/license.php                        *
  20.  *                                                                        *
  21.  **************************************************************************/
  22. /**
  23. *  Copyright (C) 2001 - Project Mayo
  24.  *
  25.  * Adam Li
  26.  * Andrea Graziani
  27.  *
  28.  * DivX Advanced Research Center <darc@projectmayo.com>
  29. *
  30. **/
  31. // decore.h //
  32. // This is the header file describing 
  33. // the entrance function of the encoder core
  34. // or the encore ...
  35. #ifdef __cplusplus
  36. extern "C" {
  37. #endif 
  38. #ifndef _DECORE_H_
  39. #define _DECORE_H_
  40. /**
  41.  *
  42. **/
  43. // decore options
  44. #define DEC_OPT_INIT 0x00008000
  45. #define DEC_OPT_RELEASE 0x00010000
  46. #define DEC_OPT_SETPP 0x00020000 // set postprocessing mode
  47. #define DEC_OPT_SETOUT  0x00040000 // set output mode
  48. // decore return values
  49. #define DEC_OK 0
  50. #define DEC_MEMORY 1
  51. #define DEC_BAD_FORMAT 2
  52. // supported output formats
  53. #define YUV12 1
  54. #define RGB32 2 // -biHeight
  55. #define RGB24 3 // -biHeight
  56. #define RGB555 4 // -biHeight
  57. #define RGB565  5 // -biHeight
  58. #define YUV2    6
  59. #define UYVY    7
  60. /**
  61.  *
  62. **/
  63. typedef struct _DEC_PARAM_ 
  64. {
  65. int x_dim; // x dimension of the frames to be decoded
  66. int y_dim; // y dimension of the frames to be decoded
  67. unsigned long color_depth; // leaved for compatibility (new value must be NULL)
  68. int output_format;
  69. } DEC_PARAM;
  70. typedef struct _DEC_FRAME_
  71. {
  72. void *bmp; // the 24-bit decoded bitmap 
  73. void *bitstream; // the decoder buffer
  74. long length; // the lenght of the decoder stream
  75. int render_flag;
  76. } DEC_FRAME;
  77. typedef struct _DEC_SET_
  78. {
  79. int postproc_level; // valid interval are [0..100]
  80. } DEC_SET;
  81. /**
  82.  *
  83. **/
  84. // the prototype of the decore() - main decore engine entrance
  85. //
  86. int decore(
  87. unsigned long handle, // handle - the handle of the calling entity, must be unique
  88. unsigned long dec_opt, // dec_opt - the option for docoding, see below
  89. void *param1, // param1 - the parameter 1 (it's actually meaning depends on dec_opt
  90. void *param2); // param2 - the parameter 2 (it's actually meaning depends on dec_opt
  91. #endif // _DECORE_H_
  92. #ifdef __cplusplus
  93. }
  94. #endif