#ifndef ERROR_DEFINE #define ERROR_DEFINE enum AM_ERROR{ AE_NO = 0, AE_ERROR, AE_UNSUPPORT, AE_INVALID_CONTEXT, AE_NEED_INIT, AE_TIMEOUT, AE_ALLOCATE_FAILED, //AE_CO_ AE_CO_INITED_FAILED, AE_CO_CREATE_FAILED, AE_CO_GETENDPOINT_FAILED, AE_CO_ACTIVE_DEVICE_FAILED, AE_CO_GET_FORMAT_FAILED, AE_CO_AUDIOCLIENT_INIT_FAILED, AE_CO_GET_CAPTURE_FAILED, AE_CO_CREATE_EVENT_FAILED, AE_CO_SET_EVENT_FAILED, AE_CO_START_FAILED, AE_CO_ENUMENDPOINT_FAILED, AE_CO_GET_ENDPOINT_COUNT_FAILED, AE_CO_GET_ENDPOINT_ID_FAILED, AE_CO_OPEN_PROPERTY_FAILED, AE_CO_GET_VALUE_FAILED, AE_CO_GET_BUFFER_FAILED, AE_CO_RELEASE_BUFFER_FAILED, AE_CO_GET_PACKET_FAILED, AE_CO_PADDING_UNEXPECTED, //AE_FFMPEG_ AE_FFMPEG_OPEN_INPUT_FAILED, AE_FFMPEG_FIND_STREAM_FAILED, AE_FFMPEG_FIND_DECODER_FAILED, AE_FFMPEG_OPEN_CODEC_FAILED, AE_FFMPEG_READ_FRAME_FAILED, AE_FFMPEG_READ_PACKET_FAILED, AE_FFMPEG_DECODE_FRAME_FAILED, AE_FFMPEG_NEW_SWSCALE_FAILED, AE_FFMPEG_FIND_ENCODER_FAILED, AE_FFMPEG_ALLOC_CONTEXT_FAILED, AE_FFMPEG_ENCODE_FRAME_FAILED, AE_FFMPEG_ALLOC_FRAME_FAILED, AE_FFMPEG_OPEN_IO_FAILED, AE_FFMPEG_CREATE_STREAM_FAILED, AE_FFMPEG_COPY_PARAMS_FAILED, AE_RESAMPLE_INIT_FAILED, AE_FFMPEG_NEW_STREAM_FAILED, AE_FFMPEG_FIND_INPUT_FMT_FAILED, AE_FFMPEG_WRITE_HEADER_FAILED, AE_FFMPEG_WRITE_TRAILER_FAILED, AE_FFMPEG_WRITE_FRAME_FAILED, //AE_FILTER_ AE_FILTER_ALLOC_GRAPH_FAILED, AE_FILTER_CREATE_FILTER_FAILED, AE_FILTER_PARSE_PTR_FAILED, AE_FILTER_CONFIG_FAILED, AE_FILTER_INVALID_CTX_INDEX, AE_FILTER_ADD_FRAME_FAILED, //AE_GDI_ AE_GDI_GET_DC_FAILED, AE_GDI_CREATE_DC_FAILED, AE_GDI_CREATE_BMP_FAILED, AE_GDI_BITBLT_FAILED, AE_GDI_GET_DIBITS_FAILED, //AE_D3D_ AE_D3D_LOAD_FAILED, AE_D3D_GET_PROC_FAILED, AE_D3D_CREATE_DEVICE_FAILED, AE_D3D_QUERYINTERFACE_FAILED, AE_D3D_CREATE_VERTEX_SHADER_FAILED, AE_D3D_CREATE_INLAYOUT_FAILED, AE_D3D_CREATE_PIXEL_SHADER_FAILED, AE_D3D_CREATE_SAMPLERSTATE_FAILED, //AE_DXGI_ AE_DXGI_GET_PROC_FAILED, AE_DXGI_GET_ADAPTER_FAILED, AE_DXGI_GET_FACTORY_FAILED, AE_DXGI_FOUND_ADAPTER_FAILED, //AE_DUP_ AE_DUP_ATTATCH_FAILED, AE_DUP_QI_FAILED, AE_DUP_GET_PARENT_FAILED, AE_DUP_ENUM_OUTPUT_FAILED, AE_DUP_DUPLICATE_MAX_FAILED, AE_DUP_DUPLICATE_FAILED, AE_DUP_RELEASE_FRAME_FAILED, AE_DUP_ACQUIRE_FRAME_FAILED, AE_DUP_QI_FRAME_FAILED, AE_DUP_CREATE_TEXTURE_FAILED, AE_DUP_QI_DXGI_FAILED, AE_DUP_MAP_FAILED, AE_DUP_GET_CURSORSHAPE_FAILED, //AE_REMUX_ AE_REMUX_RUNNING, AE_REMUX_NOT_EXIST, AE_REMUX_INVALID_INOUT, // AE_WGC_ AE_WGC_CREATE_CAPTURER_FAILED, AE_MAX }; static const char *ERRORS_STR[] = { "no error", //AE_NO "error", //AE_ERROR "not support for now", //AE_UNSUPPORT "invalid context", //AE_INVALID_CONTEXT "need init first", //AE_NEED_INIT "operation timeout", //AE_TIMEOUT "allocate memory failed", //AE_ALLOCATE_FAILED, "com init failed", //AE_CO_INITED_FAILED "com create instance failed", //AE_CO_CREATE_FAILED "com get endpoint failed", //AE_CO_GETENDPOINT_FAILED "com active device failed", //AE_CO_ACTIVE_DEVICE_FAILED "com get wave formatex failed", //AE_CO_GET_FORMAT_FAILED "com audio client init failed", //AE_CO_AUDIOCLIENT_INIT_FAILED "com audio get capture failed", //AE_CO_GET_CAPTURE_FAILED "com audio create event failed", //AE_CO_CREATE_EVENT_FAILED "com set ready event failed", //AE_CO_SET_EVENT_FAILED "com start to record failed", //AE_CO_START_FAILED "com enum audio endpoints failed", //AE_CO_ENUMENDPOINT_FAILED "com get endpoints count failed", //AE_CO_GET_ENDPOINT_COUNT_FAILED "com get endpoint id failed", //AE_CO_GET_ENDPOINT_ID_FAILED "com open endpoint property failed", //AE_CO_OPEN_PROPERTY_FAILED "com get property value failed", //AE_CO_GET_VALUE_FAILED "com get buffer failed", //AE_CO_GET_BUFFER_FAILED "com release buffer failed", //AE_CO_RELEASE_BUFFER_FAILED "com get packet size failed", //AE_CO_GET_PACKET_FAILED "com get padding size unexpected", //AE_CO_PADDING_UNEXPECTED "ffmpeg open input failed", //AE_FFMPEG_OPEN_INPUT_FAILED "ffmpeg find stream info failed", //AE_FFMPEG_FIND_STREAM_FAILED "ffmpeg find decoder failed", //AE_FFMPEG_FIND_DECODER_FAILED "ffmpeg open codec failed", //AE_FFMPEG_OPEN_CODEC_FAILED "ffmpeg read frame failed", //AE_FFMPEG_READ_FRAME_FAILED "ffmpeg read packet failed", //AE_FFMPEG_READ_PACKET_FAILED "ffmpeg decode frame failed", //AE_FFMPEG_DECODE_FRAME_FAILED "ffmpeg create swscale failed", //AE_FFMPEG_NEW_SWSCALE_FAILED "ffmpeg find encoder failed", //AE_FFMPEG_FIND_ENCODER_FAILED "ffmpeg alloc context failed", //AE_FFMPEG_ALLOC_CONTEXT_FAILED "ffmpeg encode frame failed", //AE_FFMPEG_ENCODE_FRAME_FAILED "ffmpeg alloc frame failed", //AE_FFMPEG_ALLOC_FRAME_FAILED "ffmpeg open io ctx failed", //AE_FFMPEG_OPEN_IO_FAILED "ffmpeg new stream failed", //AE_FFMPEG_CREATE_STREAM_FAILED "ffmpeg copy parameters failed", //AE_FFMPEG_COPY_PARAMS_FAILED "resampler init failed", //AE_RESAMPLE_INIT_FAILED "ffmpeg new out stream failed", //AE_FFMPEG_NEW_STREAM_FAILED "ffmpeg find input format failed", //AE_FFMPEG_FIND_INPUT_FMT_FAILED "ffmpeg write file header failed", //AE_FFMPEG_WRITE_HEADER_FAILED "ffmpeg write file trailer failed", //AE_FFMPEG_WRITE_TRAILER_FAILED "ffmpeg write frame failed", //AE_FFMPEG_WRITE_FRAME_FAILED "avfilter alloc avfilter failed", //AE_FILTER_ALLOC_GRAPH_FAILED "avfilter create graph failed", //AE_FILTER_CREATE_FILTER_FAILED "avfilter parse ptr failed", //AE_FILTER_PARSE_PTR_FAILED "avfilter config graph failed", //AE_FILTER_CONFIG_FAILED "avfilter invalid ctx index", //AE_FILTER_INVALID_CTX_INDEX "avfilter add frame failed", //AE_FILTER_ADD_FRAME_FAILED "gdi get dc failed", //AE_GDI_GET_DC_FAILED "gdi create dc failed", //AE_GDI_CREATE_DC_FAILED "gdi create bmp failed", //AE_GDI_CREATE_BMP_FAILED "gdi bitblt failed", //AE_GDI_BITBLT_FAILED "gid geet dibbits failed", //AE_GDI_GET_DIBITS_FAILED "d3d11 library load failed", //AE_D3D_LOAD_FAILED "d3d11 proc get failed", //AE_D3D_GET_PROC_FAILED "d3d11 create device failed", //AE_D3D_CREATE_DEVICE_FAILED "d3d11 query interface failed", //AE_D3D_QUERYINTERFACE_FAILED "d3d11 create vertex shader failed",//AE_D3D_CREATE_VERTEX_SHADER_FAILED "d3d11 create input layout failed", //AE_D3D_CREATE_INLAYOUT_FAILED "d3d11 create pixel shader failed", //AE_D3D_CREATE_PIXEL_SHADER_FAILED "d3d11 create sampler state failed",//AE_D3D_CREATE_SAMPLERSTATE_FAILED "dxgi get proc address failed", //AE_DXGI_GET_PROC_FAILED "dxgi get adapter failed", //AE_DXGI_GET_ADAPTER_FAILED "dxgi get factory failed", //AE_DXGI_GET_FACTORY_FAILED "dxgi specified adapter not found", //AE_DXGI_FOUND_ADAPTER_FAILED "duplication attatch desktop failed", //AE_DUP_ATTATCH_FAILED "duplication query interface failed", //AE_DUP_QI_FAILED "duplication get parent failed", //AE_DUP_GET_PARENT_FAILED "duplication enum ouput failed", //AE_DUP_ENUM_OUTPUT_FAILED "duplication duplicate unavailable", //AE_DUP_DUPLICATE_MAX_FAILED "duplication duplicate failed", //AE_DUP_DUPLICATE_FAILED "duplication release frame failed", //AE_DUP_RELEASE_FRAME_FAILED "duplication acquire frame failed", //AE_DUP_ACQUIRE_FRAME_FAILED "duplication qi frame failed", //AE_DUP_QI_FRAME_FAILED "duplication create texture failed", //AE_DUP_CREATE_TEXTURE_FAILED "duplication dxgi qi failed", //AE_DUP_QI_DXGI_FAILED "duplication map rects failed", //AE_DUP_MAP_FAILED "duplication get cursor shape failed",//AE_DUP_GET_CURSORSHAPE_FAILED "remux is already running", //AE_REMUX_RUNNING "remux input file do not exist", //AE_REMUX_NOT_EXIST "remux input or output file invalid", //AE_REMUX_INVALID_INOUT }; #define err2str(e) e < AE_MAX ? ERRORS_STR[e] : "unknown" #define AMERROR_CHECK(err) if(err != AE_NO) return err #endif // !ERROR_DEFINE