26 #include "Helper/Settings/SayonaraClass.h" 30 #include <gst/gstbuffer.h> 34 enum class GSTFileMode : quint8 {
40 _test_and_error(
void* element, QString errorstr);
43 _test_and_error_bool(
bool b, QString errorstr);
54 void sig_duration_changed();
57 bool _about_to_finish;
60 QTimer* _progress_timer=
nullptr;
67 GstElement* _pipeline=
nullptr;
73 bool tee_connect(GstElement* tee,
74 GstPadTemplate* tee_src_pad_template,
76 const QString& queue_name
78 bool create_element(GstElement** elem,
const gchar* elem_name,
const gchar* name=
"");
80 virtual bool create_elements()=0;
81 virtual bool add_and_link_elements()=0;
82 virtual bool configure_elements()=0;
84 virtual quint64 get_about_to_finish_time()
const;
88 void sig_about_to_finish(qint64);
89 void sig_pos_changed_ms(qint64);
90 void sig_data(uchar*, quint64);
94 virtual void play()=0;
95 virtual void pause()=0;
96 virtual void stop()=0;
104 virtual GstElement* get_source()
const=0;
105 virtual bool init(GstState state=GST_STATE_READY);
106 virtual GstElement* get_pipeline()
const;
107 virtual GstBus* get_bus();
108 virtual GstState get_state();
109 virtual void refresh_position();
110 virtual void refresh_duration();
111 virtual void finished();
112 virtual void check_about_to_finish();
113 virtual qint64 get_time_to_go()
const;
114 virtual void set_data(uchar* data, quint64 size);
116 virtual bool set_uri(gchar* uri);
117 virtual gchar* get_uri();
119 virtual qint64 get_duration_ms()
final;
120 virtual qint64 get_position_ms()
final;
122 bool has_element(GstElement* e)
const;
126 #endif // GSTPIPELINE_H The SayonaraClass class provides access to Settings and notifications.
Definition: SayonaraClass.h:31
Definition: AbstractEngine.h:40
Definition: AbstractPipeline.h:46