#ifdef _MMCAMCORDER_RM_SUPPORT
int display_scaler = 0;
#endif /* _MMCAMCORDER_RM_SUPPORT */
- int *overlay = NULL;
+ int *dp_handle = NULL;
+ MMCamWindowInfo *window_info = NULL;
gulong xid;
char *err_name = NULL;
const char *videosink_name = NULL;
MMCAM_DISPLAY_ROTATION, &rotation,
MMCAM_DISPLAY_FLIP, &flip,
MMCAM_DISPLAY_VISIBLE, &visible,
- MMCAM_DISPLAY_HANDLE, (void**)&overlay, &size,
+ MMCAM_DISPLAY_HANDLE, (void **)&dp_handle, &size,
MMCAM_DISPLAY_MODE, &display_mode,
MMCAM_DISPLAY_GEOMETRY_METHOD, &display_geometry_method,
MMCAM_DISPLAY_SCALE, &zoom_attr,
return MM_ERROR_CAMCORDER_INTERNAL;
}
- _mmcam_dbg_log("(overlay=%p, size=%d)", overlay, size);
+ _mmcam_dbg_log("(dp_handle=%p, size=%d)", dp_handle, size);
/* Set display handle */
- if (!strcmp(videosink_name, "xvimagesink") || !strcmp(videosink_name, "ximagesink") ||
- !strcmp(videosink_name, "directvideosink")) {
- if (overlay) {
- xid = *overlay;
+ if (!strcmp(videosink_name, "xvimagesink") || !strcmp(videosink_name, "ximagesink")) {
+ if (dp_handle) {
+ xid = *dp_handle;
_mmcam_dbg_log("xid = %lu )", xid);
gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(vsink), xid);
} else {
MMCAMCORDER_G_OBJECT_SET(vsink, "device-scaler", display_scaler);
#endif /* _MMCAMCORDER_RM_SUPPORT */
} else if (!strcmp(videosink_name, "evasimagesink") || !strcmp(videosink_name, "evaspixmapsink")) {
- _mmcam_dbg_log("videosink : %s, handle : %p", videosink_name, overlay);
+ _mmcam_dbg_log("videosink : %s, handle : %p", videosink_name, dp_handle);
- if (overlay) {
- MMCAMCORDER_G_OBJECT_SET_POINTER(vsink, "evas-object", overlay);
+ if (dp_handle) {
+ MMCAMCORDER_G_OBJECT_SET_POINTER(vsink, "evas-object", dp_handle);
MMCAMCORDER_G_OBJECT_SET(vsink, "origin-size", !do_scaling);
} else {
_mmcam_dbg_err("display handle(eavs object) is NULL");
return MM_ERROR_CAMCORDER_INVALID_ARGUMENT;
}
} else if (!strcmp(videosink_name, "tizenwlsink")) {
- if (overlay) {
- _mmcam_dbg_log("wayland global surface id : %d", *overlay);
- gst_video_overlay_set_wl_window_wl_surface_id(GST_VIDEO_OVERLAY(vsink), *overlay);
+ if (dp_handle) {
+ window_info = (MMCamWindowInfo *)dp_handle;
+ _mmcam_dbg_log("wayland global surface id : %d", window_info->surface_id);
+ gst_video_overlay_set_wl_window_wl_surface_id(GST_VIDEO_OVERLAY(vsink), window_info->surface_id);
} else {
_mmcam_dbg_warn("Handle is NULL. skip setting.");
}
+ } else if (!strcmp(videosink_name, "directvideosink")) {
+ if (dp_handle) {
+ window_info = (MMCamWindowInfo *)dp_handle;
+ _mmcam_dbg_log("wayland global surface id : %d, x,y,w,h (%d,%d,%d,%d)",
+ window_info->surface_id,
+ window_info->rect.x,
+ window_info->rect.y,
+ window_info->rect.width,
+ window_info->rect.height);
+ gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(vsink), (guintptr)window_info->surface_id);
+ gst_video_overlay_set_render_rectangle(GST_VIDEO_OVERLAY(vsink),
+ window_info->rect.x,
+ window_info->rect.y,
+ window_info->rect.width,
+ window_info->rect.height);
+ } else {
+ _mmcam_dbg_warn("dp_handle is null");
+ }
+#ifdef _MMCAMCORDER_RM_SUPPORT
+ if (hcamcorder->request_resources.category_id[0] == RM_CATEGORY_VIDEO_DECODER_SUB)
+ display_scaler = 1;
+ MMCAMCORDER_G_OBJECT_SET(vsink, "device-scaler", display_scaler);
+#endif /* _MMCAMCORDER_RM_SUPPORT */
} else {
_mmcam_dbg_warn("Who are you?? (Videosink: %s)", videosink_name);
}
bool _mmcamcorder_set_encoded_preview_bitrate(MMHandleType handle, int bitrate)
{
_MMCamcorderSubContext *sc = NULL;
- GstCameraControl *CameraControl = NULL;
- GstCameraControlChannel *CameraControlChannel = NULL;
- const GList *controls = NULL;
- const GList *item = NULL;
if ((void *)handle == NULL) {
_mmcam_dbg_warn("handle is NULL");
_mmcam_dbg_log("set encoded preview bitrate : %d bps", bitrate);
- CameraControl = GST_CAMERA_CONTROL(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst);
- controls = gst_camera_control_list_channels(CameraControl);
- _mmcam_dbg_log("controls : %p", controls);
- if (controls != NULL) {
- for (item = controls ; item && item->data ; item = item->next) {
- CameraControlChannel = item->data;
- _mmcam_dbg_log("label : %s", CameraControlChannel->label);
- if (!strcmp(CameraControlChannel->label, "bitrate")) {
- _mmcam_dbg_log("set encoded preview bitrate %d", bitrate);
- return gst_camera_control_set_value(CameraControl, CameraControlChannel, bitrate);
- }
- }
-
- _mmcam_dbg_warn("failed to find \"bitrate\" control channel");
- }
+ MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "bitrate", bitrate);
- return FALSE;
+ return TRUE;
}
-bool _mmcamcorder_set_encoded_preview_gop_interval(MMHandleType handle, int interval)
+bool _mmcamcorder_set_encoded_preview_gop_interval(MMHandleType handle, int gop_interval)
{
_MMCamcorderSubContext *sc = NULL;
return FALSE;
}
- _mmcam_dbg_log("set encoded preview GOP interval : %d ms", interval);
+ _mmcam_dbg_log("set encoded preview GOP interval : %d ms", gop_interval);
- MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "newgop-interval", interval);
+ MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_SRC].gst, "gop-interval", gop_interval);
return TRUE;
}