g_return_if_fail (sink != NULL);
g_mutex_lock (&sink->render_lock);
+
if (!sink->window) {
g_mutex_unlock (&sink->render_lock);
GST_WARNING_OBJECT (sink,
GST_WARNING_OBJECT (sink, "window geometry changed to (%d, %d) %d x %d",
x, y, w, h);
+
if (gst_wl_window_set_render_rectangle (sink->window, x, y, w, h)) {
sink->video_info_changed = TRUE;
- if (sink->window && GST_STATE (sink) == GST_STATE_PAUSED)
+
+ if (sink->display_geometry_method == DISP_GEO_METHOD_CUSTOM_ROI
+ && sink->window && GST_STATE (sink) == GST_STATE_PAUSED)
gst_tizen_wl_sink_update_last_buffer_geometry (sink);
}
+
g_mutex_unlock (&sink->render_lock);
}
}
/*set tizen destination mode */
- if (window->disp_geo_method.changed || window->roi_area_changed) {
+ if (window->disp_geo_method.changed
+ || (window->disp_geo_method.value == DISP_GEO_METHOD_CUSTOM_ROI
+ && window->roi_area_changed)) {
int tizen_disp_mode = -1;
switch (window->disp_geo_method.value) {
("tizen_viewport_set_destination (tizen_video_viewport(tizen_viewport)@%p, x@%d, y@%d, w@%d, h@%d)",
window->tizen_video_viewport, window->roi.x, window->roi.y,
window->roi.w, window->roi.h);
+ if (window->roi.x == 0 && window->roi.y == 0 && window->roi.w == 0
+ && window->roi.h == 0) {
+ GST_WARNING ("ROI Area isn't set");
+ return;
+ }
+
tizen_viewport_set_destination (window->tizen_video_viewport,
window->roi.x, window->roi.y, window->roi.w, window->roi.h);
window->roi_area_changed = FALSE;
FUNCTION;
g_return_val_if_fail (window != NULL, FALSE);
- if (window->disp_geo_method.value != DISP_GEO_METHOD_CUSTOM_ROI) {
- GST_ERROR
- ("must be set display-geometry-method to DISP_GEO_METHOD_CUSTOM_ROI before setting render rectangle()");
- return FALSE;
- }
-
if (w < 0 || h < 0) {
GST_ERROR ("Error : wrong roi size w(%d), h(%d)", w, h);
return FALSE;