Skip to content

Commit b05b3b1

Browse files
nbsptheomonnom
andauthored
rtc: add (*LocalPublication).wait_for_subscriber() (#238)
Co-authored-by: Théo Monnom <[email protected]>
1 parent f9db55c commit b05b3b1

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

livekit-rtc/livekit/rtc/room.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@ def _on_room_event(self, event: proto_room.RoomEvent):
288288
elif which == "local_track_subscribed":
289289
sid = event.local_track_subscribed.track_sid
290290
lpublication = self.local_participant.track_publications[sid]
291+
lpublication._first_subscription.set_result(None)
291292
self.emit("local_track_subscribed", lpublication.track)
292293
elif which == "track_published":
293294
rparticipant = self.remote_participants[

livekit-rtc/livekit/rtc/track_publication.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# limitations under the License.
1414

1515
from typing import Optional
16+
import asyncio
1617

1718
from ._ffi_client import FfiHandle, FfiClient
1819
from ._proto import e2ee_pb2 as proto_e2ee
@@ -71,6 +72,10 @@ def encryption_type(self) -> proto_e2ee.EncryptionType.ValueType:
7172
class LocalTrackPublication(TrackPublication):
7273
def __init__(self, owned_info: proto_track.OwnedTrackPublication):
7374
super().__init__(owned_info)
75+
self._first_subscription: asyncio.Future[None] = asyncio.Future()
76+
77+
async def wait_for_subscription(self) -> None:
78+
await asyncio.shield(self._first_subscription)
7479

7580

7681
class RemoteTrackPublication(TrackPublication):

0 commit comments

Comments
 (0)