21 #ifndef ENGINE_UTILS_H 22 #define ENGINE_UTILS_H 24 #include "Utils/typedefs.h" 26 #include <type_traits> 46 void config_queue(GstElement* queue, gulong max_time_ms=100);
67 bool tee_connect(GstElement* tee, GstElement* queue,
const QString& queue_name);
108 bool create_element(GstElement** elem,
const QString& elem_name,
const QString& name);
160 std::string(
"There's a wrong value somewhere") + value;
165 template<
typename GlibObject,
typename T>
172 void set_value(GlibObject*
object,
const gchar* key, T value, std::true_type)
181 template<
typename GlibObject,
typename T>
188 void set_value(GlibObject*
object,
const gchar* key, T value, std::false_type)
190 g_object_set(G_OBJECT(
object), key, value,
nullptr);
194 template<
typename GlibObject,
typename T>
201 void set_value(GlibObject*
object,
const gchar* key, T value)
203 constexpr
bool b = (std::is_integral<T>::value) && (
sizeof(T) >
sizeof(bool));
204 set_value(
object, key, value, std::integral_constant<bool, b>());
208 template<
typename GlibObject,
typename First>
215 void set_values(GlibObject*
object,
const gchar* key, First value)
221 template<
typename GlibObject,
typename First,
typename... Args>
229 void set_values(GlibObject*
object,
const gchar* key, First value, Args... args)
232 set_values(
object, std::forward<Args>(args)...);
236 template<
typename GlibObject>
246 g_object_set_property(G_OBJECT(
object), key, &val);
250 template<
typename GlibObject>
260 g_object_set_property(G_OBJECT(
object), key, &val);
265 template<
typename GlibObject>
275 g_object_set_property(G_OBJECT(
object), key, &val);
279 template<
typename GlibObject>
289 g_object_set_property(G_OBJECT(
object), key, &val);
326 bool set_state(GstElement* element, GstState state);
386 #endif // ENGINE_UTILS_H bool has_element(GstBin *bin, GstElement *element)
has_element
void unref_elements(const QList< GstElement * > &elements)
unref_elements
bool create_bin(GstElement **bin, const QList< GstElement * > &elements, const QString &prefix)
create_bin
void set_uint_value(GlibObject *object, const gchar *key, guint value)
set_uint_value
Definition: Utils.h:286
bool create_ghost_pad(GstBin *bin, GstElement *e)
create_ghost_pad
MilliSeconds get_time_to_go(GstElement *element)
get_time_to_go
void set_int64_value(GlibObject *object, const gchar *key, gint64 value)
set_int64_value
Definition: Utils.h:243
void set_uint64_value(GlibObject *object, const gchar *key, guint64 value)
set_uint64_value
Definition: Utils.h:272
void set_value(GlibObject *object, const gchar *key, T value, std::true_type)
set_value
Definition: Utils.h:172
void add_elements(GstBin *bin, const QList< GstElement * > &elements)
add_elements
void config_lame(GstElement *lame)
config_lame
bool test_and_error_bool(bool b, const QString &errorstr)
test_and_error_bool
bool link_elements(const QList< GstElement * > &elements)
link_elements
GstState get_state(GstElement *element)
get_state
bool test_and_error(void *element, const QString &errorstr)
test_and_error
bool check_plugin_available(const gchar *str)
check_plugin_available
bool tee_connect(GstElement *tee, GstElement *queue, const QString &queue_name)
tee_connect
bool set_state(GstElement *element, GstState state)
set_state
MilliSeconds get_position_ms(GstElement *element)
get_position_ms
GValue get_int(gint value)
get_int
void set_int_value(GlibObject *object, const gchar *key, gint value)
set_int_value
Definition: Utils.h:257
MilliSeconds get_duration_ms(GstElement *element)
get_duration_ms
void set_values(GlibObject *object, const gchar *key, First value)
set_values
Definition: Utils.h:215
void set_passthrough(GstElement *e, bool b)
set_passthrough
Class for compiler warnings.
Definition: Utils.h:156
GValue get_uint64(guint64 value)
get_uint64
GValue get_int64(gint64 value)
get_int64
bool create_element(GstElement **elem, const QString &elem_name)
create_element
void config_queue(GstElement *queue, gulong max_time_ms=100)
config_queue
MilliSeconds get_update_interval()
get_update_interval
void config_sink(GstElement *sink)
config_sink
bool check_pitch_available()
check_pitch_available
GValue get_uint(guint value)
get_uint
Definition: org_mpris_media_player2_adaptor.h:20
bool check_lame_available()
check_lame_available