return EINA_FALSE;
}
+ if (auto_rotate && type == TDM_CAPTURE_TYPE_STREAM)
+ output->stream_capture.current_angle = transform;
+
return EINA_TRUE;
}
output->stream_capture.data = eina_list_remove(output->stream_capture.data, cdata);
- ret = _e_output_capture(output, cdata->surface, EINA_FALSE);
+ ret = _e_output_capture(output, cdata->surface, output->stream_capture.auto_rotate);
if (ret == EINA_FALSE)
EOERR("capture fail", output);
Eina_Bool ret = EINA_FALSE;
tdm_capture *tcapture = NULL;
tdm_error error = TDM_ERROR_NONE;
+ int transform = 0;
if (output->stream_capture.possible_tdm_capture)
{
tcapture = _e_output_tdm_capture_create(output, TDM_CAPTURE_CAPABILITY_STREAM);
EINA_SAFETY_ON_NULL_RETURN_VAL(tcapture, EINA_FALSE);
- ret = _e_output_tdm_capture_info_set(output, tcapture, tsurface, TDM_CAPTURE_TYPE_STREAM, EINA_FALSE);
+ ret = _e_output_tdm_capture_info_set(output, tcapture, tsurface, TDM_CAPTURE_TYPE_STREAM, output->stream_capture.auto_rotate);
EINA_SAFETY_ON_FALSE_GOTO(ret == EINA_TRUE, fail);
error = tdm_capture_set_done_handler(tcapture,
else
{
tcapture = output->stream_capture.tcapture;
+ _e_output_capture_transform_check(output, EINA_FALSE, &transform);
+ if (transform != output->stream_capture.current_angle)
+ {
+ ret = _e_output_tdm_capture_info_set(output, tcapture, tsurface, TDM_CAPTURE_TYPE_STREAM, output->stream_capture.auto_rotate);
+ EINA_SAFETY_ON_FALSE_GOTO(ret == EINA_TRUE, fail);
+ }
}
ret = _e_output_tdm_stream_capture(output, tcapture, tsurface, func, data);
if (!output->stream_capture.start) return;
output->stream_capture.start = EINA_FALSE;
+ output->stream_capture.auto_rotate = EINA_FALSE;
_e_output_stream_capture_mask_image_deactivate(output);
}
}
+EINTERN void
+e_output_stream_capture_autorotate(E_Output *output, Eina_Bool auto_rotate)
+{
+ output->stream_capture.auto_rotate = auto_rotate;
+}
+
EINTERN Eina_Bool
e_output_external_mode_change(E_Output *output, E_Output_Mode *mode)
{