Skip to content

Commit 3ab3ed1

Browse files
committed
add dedicated prealert volume for alerts to cut off all audio during playback. add queues to pipeline for stability.
1 parent 8dcea1a commit 3ab3ed1

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

obplayer/player/outputs.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,10 @@ def __init__(self):
8484
# """
8585

8686
pipeline_str = """
87-
interpipesrc stream-sync=restart-ts is-live=true listen-to=interpipe-none format=time name=interpipesrc-main ! volume volume=1.0 name="channel-main-volume" ! audioconvert ! audioresample ! audiomixer name=mixer-primary ! volume volume=1.0 name=mixer-primary-volume ! audioconvert ! audioresample ! audiomixer name=mixer-alert ! queue ! interpipesink name=interpipe-output sync=true
88-
interpipesrc stream-sync=restart-ts is-live=true listen-to=interpipe-none format=time name=interpipesrc-voicetrack ! volume volume=1.0 name="channel-voicetrack-volume" ! audioconvert ! audioresample ! mixer-primary.
89-
interpipesrc stream-sync=restart-ts is-live=true listen-to=interpipe-none format=time name=interpipesrc-alert ! audioconvert ! audioresample ! mixer-alert.
87+
interpipesrc stream-sync=restart-ts is-live=true listen-to=interpipe-none format=time name=interpipesrc-main ! queue ! volume volume=1.0 name="channel-main-volume" ! audioconvert ! audioresample ! mixer-primary.
88+
interpipesrc stream-sync=restart-ts is-live=true listen-to=interpipe-none format=time name=interpipesrc-voicetrack ! queue ! volume volume=1.0 name="channel-voicetrack-volume" ! audioconvert ! audioresample ! mixer-primary.
89+
interpipesrc stream-sync=restart-ts is-live=true listen-to=interpipe-none format=time name=interpipesrc-alert ! queue ! audioconvert ! audioresample ! mixer-alert.
90+
audiomixer name=mixer-primary ! volume volume=1.0 name=mixer-primary-volume ! volume volume=1.0 name=mixer-prealert-volume ! audioconvert ! audioresample ! audiomixer name=mixer-alert ! queue ! interpipesink name=interpipe-output sync=true
9091
"""
9192

9293
self.pipeline_main = Gst.parse_launch(pipeline_str)
@@ -235,13 +236,15 @@ def execute_instruction(self, instruction, arguments):
235236
obplayer.Log.log("mixer received instruction " + instruction, "debug")
236237
# TODO instruction should be more like "mixer_mode_alert" here? (confusing with above alert/on which are different)
237238
if instruction == "alert_on":
238-
self.pipeline_main.get_by_name("mixer-primary-volume").set_property(
239+
self.pipeline_main.get_by_name("mixer-prealert-volume").set_property(
239240
"volume", 0.0
240241
)
242+
print(self.pipeline_main.get_by_name("mixer-prealert-volume").get_property("volume"))
241243
elif instruction == "alert_off":
242-
self.pipeline_main.get_by_name("mixer-primary-volume").set_property(
244+
self.pipeline_main.get_by_name("mixer-prealert-volume").set_property(
243245
"volume", 1.0
244246
)
247+
print(self.pipeline_main.get_by_name("mixer-prealert-volume").get_property("volume"))
245248
elif instruction == "voicetrack_on":
246249
self.main_fade({"volume": arguments["volume"], "time": arguments["fade"]})
247250
elif instruction == "voicetrack_off":

0 commit comments

Comments
 (0)