"Draws screen or blacks out, true means visible, false blacks out",
TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+#ifdef ENABLE_FUNCTION
+ g_object_class_install_property (gobject_class, PROP_SCALE_WIDTH,
+ g_param_spec_double ("scale-w", "ratio width",
+ "scale width for rendering video,"
+ "Function is not supported in DISP_GEO_METHOD_CUSTOM_ROI. ", 0.0,
+ G_MAXDOUBLE, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+ g_object_class_install_property (gobject_class, PROP_SCALE_HEIGHT,
+ g_param_spec_double ("scale-h", "scale height",
+ "scale width for rendering video, "
+ "Function is not support in DISP_GEO_METHOD_CUSTOM_ROI. ", 0.0,
+ G_MAXDOUBLE, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
g_object_class_install_property (gobject_class, PROP_FOLLOW_PARENT_TRANSFORM,
g_param_spec_boolean ("follow-parent-transform",
"follow parent transform",
"Function is not support in DISP_GEO_METHOD_CUSTOM_ROI. ", -1.0,
G_MAXDOUBLE, -1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
- g_object_class_install_property (gobject_class, PROP_SCALE_WIDTH,
- g_param_spec_double ("scale-w", "ratio width",
- "scale width for rendering video,"
- "Function is not supported in DISP_GEO_METHOD_CUSTOM_ROI. ", 0.0,
- G_MAXDOUBLE, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
- g_object_class_install_property (gobject_class, PROP_SCALE_HEIGHT,
- g_param_spec_double ("scale-h", "scale height",
- "scale width for rendering video, "
- "Function is not support in DISP_GEO_METHOD_CUSTOM_ROI. ", 0.0,
- G_MAXDOUBLE, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
g_object_class_install_property (gobject_class, PROP_OFFSET_X,
g_param_spec_uint ("offset-x", "offset x",
"x offset for moving x-coordinate of video pixel, "
"Please set align-w and align-h togethrer"
"Function is not supported in DISP_GEO_METHOD_CUSTOM_ROI. ", 0.0,
1.0, 0.5, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+#endif
/* fakesink function for stream callback of MSL with browser */
g_object_class_install_property (gobject_class, PROP_SIGNAL_HANDOFFS,
sink->flip = DEF_DISPLAY_FLIP;
sink->rotate_angle = DEGREE_0;
sink->visible = TRUE;
- sink->follow_parent_transform = FALSE;
sink->crop_x = sink->crop_y = sink->crop_w = sink->crop_h = 0;
+#ifdef ENABLE_FUNCTION
+ sink->follow_parent_transform = FALSE;
sink->ratio_w = sink->ratio_h = -1.0; //need to set -1.0 for original video ratio
- sink->scale_w = sink->scale_h = 1.0;
sink->align_w = sink->align_h = 0.5;
+ sink->scale_w = sink->scale_h = 1.0;
sink->offset_x = sink->offset_y = sink->offset_w = sink->offset_h = 0;
#endif
+#endif
g_mutex_init (&sink->display_lock);
g_mutex_init (&sink->render_lock);
}
case PROP_VISIBLE:
g_value_set_boolean (value, sink->visible);
break;
+#ifdef ENABLE_FUNCTION
+ case PROP_SCALE_WIDTH:
+ g_value_set_double (value, sink->scale_w);
+ break;
+ case PROP_SCALE_HEIGHT:
+ g_value_set_double (value, sink->scale_h);
+ break;
case PROP_FOLLOW_PARENT_TRANSFORM:
g_value_set_boolean (value, sink->follow_parent_transform);
break;
case PROP_RATIO_HEIGHT:
g_value_set_double (value, sink->ratio_h);
break;
- case PROP_SCALE_WIDTH:
- g_value_set_double (value, sink->scale_w);
- break;
- case PROP_SCALE_HEIGHT:
- g_value_set_double (value, sink->scale_h);
- break;
case PROP_OFFSET_X:
g_value_set_uint (value, sink->offset_x);
break;
g_value_set_double (value, sink->align_h);
break;
#endif
+#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
break;
+#ifdef ENABLE_FUNCTION
+ case PROP_SCALE_WIDTH:
+ if (sink->scale_w == g_value_get_double (value)
+ || sink->display_geometry_method == DISP_GEO_METHOD_CUSTOM_ROI)
+ break;
+ sink->scale_w = g_value_get_double (value);
+ GST_WARNING_OBJECT (sink, "scale-w is set (%f)", sink->scale_w);
+ sink->video_info_changed = TRUE;
+ if (sink->window)
+ gst_wl_window_set_destination_mode_scale (sink->window, sink->scale_w,
+ sink->scale_h);
+ break;
+ case PROP_SCALE_HEIGHT:
+ if (sink->scale_h == g_value_get_double (value)
+ || sink->display_geometry_method == DISP_GEO_METHOD_CUSTOM_ROI)
+ break;
+ sink->scale_h = g_value_get_double (value);
+ GST_WARNING_OBJECT (sink, "scale-h is set (%f)", sink->scale_h);
+ sink->video_info_changed = TRUE;
+ if (sink->window)
+ gst_wl_window_set_destination_mode_scale (sink->window, sink->scale_w,
+ sink->scale_h);
+ break;
case PROP_FOLLOW_PARENT_TRANSFORM:
if (sink->follow_parent_transform == g_value_get_boolean (value)
|| sink->display_geometry_method == DISP_GEO_METHOD_CUSTOM_ROI)
gst_wl_window_set_destination_mode_ratio (sink->window, sink->ratio_w,
sink->ratio_h);
break;
- case PROP_SCALE_WIDTH:
- if (sink->scale_w == g_value_get_double (value)
- || sink->display_geometry_method == DISP_GEO_METHOD_CUSTOM_ROI)
- break;
- sink->scale_w = g_value_get_double (value);
- GST_WARNING_OBJECT (sink, "scale-h is set (%f)", sink->scale_w);
- sink->video_info_changed = TRUE;
- if (sink->window)
- gst_wl_window_set_destination_mode_scale (sink->window, sink->ratio_w,
- sink->ratio_h);
- break;
case PROP_OFFSET_X:
if (sink->offset_x == g_value_get_uint (value)
|| sink->display_geometry_method == DISP_GEO_METHOD_CUSTOM_ROI)
gst_wl_window_set_destination_mode_align (sink->window, sink->align_w,
sink->align_h);
break;
-
+#endif
#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
gst_wl_window_set_destination_mode (sink->window,
sink->display_geometry_method);
gst_wl_window_set_flip (sink->window, sink->flip);
- gst_wl_window_set_destination_mode_follow_parent_transform (sink->window,
- sink->follow_parent_transform);
-
if (sink->crop_w == 0 && sink->crop_h == 0) {
sink->crop_w =
gst_util_uint64_scale_int_round (sink->video_info.width,
}
gst_wl_window_set_destination_mode_crop_wl_buffer (sink->window, sink->crop_x,
sink->crop_y, sink->crop_w, sink->crop_h);
+#ifdef ENABLE_FUNCTION
+ gst_wl_window_set_destination_mode_follow_parent_transform (sink->window,
+ sink->follow_parent_transform);
gst_wl_window_set_destination_mode_ratio (sink->window, sink->ratio_w,
sink->ratio_h);
gst_wl_window_set_destination_mode_scale (sink->window, sink->scale_w,
sink->offset_y, sink->offset_w, sink->offset_h);
gst_wl_window_set_destination_mode_align (sink->window, sink->align_w,
sink->align_h);
-
+#endif
}
#endif
/* must be called with the render lock */
window->tizen_video_viewport =
tizen_video_get_viewport (display->tizen_video, window->video_surface);
GST_INFO
- ("tizen_video_viewport(tizen_viewport)@%p = tizen_video_get_viewport(tizen_video@%p, video_surface(wl_surface%p)",
+ ("tizen_video_viewport(tizen_viewport)@%p = tizen_video_get_viewport(tizen_video@%p, video_surface(wl_surface)@%p)",
window->tizen_video_viewport, display->tizen_video,
window->video_surface);
window->tizen_video_dest_mode =
g_return_if_fail (window->tizen_video_viewport != NULL);
g_return_if_fail (window->tizen_video_dest_mode != NULL);
- /* Set crop, wayland need to set tizen_viewport_set_source always when change video info */
+ /* Set crop, wayland need to set "tizen_viewport_set_source" always when change video info */
if (window->mode_crop.changed) {
/* we have known issue about mobile team kernel, when set orign green line can be shown with tbm */
GST_INFO
if (window->disp_geo_method.value == DISP_GEO_METHOD_CUSTOM_ROI)
goto done;
+ /* Even though area_viewport is set to ROI mode, we can set below functions too if video_viewport is set to tizen_destination_mode_set. */
+#ifdef ENABLE_FUNCTION
/* set or unset follow parent transform */
if (window->follow_parent_transform.changed
&& !gst_wl_window_is_toplevel (window)) {
window->mode_ratio.changed = FALSE;
}
+ /* set offset */
+ if (window->mode_offset.changed) {
+ GST_INFO
+ ("tizen_destination_mode_set_offset (tizen_destination_mode@%p, x@%d, y@%d, w@%d, h@%d)",
+ window->tizen_video_dest_mode, window->mode_offset.x,
+ window->mode_offset.y, window->mode_offset.w, window->mode_offset.h);
+ tizen_destination_mode_set_offset (window->tizen_video_dest_mode,
+ window->mode_offset.x, window->mode_offset.y, window->mode_offset.w,
+ window->mode_offset.h);
+ window->mode_offset.changed = FALSE;
+ }
+
/* set scale */
if (window->mode_scale.changed) {
wl_fixed_t f_width, f_height;
window->mode_scale.h);
tizen_destination_mode_set_scale (window->tizen_video_dest_mode, f_width,
f_height);
- window->mode_ratio.changed = FALSE;
- }
-
- /* set offset */
- if (window->mode_offset.changed) {
- GST_INFO
- ("tizen_destination_mode_set_offset (tizen_destination_mode@%p, x@%d, y@%d, w@%d, h@%d)",
- window->tizen_video_dest_mode, window->mode_offset.x,
- window->mode_offset.y, window->mode_offset.w, window->mode_offset.h);
- tizen_destination_mode_set_offset (window->tizen_video_dest_mode,
- window->mode_offset.x, window->mode_offset.y, window->mode_offset.w,
- window->mode_offset.h);
- window->mode_offset.changed = FALSE;
+ window->mode_scale.changed = FALSE;
}
/* set align */
f_height);
window->mode_align.changed = FALSE;
}
+#endif
done:
}
void
-gst_wl_window_set_destination_mode_follow_parent_transform (GstWlWindow *
- window, gboolean follow_parent_transform)
-{
- FUNCTION;
- g_return_if_fail (window != NULL);
- window->follow_parent_transform.value = follow_parent_transform;
- GST_LOG ("follow_parent_transform value is (%d)",
- window->follow_parent_transform.value);
- window->follow_parent_transform.changed = TRUE;
-}
-
-void
gst_wl_window_set_destination_mode_crop_wl_buffer (GstWlWindow * window,
guint x, guint y, guint w, guint h)
{
window->mode_crop.changed = TRUE;
}
+#ifdef ENABLE_FUNCTION
+void
+gst_wl_window_set_destination_mode_follow_parent_transform (GstWlWindow *
+ window, gboolean follow_parent_transform)
+{
+ FUNCTION;
+ g_return_if_fail (window != NULL);
+ window->follow_parent_transform.value = follow_parent_transform;
+ GST_LOG ("follow_parent_transform value is (%d)",
+ window->follow_parent_transform.value);
+ window->follow_parent_transform.changed = TRUE;
+}
+
+
void
gst_wl_window_set_destination_mode_offset (GstWlWindow * window, guint x,
guint y, guint w, guint h)
window->mode_align.h = h;
window->mode_align.changed = TRUE;
}
-
+#endif
void
gst_wl_window_set_video_info_change (GstWlWindow * window, guint changed)
{
WinGeometryValue disp_geo_method;
WinGeometryValue rotate_angle;
WinGeometryValue flip;
- WinGeometryValue follow_parent_transform;
WinGeometryRect mode_crop;
+#ifdef ENABLE_FUNCTION
+ WinGeometryValue follow_parent_transform;
WinGeometryRect mode_offset;
WinGeometryRange mode_ratio;
WinGeometryRange mode_scale;
WinGeometryRange mode_align;
#endif
+#endif
/* the size and position of the area_(sub)surface */
GstVideoRectangle render_rectangle;
const GstVideoInfo * info);
void gst_wl_window_set_rotate_angle (GstWlWindow * window, guint rotate_angle);
void gst_wl_window_set_flip (GstWlWindow * window, guint flip);
+void gst_wl_window_set_destination_mode_crop_wl_buffer (GstWlWindow * window, guint x, guint y, guint w, guint h);
void gst_wl_window_set_destination_mode (GstWlWindow * window, guint disp_geo_method);
+#ifdef ENABLE_FUNCTION
+/* if video mode is set, below function can use */
void gst_wl_window_set_destination_mode_follow_parent_transform (GstWlWindow * window, gboolean follow_parent_transform);
-void gst_wl_window_set_destination_mode_crop_wl_buffer (GstWlWindow * window, guint x, guint y, guint w, guint h);
void gst_wl_window_set_destination_mode_offset (GstWlWindow * window, guint x, guint y, guint w, guint h);
void gst_wl_window_set_destination_mode_ratio (GstWlWindow * window, gdouble w, gdouble h);
void gst_wl_window_set_destination_mode_scale (GstWlWindow * window, gdouble w, gdouble h);
void gst_wl_window_set_destination_mode_align (GstWlWindow * window, gdouble w, gdouble h);
+#endif
void gst_wl_window_set_video_info_change (GstWlWindow * window, guint changed);
#endif