21 #ifndef GSTPLAYBACKPIPELINE_H_
22 #define GSTPLAYBACKPIPELINE_H_
24 #include "PipelineExtensions/Changeable.h"
25 #include "PipelineExtensions/Fadeable.h"
26 #include "PipelineExtensions/DelayedPlayable.h"
27 #include "PipelineExtensions/BroadcastBin.h"
28 #include "PipelineExtensions/PositionAccessible.h"
29 #include "PipelineExtensions/Pitchable.h"
30 #include "PipelineExtensions/EqualizerAccesible.h"
31 #include "Utils/Pimpl.h"
57 void sigAboutToFinishMs(MilliSeconds ms);
58 void sigPositionChangedMs(MilliSeconds ms);
59 void sigDataAvailable(
const QByteArray& data);
62 explicit Pipeline(
const QString& name, QObject* parent=
nullptr);
66 bool prepare(
const QString& uri);
68 bool hasElement(GstElement* e)
const;
69 GstState state()
const;
72 void checkAboutToFinish();
74 void setVisualizerEnabled(
bool levelEnabled,
bool spectrumEnabled);
75 bool isLevelVisualizerEnabled()
const;
76 bool isSpectrumVisualizerEnabled()
const;
78 void setBroadcastingEnabled(
bool b);
79 bool isBroadcastingEnabled()
const;
82 void setRecordingPath(
const QString& session_path);
84 MilliSeconds timeToGo()
const;
86 void setRawData(
const QByteArray& data)
override;
96 void speedActiveChanged();
101 bool createElements();
102 bool addAndLinkElements();
103 void configureElements();
105 void postProcessFadeIn()
override;
106 void postProcessFadeOut()
override;
107 void setInternalVolume(
double volume)
override;
108 double internalVolume()
const override;
110 GstElement* positionElement()
const override;
111 GstElement* pitchElement()
const override;
112 GstElement* equalizerElement()
const override;