caps_str = gst_caps_to_string(video_caps);
_mmcam_dbg_log("encodebin caps [%s]", caps_str);
- free(caps_str);
+ g_free(caps_str);
caps_str = NULL;
MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_FILT].gst, "caps", video_caps);
_MMCAMCORDER_ELEMENT_MAKE(sc, sc->encode_element, _MMCAMCORDER_ENCSINK_ENCBIN, "encodebin", "encodesink_encbin", element_list, err);
/* check element availability */
- mm_camcorder_get_attributes(handle, &err_name,
+ err = mm_camcorder_get_attributes(handle, &err_name,
MMCAM_AUDIO_ENCODER, &audio_enc,
MMCAM_AUDIO_CHANNEL, &channel,
MMCAM_VIDEO_ENCODER_BITRATE, &v_bitrate,
MMCAM_AUDIO_ENCODER_BITRATE, &a_bitrate,
NULL);
+ if (err != MM_ERROR_NONE) {
+ if (err_name) {
+ _mmcam_dbg_err("failed to get attributes [%s][0x%x]", err_name, err);
+ SAFE_FREE(err_name);
+ } else {
+ _mmcam_dbg_err("failed to get attributes [0x%x]", err);
+ }
+
+ return err;
+ }
+
_mmcam_dbg_log("Profile[%d]", profile);
/* Set information */
if (err != MM_ERROR_NONE) {
if (err_name) {
_mmcam_dbg_err("failed to get attributes [%s][0x%x]", err_name, err);
- free(err_name);
- err_name = NULL;
+ SAFE_FREE(err_name);
} else {
_mmcam_dbg_err("failed to get attributes [0x%x]", err);
}
} else if (!strcmp(videosink_name, "waylandsink")) {
MMCamWaylandInfo *wl_info = (MMCamWaylandInfo *)overlay;
if (wl_info) {
- GstContext *context = NULL;
-
- context = gst_wayland_display_handle_context_new((struct wl_display *)wl_info->display);
- if (context) {
- gst_element_set_context(vsink, context);
- } else {
- _mmcam_dbg_warn("gst_wayland_display_handle_context_new failed");
- }
-
- gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(vsink), (guintptr)wl_info->surface);
+ _mmcam_dbg_log("parent id : %d", wl_info->parent_id);
+ gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(vsink), (guintptr)wl_info->parent_id);
gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(vsink),
- wl_info->window_x,
- wl_info->window_y,
- wl_info->window_width,
- wl_info->window_height);
+ wl_info->window_x, wl_info->window_y, wl_info->window_width, wl_info->window_height);
} else {
_mmcam_dbg_warn("Handle is NULL. skip setting.");
}
videosink_name, display_geometry_method, origin_size, visible, rotation, flip);
/* Set attribute */
- if (!strcmp(videosink_name, "xvimagesink") ||
+ if (!strcmp(videosink_name, "xvimagesink") || !strcmp(videosink_name, "waylandsink") ||
!strcmp(videosink_name, "evaspixmapsink")) {
/* set rotation */
MMCAMCORDER_G_OBJECT_SET(vsink, "rotate", rotation);
mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
_MMCamcorderSubContext *sc = NULL;
GstCameraControl *control = NULL;
- GstCameraControlExifInfo exif_info;
+ GstCameraControlExifInfo exif_info = {0,};
mmf_return_val_if_fail(hcamcorder, FALSE);
sc = MMF_CAMCORDER_SUBCONTEXT(handle);
control = GST_CAMERA_CONTROL(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst);
if (control != NULL) {
gst_camera_control_get_exif_info(control, &exif_info); //get video input device information
- focal_len = ((double)exif_info.focal_len_numerator) / ((double) exif_info.focal_len_denominator);
+ if (exif_info.focal_len_denominator != 0)
+ focal_len = ((double)exif_info.focal_len_numerator) / ((double) exif_info.focal_len_denominator);
} else {
_mmcam_dbg_err("Fail to get camera control interface!");
focal_len = 0.0;
NULL);
if (err != MM_ERROR_NONE) {
_mmcam_dbg_err("Set attributes error(%s:%x)!", err_name, err);
- if (err_name) {
- free(err_name);
- err_name = NULL;
- }
+ SAFE_FREE(err_name);
return FALSE;
}
} else {
char *caps_string = gst_caps_to_string(caps);
if (caps_string) {
_mmcam_dbg_log("%s", caps_string);
- free(caps_string);
+ g_free(caps_string);
caps_string = NULL;
}
gst_caps_unref(caps);
NULL);
}
- _mmcam_dbg_log("vidoesrc new caps set. %"GST_PTR_FORMAT, caps);
-
- MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "caps", caps);
- gst_caps_unref(caps);
- caps = NULL;
+ if (caps) {
+ _mmcam_dbg_log("vidoesrc new caps set. %"GST_PTR_FORMAT, caps);
+ MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "caps", caps);
+ gst_caps_unref(caps);
+ caps = NULL;
+ } else {
+ _mmcam_dbg_err("There are no caps");
+ }
}
if (hcamcorder->type != MM_CAMCORDER_MODE_AUDIO) {