#endif
/* media_editor_layer */
+int _mediaeditor_get_layer_end_time(mediaeditor_s *editor, unsigned int layer_id, int *end_time);
int _mediaeditor_get_layer(mediaeditor_s *editor, unsigned int layer_id, GESLayer **layer);
int _mediaeditor_add_layer(mediaeditor_s *editor, unsigned int *layer_id, unsigned int *layer_priority);
int _mediaeditor_remove_layer(mediaeditor_s *editor, unsigned int layer_id);
uri = gst_filename_to_uri(path, NULL);
RET_VAL_IF(uri == NULL, MEDIAEDITOR_ERROR_INVALID_PARAMETER, "failed to get uri");
- LOGI("uri : [%s]", uri);
+ LOG_INFO("uri : [%s]", uri);
clip = GES_CLIP(ges_uri_clip_new(uri));
RET_VAL_IF(clip == NULL, MEDIAEDITOR_ERROR_INVALID_OPERATION, "failed to create clip");
+ if (start < 0) {
+ int end_time = 0;
+ ret = _mediaeditor_get_layer_end_time(editor, layer_id, &end_time);
+ RET_VAL_IF(ret != MEDIAEDITOR_ERROR_NONE, ret, "failed to get layer end time");
+
+ LOG_INFO("start point[%d] is changed to [%d]ms of layer_id[%d]", start, end_time, layer_id);
+ start = end_time;
+ }
+
start_nsec = MILLI_TO_NANO(start);
duration_nsec = MILLI_TO_NANO(duration);
in_point_nsec = MILLI_TO_NANO(in_point);
return MEDIAEDITOR_ERROR_NONE;
}
+int _mediaeditor_get_layer_end_time(mediaeditor_s *editor, unsigned int layer_id, int *end_time)
+{
+ GList *l = NULL;
+ GList *clip_list = NULL;
+ GESClip *clip = NULL;
+ GESLayer *layer = NULL;
+ unsigned int start_tmp = 0;
+ unsigned int duration_tmp = 0;
+ unsigned int end_time_tmp = 0;
+
+ NULL_PARAM_CHECK(editor);
+ NULL_PARAM_CHECK(end_time);
+
+ layer = __mediaeditor_find_layer(editor->layers, layer_id);
+ RET_VAL_IF(layer == NULL, MEDIAEDITOR_ERROR_INVALID_PARAMETER, "invalid layer id");
+
+ clip_list = ges_layer_get_clips(layer);
+ RET_VAL_IF(clip_list == NULL, MEDIAEDITOR_ERROR_NONE, "no clips on layer_id[%d]", layer_id);
+
+ for (l = g_list_first(clip_list); l; l = g_list_next(l)) {
+ clip = (GESClip *)l->data;
+
+ start_tmp = NANO_TO_MILLI(ges_timeline_element_get_start(GES_TIMELINE_ELEMENT(clip)));
+ duration_tmp = NANO_TO_MILLI(ges_timeline_element_get_duration(GES_TIMELINE_ELEMENT(clip)));
+
+ if (end_time_tmp < start_tmp + duration_tmp)
+ end_time_tmp = start_tmp + duration_tmp;
+ }
+
+ *end_time = end_time_tmp;
+
+ LOG_DEBUG("layer_id[%d], end_time[%d]", layer_id, *end_time);
+
+ return MEDIAEDITOR_ERROR_NONE;
+}
+
int _mediaeditor_get_layer(mediaeditor_s *editor, unsigned int layer_id, GESLayer **layer)
{
NULL_PARAM_CHECK(editor);