Commit graph

107 commits

Author SHA1 Message Date
Denver Quane
58193fbfaa
fix(voice): session id deadlock on open (#1408)
* Unlock when checking voice connection sessionID to prevent deadlock

* Move lock to preserve concurrency safety, while allowing the sessionID to be populated

* style: formatting

Fix formatting of the documentation comment for VoiceConnection.Speaking function

* feat: reword explanatory comment

---------

Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com>
2023-08-13 07:06:50 +03:00
Fedor Lapshin
ba97131805
74 byte handshake (#1343)
* feat(voice): 74 byte udp handshake

Update the format of UDP handshake to use 74 byte packets.

* docs: use new positions in comments

* feat: document type and length fields

Add descriptions of type and length fields to the request packet documentation.
2023-03-10 00:33:26 +03:00
NonNonStop
9effc92908
Fix the problem of reconnecting when moved to another VC (#1271)
* Fix disconnection when moved to another VC

* Update voice.go

Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com>

* Update voice.go

Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com>

* Update voice.go

Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com>

* feat: add VoiceServerUpdate todo

Co-authored-by: Fedor Lapshin <fe.lap.prog@gmail.com>
2022-12-15 03:17:27 +03:00
ozraru
0c2b0eccf4
Continue to next packet if received broken packet (#1260)
Broken packet should be ignored and continue to next packet.
This goroutine should not exit until close.
2022-10-24 01:44:08 +03:00
Fedor Lapshin
7c87035a71
feat(voice): use Dialer for connections (#1220)
Use Session.Dialer for WebSocket connections.
2022-08-14 00:04:52 +03:00
Andrei Khodko
fa14e19ad5
fix: check if opus created (#1166)
* fix: check is opus created

* fix: careful concurrency fixes
2022-05-14 22:52:33 +03:00
Gabriele Alberti
b18e1d7276 Fix RTP extended header parsing
As ext header length isn't always 1, the shift to find the beginning of
the Opus packet must be adjusted dynamically.
2021-02-22 13:20:15 +01:00
Jonathan Roth
9bcbfecf1d
Add lock to prevent race condition (#816)
There's a race between `VoiceConnection.Disconnect()` and `VoiceConnection.onVoiceStateUpdate()` (accessing VoiceConnection.sessionID)
2020-11-15 14:55:36 -05:00
Carson Hoffman
a7305dd7b7
Stop voice re-connection on manual disconnection 2020-05-19 23:06:59 -04:00
dondish
ac0011a12f updated the develop branch to fix the voice holdup issue 2019-10-18 14:38:12 +03:00
yuko1225
d7c22e2791 Fix broken IP Discovery in voice connection. (#669)
https://github.com/bwmarrin/discordgo/issues/598
https://github.com/bwmarrin/discordgo/issues/668
2019-07-21 21:08:31 -07:00
Bruce Marriner
e7ec3c1e37 Fix a typo. 2018-08-27 15:37:58 +00:00
Bruce Marriner
10be6053b9 Merge branch 'develop' of https://github.com/bwmarrin/discordgo into develop 2018-08-27 15:36:04 +00:00
Skippy
2cc0417697
Merge pull request #366 from jD91mZM2/1
STOP USING PRINTF PLS
2018-08-22 19:50:27 -05:00
Bruce Marriner
22c5f24532 Fixed a couple of error msgs 2018-08-23 00:33:57 +00:00
Santiago Andaluz
fbfba5b969
Update Disconnect() comment
It looks like dgo has moved away from ChannelVoiceLeave ever since discord allows bot to connect to more than one channel. Confusing comment seeing that it is very hard to find information about the function that it mentions.
2018-07-05 13:46:54 -05:00
vim2meta
86557619ba
Update voice.go 2017-11-19 10:14:45 -05:00
NamedKitten
70c6c583e4 Use v.log rather than log for consistency. (#464)
Change made to keep the use of logging consistent.
2017-10-23 11:20:07 -07:00
LEGOlord208
2f51bf4d58
Merge branch 'develop' into 1 2017-08-29 07:53:58 +02:00
Chris Rhodes
1b5dbef04e Merge commit 'd420e28024ad527390b43aa7f64e029083e11989' into develop 2017-08-19 11:20:04 -07:00
Jonas is my name
3c8a0dd940 Fix receiving voice after client sets extended header bit (#428) 2017-08-18 08:35:27 -07:00
LEGOlord208
2079ab8efb
More printfs 2017-07-23 08:42:47 +02:00
LEGOlord208
b813c5d0ca
Merge branch 'develop' into 1 2017-07-23 08:27:41 +02:00
Anmol Sethi
d420e28024 voice.go: remove runtime.LockOSThread call from opusSender (#404)
runtime.LockOSThread does not do anything for performance and is instead
intended for interfacing with libraries that use thread local data structures.

Closes #402
2017-07-08 08:09:04 -07:00
Ammar Bandukwala
0983790428 Fix goroutine leak in opusReceiver (#393) 2017-06-10 13:39:27 -07:00
jonas747
80a3678069 Fix race-y packet in opusReceiver 2017-03-16 03:46:19 +01:00
jonas747
b07d1c4621 Fix leaking tickers (#314) 2017-01-23 12:13:59 -08:00
jonas747
bdb31f245d Fix all found race conditions, and dont send on nil channel (#307) 2017-01-10 20:01:47 -08:00
Bruce Marriner
cb96c5b0f7 Log voice connect error in the right place. 2016-12-20 12:00:34 -06:00
Bruce Marriner
9e777a083b Linting. 2016-12-11 12:45:34 -06:00
Chris Rhodes
c5a94de19c Silence missing voice op codes. 2016-11-11 08:20:00 -08:00
Jonathan
374c41e753 fix typo 2016-09-20 15:33:08 +02:00
Bruce Marriner
a97d89e1de Fix param to ChannelVoiceJoin 2016-07-11 22:17:56 -05:00
Bruce Marriner
2ebf8bdb10 Removed unneeded code. 2016-07-07 21:07:26 -05:00
Bruce Marriner
bbce2612b0 simi-properly close websockets and simplify voice reconnect 2016-07-06 20:31:47 -05:00
Bruce Marriner
45ffd8c83a Removed extra logging 2016-07-06 12:53:11 -05:00
Bruce Marriner
7393438ea8 Put wait var back in. 2016-07-05 21:42:10 -05:00
Bruce Marriner
956961ac3e Simplify reconnect code. 2016-07-05 21:38:37 -05:00
Bruce Marriner
604872ed4b Fix error msg 2016-07-05 20:52:54 -05:00
Bruce Marriner
5f983250fe Check that the gateway websocket is ready 2016-06-24 19:42:43 -05:00
Bruce Marriner
e252652fe8 Unlock what you Lock, fool. 2016-06-24 13:42:35 -05:00
Bruce Marriner
3329f87b14 Added lots of temp logs into voice close func 2016-06-24 13:11:25 -05:00
Bruce Marriner
e451cb36c3 Clear SessionID when reconnecting voice
Also added some more logging..
2016-06-17 10:24:15 -05:00
Bruce Marriner
e76dafab78 Do spam unready session error on voice reconnec 2016-06-16 14:53:05 -05:00
Bruce Marriner
c8d01b7f60 Reconnect now does a full disconnect and reconnect
This should hopefully provide a more stable voice connection at the cost
of making reconnects slightly more expensive for both the client and
Discord. This could be changed later once the Discord voice
documentation more clearly defines reconnect rules. Also, a bit of cleanup :)
2016-06-14 10:57:43 -05:00
Bruce Marriner
71c172a948 Clean up. 2016-06-04 20:18:56 -05:00
Bruce Marriner
7039cc47dc Reconnect to voice gateway instead of.. 2016-05-28 14:58:44 -05:00
Bruce Marriner
32aa5718d1 Fix loop in voice reconnect 2016-05-28 10:50:18 -05:00
Bruce Marriner
754d64d339 Initial code to support voice reconnecting
Also includes some logging improvements and a small fix to track
speaking state and to send speaking packet if needed before sending
opus packets.
2016-05-26 19:35:17 -05:00
Harmon758
2175a62cad Update deaf and mute as well 2016-05-25 10:41:18 -05:00