Converted the stereo mic input to mono to save on packet size
This commit is contained in:
parent
1f7e2690d9
commit
002597ba9d
@ -2,7 +2,6 @@
|
||||
|
||||
[ext_resource type="Script" path="res://ui/main_scene/scripts/microphone.gd" id="2_h65el"]
|
||||
|
||||
|
||||
[sub_resource type="SystemFont" id="SystemFont_dukv4"]
|
||||
font_names = PackedStringArray("JetBrains Mono NL")
|
||||
font_weight = 425
|
||||
|
@ -14,11 +14,33 @@ func _ready():
|
||||
func _process(_delta):
|
||||
var frames: PackedVector2Array
|
||||
|
||||
if effect.can_get_buffer(1024):
|
||||
frames = effect.get_buffer(1024)
|
||||
playback_voip.rpc(frames)
|
||||
|
||||
frames = effect.get_buffer(effect.get_frames_available())
|
||||
if frames.size() > 0:
|
||||
var mono_frames: PackedFloat32Array = stereo_to_mono(frames)
|
||||
playback_voip.rpc(mono_frames)
|
||||
|
||||
@rpc("any_peer", "call_remote", "unreliable_ordered", 1)
|
||||
func playback_voip(frames: PackedVector2Array):
|
||||
playback.push_buffer(frames)
|
||||
func playback_voip(packed_frames: PackedFloat32Array):
|
||||
playback.push_buffer(unpack_mono(packed_frames))
|
||||
|
||||
func stereo_to_mono(frames: PackedVector2Array) -> PackedFloat32Array:
|
||||
var float_array = PackedFloat32Array()
|
||||
float_array.resize(frames.size())
|
||||
|
||||
var i: int = 0
|
||||
for frame: Vector2 in frames:
|
||||
float_array[i] = (frame.x + frame.y) / 2
|
||||
i += 1
|
||||
|
||||
return float_array
|
||||
|
||||
func unpack_mono(packed_frames: PackedFloat32Array) -> PackedVector2Array:
|
||||
var frames: PackedVector2Array = PackedVector2Array()
|
||||
frames.resize(packed_frames.size())
|
||||
|
||||
var i: int = 0
|
||||
for packed_frame: float in packed_frames:
|
||||
frames[i] = Vector2(packed_frame, packed_frame)
|
||||
i += 1
|
||||
|
||||
return frames
|
||||
|
Loading…
x
Reference in New Issue
Block a user