mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
uri-clip: use duration-limit in set_max_duration
Use the duration-limit rather than max-duration - in-point, since the former will be able to take other factors, such as effects, into account. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/169>
This commit is contained in:
parent
4b62749336
commit
5e144d9ade
1 changed files with 9 additions and 6 deletions
|
@ -388,14 +388,17 @@ gboolean
|
||||||
uri_clip_set_max_duration (GESTimelineElement * element,
|
uri_clip_set_max_duration (GESTimelineElement * element,
|
||||||
GstClockTime maxduration)
|
GstClockTime maxduration)
|
||||||
{
|
{
|
||||||
if (_DURATION (element) == GST_CLOCK_TIME_NONE || _DURATION (element) == 0)
|
gboolean ret =
|
||||||
/* If we don't have a valid duration, use the max duration */
|
|
||||||
/* FIXME: don't do this when we have time effects */
|
|
||||||
_set_duration0 (element, maxduration - _INPOINT (element));
|
|
||||||
|
|
||||||
return
|
|
||||||
GES_TIMELINE_ELEMENT_CLASS (parent_class)->set_max_duration (element,
|
GES_TIMELINE_ELEMENT_CLASS (parent_class)->set_max_duration (element,
|
||||||
maxduration);
|
maxduration);
|
||||||
|
|
||||||
|
if (ret) {
|
||||||
|
GstClockTime limit = ges_clip_get_duration_limit (GES_CLIP (element));
|
||||||
|
if (GST_CLOCK_TIME_IS_VALID (limit) && (element->duration == 0))
|
||||||
|
_set_duration0 (element, limit);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue