error_define.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. #ifndef ERROR_DEFINE
  2. #define ERROR_DEFINE
  3. enum AM_ERROR {
  4. AE_NO = 0,
  5. AE_ERROR,
  6. AE_UNSUPPORT,
  7. AE_INVALID_CONTEXT,
  8. AE_NEED_INIT,
  9. AE_TIMEOUT,
  10. AE_ALLOCATE_FAILED,
  11. //AE_CO_
  12. AE_CO_INITED_FAILED,
  13. AE_CO_CREATE_FAILED,
  14. AE_CO_GETENDPOINT_FAILED,
  15. AE_CO_ACTIVE_DEVICE_FAILED,
  16. AE_CO_GET_FORMAT_FAILED,
  17. AE_CO_AUDIOCLIENT_INIT_FAILED,
  18. AE_CO_GET_CAPTURE_FAILED,
  19. AE_CO_CREATE_EVENT_FAILED,
  20. AE_CO_SET_EVENT_FAILED,
  21. AE_CO_START_FAILED,
  22. AE_CO_ENUMENDPOINT_FAILED,
  23. AE_CO_GET_ENDPOINT_COUNT_FAILED,
  24. AE_CO_GET_ENDPOINT_ID_FAILED,
  25. AE_CO_OPEN_PROPERTY_FAILED,
  26. AE_CO_GET_VALUE_FAILED,
  27. AE_CO_GET_BUFFER_FAILED,
  28. AE_CO_RELEASE_BUFFER_FAILED,
  29. AE_CO_GET_PACKET_FAILED,
  30. AE_CO_PADDING_UNEXPECTED,
  31. //AE_FFMPEG_
  32. AE_FFMPEG_OPEN_INPUT_FAILED,
  33. AE_FFMPEG_FIND_STREAM_FAILED,
  34. AE_FFMPEG_FIND_DECODER_FAILED,
  35. AE_FFMPEG_OPEN_CODEC_FAILED,
  36. AE_FFMPEG_READ_FRAME_FAILED,
  37. AE_FFMPEG_READ_PACKET_FAILED,
  38. AE_FFMPEG_DECODE_FRAME_FAILED,
  39. AE_FFMPEG_NEW_SWSCALE_FAILED,
  40. AE_FFMPEG_FIND_ENCODER_FAILED,
  41. AE_FFMPEG_ALLOC_CONTEXT_FAILED,
  42. AE_FFMPEG_ENCODE_FRAME_FAILED,
  43. AE_FFMPEG_ALLOC_FRAME_FAILED,
  44. AE_FFMPEG_OPEN_IO_FAILED,
  45. AE_FFMPEG_CREATE_STREAM_FAILED,
  46. AE_FFMPEG_COPY_PARAMS_FAILED,
  47. AE_RESAMPLE_INIT_FAILED,
  48. AE_FFMPEG_NEW_STREAM_FAILED,
  49. AE_FFMPEG_FIND_INPUT_FMT_FAILED,
  50. AE_FFMPEG_WRITE_HEADER_FAILED,
  51. AE_FFMPEG_WRITE_TRAILER_FAILED,
  52. AE_FFMPEG_WRITE_FRAME_FAILED,
  53. //AE_FILTER_
  54. AE_FILTER_ALLOC_GRAPH_FAILED,
  55. AE_FILTER_CREATE_FILTER_FAILED,
  56. AE_FILTER_PARSE_PTR_FAILED,
  57. AE_FILTER_CONFIG_FAILED,
  58. AE_FILTER_INVALID_CTX_INDEX,
  59. AE_FILTER_ADD_FRAME_FAILED,
  60. //AE_GDI_
  61. AE_GDI_GET_DC_FAILED,
  62. AE_GDI_CREATE_DC_FAILED,
  63. AE_GDI_CREATE_BMP_FAILED,
  64. AE_GDI_BITBLT_FAILED,
  65. AE_GDI_GET_DIBITS_FAILED,
  66. //AE_D3D_
  67. AE_D3D_LOAD_FAILED,
  68. AE_D3D_GET_PROC_FAILED,
  69. AE_D3D_CREATE_DEVICE_FAILED,
  70. AE_D3D_QUERYINTERFACE_FAILED,
  71. AE_D3D_CREATE_VERTEX_SHADER_FAILED,
  72. AE_D3D_CREATE_INLAYOUT_FAILED,
  73. AE_D3D_CREATE_PIXEL_SHADER_FAILED,
  74. AE_D3D_CREATE_SAMPLERSTATE_FAILED,
  75. //AE_DXGI_
  76. AE_DXGI_GET_PROC_FAILED,
  77. AE_DXGI_GET_ADAPTER_FAILED,
  78. AE_DXGI_GET_FACTORY_FAILED,
  79. AE_DXGI_FOUND_ADAPTER_FAILED,
  80. //AE_DUP_
  81. AE_DUP_ATTATCH_FAILED,
  82. AE_DUP_QI_FAILED,
  83. AE_DUP_GET_PARENT_FAILED,
  84. AE_DUP_ENUM_OUTPUT_FAILED,
  85. AE_DUP_DUPLICATE_MAX_FAILED,
  86. AE_DUP_DUPLICATE_FAILED,
  87. AE_DUP_RELEASE_FRAME_FAILED,
  88. AE_DUP_ACQUIRE_FRAME_FAILED,
  89. AE_DUP_QI_FRAME_FAILED,
  90. AE_DUP_CREATE_TEXTURE_FAILED,
  91. AE_DUP_QI_DXGI_FAILED,
  92. AE_DUP_MAP_FAILED,
  93. AE_DUP_GET_CURSORSHAPE_FAILED,
  94. //AE_REMUX_
  95. AE_REMUX_RUNNING,
  96. AE_REMUX_NOT_EXIST,
  97. AE_REMUX_INVALID_INOUT,
  98. // AE_WGC_
  99. AE_WGC_CREATE_CAPTURER_FAILED,
  100. AE_MAX
  101. };
  102. static const char *ERRORS_STR[] = {
  103. "no error", //AE_NO
  104. "error", //AE_ERROR
  105. "not support for now", //AE_UNSUPPORT
  106. "invalid context", //AE_INVALID_CONTEXT
  107. "need init first", //AE_NEED_INIT
  108. "operation timeout", //AE_TIMEOUT
  109. "allocate memory failed", //AE_ALLOCATE_FAILED,
  110. "com init failed", //AE_CO_INITED_FAILED
  111. "com create instance failed", //AE_CO_CREATE_FAILED
  112. "com get endpoint failed", //AE_CO_GETENDPOINT_FAILED
  113. "com active device failed", //AE_CO_ACTIVE_DEVICE_FAILED
  114. "com get wave formatex failed", //AE_CO_GET_FORMAT_FAILED
  115. "com audio client init failed", //AE_CO_AUDIOCLIENT_INIT_FAILED
  116. "com audio get capture failed", //AE_CO_GET_CAPTURE_FAILED
  117. "com audio create event failed", //AE_CO_CREATE_EVENT_FAILED
  118. "com set ready event failed", //AE_CO_SET_EVENT_FAILED
  119. "com start to record failed", //AE_CO_START_FAILED
  120. "com enum audio endpoints failed", //AE_CO_ENUMENDPOINT_FAILED
  121. "com get endpoints count failed", //AE_CO_GET_ENDPOINT_COUNT_FAILED
  122. "com get endpoint id failed", //AE_CO_GET_ENDPOINT_ID_FAILED
  123. "com open endpoint property failed", //AE_CO_OPEN_PROPERTY_FAILED
  124. "com get property value failed", //AE_CO_GET_VALUE_FAILED
  125. "com get buffer failed", //AE_CO_GET_BUFFER_FAILED
  126. "com release buffer failed", //AE_CO_RELEASE_BUFFER_FAILED
  127. "com get packet size failed", //AE_CO_GET_PACKET_FAILED
  128. "com get padding size unexpected", //AE_CO_PADDING_UNEXPECTED
  129. "ffmpeg open input failed", //AE_FFMPEG_OPEN_INPUT_FAILED
  130. "ffmpeg find stream info failed", //AE_FFMPEG_FIND_STREAM_FAILED
  131. "ffmpeg find decoder failed", //AE_FFMPEG_FIND_DECODER_FAILED
  132. "ffmpeg open codec failed", //AE_FFMPEG_OPEN_CODEC_FAILED
  133. "ffmpeg read frame failed", //AE_FFMPEG_READ_FRAME_FAILED
  134. "ffmpeg read packet failed", //AE_FFMPEG_READ_PACKET_FAILED
  135. "ffmpeg decode frame failed", //AE_FFMPEG_DECODE_FRAME_FAILED
  136. "ffmpeg create swscale failed", //AE_FFMPEG_NEW_SWSCALE_FAILED
  137. "ffmpeg find encoder failed", //AE_FFMPEG_FIND_ENCODER_FAILED
  138. "ffmpeg alloc context failed", //AE_FFMPEG_ALLOC_CONTEXT_FAILED
  139. "ffmpeg encode frame failed", //AE_FFMPEG_ENCODE_FRAME_FAILED
  140. "ffmpeg alloc frame failed", //AE_FFMPEG_ALLOC_FRAME_FAILED
  141. "ffmpeg open io ctx failed", //AE_FFMPEG_OPEN_IO_FAILED
  142. "ffmpeg new stream failed", //AE_FFMPEG_CREATE_STREAM_FAILED
  143. "ffmpeg copy parameters failed", //AE_FFMPEG_COPY_PARAMS_FAILED
  144. "resampler init failed", //AE_RESAMPLE_INIT_FAILED
  145. "ffmpeg new out stream failed", //AE_FFMPEG_NEW_STREAM_FAILED
  146. "ffmpeg find input format failed", //AE_FFMPEG_FIND_INPUT_FMT_FAILED
  147. "ffmpeg write file header failed", //AE_FFMPEG_WRITE_HEADER_FAILED
  148. "ffmpeg write file trailer failed", //AE_FFMPEG_WRITE_TRAILER_FAILED
  149. "ffmpeg write frame failed", //AE_FFMPEG_WRITE_FRAME_FAILED
  150. "avfilter alloc avfilter failed", //AE_FILTER_ALLOC_GRAPH_FAILED
  151. "avfilter create graph failed", //AE_FILTER_CREATE_FILTER_FAILED
  152. "avfilter parse ptr failed", //AE_FILTER_PARSE_PTR_FAILED
  153. "avfilter config graph failed", //AE_FILTER_CONFIG_FAILED
  154. "avfilter invalid ctx index", //AE_FILTER_INVALID_CTX_INDEX
  155. "avfilter add frame failed", //AE_FILTER_ADD_FRAME_FAILED
  156. "gdi get dc failed", //AE_GDI_GET_DC_FAILED
  157. "gdi create dc failed", //AE_GDI_CREATE_DC_FAILED
  158. "gdi create bmp failed", //AE_GDI_CREATE_BMP_FAILED
  159. "gdi bitblt failed", //AE_GDI_BITBLT_FAILED
  160. "gid geet dibbits failed", //AE_GDI_GET_DIBITS_FAILED
  161. "d3d11 library load failed", //AE_D3D_LOAD_FAILED
  162. "d3d11 proc get failed", //AE_D3D_GET_PROC_FAILED
  163. "d3d11 create device failed", //AE_D3D_CREATE_DEVICE_FAILED
  164. "d3d11 query interface failed", //AE_D3D_QUERYINTERFACE_FAILED
  165. "d3d11 create vertex shader failed", //AE_D3D_CREATE_VERTEX_SHADER_FAILED
  166. "d3d11 create input layout failed", //AE_D3D_CREATE_INLAYOUT_FAILED
  167. "d3d11 create pixel shader failed", //AE_D3D_CREATE_PIXEL_SHADER_FAILED
  168. "d3d11 create sampler state failed", //AE_D3D_CREATE_SAMPLERSTATE_FAILED
  169. "dxgi get proc address failed", //AE_DXGI_GET_PROC_FAILED
  170. "dxgi get adapter failed", //AE_DXGI_GET_ADAPTER_FAILED
  171. "dxgi get factory failed", //AE_DXGI_GET_FACTORY_FAILED
  172. "dxgi specified adapter not found", //AE_DXGI_FOUND_ADAPTER_FAILED
  173. "duplication attatch desktop failed", //AE_DUP_ATTATCH_FAILED
  174. "duplication query interface failed", //AE_DUP_QI_FAILED
  175. "duplication get parent failed", //AE_DUP_GET_PARENT_FAILED
  176. "duplication enum ouput failed", //AE_DUP_ENUM_OUTPUT_FAILED
  177. "duplication duplicate unavailable", //AE_DUP_DUPLICATE_MAX_FAILED
  178. "duplication duplicate failed", //AE_DUP_DUPLICATE_FAILED
  179. "duplication release frame failed", //AE_DUP_RELEASE_FRAME_FAILED
  180. "duplication acquire frame failed", //AE_DUP_ACQUIRE_FRAME_FAILED
  181. "duplication qi frame failed", //AE_DUP_QI_FRAME_FAILED
  182. "duplication create texture failed", //AE_DUP_CREATE_TEXTURE_FAILED
  183. "duplication dxgi qi failed", //AE_DUP_QI_DXGI_FAILED
  184. "duplication map rects failed", //AE_DUP_MAP_FAILED
  185. "duplication get cursor shape failed", //AE_DUP_GET_CURSORSHAPE_FAILED
  186. "remux is already running", //AE_REMUX_RUNNING
  187. "remux input file do not exist", //AE_REMUX_NOT_EXIST
  188. "remux input or output file invalid", //AE_REMUX_INVALID_INOUT
  189. };
  190. #define err2str(e) e < AE_MAX ? ERRORS_STR[e] : "unknown"
  191. #define AMERROR_CHECK(err) \
  192. if (err != AE_NO) \
  193. return err
  194. #endif // !ERROR_DEFINE