GstTestClock
GstTestClock is an implementation of GstClock which has different behaviour compared to GstSystemClock. Time for GstSystemClock advances according to the system time, while time for GstTestClock changes only when gst_test_clock_set_time or gst_test_clock_advance_time are called. GstTestClock provides unit tests with the possibility to precisely advance the time in a deterministic manner, independent of the system time or any other external factors.
Advancing the time of a GstTestClock
#include <gst/gst.h>
#include <gst/check/gsttestclock.h>
GstClock *clock;
GstTestClock *test_clock;
clock = gst_test_clock_new ();
test_clock = GST_TEST_CLOCK (clock);
GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
gst_test_clock_advance_time ( test_clock, 1 * GST_SECOND);
GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
g_usleep (10 * G_USEC_PER_SEC);
GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
gst_test_clock_set_time (test_clock, 42 * GST_SECOND);
GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
...
GstClock allows for setting up single shot or periodic clock notifications as well as waiting for these notifications synchronously (using gst_clock_id_wait) or asynchronously (using gst_clock_id_wait_async or gst_clock_id_wait_async). This is used by many GStreamer elements, among them GstBaseSrc and GstBaseSink.
GstTestClock keeps track of these clock notifications. By calling gst_test_clock_wait_for_next_pending_id or gst_test_clock_wait_for_multiple_pending_ids a unit tests may wait for the next one or several clock notifications to be requested. Additionally unit tests may release blocked waits in a controlled fashion by calling gst_test_clock_process_next_clock_id. This way a unit test can control the inaccuracy (jitter) of clock notifications, since the test can decide to release blocked waits when the clock time has advanced exactly to, or past, the requested clock notification time.
There are also interfaces for determining if a notification belongs to a GstTestClock or not, as well as getting the number of requested clock notifications so far.
N.B.: When a unit test waits for a certain amount of clock notifications to be requested in gst_test_clock_wait_for_next_pending_id or gst_test_clock_wait_for_multiple_pending_ids then these functions may block for a long time. If they block forever then the expected clock notifications were never requested from GstTestClock, and so the assumptions in the code of the unit test are wrong. The unit test case runner in gstcheck is expected to catch these cases either by the default test case timeout or the one set for the unit test by calling tcase_set_timeout().
The sample code below assumes that the element under test will delay a buffer pushed on the source pad by some latency until it arrives on the sink pad. Moreover it is assumed that the element will at some point call gst_clock_id_wait to synchronously wait for a specific time. The first buffer sent will arrive exactly on time only delayed by the latency. The second buffer will arrive a little late (7ms) due to simulated jitter in the clock notification.
Demonstration of how to work with clock notifications and GstTestClock
#include <gst/gst.h>
#include <gst/check/gstcheck.h>
#include <gst/check/gsttestclock.h>
GstClockTime latency;
GstElement *element;
GstPad *srcpad;
GstClock *clock;
GstTestClock *test_clock;
GstBuffer buf;
GstClockID pending_id;
GstClockID processed_id;
latency = 42 * GST_MSECOND;
element = create_element (latency, ...);
srcpad = get_source_pad (element);
clock = gst_test_clock_new ();
test_clock = GST_TEST_CLOCK (clock);
gst_element_set_clock (element, clock);
GST_INFO ("Set time, create and push the first buffer\n");
gst_test_clock_set_time (test_clock, 0);
buf = create_test_buffer (gst_clock_get_time (clock), ...);
gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
GST_INFO ("Block until element is waiting for a clock notification\n");
gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
GST_INFO ("Advance to the requested time of the clock notification\n");
gst_test_clock_advance_time (test_clock, latency);
GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
processed_id = gst_test_clock_process_next_clock_id (test_clock);
g_assert (processed_id == pending_id);
g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
gst_clock_id_unref (pending_id);
gst_clock_id_unref (processed_id);
GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
buf = get_buffer_pushed_by_element (element, ...);
g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==, latency);
gst_buffer_unref (buf);
GST_INFO ("Check that element does not wait for any clock notification\n");
g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL));
GST_INFO ("Set time, create and push the second buffer\n");
gst_test_clock_advance_time (test_clock, 10 * GST_SECOND);
buf = create_test_buffer (gst_clock_get_time (clock), ...);
gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
GST_INFO ("Block until element is waiting for a new clock notification\n");
(gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
GST_INFO ("Advance past 7ms beyond the requested time of the clock notification\n");
gst_test_clock_advance_time (test_clock, latency + 7 * GST_MSECOND);
GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
processed_id = gst_test_clock_process_next_clock_id (test_clock);
g_assert (processed_id == pending_id);
g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
gst_clock_id_unref (pending_id);
gst_clock_id_unref (processed_id);
GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
buf = get_buffer_pushed_by_element (element, ...);
g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==,
10 * GST_SECOND + latency + 7 * GST_MSECOND);
gst_buffer_unref (buf);
GST_INFO ("Check that element does not wait for any clock notification\n");
g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL));
...
Since GstTestClock is only supposed to be used in unit tests it calls g_assert, g_assert_cmpint or g_assert_cmpuint to validate all function arguments. This will highlight any issues with the unit test code itself.
GstTestClock
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstClock ╰──GstTestClock
A GstTestClock structure which is based on a GstClock along with some private data.
Members
parent
(GstClock)
–
Since : 1.2
Class structure
GstTestClockClass
The class of a GstTestClock, which has no virtual methods to override.
Fields
parent_class
(GstClockClass)
–
the parent class structure
Since : 1.2
GstCheck.TestClockClass
The class of a GstCheck.TestClock, which has no virtual methods to override.
Attributes
parent_class
(Gst.ClockClass)
–
the parent class structure
Since : 1.2
GstCheck.TestClockClass
The class of a GstCheck.TestClock, which has no virtual methods to override.
Attributes
parent_class
(Gst.ClockClass)
–
the parent class structure
Since : 1.2
GstCheck.TestClock
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.Clock ╰──GstCheck.TestClock
A GstCheck.TestClock structure which is based on a Gst.Clock along with some private data.
Members
parent
(Gst.Clock)
–
Since : 1.2
GstCheck.TestClock
GObject.Object ╰──GObject.InitiallyUnowned ╰──Gst.Object ╰──Gst.Clock ╰──GstCheck.TestClock
A GstCheck.TestClock structure which is based on a Gst.Clock along with some private data.
Members
parent
(Gst.Clock)
–
Since : 1.2
Constructors
gst_test_clock_new
GstClock * gst_test_clock_new ()
Creates a new test clock with its time set to zero.
MT safe.
a GstTestClock cast to GstClock.
Since : 1.2
GstCheck.TestClock.prototype.new
function GstCheck.TestClock.prototype.new(): {
// javascript wrapper for 'gst_test_clock_new'
}
Creates a new test clock with its time set to zero.
MT safe.
a GstCheck.TestClock cast to Gst.Clock.
Since : 1.2
GstCheck.TestClock.new
def GstCheck.TestClock.new ():
#python wrapper for 'gst_test_clock_new'
Creates a new test clock with its time set to zero.
MT safe.
a GstCheck.TestClock cast to Gst.Clock.
Since : 1.2
gst_test_clock_new_with_start_time
GstClock * gst_test_clock_new_with_start_time (GstClockTime start_time)
Creates a new test clock with its time set to the specified time.
MT safe.
Parameters:
start_time
–
a GstClockTime set to the desired start time of the clock.
a GstTestClock cast to GstClock.
Since : 1.2
GstCheck.TestClock.prototype.new_with_start_time
function GstCheck.TestClock.prototype.new_with_start_time(start_time: Number): {
// javascript wrapper for 'gst_test_clock_new_with_start_time'
}
Creates a new test clock with its time set to the specified time.
MT safe.
a GstCheck.TestClock cast to Gst.Clock.
Since : 1.2
GstCheck.TestClock.new_with_start_time
def GstCheck.TestClock.new_with_start_time (start_time):
#python wrapper for 'gst_test_clock_new_with_start_time'
Creates a new test clock with its time set to the specified time.
MT safe.
a GstCheck.TestClock cast to Gst.Clock.
Since : 1.2
Methods
gst_test_clock_advance_time
gst_test_clock_advance_time (GstTestClock * test_clock, GstClockTimeDiff delta)
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.
Parameters:
test_clock
–
a GstTestClock for which to increase the time
delta
–
a positive GstClockTimeDiff to be added to the time of the clock
Since : 1.2
GstCheck.TestClock.prototype.advance_time
function GstCheck.TestClock.prototype.advance_time(delta: Number): {
// javascript wrapper for 'gst_test_clock_advance_time'
}
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.
Parameters:
a GstCheck.TestClock for which to increase the time
Since : 1.2
GstCheck.TestClock.advance_time
def GstCheck.TestClock.advance_time (self, delta):
#python wrapper for 'gst_test_clock_advance_time'
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.
Parameters:
a GstCheck.TestClock for which to increase the time
Since : 1.2
gst_test_clock_crank
gboolean gst_test_clock_crank (GstTestClock * test_clock)
A "crank" consists of three steps: 1: Wait for a GstClockID to be registered with the GstTestClock. 2: Advance the GstTestClock to the time the GstClockID is waiting, unless the clock time is already passed the clock id (Since: 1.18). 3: Release the GstClockID wait. A "crank" can be though of as the notion of manually driving the clock forward to its next logical step.
Return: TRUE if the crank was successful, FALSE otherwise.
MT safe.
Parameters:
test_clock
–
GstTestClock to crank
Since : 1.8
GstCheck.TestClock.prototype.crank
function GstCheck.TestClock.prototype.crank(): {
// javascript wrapper for 'gst_test_clock_crank'
}
A "crank" consists of three steps: 1: Wait for a Object to be registered with the GstCheck.TestClock. 2: Advance the GstCheck.TestClock to the time the Object is waiting, unless the clock time is already passed the clock id (Since: 1.18). 3: Release the Object wait. A "crank" can be though of as the notion of manually driving the clock forward to its next logical step.
Return: true if the crank was successful, false otherwise.
MT safe.
Parameters:
GstCheck.TestClock to crank
Since : 1.8
GstCheck.TestClock.crank
def GstCheck.TestClock.crank (self):
#python wrapper for 'gst_test_clock_crank'
A "crank" consists of three steps: 1: Wait for a object to be registered with the GstCheck.TestClock. 2: Advance the GstCheck.TestClock to the time the object is waiting, unless the clock time is already passed the clock id (Since: 1.18). 3: Release the object wait. A "crank" can be though of as the notion of manually driving the clock forward to its next logical step.
Return: True if the crank was successful, False otherwise.
MT safe.
Parameters:
GstCheck.TestClock to crank
Since : 1.8
gst_test_clock_get_next_entry_time
GstClockTime gst_test_clock_get_next_entry_time (GstTestClock * test_clock)
Retrieve the requested time for the next pending clock notification.
MT safe.
Parameters:
test_clock
–
a GstTestClock to fetch the next clock notification time for
a GstClockTime set to the time of the next pending clock notification. If no clock notifications have been requested GST_CLOCK_TIME_NONE will be returned.
Since : 1.2
GstCheck.TestClock.prototype.get_next_entry_time
function GstCheck.TestClock.prototype.get_next_entry_time(): {
// javascript wrapper for 'gst_test_clock_get_next_entry_time'
}
Retrieve the requested time for the next pending clock notification.
MT safe.
Parameters:
a GstCheck.TestClock to fetch the next clock notification time for
a Number set to the time of the next pending clock notification. If no clock notifications have been requested Gst.CLOCK_TIME_NONE will be returned.
Since : 1.2
GstCheck.TestClock.get_next_entry_time
def GstCheck.TestClock.get_next_entry_time (self):
#python wrapper for 'gst_test_clock_get_next_entry_time'
Retrieve the requested time for the next pending clock notification.
MT safe.
Parameters:
a GstCheck.TestClock to fetch the next clock notification time for
a int set to the time of the next pending clock notification. If no clock notifications have been requested Gst.CLOCK_TIME_NONE will be returned.
Since : 1.2
gst_test_clock_has_id
gboolean gst_test_clock_has_id (GstTestClock * test_clock, GstClockID id)
Checks whether test_clock was requested to provide the clock notification given by id.
MT safe.
Parameters:
test_clock
–
a GstTestClock to ask if it provided the notification
id
(
[transfer: none])
–
a GstClockID clock notification
Since : 1.2
GstCheck.TestClock.prototype.has_id
function GstCheck.TestClock.prototype.has_id(id: Object): {
// javascript wrapper for 'gst_test_clock_has_id'
}
Checks whether test_clock was requested to provide the clock notification given by id.
MT safe.
Parameters:
a GstCheck.TestClock to ask if it provided the notification
Since : 1.2
GstCheck.TestClock.has_id
def GstCheck.TestClock.has_id (self, id):
#python wrapper for 'gst_test_clock_has_id'
Checks whether test_clock was requested to provide the clock notification given by id.
MT safe.
Parameters:
a GstCheck.TestClock to ask if it provided the notification
Since : 1.2
gst_test_clock_peek_id_count
guint gst_test_clock_peek_id_count (GstTestClock * test_clock)
Determine the number of pending clock notifications that have been requested from the test_clock.
MT safe.
Parameters:
test_clock
–
a GstTestClock for which to count notifications
the number of pending clock notifications.
Since : 1.2
GstCheck.TestClock.prototype.peek_id_count
function GstCheck.TestClock.prototype.peek_id_count(): {
// javascript wrapper for 'gst_test_clock_peek_id_count'
}
Determine the number of pending clock notifications that have been requested from the test_clock.
MT safe.
Parameters:
a GstCheck.TestClock for which to count notifications
the number of pending clock notifications.
Since : 1.2
GstCheck.TestClock.peek_id_count
def GstCheck.TestClock.peek_id_count (self):
#python wrapper for 'gst_test_clock_peek_id_count'
Determine the number of pending clock notifications that have been requested from the test_clock.
MT safe.
Parameters:
a GstCheck.TestClock for which to count notifications
the number of pending clock notifications.
Since : 1.2
gst_test_clock_peek_next_pending_id
gboolean gst_test_clock_peek_next_pending_id (GstTestClock * test_clock, GstClockID * pending_id)
Determines if the pending_id is the next clock notification scheduled to be triggered given the current time of the test_clock.
MT safe.
Return: TRUE if pending_id is the next clock notification to be triggered, FALSE otherwise.
Parameters:
test_clock
–
a GstTestClock to check the clock notifications for
pending_id
(
[allow-none][out][transfer: full])
–
a GstClockID clock notification to look for
Since : 1.2
GstCheck.TestClock.prototype.peek_next_pending_id
function GstCheck.TestClock.prototype.peek_next_pending_id(): {
// javascript wrapper for 'gst_test_clock_peek_next_pending_id'
}
Determines if the pending_id is the next clock notification scheduled to be triggered given the current time of the test_clock.
MT safe.
Return: true if pending_id is the next clock notification to be triggered, false otherwise.
Parameters:
a GstCheck.TestClock to check the clock notifications for
Returns a tuple made of:
Since : 1.2
GstCheck.TestClock.peek_next_pending_id
def GstCheck.TestClock.peek_next_pending_id (self):
#python wrapper for 'gst_test_clock_peek_next_pending_id'
Determines if the pending_id is the next clock notification scheduled to be triggered given the current time of the test_clock.
MT safe.
Return: True if pending_id is the next clock notification to be triggered, False otherwise.
Parameters:
a GstCheck.TestClock to check the clock notifications for
Returns a tuple made of:
Since : 1.2
gst_test_clock_process_id
gboolean gst_test_clock_process_id (GstTestClock * test_clock, GstClockID pending_id)
Processes and releases the pending ID.
MT safe.
Parameters:
test_clock
–
GstTestClock for which to process the pending IDs
pending_id
(
[transfer: full])
–
Since : 1.18
GstCheck.TestClock.prototype.process_id
function GstCheck.TestClock.prototype.process_id(pending_id: Object): {
// javascript wrapper for 'gst_test_clock_process_id'
}
Processes and releases the pending ID.
MT safe.
Parameters:
GstCheck.TestClock for which to process the pending IDs
Since : 1.18
GstCheck.TestClock.process_id
def GstCheck.TestClock.process_id (self, pending_id):
#python wrapper for 'gst_test_clock_process_id'
Processes and releases the pending ID.
MT safe.
Parameters:
GstCheck.TestClock for which to process the pending IDs
Since : 1.18
gst_test_clock_process_id_list
guint gst_test_clock_process_id_list (GstTestClock * test_clock, const GList * pending_list)
Processes and releases the pending IDs in the list.
MT safe.
Parameters:
test_clock
–
GstTestClock for which to process the pending IDs
pending_list
(
[element-typeGst.ClockID][transfer: none][allow-none])
–
List of pending GstClockID
Since : 1.4
GstCheck.TestClock.prototype.process_id_list
function GstCheck.TestClock.prototype.process_id_list(pending_list: [ Object ]): {
// javascript wrapper for 'gst_test_clock_process_id_list'
}
Processes and releases the pending IDs in the list.
MT safe.
Parameters:
GstCheck.TestClock for which to process the pending IDs
Since : 1.4
GstCheck.TestClock.process_id_list
def GstCheck.TestClock.process_id_list (self, pending_list):
#python wrapper for 'gst_test_clock_process_id_list'
Processes and releases the pending IDs in the list.
MT safe.
Parameters:
GstCheck.TestClock for which to process the pending IDs
Since : 1.4
gst_test_clock_process_next_clock_id
GstClockID gst_test_clock_process_next_clock_id (GstTestClock * test_clock)
MT safe.
Parameters:
test_clock
–
a GstTestClock for which to retrieve the next pending clock notification
a GstClockID containing the next pending clock notification.
Since : 1.2
GstCheck.TestClock.prototype.process_next_clock_id
function GstCheck.TestClock.prototype.process_next_clock_id(): {
// javascript wrapper for 'gst_test_clock_process_next_clock_id'
}
MT safe.
Parameters:
a GstCheck.TestClock for which to retrieve the next pending clock notification
Since : 1.2
GstCheck.TestClock.process_next_clock_id
def GstCheck.TestClock.process_next_clock_id (self):
#python wrapper for 'gst_test_clock_process_next_clock_id'
MT safe.
Parameters:
a GstCheck.TestClock for which to retrieve the next pending clock notification
Since : 1.2
gst_test_clock_set_time
gst_test_clock_set_time (GstTestClock * test_clock, GstClockTime new_time)
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 gst_clock_get_time is a programming error.
MT safe.
Parameters:
test_clock
–
a GstTestClock of which to set the time
new_time
–
a GstClockTime later than that returned by gst_clock_get_time
Since : 1.2
GstCheck.TestClock.prototype.set_time
function GstCheck.TestClock.prototype.set_time(new_time: Number): {
// javascript wrapper for 'gst_test_clock_set_time'
}
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 Gst.Clock.prototype.get_time is a programming error.
MT safe.
Parameters:
a GstCheck.TestClock of which to set the time
a Number later than that returned by Gst.Clock.prototype.get_time
Since : 1.2
GstCheck.TestClock.set_time
def GstCheck.TestClock.set_time (self, new_time):
#python wrapper for 'gst_test_clock_set_time'
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 Gst.Clock.get_time is a programming error.
MT safe.
Parameters:
a GstCheck.TestClock of which to set the time
a int later than that returned by Gst.Clock.get_time
Since : 1.2
gst_test_clock_timed_wait_for_multiple_pending_ids
gboolean gst_test_clock_timed_wait_for_multiple_pending_ids (GstTestClock * test_clock, guint count, guint timeout_ms, GList ** pending_list)
Blocks until at least count clock notifications have been requested from test_clock, or the timeout expires.
MT safe.
Parameters:
test_clock
–
GstTestClock for which to await having enough pending clock
count
–
the number of pending clock notifications to wait for
timeout_ms
–
the timeout in milliseconds
pending_list
(
[out][element-typeGst.ClockID][transfer: full][allow-none])
–
Address of a GList pointer variable to store the list of pending GstClockID that expired, or NULL
Since : 1.16
GstCheck.TestClock.prototype.timed_wait_for_multiple_pending_ids
function GstCheck.TestClock.prototype.timed_wait_for_multiple_pending_ids(count: Number, timeout_ms: Number): {
// javascript wrapper for 'gst_test_clock_timed_wait_for_multiple_pending_ids'
}
Blocks until at least count clock notifications have been requested from test_clock, or the timeout expires.
MT safe.
Parameters:
GstCheck.TestClock for which to await having enough pending clock
the number of pending clock notifications to wait for
the timeout in milliseconds
Returns a tuple made of:
Since : 1.16
GstCheck.TestClock.timed_wait_for_multiple_pending_ids
def GstCheck.TestClock.timed_wait_for_multiple_pending_ids (self, count, timeout_ms):
#python wrapper for 'gst_test_clock_timed_wait_for_multiple_pending_ids'
Blocks until at least count clock notifications have been requested from test_clock, or the timeout expires.
MT safe.
Parameters:
GstCheck.TestClock for which to await having enough pending clock
the number of pending clock notifications to wait for
the timeout in milliseconds
Returns a tuple made of:
Since : 1.16
gst_test_clock_wait_for_multiple_pending_ids
gst_test_clock_wait_for_multiple_pending_ids (GstTestClock * test_clock, guint count, GList ** pending_list)
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 GstTestClock.
MT safe.
Parameters:
test_clock
–
GstTestClock for which to await having enough pending clock
count
–
the number of pending clock notifications to wait for
pending_list
(
[out][element-typeGst.ClockID][transfer: full][allow-none])
–
Address of a GList pointer variable to store the list of pending GstClockID that expired, or NULL
Since : 1.4
GstCheck.TestClock.prototype.wait_for_multiple_pending_ids
function GstCheck.TestClock.prototype.wait_for_multiple_pending_ids(count: Number): {
// javascript wrapper for 'gst_test_clock_wait_for_multiple_pending_ids'
}
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 GstCheck.TestClock.
MT safe.
Parameters:
GstCheck.TestClock for which to await having enough pending clock
the number of pending clock notifications to wait for
Since : 1.4
GstCheck.TestClock.wait_for_multiple_pending_ids
def GstCheck.TestClock.wait_for_multiple_pending_ids (self, count):
#python wrapper for 'gst_test_clock_wait_for_multiple_pending_ids'
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 GstCheck.TestClock.
MT safe.
Parameters:
GstCheck.TestClock for which to await having enough pending clock
the number of pending clock notifications to wait for
Since : 1.4
gst_test_clock_wait_for_next_pending_id
gst_test_clock_wait_for_next_pending_id (GstTestClock * test_clock, GstClockID * pending_id)
Waits until a clock notification is requested from test_clock. There is no timeout for this wait, see the main description of GstTestClock. A reference to the pending clock notification is stored in pending_id.
MT safe.
Parameters:
test_clock
–
GstTestClock for which to get the pending clock notification
pending_id
(
[allow-none][out][transfer: full])
–
GstClockID with information about the pending clock notification
Since : 1.2
GstCheck.TestClock.prototype.wait_for_next_pending_id
function GstCheck.TestClock.prototype.wait_for_next_pending_id(): {
// javascript wrapper for 'gst_test_clock_wait_for_next_pending_id'
}
Waits until a clock notification is requested from test_clock. There is no timeout for this wait, see the main description of GstCheck.TestClock. A reference to the pending clock notification is stored in pending_id.
MT safe.
Parameters:
GstCheck.TestClock for which to get the pending clock notification
Since : 1.2
GstCheck.TestClock.wait_for_next_pending_id
def GstCheck.TestClock.wait_for_next_pending_id (self):
#python wrapper for 'gst_test_clock_wait_for_next_pending_id'
Waits until a clock notification is requested from test_clock. There is no timeout for this wait, see the main description of GstCheck.TestClock. A reference to the pending clock notification is stored in pending_id.
MT safe.
Parameters:
GstCheck.TestClock for which to get the pending clock notification
Since : 1.2
gst_test_clock_wait_for_pending_id_count
gst_test_clock_wait_for_pending_id_count (GstTestClock * test_clock, guint count)
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 GstTestClock.
Parameters:
test_clock
–
GstTestClock for which to await having enough pending clock
count
–
the number of pending clock notifications to wait for
Since : 1.2
deprecated : use gst_test_clock_wait_for_multiple_pending_ids() instead.
GstCheck.TestClock.prototype.wait_for_pending_id_count
function GstCheck.TestClock.prototype.wait_for_pending_id_count(count: Number): {
// javascript wrapper for 'gst_test_clock_wait_for_pending_id_count'
}
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 GstCheck.TestClock.
Parameters:
GstCheck.TestClock for which to await having enough pending clock
the number of pending clock notifications to wait for
Since : 1.2
deprecated : use gst_test_clock_wait_for_multiple_pending_ids() instead.
GstCheck.TestClock.wait_for_pending_id_count
def GstCheck.TestClock.wait_for_pending_id_count (self, count):
#python wrapper for 'gst_test_clock_wait_for_pending_id_count'
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 GstCheck.TestClock.
Parameters:
GstCheck.TestClock for which to await having enough pending clock
the number of pending clock notifications to wait for
Since : 1.2
deprecated : use gst_test_clock_wait_for_multiple_pending_ids() instead.
Functions
gst_test_clock_id_list_get_latest_time
GstClockTime gst_test_clock_id_list_get_latest_time (const GList * pending_list)
Finds the latest time inside the list.
MT safe.
Parameters:
pending_list
(
[element-typeGst.ClockID][transfer: none][allow-none])
–
List of of pending GstClockID
Since : 1.4
GstCheck.TestClock.prototype.id_list_get_latest_time
function GstCheck.TestClock.prototype.id_list_get_latest_time(pending_list: [ Object ]): {
// javascript wrapper for 'gst_test_clock_id_list_get_latest_time'
}
Finds the latest time inside the list.
MT safe.
Since : 1.4
GstCheck.TestClock.id_list_get_latest_time
def GstCheck.TestClock.id_list_get_latest_time (pending_list):
#python wrapper for 'gst_test_clock_id_list_get_latest_time'
Finds the latest time inside the list.
MT safe.
Since : 1.4
Properties
start-time
“start-time” guint64
When a GstTestClock is constructed it will have a certain start time set. If the clock was created using gst_test_clock_new_with_start_time then this property contains the value of the start_time argument. If gst_test_clock_new was called the clock started at time zero, and thus this property contains the value 0.
Flags : Read / Write / Construct Only
start-time
“start-time” Number
When a GstCheck.TestClock is constructed it will have a certain start time set. If the clock was created using GstCheck.TestClock.prototype.new_with_start_time then this property contains the value of the start_time argument. If GstCheck.TestClock.prototype.new was called the clock started at time zero, and thus this property contains the value 0.
Flags : Read / Write / Construct Only
start_time
“self.props.start_time” int
When a GstCheck.TestClock is constructed it will have a certain start time set. If the clock was created using GstCheck.TestClock.new_with_start_time then this property contains the value of the start_time argument. If GstCheck.TestClock.new was called the clock started at time zero, and thus this property contains the value 0.
Flags : Read / Write / Construct Only
Function Macros
GST_TEST_CLOCK_CAST
#define GST_TEST_CLOCK_CAST(obj) ((GstTestClock*)(obj))
The results of the search are