if (__codec_v4l2_subscribe_event(device_fd, V4L2_EVENT_SOURCE_CHANGE, input_id) != HAL_CODEC_ERROR_NONE) {
LOGW("subscribe event[SOURCE_CHANGE] failed");
- return HAL_CODEC_ERROR_DEVICE_READ;
+ ret = HAL_CODEC_ERROR_DEVICE_READ;
+ goto _CONFIGURE_FAILED;
}
in_memory = V4L2_MEMORY_MMAP;
in_buf_type, in_memory, in_format, width, height,
in_max_resolution.width, in_max_resolution.height);
if (ret != HAL_CODEC_ERROR_NONE)
- return ret;
+ goto _CONFIGURE_FAILED;
ret = __codec_v4l2_s_fmt(buffer_control, device_fd);
if (ret != HAL_CODEC_ERROR_NONE) {
LOGE("set format[%d] for input failed - [0x%x]", in_format, ret);
- close(device_fd);
- return ret;
+ goto _CONFIGURE_FAILED;
}
/* set format for output */
out_buf_type, out_memory, out_format, width, height,
out_max_resolution.width, out_max_resolution.height);
if (ret != HAL_CODEC_ERROR_NONE)
- return ret;
+ goto _CONFIGURE_FAILED;
ret = __codec_v4l2_s_fmt(buffer_control, device_fd);
if (ret != HAL_CODEC_ERROR_NONE) {
LOGE("set format[%d] for output failed - [0x%x]", out_format, ret);
- close(device_fd);
- return ret;
+ goto _CONFIGURE_FAILED;
}
handle->is_secure = is_secure;
LOGD("done - secure[%d]", is_secure);
return HAL_CODEC_ERROR_NONE;
+
+_CONFIGURE_FAILED:
+ close(device_fd);
+ return ret;
}
return HAL_CODEC_ERROR_INVALID_PARAMETER;
}
- LOGI("state[%d]", handle->state);
-
locker = g_mutex_locker_new(&handle->lock);
+ LOGI("state[%d]", handle->state);
+
if (handle->state != HAL_CODEC_STATE_CONFIGURED) {
LOGE("invalid state %d", handle->state);
return HAL_CODEC_ERROR_INVALID_STATE;
return HAL_CODEC_ERROR_INVALID_PARAMETER;
}
- LOGI("state[%d]", handle->state);
-
locker = g_mutex_locker_new(&handle->lock);
+ LOGI("state[%d]", handle->state);
+
if (handle->state != HAL_CODEC_STATE_STARTED) {
LOGE("invalid state %d", handle->state);
ret = HAL_CODEC_ERROR_INVALID_STATE;