2 #include <media_codec.h>
3 #include <media_codec_port.h>
4 #include <media_codec_ini.h>
5 #include <media_codec_spec_emul.h>
6 #include <media_codec_internal.h>
8 mc_codec_spec_t spec_emul[MEDIA_CODEC_MAX_CODEC_TYPE];
11 int __convert_error_code_internal(int code, char *func_name)
13 int ret = MEDIACODEC_ERROR_INVALID_OPERATION;
14 char *msg = "MEDIACOODEC_INVALID_OPERATION";
18 ret = MEDIACODEC_ERROR_NONE;
19 msg = "MEDIACODEC_ERROR_NONE";
23 ret = MEDIACODEC_ERROR_INVALID_PARAMETER;
24 msg = "MEDIACODEC_ERROR_INVALID_PARAMETER";
26 case MC_PERMISSION_DENIED:
27 ret = MEDIACODEC_ERROR_PERMISSION_DENIED;
28 msg = "MEDIACODEC_ERROR_PERMISSION_DENIED";
30 case MC_INVALID_STATUS:
31 ret = MEDIACODEC_ERROR_INVALID_STATE;
32 msg = "MEDIACODEC_ERROR_INVALID_STATE";
34 case MC_NOT_SUPPORTED:
35 ret = MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE;
36 msg = "MEDIACODEC_ERROR_NOT_SUPPORTED_ON_DEVICE";
39 case MC_INTERNAL_ERROR:
41 ret = MEDIACODEC_ERROR_INVALID_OPERATION;
42 msg = "MEDIACODEC_ERROR_INVALID_OPERATION";
44 case MC_INVALID_STREAM:
45 ret = MEDIACODEC_ERROR_INVALID_STREAM;
46 msg = "MEDIACODEC_ERROR_INVALID_STREAM";
48 case MC_CODEC_NOT_FOUND:
49 ret = MEDIACODEC_ERROR_CODEC_NOT_FOUND;
50 msg = "MEDIACODEC_ERROR_CODEC_NOT_FOUND";
53 ret = MEDIACODEC_ERROR_DECODE;
54 msg = "MEDIACODEC_ERROR_DECODE";
56 case MC_INVALID_IN_BUF:
57 ret = MEDIACODEC_ERROR_INVALID_INBUFFER;
58 msg = "MEDIACODEC_ERROR_INVALID_INBUFFER";
60 case MC_INVALID_OUT_BUF:
61 ret = MEDIACODEC_ERROR_INVALID_OUTBUFFER;
62 msg = "MEDIACODEC_ERROR_INVALID_OUTBUFFER";
64 case MC_NOT_INITIALIZED:
65 ret = MEDIACODEC_ERROR_NOT_INITIALIZED;
66 msg = "MEDIACODEC_ERROR_NOT_INITIALIZED";
68 case MC_OUTPUT_BUFFER_EMPTY:
69 case MC_OUTPUT_BUFFER_OVERFLOW:
70 ret = MEDIACODEC_ERROR_BUFFER_NOT_AVAILABLE;
71 msg = "MEDIACODEC_ERROR_BUFFER_NOT_AVAILABLE";
73 case MC_OUT_OF_MEMORY:
74 ret = MEDIACODEC_ERROR_OUT_OF_MEMORY;
75 msg = "MEDIACODEC_ERROR_OUT_OF_MEMORY";
78 ret = MEDIACODEC_ERROR_INTERNAL;
79 msg = "MEDIACODEC_ERROR_INTERNAL";
82 LOGD("[%s] %s(0x%08x) : core fw error(0x%x)", func_name, msg, ret, code);
86 int mediacodec_foreach_supported_codec_static(mediacodec_supported_codec_cb callback, void *user_data)
91 ret = mc_ini_load(&mc_ini);
92 if (ret != MC_ERROR_NONE)
98 _mc_create_codec_map_from_ini_static(&mc_ini, spec_emul);
100 LOGD("set supported_codec_cb(%p)", callback);
101 ret = _mediacodec_foreach_supported_codec(callback, user_data);
103 if (ret != MEDIACODEC_ERROR_NONE)
104 return __convert_error_code_internal(ret, (char *)__FUNCTION__);
106 return MEDIACODEC_ERROR_NONE;
109 return MEDIACODEC_ERROR_INVALID_PARAMETER;