@@ -653,23 +653,30 @@ def _make_fakepacket(self) -> FakePacket:
653653
654654 def _process_packet (self , packet : Packet ) -> VoiceData :
655655 from discord .object import Object
656+ from discord .voice import VoiceData
656657
657- pcm = None
658+ assert self . sink . client
658659
659- if not self .sink .is_opus ():
660- packet , pcm = self ._decode_packet (packet )
660+ pcm = None
661661
662662 member = self ._get_cached_member ()
663663
664664 if member is None :
665- self ._cached_id = self .sink .client ._connection . _get_id_from_ssrc (self .ssrc )
665+ self ._cached_id = self .sink .client ._ssrc_to_id . get (self .ssrc )
666666 member = self ._get_cached_member ()
667+ else :
668+ self ._cached_id = member .id
667669
668670 # yet still none, use Object
669671 if member is None and self ._cached_id :
670672 member = Object (id = self ._cached_id )
671673
672- data = VoiceData (packet , member , pcm = pcm )
674+ if not self .sink .is_opus ():
675+ _log .debug ("Decoding packet %s (type %s)" , packet , type (packet ))
676+ packet , pcm = self ._decode_packet (packet )
677+
678+
679+ data = VoiceData (packet , member , pcm = pcm ) # type: ignore
673680 self ._last_seq = packet .sequence
674681 self ._last_ts = packet .timestamp
675682 return data
0 commit comments