GstCheck
These macros and functions are for internal use of the unit tests found inside the 'check' directories of various GStreamer packages.
One notable feature is that one can use the environment variables GST_CHECKS and GST_CHECKS_IGNORE to select which tests to run or skip. Both variables can contain a comma separated list of test name globs (e.g. test_*).
GstCheckABIStruct
Members
name
(const char*)
–
The name of the structure
size
(int)
–
The current size of a structure
abi_size
(int)
–
The reference size of the structure
GstCheckLogFilter
Opaque structure containing data about a log filter function.
GstCheck.CheckLogFilter
Opaque structure containing data about a log filter function.
GstCheck.CheckLogFilter
Opaque structure containing data about a log filter function.
Functions
gst_check_abi_list
gst_check_abi_list (GstCheckABIStruct * list, gboolean have_abi_sizes)
Verifies that reference values and current values are equals in list.
Parameters:
list
–
A list of GstCheckABIStruct to be verified
have_abi_sizes
–
Whether there is a reference ABI size already specified,
if it is FALSE and the GST_ABI
environment variable is set, usable code
for list will be printed.
GstCheck.prototype.check_abi_list
function GstCheck.prototype.check_abi_list(list: GstCheck.CheckABIStruct, have_abi_sizes: Number): {
// javascript wrapper for 'gst_check_abi_list'
}
Verifies that reference values and current values are equals in list.
Parameters:
A list of GstCheckABIStruct to be verified
GstCheck.check_abi_list
def GstCheck.check_abi_list (list, have_abi_sizes):
#python wrapper for 'gst_check_abi_list'
Verifies that reference values and current values are equals in list.
Parameters:
A list of GstCheckABIStruct to be verified
gst_check_add_log_filter
GstCheckLogFilter * gst_check_add_log_filter (const gchar * log_domain, GLogLevelFlags log_level, GRegex * regex, GstCheckLogFilterFunc func, gpointer user_data, GDestroyNotify destroy_data)
Add a callback func to be called for all log messages that matches log_domain, log_level and regex. If func is NULL the matching logs will be silently discarded by GstCheck.
MT safe.
Parameters:
log_domain
–
the log domain of the message
log_level
–
the log level of the message
regex
(
[transfer: full])
–
a GRegex to match the message
func
–
the function to call for matching messages
user_data
–
the user data to pass to func
destroy_data
–
GDestroyNotify for user_data
A filter that can be passed to gst_check_remove_log_filter.
Since : 1.12
gst_check_buffer_data
gst_check_buffer_data (GstBuffer * buffer, gconstpointer data, gsize size)
Compare the buffer contents with data and size.
Parameters:
buffer
–
buffer to compare
data
–
data to compare to
size
–
size of data to compare
GstCheck.prototype.check_buffer_data
function GstCheck.prototype.check_buffer_data(buffer: Gst.Buffer, data: Object, size: Number): {
// javascript wrapper for 'gst_check_buffer_data'
}
Compare the buffer contents with data and size.
Parameters:
buffer to compare
data to compare to
size of data to compare
GstCheck.check_buffer_data
def GstCheck.check_buffer_data (buffer, data, size):
#python wrapper for 'gst_check_buffer_data'
Compare the buffer contents with data and size.
Parameters:
buffer to compare
data to compare to
size of data to compare
gst_check_caps_equal
gst_check_caps_equal (GstCaps * caps1, GstCaps * caps2)
Compare two caps with gst_caps_is_equal and fail unless they are equal.
Parameters:
caps1
–
first caps to compare
caps2
–
second caps to compare
gst_check_chain_func
GstFlowReturn gst_check_chain_func (GstPad * pad, GstObject * parent, GstBuffer * buffer)
A fake chain function that appends the buffer to the internal list of buffers.
Parameters:
pad
–
parent
–
buffer
–
GstCheck.prototype.check_chain_func
function GstCheck.prototype.check_chain_func(pad: Gst.Pad, parent: Gst.Object, buffer: Gst.Buffer): {
// javascript wrapper for 'gst_check_chain_func'
}
A fake chain function that appends the buffer to the internal list of buffers.
Parameters:
GstCheck.check_chain_func
def GstCheck.check_chain_func (pad, parent, buffer):
#python wrapper for 'gst_check_chain_func'
A fake chain function that appends the buffer to the internal list of buffers.
Parameters:
gst_check_clear_log_filter
gst_check_clear_log_filter ()
Clear all filters added by gst_check_add_log_filter.
MT safe.
Since : 1.12
GstCheck.prototype.check_clear_log_filter
function GstCheck.prototype.check_clear_log_filter(): {
// javascript wrapper for 'gst_check_clear_log_filter'
}
Clear all filters added by gst_check_add_log_filter.
MT safe.
Since : 1.12
GstCheck.check_clear_log_filter
def GstCheck.check_clear_log_filter ():
#python wrapper for 'gst_check_clear_log_filter'
Clear all filters added by gst_check_add_log_filter.
MT safe.
Since : 1.12
gst_check_drop_buffers
gst_check_drop_buffers ()
Unref and remove all buffers that are in the global buffers GList, emptying the list.
GstCheck.prototype.check_drop_buffers
function GstCheck.prototype.check_drop_buffers(): {
// javascript wrapper for 'gst_check_drop_buffers'
}
Unref and remove all buffers that are in the global buffers GList, emptying the list.
GstCheck.check_drop_buffers
def GstCheck.check_drop_buffers ():
#python wrapper for 'gst_check_drop_buffers'
Unref and remove all buffers that are in the global buffers GList, emptying the list.
gst_check_element_push_buffer
gst_check_element_push_buffer (const gchar * element_name, GstBuffer * buffer_in, GstCaps * caps_in, GstBuffer * buffer_out, GstCaps * caps_out)
Create an element using the factory providing the element_name and push the buffer_in to this element. The element should create one buffer and this will be compared with buffer_out. We only check the caps and the data of the buffers. This function unrefs the buffers.
Parameters:
element_name
–
name of the element that needs to be created
buffer_in
–
push this buffer to the element
caps_in
–
the GstCaps expected of the sinkpad of the element
buffer_out
–
compare the result with this buffer
caps_out
–
the GstCaps expected of the srcpad of the element
GstCheck.prototype.check_element_push_buffer
function GstCheck.prototype.check_element_push_buffer(element_name: String, buffer_in: Gst.Buffer, caps_in: Gst.Caps, buffer_out: Gst.Buffer, caps_out: Gst.Caps): {
// javascript wrapper for 'gst_check_element_push_buffer'
}
Create an element using the factory providing the element_name and push the buffer_in to this element. The element should create one buffer and this will be compared with buffer_out. We only check the caps and the data of the buffers. This function unrefs the buffers.
Parameters:
name of the element that needs to be created
push this buffer to the element
compare the result with this buffer
GstCheck.check_element_push_buffer
def GstCheck.check_element_push_buffer (element_name, buffer_in, caps_in, buffer_out, caps_out):
#python wrapper for 'gst_check_element_push_buffer'
Create an element using the factory providing the element_name and push the buffer_in to this element. The element should create one buffer and this will be compared with buffer_out. We only check the caps and the data of the buffers. This function unrefs the buffers.
Parameters:
name of the element that needs to be created
push this buffer to the element
compare the result with this buffer
gst_check_element_push_buffer_list
gst_check_element_push_buffer_list (const gchar * element_name, GList * buffer_in, GstCaps * caps_in, GList * buffer_out, GstCaps * caps_out, GstFlowReturn last_flow_return)
Create an element using the factory providing the element_name and push the buffers in buffer_in to this element. The element should create the buffers equal to the buffers in buffer_out. We only check the size and the data of the buffers. This function unrefs the buffers in the two lists. The last_flow_return parameter indicates the expected flow return value from pushing the final buffer in the list. This can be used to set up a test which pushes some buffers and then an invalid buffer, when the final buffer is expected to fail, for example.
Parameters:
element_name
–
name of the element that needs to be created
buffer_in
(
[element-typeGstBuffer][transfer: full])
–
a list of buffers that needs to be pushed to the element
caps_in
–
the GstCaps expected of the sinkpad of the element
buffer_out
(
[element-typeGstBuffer][transfer: full])
–
a list of buffers that we expect from the element
caps_out
–
the GstCaps expected of the srcpad of the element
last_flow_return
–
the last buffer push needs to give this GstFlowReturn
GstCheck.prototype.check_element_push_buffer_list
function GstCheck.prototype.check_element_push_buffer_list(element_name: String, buffer_in: [ Gst.Buffer ], caps_in: Gst.Caps, buffer_out: [ Gst.Buffer ], caps_out: Gst.Caps, last_flow_return: Gst.FlowReturn): {
// javascript wrapper for 'gst_check_element_push_buffer_list'
}
Create an element using the factory providing the element_name and push the buffers in buffer_in to this element. The element should create the buffers equal to the buffers in buffer_out. We only check the size and the data of the buffers. This function unrefs the buffers in the two lists. The last_flow_return parameter indicates the expected flow return value from pushing the final buffer in the list. This can be used to set up a test which pushes some buffers and then an invalid buffer, when the final buffer is expected to fail, for example.
Parameters:
name of the element that needs to be created
a list of buffers that needs to be pushed to the element
a list of buffers that we expect from the element
the last buffer push needs to give this GstFlowReturn
GstCheck.check_element_push_buffer_list
def GstCheck.check_element_push_buffer_list (element_name, buffer_in, caps_in, buffer_out, caps_out, last_flow_return):
#python wrapper for 'gst_check_element_push_buffer_list'
Create an element using the factory providing the element_name and push the buffers in buffer_in to this element. The element should create the buffers equal to the buffers in buffer_out. We only check the size and the data of the buffers. This function unrefs the buffers in the two lists. The last_flow_return parameter indicates the expected flow return value from pushing the final buffer in the list. This can be used to set up a test which pushes some buffers and then an invalid buffer, when the final buffer is expected to fail, for example.
Parameters:
name of the element that needs to be created
a list of buffers that needs to be pushed to the element
a list of buffers that we expect from the element
the last buffer push needs to give this GstFlowReturn
gst_check_init
gst_check_init (int* argc, char*** argv)
Parameters:
argc
–
argv
–
gst_check_message_error
gst_check_message_error (GstMessage * message, GstMessageType type, GQuark domain, gint code)
Parameters:
message
–
type
–
domain
–
code
–
GstCheck.prototype.check_message_error
function GstCheck.prototype.check_message_error(message: Gst.Message, type: Gst.MessageType, domain: GLib.Quark, code: Number): {
// javascript wrapper for 'gst_check_message_error'
}
Parameters:
GstCheck.check_message_error
def GstCheck.check_message_error (message, type, domain, code):
#python wrapper for 'gst_check_message_error'
Parameters:
gst_check_object_destroyed_on_unref
gst_check_object_destroyed_on_unref (gpointer object_to_unref)
Unrefs object_to_unref and checks that is has properly been destroyed.
Parameters:
object_to_unref
–
The GObject to unref
Since : 1.6
GstCheck.prototype.check_object_destroyed_on_unref
function GstCheck.prototype.check_object_destroyed_on_unref(object_to_unref: Object): {
// javascript wrapper for 'gst_check_object_destroyed_on_unref'
}
Unrefs object_to_unref and checks that is has properly been destroyed.
Parameters:
The GObject.Object to unref
Since : 1.6
GstCheck.check_object_destroyed_on_unref
def GstCheck.check_object_destroyed_on_unref (object_to_unref):
#python wrapper for 'gst_check_object_destroyed_on_unref'
Unrefs object_to_unref and checks that is has properly been destroyed.
Parameters:
The GObject.Object to unref
Since : 1.6
gst_check_objects_destroyed_on_unref
gst_check_objects_destroyed_on_unref (gpointer object_to_unref, gpointer first_object, ... ...)
Unrefs object_to_unref and checks that is has properly been destroyed, also checks that the other objects passed in parameter have been destroyed as a concequence of unrefing object_to_unref. Last variable argument should be NULL.
Parameters:
object_to_unref
–
The GObject to unref
first_object
(
[allow-none])
–
The first object that should be destroyed as a concequence of unrefing object_to_unref.
...
–
Additional object that should have been destroyed.
Since : 1.6
gst_check_remove_log_filter
gst_check_remove_log_filter (GstCheckLogFilter * filter)
Remove a filter that has been added by gst_check_add_log_filter.
MT safe.
Parameters:
filter
–
Filter returned by gst_check_add_log_filter
Since : 1.12
GstCheck.prototype.check_remove_log_filter
function GstCheck.prototype.check_remove_log_filter(filter: GstCheck.CheckLogFilter): {
// javascript wrapper for 'gst_check_remove_log_filter'
}
Remove a filter that has been added by gst_check_add_log_filter.
MT safe.
Parameters:
Filter returned by gst_check_add_log_filter
Since : 1.12
GstCheck.check_remove_log_filter
def GstCheck.check_remove_log_filter (filter):
#python wrapper for 'gst_check_remove_log_filter'
Remove a filter that has been added by gst_check_add_log_filter.
MT safe.
Parameters:
Filter returned by gst_check_add_log_filter
Since : 1.12
gst_check_run_suite
gint gst_check_run_suite (Suite* suite, const gchar * name, const gchar * fname)
Parameters:
suite
–
the check test suite
name
–
name
fname
–
file name
number of failed tests
gst_check_setup_element
GstElement * gst_check_setup_element (const gchar * factory)
setup an element for a filter test with mysrcpad and mysinkpad
Parameters:
factory
–
factory
a new element
GstCheck.prototype.check_setup_element
function GstCheck.prototype.check_setup_element(factory: String): {
// javascript wrapper for 'gst_check_setup_element'
}
setup an element for a filter test with mysrcpad and mysinkpad
Parameters:
factory
a new element
GstCheck.check_setup_element
def GstCheck.check_setup_element (factory):
#python wrapper for 'gst_check_setup_element'
setup an element for a filter test with mysrcpad and mysinkpad
Parameters:
factory
a new element
gst_check_setup_events
gst_check_setup_events (GstPad * srcpad, GstElement * element, GstCaps * caps, GstFormat format)
Push stream-start, caps and segment event, which consist of the minimum required events to allow streaming. Caps is optional to allow raw src testing. If element has more than one src or sink pad, use gst_check_setup_events_with_stream_id instead.
Parameters:
srcpad
–
The src GstPad to push on
element
–
The GstElement use to create the stream id
caps
(
[allow-none])
–
GstCaps in case caps event must be sent
format
–
The GstFormat of the default segment to send
GstCheck.prototype.check_setup_events
function GstCheck.prototype.check_setup_events(srcpad: Gst.Pad, element: Gst.Element, caps: Gst.Caps, format: Gst.Format): {
// javascript wrapper for 'gst_check_setup_events'
}
Push stream-start, caps and segment event, which consist of the minimum required events to allow streaming. Caps is optional to allow raw src testing. If element has more than one src or sink pad, use GstCheck.prototype.check_setup_events_with_stream_id instead.
Parameters:
The Gst.Element use to create the stream id
The Gst.Format of the default segment to send
GstCheck.check_setup_events
def GstCheck.check_setup_events (srcpad, element, caps, format):
#python wrapper for 'gst_check_setup_events'
Push stream-start, caps and segment event, which consist of the minimum required events to allow streaming. Caps is optional to allow raw src testing. If element has more than one src or sink pad, use GstCheck.check_setup_events_with_stream_id instead.
Parameters:
The Gst.Element use to create the stream id
The Gst.Format of the default segment to send
gst_check_setup_events_with_stream_id
gst_check_setup_events_with_stream_id (GstPad * srcpad, GstElement * element, GstCaps * caps, GstFormat format, const gchar * stream_id)
Push stream-start, caps and segment event, which consist of the minimum required events to allow streaming. Caps is optional to allow raw src testing.
Parameters:
srcpad
–
The src GstPad to push on
element
–
The GstElement use to create the stream id
caps
(
[allow-none])
–
GstCaps in case caps event must be sent
format
–
The GstFormat of the default segment to send
stream_id
–
A unique identifier for the stream
GstCheck.prototype.check_setup_events_with_stream_id
function GstCheck.prototype.check_setup_events_with_stream_id(srcpad: Gst.Pad, element: Gst.Element, caps: Gst.Caps, format: Gst.Format, stream_id: String): {
// javascript wrapper for 'gst_check_setup_events_with_stream_id'
}
Push stream-start, caps and segment event, which consist of the minimum required events to allow streaming. Caps is optional to allow raw src testing.
Parameters:
The Gst.Element use to create the stream id
The Gst.Format of the default segment to send
A unique identifier for the stream
GstCheck.check_setup_events_with_stream_id
def GstCheck.check_setup_events_with_stream_id (srcpad, element, caps, format, stream_id):
#python wrapper for 'gst_check_setup_events_with_stream_id'
Push stream-start, caps and segment event, which consist of the minimum required events to allow streaming. Caps is optional to allow raw src testing.
Parameters:
The Gst.Element use to create the stream id
The Gst.Format of the default segment to send
A unique identifier for the stream
gst_check_setup_sink_pad
GstPad * gst_check_setup_sink_pad (GstElement * element, GstStaticPadTemplate * tmpl)
Does the same as gst_check_setup_sink_pad_by_name with the
Parameters:
element
–
element to setup pad on
tmpl
–
pad template
a new pad that can be used to check the output of element
GstCheck.prototype.check_setup_sink_pad
function GstCheck.prototype.check_setup_sink_pad(element: Gst.Element, tmpl: Gst.StaticPadTemplate): {
// javascript wrapper for 'gst_check_setup_sink_pad'
}
Does the same as GstCheck.prototype.check_setup_sink_pad_by_name with the
Parameters:
element to setup pad on
pad template
a new pad that can be used to check the output of element
GstCheck.check_setup_sink_pad
def GstCheck.check_setup_sink_pad (element, tmpl):
#python wrapper for 'gst_check_setup_sink_pad'
Does the same as GstCheck.check_setup_sink_pad_by_name with the
Parameters:
element to setup pad on
pad template
a new pad that can be used to check the output of element
gst_check_setup_sink_pad_by_name
GstPad * gst_check_setup_sink_pad_by_name (GstElement * element, GstStaticPadTemplate * tmpl, const gchar * name)
Creates a new sink pad (based on the given tmpl) and links it to the given element src pad (the pad that matches the given name). You can set event/chain/query functions on this pad to check the output of the element.
Parameters:
element
–
element to setup pad on
tmpl
–
pad template
name
–
Name of the element src pad that will be linked to the sink pad that will be setup
a new pad that can be used to check the output of element
GstCheck.prototype.check_setup_sink_pad_by_name
function GstCheck.prototype.check_setup_sink_pad_by_name(element: Gst.Element, tmpl: Gst.StaticPadTemplate, name: String): {
// javascript wrapper for 'gst_check_setup_sink_pad_by_name'
}
Creates a new sink pad (based on the given tmpl) and links it to the given element src pad (the pad that matches the given name). You can set event/chain/query functions on this pad to check the output of the element.
Parameters:
element to setup pad on
pad template
Name of the element src pad that will be linked to the sink pad that will be setup
a new pad that can be used to check the output of element
GstCheck.check_setup_sink_pad_by_name
def GstCheck.check_setup_sink_pad_by_name (element, tmpl, name):
#python wrapper for 'gst_check_setup_sink_pad_by_name'
Creates a new sink pad (based on the given tmpl) and links it to the given element src pad (the pad that matches the given name). You can set event/chain/query functions on this pad to check the output of the element.
Parameters:
element to setup pad on
pad template
Name of the element src pad that will be linked to the sink pad that will be setup
a new pad that can be used to check the output of element
gst_check_setup_sink_pad_by_name_from_template
GstPad * gst_check_setup_sink_pad_by_name_from_template (GstElement * element, GstPadTemplate * tmpl, const gchar * name)
Parameters:
element
–
element to setup pad on
tmpl
–
pad template
name
–
name
a new pad
Since : 1.4
GstCheck.prototype.check_setup_sink_pad_by_name_from_template
function GstCheck.prototype.check_setup_sink_pad_by_name_from_template(element: Gst.Element, tmpl: Gst.PadTemplate, name: String): {
// javascript wrapper for 'gst_check_setup_sink_pad_by_name_from_template'
}
Parameters:
element to setup pad on
pad template
name
a new pad
Since : 1.4
GstCheck.check_setup_sink_pad_by_name_from_template
def GstCheck.check_setup_sink_pad_by_name_from_template (element, tmpl, name):
#python wrapper for 'gst_check_setup_sink_pad_by_name_from_template'
Parameters:
element to setup pad on
pad template
name
a new pad
Since : 1.4
gst_check_setup_sink_pad_from_template
GstPad * gst_check_setup_sink_pad_from_template (GstElement * element, GstPadTemplate * tmpl)
Parameters:
element
–
element to setup pad on
tmpl
–
pad template
a new pad
Since : 1.4
GstCheck.prototype.check_setup_sink_pad_from_template
function GstCheck.prototype.check_setup_sink_pad_from_template(element: Gst.Element, tmpl: Gst.PadTemplate): {
// javascript wrapper for 'gst_check_setup_sink_pad_from_template'
}
a new pad
Since : 1.4
GstCheck.check_setup_sink_pad_from_template
def GstCheck.check_setup_sink_pad_from_template (element, tmpl):
#python wrapper for 'gst_check_setup_sink_pad_from_template'
a new pad
Since : 1.4
gst_check_setup_src_pad
GstPad * gst_check_setup_src_pad (GstElement * element, GstStaticPadTemplate * tmpl)
Does the same as gst_check_setup_src_pad_by_name with the
Parameters:
element
–
element to setup pad on
tmpl
–
pad template
A new pad that can be used to inject data on element
GstCheck.prototype.check_setup_src_pad
function GstCheck.prototype.check_setup_src_pad(element: Gst.Element, tmpl: Gst.StaticPadTemplate): {
// javascript wrapper for 'gst_check_setup_src_pad'
}
Does the same as GstCheck.prototype.check_setup_src_pad_by_name with the
Parameters:
element to setup pad on
pad template
A new pad that can be used to inject data on element
GstCheck.check_setup_src_pad
def GstCheck.check_setup_src_pad (element, tmpl):
#python wrapper for 'gst_check_setup_src_pad'
Does the same as GstCheck.check_setup_src_pad_by_name with the
Parameters:
element to setup pad on
pad template
A new pad that can be used to inject data on element
gst_check_setup_src_pad_by_name
GstPad * gst_check_setup_src_pad_by_name (GstElement * element, GstStaticPadTemplate * tmpl, const gchar * name)
Creates a new src pad (based on the given tmpl) and links it to the given element sink pad (the pad that matches the given name). Before using the src pad to push data on element you need to call gst_check_setup_events on the created src pad.
Example of how to push a buffer on element:
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
);
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
);
GstElement * element = gst_check_setup_element ("element");
GstPad * mysrcpad = gst_check_setup_src_pad (element, &srctemplate);
GstPad * mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate);
gst_pad_set_active (mysrcpad, TRUE);
gst_pad_set_active (mysinkpad, TRUE);
fail_unless (gst_element_set_state (element, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing");
GstCaps * caps = gst_caps_from_string (YOUR_DESIRED_SINK_CAPS);
gst_check_setup_events (mysrcpad, element, caps, GST_FORMAT_TIME);
gst_caps_unref (caps);
fail_unless (gst_pad_push (mysrcpad, gst_buffer_new_and_alloc(2)) == GST_FLOW_OK);
For very simple input/output test scenarios checkout gst_check_element_push_buffer_list and gst_check_element_push_buffer.
Parameters:
element
–
element to setup src pad on
tmpl
–
pad template
name
–
Name of the element sink pad that will be linked to the src pad that will be setup
A new pad that can be used to inject data on element
GstCheck.prototype.check_setup_src_pad_by_name
function GstCheck.prototype.check_setup_src_pad_by_name(element: Gst.Element, tmpl: Gst.StaticPadTemplate, name: String): {
// javascript wrapper for 'gst_check_setup_src_pad_by_name'
}
Creates a new src pad (based on the given tmpl) and links it to the given element sink pad (the pad that matches the given name). Before using the src pad to push data on element you need to call GstCheck.prototype.check_setup_events on the created src pad.
Example of how to push a buffer on element:
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
);
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
);
GstElement * element = gst_check_setup_element ("element");
GstPad * mysrcpad = gst_check_setup_src_pad (element, &srctemplate);
GstPad * mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate);
gst_pad_set_active (mysrcpad, TRUE);
gst_pad_set_active (mysinkpad, TRUE);
fail_unless (gst_element_set_state (element, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing");
GstCaps * caps = gst_caps_from_string (YOUR_DESIRED_SINK_CAPS);
gst_check_setup_events (mysrcpad, element, caps, GST_FORMAT_TIME);
gst_caps_unref (caps);
fail_unless (gst_pad_push (mysrcpad, gst_buffer_new_and_alloc(2)) == GST_FLOW_OK);
For very simple input/output test scenarios checkout GstCheck.prototype.check_element_push_buffer_list and GstCheck.prototype.check_element_push_buffer.
Parameters:
element to setup src pad on
pad template
Name of the element sink pad that will be linked to the src pad that will be setup
A new pad that can be used to inject data on element
GstCheck.check_setup_src_pad_by_name
def GstCheck.check_setup_src_pad_by_name (element, tmpl, name):
#python wrapper for 'gst_check_setup_src_pad_by_name'
Creates a new src pad (based on the given tmpl) and links it to the given element sink pad (the pad that matches the given name). Before using the src pad to push data on element you need to call GstCheck.check_setup_events on the created src pad.
Example of how to push a buffer on element:
static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
);
static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
);
GstElement * element = gst_check_setup_element ("element");
GstPad * mysrcpad = gst_check_setup_src_pad (element, &srctemplate);
GstPad * mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate);
gst_pad_set_active (mysrcpad, TRUE);
gst_pad_set_active (mysinkpad, TRUE);
fail_unless (gst_element_set_state (element, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing");
GstCaps * caps = gst_caps_from_string (YOUR_DESIRED_SINK_CAPS);
gst_check_setup_events (mysrcpad, element, caps, GST_FORMAT_TIME);
gst_caps_unref (caps);
fail_unless (gst_pad_push (mysrcpad, gst_buffer_new_and_alloc(2)) == GST_FLOW_OK);
For very simple input/output test scenarios checkout GstCheck.check_element_push_buffer_list and GstCheck.check_element_push_buffer.
Parameters:
element to setup src pad on
pad template
Name of the element sink pad that will be linked to the src pad that will be setup
A new pad that can be used to inject data on element
gst_check_setup_src_pad_by_name_from_template
GstPad * gst_check_setup_src_pad_by_name_from_template (GstElement * element, GstPadTemplate * tmpl, const gchar * name)
Parameters:
element
–
element to setup pad on
tmpl
–
pad template
name
–
name
a new pad
Since : 1.4
GstCheck.prototype.check_setup_src_pad_by_name_from_template
function GstCheck.prototype.check_setup_src_pad_by_name_from_template(element: Gst.Element, tmpl: Gst.PadTemplate, name: String): {
// javascript wrapper for 'gst_check_setup_src_pad_by_name_from_template'
}
Parameters:
element to setup pad on
pad template
name
a new pad
Since : 1.4
GstCheck.check_setup_src_pad_by_name_from_template
def GstCheck.check_setup_src_pad_by_name_from_template (element, tmpl, name):
#python wrapper for 'gst_check_setup_src_pad_by_name_from_template'
Parameters:
element to setup pad on
pad template
name
a new pad
Since : 1.4
gst_check_setup_src_pad_from_template
GstPad * gst_check_setup_src_pad_from_template (GstElement * element, GstPadTemplate * tmpl)
Parameters:
element
–
element to setup pad on
tmpl
–
pad template
a new pad
Since : 1.4
GstCheck.prototype.check_setup_src_pad_from_template
function GstCheck.prototype.check_setup_src_pad_from_template(element: Gst.Element, tmpl: Gst.PadTemplate): {
// javascript wrapper for 'gst_check_setup_src_pad_from_template'
}
a new pad
Since : 1.4
GstCheck.check_setup_src_pad_from_template
def GstCheck.check_setup_src_pad_from_template (element, tmpl):
#python wrapper for 'gst_check_setup_src_pad_from_template'
a new pad
Since : 1.4
gst_check_teardown_element
gst_check_teardown_element (GstElement * element)
Parameters:
element
–
GstCheck.prototype.check_teardown_element
function GstCheck.prototype.check_teardown_element(element: Gst.Element): {
// javascript wrapper for 'gst_check_teardown_element'
}
Parameters:
GstCheck.check_teardown_element
def GstCheck.check_teardown_element (element):
#python wrapper for 'gst_check_teardown_element'
Parameters:
gst_check_teardown_pad_by_name
gst_check_teardown_pad_by_name (GstElement * element, const gchar * name)
Parameters:
element
–
name
–
GstCheck.prototype.check_teardown_pad_by_name
function GstCheck.prototype.check_teardown_pad_by_name(element: Gst.Element, name: String): {
// javascript wrapper for 'gst_check_teardown_pad_by_name'
}
Parameters:
GstCheck.check_teardown_pad_by_name
def GstCheck.check_teardown_pad_by_name (element, name):
#python wrapper for 'gst_check_teardown_pad_by_name'
gst_check_teardown_sink_pad
gst_check_teardown_sink_pad (GstElement * element)
Parameters:
element
–
GstCheck.prototype.check_teardown_sink_pad
function GstCheck.prototype.check_teardown_sink_pad(element: Gst.Element): {
// javascript wrapper for 'gst_check_teardown_sink_pad'
}
Parameters:
GstCheck.check_teardown_sink_pad
def GstCheck.check_teardown_sink_pad (element):
#python wrapper for 'gst_check_teardown_sink_pad'
Parameters:
gst_check_teardown_src_pad
gst_check_teardown_src_pad (GstElement * element)
Parameters:
element
–
GstCheck.prototype.check_teardown_src_pad
function GstCheck.prototype.check_teardown_src_pad(element: Gst.Element): {
// javascript wrapper for 'gst_check_teardown_src_pad'
}
Parameters:
GstCheck.check_teardown_src_pad
def GstCheck.check_teardown_src_pad (element):
#python wrapper for 'gst_check_teardown_src_pad'
Parameters:
Function Macros
ASSERT_BUFFER_REFCOUNT
#define ASSERT_BUFFER_REFCOUNT(buffer, name, value) \ ASSERT_MINI_OBJECT_REFCOUNT(buffer, name, value)
ASSERT_CAPS_REFCOUNT
#define ASSERT_CAPS_REFCOUNT(caps, name, value) \ ASSERT_MINI_OBJECT_REFCOUNT(caps, name, value)
ASSERT_CRITICAL
#define ASSERT_CRITICAL(code)
ASSERT_MINI_OBJECT_REFCOUNT
#define ASSERT_MINI_OBJECT_REFCOUNT(miniobj, name, value) \ G_STMT_START { \ int rc; \ rc = GST_MINI_OBJECT_REFCOUNT_VALUE (miniobj); \ fail_unless (rc == value, \ name " (%p) refcount is %d instead of %d", miniobj, rc, value); \ } G_STMT_END
ASSERT_OBJECT_REFCOUNT
#define ASSERT_OBJECT_REFCOUNT(object, name, value) \ G_STMT_START { \ int rc; \ rc = GST_OBJECT_REFCOUNT_VALUE (object); \ fail_unless (rc == value, \ "%s (%p) refcount is %d instead of %d", \ name, object, rc, value); \ } G_STMT_END
ASSERT_OBJECT_REFCOUNT_BETWEEN
#define ASSERT_OBJECT_REFCOUNT_BETWEEN(object, name, lower, upper) \ G_STMT_START { \ int rc = GST_OBJECT_REFCOUNT_VALUE (object); \ int lo = lower; \ int hi = upper; \ \ fail_unless (rc >= lo, \ "%s (%p) refcount %d is smaller than %d", \ name, object, rc, lo); \ fail_unless (rc <= hi, \ "%s (%p) refcount %d is bigger than %d", \ name, object, rc, hi); \ } G_STMT_END
ASSERT_SET_STATE
#define ASSERT_SET_STATE(element, state, ret) \ fail_unless (gst_element_set_state (GST_ELEMENT(element), \ state) == ret, \ "could not change state to " #state);
ASSERT_WARNING
#define ASSERT_WARNING(code) \ G_STMT_START { \ _gst_check_expecting_log = TRUE; \ _gst_check_raised_warning = FALSE; \ code; \ if (!_gst_check_raised_warning) \ _ck_assert_failed (__FILE__, __LINE__, \ "Expected g_warning, got nothing", NULL); \ _gst_check_expecting_log = FALSE; \ } G_STMT_END
GST_CHECK_MAIN
#define GST_CHECK_MAIN(name) \ int main (int argc, char **argv) \ { \ Suite *s; \ gst_check_init (&argc, &argv); \ s = name ## _suite (); \ return gst_check_run_suite (s, # name, __FILE__); \ }
GST_START_TEST
#define GST_START_TEST(__testname) \ static void __testname (int G_GNUC_UNUSED __i__) \ {\ GST_DEBUG ("test start"); \ GST_DO_CHECK_TEST_ENVIRONMENT; \ tcase_fn_start (""# __testname, __FILE__, __LINE__);
wrapper for checks START_TEST
Parameters:
__testname
–
test function name
MAIN_INIT
#define MAIN_INIT() \ G_STMT_START { \ g_mutex_init (&mutex); \ g_cond_init (&start_cond); \ g_cond_init (&sync_cond); \ _gst_check_threads_running = TRUE; \ } G_STMT_END;
MAIN_START_THREADS
#define MAIN_START_THREADS(count, function, data) \ MAIN_INIT(); \ MAIN_START_THREAD_FUNCTIONS(count, function, data); \ MAIN_SYNCHRONIZE();
MAIN_START_THREAD_FUNCTION
#define MAIN_START_THREAD_FUNCTION(i, function, data) \ G_STMT_START { \ GThread *thread = NULL; \ GST_DEBUG ("MAIN: creating thread %d", i); \ g_mutex_lock (&mutex); \ thread = g_thread_try_new ("gst-check", \ (GThreadFunc) function, data, NULL); \ /* wait for thread to signal us that it's ready */ \ GST_DEBUG ("MAIN: waiting for thread %d", i); \ g_cond_wait (&start_cond, &mutex); \ g_mutex_unlock (&mutex); \ \ thread_list = g_list_append (thread_list, thread); \ } G_STMT_END;
MAIN_START_THREAD_FUNCTIONS
#define MAIN_START_THREAD_FUNCTIONS(count, function, data) \ G_STMT_START { \ int i; \ for (i = 0; i < count; ++i) { \ MAIN_START_THREAD_FUNCTION (i, function, data); \ } \ } G_STMT_END;
MAIN_STOP_THREADS
#define MAIN_STOP_THREADS() \ G_STMT_START { \ _gst_check_threads_running = FALSE; \ \ /* join all threads */ \ GST_DEBUG ("MAIN: joining"); \ g_list_foreach (thread_list, (GFunc) g_thread_join, NULL); \ g_list_free (thread_list); \ thread_list = NULL; \ g_mutex_clear (&mutex); \ g_cond_clear (&start_cond); \ g_cond_clear (&sync_cond); \ GST_DEBUG ("MAIN: joined"); \ } G_STMT_END;
MAIN_SYNCHRONIZE
#define MAIN_SYNCHRONIZE() \ G_STMT_START { \ GST_DEBUG ("MAIN: synchronizing"); \ g_cond_broadcast (&sync_cond); \ GST_DEBUG ("MAIN: synchronized"); \ } G_STMT_END;
THREAD_START
#define THREAD_START() \ THREAD_STARTED(); \ THREAD_SYNCHRONIZE();
THREAD_STARTED
#define THREAD_STARTED() \ G_STMT_START { \ /* signal main thread that we started */ \ GST_DEBUG ("THREAD %p: started", g_thread_self ()); \ g_mutex_lock (&mutex); \ g_cond_signal (&start_cond); \ } G_STMT_END;
THREAD_SWITCH
#define THREAD_SWITCH() \ G_STMT_START { \ g_thread_yield (); \ } G_STMT_END;
THREAD_SYNCHRONIZE
#define THREAD_SYNCHRONIZE() \ G_STMT_START { \ /* synchronize everyone */ \ GST_DEBUG ("THREAD %p: syncing", g_thread_self ()); \ fail_if (g_mutex_trylock (&mutex), \ "bug in unit test, mutex should be locked at this point");\ g_cond_wait (&sync_cond, &mutex); \ GST_DEBUG ("THREAD %p: synced", g_thread_self ()); \ g_mutex_unlock (&mutex); \ } G_STMT_END;
THREAD_TEST_RUNNING
#define THREAD_TEST_RUNNING() (!!_gst_check_threads_running)
assert_equals_float
#define assert_equals_float(a, b) fail_unless_equals_float(a, b)
This macro checks that a and b are (almost) equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
assert_equals_int
#define assert_equals_int(a, b) fail_unless_equals_int(a, b)
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
assert_equals_int64
#define assert_equals_int64(a, b) fail_unless_equals_int64(a, b)
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
assert_equals_int64_hex
#define assert_equals_int64_hex(a,b) fail_unless_equals_int64_hex(a,b)
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to in hexadecimal format. This macro is for use in unit tests.
Since : 1.2
assert_equals_int_hex
#define assert_equals_int_hex(a, b) fail_unless_equals_int_hex(a, b)
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to in hexadecimal format. This macro is for use in unit tests.
Since : 1.2
assert_equals_pointer
#define assert_equals_pointer(a, b) fail_unless_equals_pointer(a, b)
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
Parameters:
a
–
a pointer value or expression
b
–
a pointer value or expression
Since : 1.2
assert_equals_string
#define assert_equals_string(a, b) fail_unless_equals_string(a, b)
This macro checks that a and b are equal (as per g_strcmp0) and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
Parameters:
a
–
a string literal or expression
b
–
a string literal or expression
assert_equals_uint64
#define assert_equals_uint64(a, b) fail_unless_equals_uint64(a, b)
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
assert_equals_uint64_hex
#define assert_equals_uint64_hex(a,b) fail_unless_equals_uint64_hex(a,b)
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to in hexadecimal format. This macro is for use in unit tests.
Since : 1.2
assert_matches_string
#define assert_matches_string(a, b) fail_unless_matches_string(a, b)
This macro checks that a matches the regular expression in b aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
Parameters:
a
–
a string literal or expression
b
–
a regular expression pattern string literal or expression
Since : 1.26
assert_message_error
#define assert_message_error(m, d, c) fail_unless_message_error(m, d, c)
fail_unless_equals_clocktime
#define fail_unless_equals_clocktime(a, b) \ G_STMT_START { \ GstClockTime first = a; \ GstClockTime second = b; \ fail_unless(first == second, \ "'" #a "' (%" GST_TIME_FORMAT") is not equal to '" #b"' (%" GST_TIME_FORMAT")", \ GST_TIME_ARGS (first), GST_TIME_ARGS (second)); \ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
fail_unless_equals_float
#define fail_unless_equals_float(a, b) \ G_STMT_START { \ double first = a; \ double second = b; \ /* This will only work for 'normal' values and values around 0, \ * which should be good enough for our purposes here */ \ fail_unless(fabs (first - second) < 0.0000001, \ "'" #a "' (%g) is not equal to '" #b "' (%g)", first, second);\ } G_STMT_END;
This macro checks that a and b are (almost) equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
fail_unless_equals_int
#define fail_unless_equals_int(a, b) \ G_STMT_START { \ int first = a; \ int second = b; \ fail_unless(first == second, \ "'" #a "' (%d) is not equal to '" #b"' (%d)", first, second); \ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
fail_unless_equals_int64
#define fail_unless_equals_int64(a, b) \ G_STMT_START { \ gint64 first = a; \ gint64 second = b; \ fail_unless(first == second, \ "'" #a "' (%" G_GINT64_FORMAT") is not equal to '" #b"' (%" \ G_GINT64_FORMAT")", first, second); \ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
fail_unless_equals_int64_hex
#define fail_unless_equals_int64_hex(a, b) \ G_STMT_START { \ gint64 first = a; \ gint64 second = b; \ fail_unless(first == second, \ "'" #a "' (0x%016x) is not equal to '" #b"' (0x%016x)", first, second);\ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to in hexadecimal format. This macro is for use in unit tests.
Since : 1.2
fail_unless_equals_int_hex
#define fail_unless_equals_int_hex(a, b) \ G_STMT_START { \ int first = a; \ int second = b; \ fail_unless(first == second, \ "'" #a "' (0x%08x) is not equal to '" #b"' (0x%08x)", first, second);\ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to in hexadecimal format. This macro is for use in unit tests.
Since : 1.2
fail_unless_equals_pointer
#define fail_unless_equals_pointer(a, b) \ G_STMT_START { \ gpointer first = a; \ gpointer second = b; \ fail_unless(first == second, \ "'" #a "' (%p) is not equal to '" #b "' (%p)", first, second);\ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
Parameters:
a
–
a pointer value or expression
b
–
a pointer value or expression
Since : 1.2
fail_unless_equals_string
#define fail_unless_equals_string(a, b) \ G_STMT_START { \ const gchar * first = a; \ const gchar * second = b; \ fail_unless(g_strcmp0 (first, second) == 0, \ "'" #a "' (%s) is not equal to '" #b"' (%s)", first, second); \ } G_STMT_END;
This macro checks that a and b are equal (as per g_strcmp0) and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
Parameters:
a
–
a string literal or expression
b
–
a string literal or expression
fail_unless_equals_uint64
#define fail_unless_equals_uint64(a, b) \ G_STMT_START { \ guint64 first = a; \ guint64 second = b; \ fail_unless(first == second, \ "'" #a "' (%" G_GUINT64_FORMAT ") is not equal to '" #b"' (%" \ G_GUINT64_FORMAT ")", first, second); \ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
fail_unless_equals_uint64_hex
#define fail_unless_equals_uint64_hex(a, b) \ G_STMT_START { \ guint64 first = a; \ guint64 second = b; \ fail_unless(first == second, \ "'" #a "' (0x%016x) is not equal to '" #b"' (0x%016x)", first, second);\ } G_STMT_END;
This macro checks that a and b are equal and aborts if this is not the case, printing both expressions and the values they evaluated to in hexadecimal format. This macro is for use in unit tests.
Since : 1.2
fail_unless_matches_string
#define fail_unless_matches_string(a, b) \ G_STMT_START { \ const gchar * first = a; \ const gchar * second = b; \ fail_unless(g_regex_match_simple (second, first, 0, 0), \ "'" #a "' (%s) does not match pattern '" #b"' (%s)", first, second); \ } G_STMT_END;
This macro checks that a matches the regular expression in b aborts if this is not the case, printing both expressions and the values they evaluated to. This macro is for use in unit tests.
Parameters:
a
–
a string literal or expression
b
–
a regular expression pattern string literal or expression
Since : 1.26
fail_unless_message_error
#define fail_unless_message_error(msg, domain, code) \ gst_check_message_error (msg, GST_MESSAGE_ERROR, \ GST_ ## domain ## _ERROR, GST_ ## domain ## _ERROR_ ## code)
tcase_skip_broken_loop_test
#define tcase_skip_broken_loop_test(chain,test_func,a,b) \ tcase_skip_broken_test (chain, test_func)
tcase_skip_broken_test
#define tcase_skip_broken_test(chain,test_func) \ G_STMT_START { \ const char *env = g_getenv ("GST_CHECKS"); \ \ if (env != NULL && g_pattern_match_simple (env, G_STRINGIFY (test_func))) { \ tcase_add_test(chain,test_func); \ } else { \ g_printerr ("FIXME: skipping test %s because it's broken\n", G_STRINGIFY (test_func)); \ } \ } G_STMT_END
Constants
CK_DLL_EXP
#define CK_DLL_EXP GST_CHECK_API
GST_CAT_DEFAULT
#define GST_CAT_DEFAULT check_debug
Default gstreamer core debug log category. Please define your own.
GST_DO_CHECK_TEST_ENVIRONMENT
#define GST_DO_CHECK_TEST_ENVIRONMENT \ G_STMT_START { \ if (g_getenv (GST_CHECK_TEST_ENVIRONMENT_BEACON) == NULL) \ fail ("Test environment not set up correctly! Expected environment " \ "variable '%s' to be set.", GST_CHECK_TEST_ENVIRONMENT_BEACON); \ } G_STMT_END
GST_END_TEST
#define GST_END_TEST GST_LOG ("cleaning up tasks"); \ gst_task_cleanup_all (); \ END_TEST
wrapper for checks END_TEST
_tcase_add_test
#define _tcase_add_test __gst_tcase_add_test
Callbacks
GstCheckLogFilterFunc
gboolean (*GstCheckLogFilterFunc) (const gchar * log_domain, GLogLevelFlags log_level, const gchar * message, gpointer user_data)
A function that is called for messages matching the filter added by gst_check_add_log_filter.
Parameters:
log_domain
–
the log domain of the message
log_level
–
the log level of the message
message
–
the message that has occurred
user_data
–
user data
TRUE if message should be discarded by GstCheck.
Since : 1.12
GstCheck.CheckLogFilterFunc
function GstCheck.CheckLogFilterFunc(log_domain: String, log_level: GLib.LogLevelFlags, message: String, user_data: Object): {
// javascript wrapper for 'GstCheckLogFilterFunc'
}
A function that is called for messages matching the filter added by gst_check_add_log_filter.
Parameters:
the log domain of the message
the log level of the message
the message that has occurred
user data
Since : 1.12
GstCheck.CheckLogFilterFunc
def GstCheck.CheckLogFilterFunc (log_domain, log_level, message, *user_data):
#python wrapper for 'GstCheckLogFilterFunc'
A function that is called for messages matching the filter added by gst_check_add_log_filter.
Parameters:
the log domain of the message
the log level of the message
the message that has occurred
user data
Since : 1.12
The results of the search are