24 #include "Helper/Settings/SayonaraClass.h" 27 #include <gst/gstbuffer.h> 44 _test_and_error(
void* element,
const QString& errorstr);
47 _test_and_error_bool(
bool b,
const QString& errorstr);
61 void sig_duration_changed();
64 bool _about_to_finish;
67 QTimer* _progress_timer=
nullptr;
74 GstElement* _pipeline=
nullptr;
78 qint64 _position_source_ms;
79 qint64 _position_pipeline_ms;
81 bool tee_connect(GstElement* tee,
82 GstPadTemplate* tee_src_pad_template,
84 const QString& queue_name
86 bool create_element(GstElement** elem,
const gchar* elem_name,
const gchar* name=
"");
88 virtual bool create_elements()=0;
89 virtual bool add_and_link_elements()=0;
90 virtual bool configure_elements()=0;
92 virtual quint64 get_about_to_finish_time()
const;
96 void sig_about_to_finish(qint64);
97 void sig_pos_changed_ms(qint64);
98 void sig_data(uchar*, quint64);
102 virtual void play()=0;
103 virtual void pause()=0;
104 virtual void stop()=0;
111 virtual GstElement* get_source()
const=0;
112 virtual bool init(GstState state=GST_STATE_READY);
113 virtual GstElement* get_pipeline()
const;
114 virtual GstState get_state();
115 virtual void refresh_position();
116 virtual void refresh_duration();
117 virtual void finished();
118 virtual void check_about_to_finish();
119 virtual qint64 get_time_to_go()
const;
120 virtual void set_data(uchar* data, quint64 size);
122 virtual bool set_uri(gchar* uri);
124 virtual qint64 get_duration_ms()
const final ;
125 virtual qint64 get_source_position_ms()
const final;
126 virtual qint64 get_pipeline_position_ms()
const final;
128 bool has_element(GstElement* e)
const;
131 #endif // GSTPIPELINE_H The SayonaraClass class provides access to Settings and notifications.
Definition: SayonaraClass.h:29
The Engine class.
Definition: AbstractEngine.h:49
GSTFileMode
The GSTFileMode enum.
Definition: AbstractPipeline.h:37
The AbstractPipeline class.
Definition: AbstractPipeline.h:54