21 #ifndef GSTPLAYBACKPIPELINE_H_ 22 #define GSTPLAYBACKPIPELINE_H_ 24 #include <gst/app/gstappsink.h> 26 #include "ChangeablePipeline.h" 27 #include "CrossFader.h" 28 #include "Components/Engine/AbstractPipeline.h" 49 bool init(GstState state=GST_STATE_NULL)
override;
50 bool set_uri(gchar* uri)
override;
52 void set_n_sound_receiver(
int num_sound_receiver);
57 GstElement* get_source()
const override;
58 GstElement* get_pipeline()
const override;
63 void pause()
override;
66 void set_eq_band(
const QString& band_name,
double val);
67 void set_speed(
float speed,
double pitch,
bool preserve_pitch);
68 void set_streamrecorder_path(
const QString& session_path);
70 gint64 seek_rel(
double percent, gint64 ref_ns);
71 gint64 seek_abs(gint64 ns );
80 GstElement* _audio_src=
nullptr;
81 GstElement* _audio_convert=
nullptr;
82 GstElement* _tee=
nullptr;
84 GstElement* _eq_queue=
nullptr;
85 GstElement* _equalizer=
nullptr;
86 GstElement* _speed=
nullptr;
87 GstElement* _volume=
nullptr;
88 GstElement* _pitch=
nullptr;
90 GstElement* _audio_sink=
nullptr;
92 GstElement* _spectrum_queue=
nullptr;
93 GstElement* _spectrum=
nullptr;
94 GstElement* _spectrum_sink=
nullptr;
96 GstElement* _level_queue=
nullptr;
97 GstElement* _level=
nullptr;
98 GstElement* _level_sink=
nullptr;
100 GstElement* _lame_queue=
nullptr;
101 GstElement* _lame_converter=
nullptr;
102 GstElement* _lame_resampler=
nullptr;
103 GstElement* _lame=
nullptr;
104 GstElement* _lame_app_sink=
nullptr;
106 GstElement* _file_queue=
nullptr;
107 GstElement* _file_converter=
nullptr;
108 GstElement* _file_sink=
nullptr;
109 GstElement* _file_resampler=
nullptr;
110 GstElement* _file_lame=
nullptr;
112 gulong _level_probe, _spectrum_probe, _lame_probe, _file_probe;
113 bool _show_level, _show_spectrum, _run_broadcast, _run_sr;
115 bool _seek(gint64 ns);
118 bool create_elements()
override;
119 bool add_and_link_elements()
override;
120 bool configure_elements()
override;
121 quint64 get_about_to_finish_time()
const override;
123 void init_equalizer();
128 void _sl_vol_changed();
129 void _sl_show_level_changed();
130 void _sl_show_spectrum_changed();
131 void _sl_mute_changed();
133 void _sl_speed_active_changed();
134 void _sl_speed_changed();
The StreamRecorderData struct.
Definition: StreamRecorderData.h:32
The CrossFader class.
Definition: CrossFader.h:35
The Engine class.
Definition: AbstractEngine.h:49
The ChangeablePipeline class.
Definition: ChangeablePipeline.h:30
double get_current_volume() const override
get current volume of pipeline
void set_current_volume(double volume) override
set current volume of pipeline
The PlaybackPipeline class.
Definition: PlaybackPipeline.h:37
The AbstractPipeline class.
Definition: AbstractPipeline.h:54