:right-sidebar: True TestClock =================================================================== .. currentmodule:: gi.repository.GstCheck .. versionadded:: 1.2 .. class:: TestClock(**properties: ~typing.Any) :no-contents-entry: Superclasses: :class:`~gi.repository.Gst.Clock`, :class:`~gi.repository.Gst.Object`, :class:`~gi.repository.GObject.InitiallyUnowned`, :class:`~gi.repository.GObject.Object` :Constructors: :: TestClock(**properties) new() -> Gst.Clock new_with_start_time(start_time:int) -> Gst.Clock Constructors ------------ .. rst-class:: interim-class .. class:: TestClock :no-index: .. classmethod:: new() -> ~gi.repository.Gst.Clock Creates a new test clock with its time set to zero. MT safe. .. versionadded:: 1.2 .. classmethod:: new_with_start_time(start_time: int) -> ~gi.repository.Gst.Clock Creates a new test clock with its time set to the specified time. MT safe. .. versionadded:: 1.2 :param start_time: a :obj:`~gi.repository.Gst.ClockTime` set to the desired start time of the clock. Methods ------- .. rst-class:: interim-class .. class:: TestClock :no-index: .. method:: advance_time(delta: int) -> None Advances the time of the ``test_clock`` by the amount given by ``delta``. The time of ``test_clock`` is monotonically increasing, therefore providing a ``delta`` which is negative or zero is a programming error. MT safe. .. versionadded:: 1.2 :param delta: a positive :obj:`~gi.repository.Gst.ClockTimeDiff` to be added to the time of the clock .. method:: crank() -> bool A "crank" consists of three steps: 1: Wait for a :obj:`~gi.repository.Gst.ClockID` to be registered with the :obj:`~gi.repository.GstCheck.TestClock`. 2: Advance the :obj:`~gi.repository.GstCheck.TestClock` to the time the :obj:`~gi.repository.Gst.ClockID` is waiting, unless the clock time is already passed the clock id (Since: 1.18). 3: Release the :obj:`~gi.repository.Gst.ClockID` wait. A "crank" can be though of as the notion of manually driving the clock forward to its next logical step. .. versionadded:: 1.8 .. method:: get_next_entry_time() -> int Retrieve the requested time for the next pending clock notification. MT safe. .. versionadded:: 1.2 .. method:: has_id(id: None) -> bool Checks whether ``test_clock`` was requested to provide the clock notification given by ``id``. MT safe. .. versionadded:: 1.2 :param id: a :obj:`~gi.repository.Gst.ClockID` clock notification .. method:: id_list_get_latest_time(pending_list: list[None] | None = None) -> int Finds the latest time inside the list. MT safe. .. versionadded:: 1.4 :param pending_list: List of of pending :obj:`~gi.repository.Gst.ClockID` .. method:: peek_id_count() -> int Determine the number of pending clock notifications that have been requested from the ``test_clock``. MT safe. .. versionadded:: 1.2 .. method:: peek_next_pending_id() -> tuple[bool, None] Determines if the ``pending_id`` is the next clock notification scheduled to be triggered given the current time of the ``test_clock``. MT safe. .. versionadded:: 1.2 .. method:: process_id(pending_id: None) -> bool Processes and releases the pending ID. MT safe. .. versionadded:: 1.18 :param pending_id: :obj:`~gi.repository.Gst.ClockID` .. method:: process_id_list(pending_list: list[None] | None = None) -> int Processes and releases the pending IDs in the list. MT safe. .. versionadded:: 1.4 :param pending_list: List of pending :obj:`~gi.repository.Gst.ClockID` .. method:: process_next_clock_id() -> None MT safe. .. versionadded:: 1.2 .. method:: set_time(new_time: int) -> None Sets the time of ``test_clock`` to the time given by ``new_time``. The time of ``test_clock`` is monotonically increasing, therefore providing a ``new_time`` which is earlier or equal to the time of the clock as given by :func:`~gi.repository.Gst.Gst.Clock.get_time` is a programming error. MT safe. .. versionadded:: 1.2 :param new_time: a :obj:`~gi.repository.Gst.ClockTime` later than that returned by :func:`~gi.repository.Gst.Gst.Clock.get_time` .. method:: timed_wait_for_multiple_pending_ids(count: int, timeout_ms: int) -> tuple[bool, list[None]] Blocks until at least ``count`` clock notifications have been requested from ``test_clock``, or the timeout expires. MT safe. .. versionadded:: 1.16 :param count: the number of pending clock notifications to wait for :param timeout_ms: the timeout in milliseconds .. method:: wait_for_multiple_pending_ids(count: int) -> list[None] Blocks until at least ``count`` clock notifications have been requested from ``test_clock``. There is no timeout for this wait, see the main description of :obj:`~gi.repository.GstCheck.TestClock`. MT safe. .. versionadded:: 1.4 :param count: the number of pending clock notifications to wait for .. method:: wait_for_next_pending_id() -> None Waits until a clock notification is requested from ``test_clock``. There is no timeout for this wait, see the main description of :obj:`~gi.repository.GstCheck.TestClock`. A reference to the pending clock notification is stored in ``pending_id``. MT safe. .. versionadded:: 1.2 .. method:: wait_for_pending_id_count(count: int) -> None Blocks until at least ``count`` clock notifications have been requested from ``test_clock``. There is no timeout for this wait, see the main description of :obj:`~gi.repository.GstCheck.TestClock`. .. versionadded:: 1.2 .. deprecated:: Unknown use :func:`~gi.repository.GstCheck.TestClock.wait_for_multiple_pending_ids` instead. :param count: the number of pending clock notifications to wait for Properties ---------- .. rst-class:: interim-class .. class:: TestClock :no-index: .. attribute:: props.clock_type :type: ~gi.repository.Gst.ClockType .. attribute:: props.start_time :type: int When a :obj:`~gi.repository.GstCheck.TestClock` is constructed it will have a certain start time set. If the clock was created using :func:`~gi.repository.GstCheck.TestClock.new_with_start_time` then this property contains the value of the ``start_time`` argument. If :func:`~gi.repository.GstCheck.TestClock.new` was called the clock started at time zero, and thus this property contains the value 0. Fields ------ .. rst-class:: interim-class .. class:: TestClock :no-index: .. attribute:: parent .. attribute:: priv