@@ -142,8 +142,7 @@ def __init__(
142142
143143 self .track_map = {} # track_id -> (MediaRelay, original_track)
144144 self .video_frame_trackers = {} # track_id -> VideoFrameTracker
145- self ._video_blackholes : dict [str , MediaBlackhole ] = {}
146- self ._video_drain_tasks : dict [str , asyncio .Task ] = {}
145+ self ._video_blackholes : dict [str , tuple [MediaBlackhole , asyncio .Task ]] = {}
147146 self ._background_tasks : set [asyncio .Task ] = set ()
148147
149148 @self .on ("track" )
@@ -190,11 +189,8 @@ def _emit_pcm(pcm: PcmData):
190189 drain_proxy = relay .subscribe (tracked_track )
191190 blackhole = MediaBlackhole ()
192191 blackhole .addTrack (drain_proxy )
193- self ._video_blackholes [track .id ] = blackhole
194- self ._video_drain_tasks [track .id ] = asyncio .create_task (
195- blackhole .start ()
196- )
197-
192+ drain_task = asyncio .create_task (blackhole .start ())
193+ self ._video_blackholes [track .id ] = (blackhole , drain_task )
198194 self .emit ("track_added" , proxy , user )
199195
200196 @self .on ("icegatheringstatechange" )
@@ -209,8 +205,7 @@ def add_track_subscriber(
209205 """Add a new subscriber to an existing track's MediaRelay."""
210206 track_data = self .track_map .get (track_id )
211207
212- self ._video_drain_tasks .pop (track_id , None )
213- blackhole = self ._video_blackholes .pop (track_id , None )
208+ blackhole , _ = self ._video_blackholes .pop (track_id , (None , None ))
214209
215210 if blackhole :
216211 task = asyncio .create_task (blackhole .stop ())
0 commit comments