int mediacodec_foreach_supported_codec(mediacodec_h mediacodec, mediacodec_supported_codec_cb callback, void *user_data)
{
- MEDIACODEC_INSTANCE_CHECK(mediacodec);
- mediacodec_s *handle = (mediacodec_s *)mediacodec;
-
- handle->supported_codec_cb = callback;
- handle->supported_codec_cb_userdata = user_data;
+ int ret = MC_ERROR_NONE;
- LOGD("set supported_codec_cb(%p)", callback);
- int ret = _mediacodec_foreach_supported_codec(callback, handle);
+ LOGD("supported_codec_cb(%p)", callback);
- if (ret != MEDIACODEC_ERROR_NONE)
+ ret = _mediacodec_foreach_supported_codec(callback, user_data);
+ if (ret != MC_ERROR_NONE)
return __convert_error_code(ret, (char *)__FUNCTION__);
- else
- return MEDIACODEC_ERROR_NONE;
return MEDIACODEC_ERROR_NONE;
int mediacodec_foreach_supported_codec_static(mediacodec_supported_codec_cb callback, void *user_data)
{
- int ret;
+ int ret = MC_ERROR_NONE;
if (!mc_ini.loaded) {
ret = mc_ini_load(&mc_ini);
if (ret != MC_ERROR_NONE)
- goto ERROR;
+ return MEDIACODEC_ERROR_INVALID_PARAMETER;
mc_ini.loaded = TRUE;
}
_mc_create_codec_map_from_ini_static(&mc_ini, spec_emul);
- LOGD("set supported_codec_cb(%p)", callback);
- ret = _mediacodec_foreach_supported_codec(callback, user_data);
+ LOGD("supported_codec_cb(%p)", callback);
- if (ret != MEDIACODEC_ERROR_NONE)
+ ret = _mediacodec_foreach_supported_codec(callback, user_data);
+ if (ret != MC_ERROR_NONE)
return __convert_error_code_internal(ret, (char *)__FUNCTION__);
- else
- return MEDIACODEC_ERROR_NONE;
-ERROR:
- return MEDIACODEC_ERROR_INVALID_PARAMETER;
+ return MEDIACODEC_ERROR_NONE;
}
int mediacodec_enable_extra_video_converter(mediacodec_h mediacodec, gboolean enable, const char *converter_name, int crop_x, int crop_y, int crop_w, int crop_h)
int __mc_set_caps_codecdata(mc_gst_core_t *core, GstMCBuffer *mcbuffer, guint fixed_size)
{
- gint ret = MC_ERROR_NONE;
uint32_t codec_data_size = 0;
GstMapInfo map;
GstBuffer *codecdata_buffer;
guint8 *data = NULL;
void *codec_data = NULL;
- media_packet_get_codec_data(mcbuffer->packet, &codec_data, &codec_data_size);
+ if (media_packet_get_codec_data(mcbuffer->packet, &codec_data, &codec_data_size) != MEDIA_PACKET_ERROR_NONE) {
+ LOGE("get codec data from packet failed");
+ return MC_INTERNAL_ERROR;
+ }
if (codec_data != NULL) { /* get the codec data from media_packet_get_codec_data() */
data = g_malloc0(codec_data_size);
gst_buffer_unmap(mcbuffer->buffer, &map);
}
}
- return ret;
+
+ return MC_ERROR_NONE;
}
int _mc_output_media_packet_new(mc_gst_core_t *core, bool video, bool encoder, media_format_mimetype_e out_mime)
gint arg_count = 0;
static gboolean initialized = FALSE;
static const int max_argc = 50;
- gint *argc = NULL;
+ gint argc = 0;
gchar **argv = NULL;
gchar **argv2 = NULL;
GError *err = NULL;
if (initialized) {
- LOGD("gstreamer already initialized.\n");
+ LOGD("gstreamer already initialized.");
return TRUE;
}
/* alloc */
- argc = malloc(sizeof(int));
argv = malloc(sizeof(gchar *) *max_argc);
argv2 = malloc(sizeof(gchar *) *max_argc);
- if (!argc || !argv || !argv2)
+ if (!argv || !argv2)
goto ERROR;
memset(argv, 0, sizeof(gchar *) *max_argc);
memset(argv2, 0, sizeof(gchar *) *max_argc);
/* add initial */
- *argc = 1;
+ argc = 1;
argv[0] = g_strdup("media codec");
/* we would not do fork for scanning plugins */
- argv[*argc] = g_strdup("--gst-disable-registry-fork");
- (*argc)++;
+ argv[argc++] = g_strdup("--gst-disable-registry-fork");
/* check disable registry scan */
- argv[*argc] = g_strdup("--gst-disable-registry-update");
- (*argc)++;
+ argv[argc++] = g_strdup("--gst-disable-registry-update");
/* check disable segtrap */
- argv[*argc] = g_strdup("--gst-disable-segtrap");
- (*argc)++;
+ argv[argc++] = g_strdup("--gst-disable-segtrap");
- LOGD("initializing gstreamer with following parameter\n");
- LOGD("argc : %d\n", *argc);
- arg_count = *argc;
+ LOGD("initializing gstreamer with following parameter");
+ LOGD("argc : %d", argc);
+ arg_count = argc;
for (i = 0; i < arg_count; i++) {
argv2[i] = argv[i];
- LOGD("argv[%d] : %s\n", i, argv2[i]);
+ LOGD("argv[%d] : %s", i, argv2[i]);
}
/* initializing gstreamer */
- if (!gst_init_check(argc, &argv, &err)) {
- LOGE("Could not initialize GStreamer: %s\n", err ? err->message : "unknown error occurred");
+ if (!gst_init_check(&argc, &argv, &err)) {
+ LOGE("Could not initialize GStreamer: %s", err ? err->message : "unknown error occurred");
if (err)
g_error_free(err);
MC_FREEIF(argv);
MC_FREEIF(argv2);
- MC_FREEIF(argc);
/* done */
initialized = TRUE;
ERROR:
/* release */
for (i = 0; i < arg_count; i++) {
- LOGD("free[%d] : %s\n", i, argv2[i]);
+ LOGD("free[%d] : %s", i, argv2[i]);
MC_FREEIF(argv2[i]);
}
MC_FREEIF(argv);
MC_FREEIF(argv2);
- MC_FREEIF(argc);
return FALSE;
}