int _mediacodec_foreach_supported_codec(mediacodec_supported_codec_cb callback, void *user_data)
{
- int ret = MEDIACODEC_NONE;
int i;
int index;
for (i = 0; i < CODEC_NR_ITEMS; i++) {
if (codec[i]) {
index = (int)simple_to_codec_type_enumeration(i);
- if (!callback(index, user_data))
- goto CALLBACK_ERROR;
+ if (!callback(index, user_data)) {
+ LOGW("stop foreach callback");
+ break;
+ }
}
}
- if (!callback(-1, user_data)) {
- ret = MEDIACODEC_ERROR_INTERNAL;
- goto CALLBACK_ERROR;
- }
+ LOGD("done");
-CALLBACK_ERROR:
- LOGD("foreach callback returned error");
- return ret;
+ return MEDIACODEC_ERROR_NONE;
}
int mc_get_packet_pool(MMHandleType mediacodec, media_packet_pool_h *pool)
g_print("mediacodec_configure failed\n");
break;
case VIDEO_ENC:
- media_format_set_video_mime(fmt, app->mime);
- media_format_set_video_width(fmt, app->width);
- media_format_set_video_height(fmt, app->height);
- media_format_set_video_avg_bps(fmt, app->target_bits);
- media_format_set_video_frame_rate(fmt, app->fps);
-
media_format_create(&codec_format);
media_format_set_video_mime(codec_format, codec_mime);
media_format_set_video_width(codec_format, app->width);
g_print("mediacodec_configure failed\n");
break;
case AUDIO_ENC:
- media_format_set_audio_mime(fmt, app->mime);
- media_format_set_audio_channel(fmt, app->channel);
- media_format_set_audio_samplerate(fmt, app->samplerate);
- media_format_set_audio_bit(fmt, app->bit);
-
media_format_create(&codec_format);
media_format_set_audio_mime(codec_format, codec_mime);
media_format_set_audio_channel(codec_format, app->channel);