millicast / millicast-player-unreal-engine-plugin

Millicast Player plugin for Unreal Engine
Other
19 stars 14 forks source link

UMillicastSubscriberComponent::OnVideoTrack not being called in BPs even when the track is created #21

Closed QuentinGarou closed 1 year ago

QuentinGarou commented 2 years ago

This issue happens by running the main branch of this plugin in a project on ue5.0.3 from the launcher on windows. The OnVideoTrack delegate doesn't corerctly calls the InvocationList so all blueprint binded functions aren't called (both create by clicking on the OnVideoTrack button in the details panel of the MillicastSubscriberComponent and by binding an event via the BindEventToOnVideoTrack node).

Here are the steps to repoduce it:

A few infos to debug:

Here is a complete log of a PIE session (play and stop)

LogDebuggerCommands: Repeating last play command: Selected Viewport LogPlayLevel: PlayLevel: No blueprints needed recompiling PIE: New page: PIE session: QuentinTEst (Aug 18, 2022, 9:06:41 PM) LogPlayLevel: Creating play world package: /Game/Maps/UEDPIE_0_QuentinTEst LogPlayLevel: PIE: StaticDuplicateObject took: (0.003859s) LogPlayLevel: PIE: Created PIE world by copying editor world from /Game/Maps/QuentinTEst.QuentinTest to /Game/Maps/UEDPIE_0_QuentinTEst.QuentinTest (0.004084s) LogSubsystemCollection: Failed to initialize subsystem dependency (WorldPartitionSubsystem) LogMatchMakingSubsystem: UMatchMakingSubsystem::Initialize LogChaos: FPhysicsSolverBase::AsyncDt:-1.000000 LogAIModule: Creating AISystem for world QuentinTest LogPlayLevel: PIE: World Init took: (0.001060s) LogUObjectHash: Compacting FUObjectHashTables data took 0.69ms LogBackend: Should create subsystem in: GameInstance_1 LogBackend: Error: Missing DatabaseProviderClass from the BackendSettings LogCreatorsSubsystem: Display: Adding creator data: /GarouExamples/Resources/Data/Example_Demo_InfoPanel1.Example_Demo_InfoPanel1 LogCreatorsSubsystem: Display: Adding creator data: /GarouExamples/Resources/Data/Example_Demo_InfoPanel.Example_Demo_InfoPanel LogCreatorsSubsystem: Display: Adding creator data: /GarouExamples/Resources/Data/ExampleInteractionWorldData.ExampleInteractionWorldData LogAudio: Display: Creating Audio Device: Id: 3, Scope: Unique, Realtime: True LogAudioMixer: Display: Audio Mixer Platform Settings: LogAudioMixer: Display: Sample Rate: 48000 LogAudioMixer: Display: Callback Buffer Frame Size Requested: 256 LogAudioMixer: Display: Callback Buffer Frame Size To Use: 256 LogAudioMixer: Display: Number of buffers to queue: 7 LogAudioMixer: Display: Max Channels (voices): 0 LogAudioMixer: Display: Number of Async Source Workers: 0 LogAudio: Display: AudioDevice MaxSources: 32 LogAudio: Display: Audio Spatialization Plugin: None (built-in). LogAudio: Display: Audio Source Data Override Plugin: Project Acoustics LogAudio: Display: Audio Reverb Plugin: None (built-in). LogAudio: Display: Audio Occlusion Plugin: None (built-in). LogAudioMixer: Display: Initializing audio mixer using platform API: 'XAudio2' LogAudioMixer: Display: Using Audio Hardware Device Casque (Bowers & Wilkins PX7 Stereo) LogAudioMixer: Display: Initializing Sound Submixes... LogAudioMixer: Display: Creating Master Submix 'MasterSubmixDefault' LogAudioMixer: Display: Creating Master Submix 'MasterReverbSubmixDefault' LogAudioMixer: FMixerPlatformXAudio2::StartAudioStream() called. InstanceID=3 LogAudioMixer: Display: Output buffers initialized: Frames=256, Channels=2, Samples=512, InstanceID=3 LogAudioMixer: Display: Starting AudioMixerPlatformInterface::RunInternal(), InstanceID=3 LogAudioMixer: Display: FMixerPlatformXAudio2::SubmitBuffer() called for the first time. InstanceID=3 LogInit: FAudioDevice initialized. LogAudio: Display: Audio Device (ID: 3) registered with world 'QuentinTest'. LogLoad: Game class is 'BP_DefaultMiraGameMode_C' LogWorld: Bringing World /Game/Maps/UEDPIE_0_QuentinTEst.QuentinTest up for play (max tick rate 60) at 2022.08.18-19.06.42 LogWorld: Bringing up level for play took: 0.001384 LogOnline: OSS: Created online subsystem instance for: :Context_3 LogDev: ASimpleGameMode::GetDefaultPawnClassForController_Implementation Spawning pawn class BP_FakeRPMPawn_C (login option Tracked) LogVoiceEncode: Display: EncoderVersion: libopus unknown LogOnlineVoice: OSS: StopLocalVoiceProcessing(0) returned 0xFFFFFFFF LogOnlineVoice: OSS: Stopping networked voice for user: 0 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart LogGameState: Match State Changed from EnteringMap to WaitingToStart LogGameMode: Display: Match State Changed from WaitingToStart to InProgress LogDev: ASimpleGameMode::GetDefaultPawnClassForController_Implementation Spawning pawn class BP_FakeRPMPawn_C (login option Tracked) LogDev: ASimpleGameMode::GetDefaultPawnClassForController_Implementation Spawning pawn class BP_FakeRPMPawn_C (login option Tracked) LogMillicastPlayer: Using secure viewer LogVoIP: UVoiceRecordingComponent::StartRecording Not yet initialized. Initializing now. LogVoIP: UVoiceRecordingComponent::Initialize Setting recording rate to desired rate: R24000 LogGameState: Match State Changed from WaitingToStart to InProgress LogMatchMakingSubsystem: Match making was successfully spawned. Feature will be enabled PIE: Server logged in PIE: Play in editor total start time 0.075 seconds. LogPlayerController: Warning: Request for value of axis key 'MouseX' returning 0 as it is not bound on this input component. LogPlayerController: Warning: Request for value of axis key 'MouseY' returning 0 as it is not bound on this input component. LogVoIP: UVoIPComponent::Initialize Bound socket for ServerSessionUserID to port: 2310 LogVoIP: UVoiceRecordingComponent::StartRecording Still waiting for server verification of recording rate. Re-sending request for rate: R24000. LogSlate: New Slate User Created. User Index 8, Is Virtual User: 1 LogSlate: Slate User Registered. User Index 8, Is Virtual User: 1 LogAvatar: UTrackedAvatarComponent::Initialize No HMD detected. Spawning avatar at random offset. This can be disabled in project settings (AvatarSystemSettings) LogVoIP: UVoiceRecordingComponent::OnPermissionsResponse Audio permissions response: true LogVoIP: UVoiceRecordingComponent::OnPermissionsResponse Voice module available, creating voice capture. (in game thread? true) LogMillicastPlayer: Director response : {"status":"success","data":{"wsUrl":"wss://live-west.millicast.com/ws/v2/sub/f9ee8f44bea644b9929c67bac66b0b30","urls":["wss://live-west.millicast.com/ws/v2/sub/f9ee8f44bea644b9929c67bac66b0b30"],"jwt":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2NjA4NDI0MDMsImV4cCI6MTY2MDg0MjQ2MywiaWF0IjoxNjYwODQyNDAzLCJpc3MiOiJodHRwczovL2RpcmVjdG9yLm1pbGxpY2FzdC5jb20iLCJhdWQiOiJNaWxsaWNhc3REaXJlY3RvclJlc291cmNlIiwibWlsbGljYXN0Ijp7InR5cGUiOiJTdWJzY3JpYmUiLCJzdHJlYW1BY2NvdW50SWQiOiJWZEh5SFciLCJzdHJlYW1OYW1lIjoiZTFkbDdnd2s0ZCIsInNlcnZlcklkIjoiZjllZThmNDRiZWE2NDRiOTkyOWM2N2JhYzY2YjBiMzAiLCJhbGxvd2VkSXBBZGRy ZXNzZXMiOltdLCJhbGxvd2VkQ291bnRyaWVzIjpbXSwiZGVuaWVkQ291bnRyaWVzIjpbXSwiY3VzdG9tRGF0YSI6eyJpc0RpcmVjdG9yIjp0cnVlLCJyZXF1ZXN0SWQiOm51bGwsInRva2VuIjoiZmIxYjBhOGIwODk2ODQxYjIwNmY2YWRjY2RkZjY0NGNmZWExZjVhOTk0YTA4NjZmY2ZlOGRiZjk1MjYwOGRmNSIsInN1YnNjcmliZVJlcXVpcmVzQXV0aCI6bnVsbH19fQ.xCYzCLMe4c-9okUQBJrKiz9yyCHzmwoJyuA0FOEICy0","iceServers":[{"urls":["stun:global.stun.twilio.com:3478?transport=udp"]},{"urls":["turn:global.turn.twilio.com:3478?transport=udp"],"username":"c0b7706a2223495e5b984391a0c541b505fe0819c27d3e5840b479da356d4eea","credential":"NYZcUGZ4IrL4/S325ikS39xUhxoFqrJ/h5NwaM6Bx60="},{"ur ls":["turn:global.turn.twilio.com:3478?transport=tcp"],"username":"c0b7706a2223495e5b984391a0c541b505fe0819c27d3e5840b479da356d4eea","credential":"NYZcUGZ4IrL4/S325ikS39xUhxoFqrJ/h5NwaM6Bx60="},{"urls":["turn:global.turn.twilio.com:443?transport=tcp"],"username":"c0b7706a2223495e5b984391a0c541b505fe0819c27d3e5840b479da356d4eea","credential":"NYZcUGZ4IrL4/S325ikS39xUhxoFqrJ/h5NwaM6Bx60="}],"streamAccountId":"VdHyHW"}} LogMillicastPlayer: WsUrl : wss://live-west.millicast.com/ws/v2/sub/f9ee8f44bea644b9929c67bac66b0b30 jwt : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2NjA4NDI0MDMsImV4cCI6MTY2MDg0MjQ2MywiaWF0IjoxNjYwODQyNDAzLCJpc3MiOiJodHRwczovL2RpcmVjdG9yLm1pbGxpY2FzdC5jb20iLCJhdWQiOiJNaWxsaWNhc3REaXJlY3RvclJlc291cmNlIiwibWlsbGljYXN0Ijp7InR5cGUiOiJTdWJzY3JpYmUiLCJzdHJlYW1BY2NvdW50SWQiOiJWZEh5SFciLCJzdHJlYW1OYW1lIjoiZTFkbDdnd2s0ZCIsInNlcnZlcklkIjoiZjllZThmNDRiZWE2NDRiOTkyOWM2N2JhYzY2YjBiMzAiLCJhbGxvd2VkSXBBZGRyZXNzZXMiOltdLCJhbGxvd2VkQ291bnRyaWVzIjpbXSwiZGVuaWVkQ291bnRyaWVzIjpbXSwiY3VzdG9tRGF0YSI6eyJpc0RpcmVjdG9yIjp0cnVlLCJyZXF1ZXN0SWQiOm51bGwsInRva2VuIjoiZmIxYjBhOGIwODk2ODQxYjIwNmY2YWRjY2RkZjY0NGNmZWExZ jVhOTk0YTA4NjZmY2ZlOGRiZjk1MjYwOGRmNSIsInN1YnNjcmliZVJlcXVpcmVzQXV0aCI6bnVsbH19fQ.xCYzCLMe4c-9okUQBJrKiz9yyCHzmwoJyuA0FOEICy0 LogMillicastPlayer: Millicast WebSocket Connected LogMillicastPlayer: pc.createOffer() | sucess sdp : v=0 o=- 7532110104031471000 2 IN IP4 127.0.0.1 s=- t=0 0 a=group:BUNDLE 0 1 a=msid-semantic: WMS m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:JmZz a=ice-pwd:ExF3tMNZWM7uANKOs/rubkDL a=ice-options:trickle renomination a=fingerprint:sha-256 98:25:89:EE:7B:4E:03:2D:A1:6B:F0:5E:92:92:65:39:35:71:2F:25:B5:06:E1:6E:4D:19:B6:88:F0:47:24:DC a=setup:actpass a=mid:0 a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id a=recvonly a=rtcp-mux a=rtpmap:111 opus/48000/2 a=rtcp-fb:111 transport-cc a=fmtp:111 minptime=10;useinbandfec=1 a=rtpmap:103 ISAC/16000 a=rtpmap:104 ISAC/32000 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:106 CN/32000 a=rtpmap:105 CN/16000 a=rtpmap:13 CN/8000 a=rtpmap:110 telephone-event/48000 a=rtpmap:112 telephone-event/32000 a=rtpmap:113 telephone-event/16000 a=rtpmap:126 telephone-event/8000 m=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 125 127 c=IN IP4 0.0.0.0 a=rtcp:9 IN IP4 0.0.0.0 a=ice-ufrag:JmZz a=ice-pwd:ExF3tMNZWM7uANKOs/rubkDL a=ice-options:trickle renomination a=fingerprint:sha-256 98:25:89:EE:7B:4E:03:2D:A1:6B:F0:5E:92:92:65:39:35:71:2F:25:B5:06:E1:6E:4D:19:B6:88:F0:47:24:DC a=setup:actpass a=mid:1 a=extmap:14 urn:ietf:params:rtp-hdrext:toffset a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time a=extmap:13 urn:3gpp:video-orientation a=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01 a=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay a=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type a=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing a=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07 a=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space a=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid a=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id a=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id a=recvonly a=rtcp-mux a=rtcp-rsize a=rtpmap:96 VP8/90000 a=rtcp-fb:96 goog-remb a=rtcp-fb:96 transport-cc a=rtcp-fb:96 ccm fir a=rtcp-fb:96 nack a=rtcp-fb:96 nack pli a=rtpmap:97 rtx/90000 a=fmtp:97 apt=96 a=rtpmap:98 VP9/90000 a=rtcp-fb:98 goog-remb a=rtcp-fb:98 transport-cc a=rtcp-fb:98 ccm fir a=rtcp-fb:98 nack a=rtcp-fb:98 nack pli a=fmtp:98 profile-id=0 a=rtpmap:99 rtx/90000 a=fmtp:99 apt=98 a=rtpmap:100 VP9/90000 a=rtcp-fb:100 goog-remb a=rtcp-fb:100 transport-cc a=rtcp-fb:100 ccm fir a=rtcp-fb:100 nack a=rtcp-fb:100 nack pli a=fmtp:100 profile-id=2 a=rtpmap:101 rtx/90000 a=fmtp:101 apt=100 a=rtpmap:102 red/90000 a=rtpmap:125 rtx/90000 a=fmtp:125 apt=102 a=rtpmap:127 ulpfec/90000 LogMillicastPlayer: pc.setLocalDescription() | sucess LogMillicastPlayer: Send command : view Data : { "type": "cmd", "transId": 18467, "name": "view", "data": { "streamId": "e1dl7gwk4d", "sdp": "v=0\r\no=- 7532110104031471000 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1\r\na=msid-semantic: WMS\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:JmZz\r\na=ice-pwd:ExF3tMNZWM7uANKOs/rubkDL\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 98:25:89:EE:7B:4E:03:2D:A1:6B:F0:5E:92:92:65:39:35:71:2F:25:B5:06:E1:6E:4D:19:B6:88:F0:47:24:DC\r\na=setup:actpass\r\na=mid:0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 http://www.webrtc.org/experime nts/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:111 opus/48000/2\r\na=rtcp-fb:111 transport-cc\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\ r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 125 127\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:JmZz\r\na=ice-pwd:ExF3tMNZWM7uANKOs/rubkDL\r\na=ice-options:trickle renomination\r\na=fingerprint:sha-256 98:25:89:EE:7B:4E:03:2D:A1:6B:F0:5E:92:92:65:39:35:71:2F:25:B5:06:E1:6E:4D:19:B6:88:F0:47:24:DC\r\na=setup:actpass\r\na=mid:1\r\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:2 http: //www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:13 urn:3gpp:video-orientation\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:12 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:11 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:8 http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07\r\na=extmap:9 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes :mid\r\na=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=recvonly\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:96 VP8/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 transport-cc\r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtpmap:97 rtx/90000\r\na=fmtp:97 apt=96\r\na=rtpmap:98 VP9/90000\r\na=rtcp-fb:98 goog-remb\r\na=rtcp-fb:98 transport-cc\r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack\r\na=rtcp-fb:98 nack pli\r\na=fmtp:98 profile-id=0\r\na=rtpmap:99 rtx/90000\r\na=fmtp:99 apt=98\r\na=r tpmap:100 VP9/90000\r\na=rtcp-fb:100 goog-remb\r\na=rtcp-fb:100 transport-cc\r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack\r\na=rtcp-fb:100 nack pli\r\na=fmtp:100 profile-id=2\r\na=rtpmap:101 rtx/90000\r\na=fmtp:101 apt=100\r\na=rtpmap:102 red/90000\r\na=rtpmap:125 rtx/90000\r\na=fmtp:125 apt=102\r\na=rtpmap:127 ulpfec/90000\r\n", "events": [ "active", "inactive", "stopped", "vad", "layers", "viewercount" ] } } LogMillicastPlayer: Millicast WebSocket new Message : {"type":"response","transId":18467,"data":{"sdp":"v=0\r\no=- 1660842404228 1 IN IP4 127.0.0.1\r\ns=semantic-sdp\r\nc=IN IP4 0.0.0.0\r\nt=0 0\r\na=ice-lite\r\na=msid-semantic: WMS *\r\na=group:BUNDLE 0 1\r\nm=audio 9 UDP/TLS/RTP/SAVPF 111\r\na=rtpmap:111 opus/48000/2\r\na=fmtp:111 minptime=10;useinbandfec=1\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=setup:passive\r\na=mid:0\r\na=msid:0901aebe-75f0-41ee-a8df-ac174e3083e2 audio1193326\r\na=sendonly\r\na=ice-ufrag:e5269e5cf21 da5fd\r\na=ice-pwd:f39e81d941c799c1b0ea40303fc69a5eb5ddb9e8a35a7434\r\na=fingerprint:sha-256 EB:D0:F2:A1:62:FC:69:6B:95:EB:6B:40:A6:DF:FF:03:C2:0E:83:05:B9:66:10:82:19:62:A4:BB:34:01:FD:70\r\na=candidate:1 1 UDP 2130706431 165.227.52.105 42987 typ host\r\na=ssrc:1243980600 cname:0901aebe-75f0-41ee-a8df-ac174e3083e2\r\na=ssrc:1243980600 msid:0901aebe-75f0-41ee-a8df-ac174e3083e2 audio1193326\r\na=rtcp-mux\r\na=rtcp-rsize\r\nm=video 9 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101\r\na=rtpmap:96 VP8/90000\r\na=rtpmap:97 rtx/90000\r\na=rtpmap:98 VP9/90000\r\na=rtpmap:99 rtx/90000\r\na=rtpmap:100 VP9/90000\ r\na=rtpmap:101 rtx/90000\r\na=fmtp:97 apt=96\r\na=fmtp:99 apt=98\r\na=fmtp:98 profile-id=0\r\na=fmtp:101 apt=100\r\na=fmtp:100 profile-id=2\r\na=rtcp-fb:96 goog-remb \r\na=rtcp-fb:96 ccm fir\r\na=rtcp-fb:96 nack \r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 transport-cc \r\na=rtcp-fb:98 goog-remb \r\na=rtcp-fb:98 ccm fir\r\na=rtcp-fb:98 nack \r\na=rtcp-fb:98 nack pli\r\na=rtcp-fb:98 transport-cc \r\na=rtcp-fb:100 goog-remb \r\na=rtcp-fb:100 ccm fir\r\na=rtcp-fb:100 nack \r\na=rtcp-fb:100 nack pli\r\na=rtcp-fb:100 transport-cc \r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-ti me\r\na=extmap:13 urn:3gpp:video-orientation\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:5 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:6 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=setup:passive\r\na=mid:1\r\na=msid:0901aebe-75f0-41ee-a8df-ac174e3083e2 video1193327\r\na=sendonly\r\na=ice-ufrag:e5269e5cf21da5fd\r\na=ice-pwd:f39e81d941c799c1b0ea40303fc69a5eb5ddb9e8a35a7434\r\na=fingerprint:sha-256 EB:D0:F2:A1:62:FC:69:6B:95:EB:6B:40:A6:DF:FF:03:C2:0E:83:05:B9:66 :10:82:19:62:A4:BB:34:01:FD:70\r\na=candidate:1 1 UDP 2130706431 165.227.52.105 42987 typ host\r\na=ssrc:453556985 cname:0901aebe-75f0-41ee-a8df-ac174e3083e2\r\na=ssrc:453556985 msid:0901aebe-75f0-41ee-a8df-ac174e3083e2 video1193327\r\na=ssrc:1129147701 cname:0901aebe-75f0-41ee-a8df-ac174e3083e2\r\na=ssrc:1129147701 msid:0901aebe-75f0-41ee-a8df-ac174e3083e2 video1193327\r\na=ssrc-group:FID 453556985 1129147701\r\na=rtcp-mux\r\na=rtcp-rsize\r\n","subscriberId":"f9ee8f44bea644b9929c67bac66b0b30","clusterId":"do-sfo-legacy","streamId":"VdHyHW/e1dl7gwk4d","streamViewId":1658178531194}} LogMillicastPlayer: Start Playout LogMillicastPlayer: Set remote description suceeded LogMillicastPlayer: Millicast WebSocket new Message : {"type":"event","name":"active","data":{"streamId":"VdHyHW/e1dl7gwk4d","sourceId":null,"tracks":[{"trackId":"video","media":"video"}]}} LogMillicastPlayer: Received event : active LogMillicastPlayer: Millicast WebSocket new Message : {"type":"event","name":"viewercount","data":{"viewercount":1}} LogMillicastPlayer: Received event : viewercount LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden LogWorld: BeginTearingDown for /Game/Maps/UEDPIE_0_QuentinTEst LogMillicastPlayer: Stop Playout LogWorld: UWorld::CleanupWorld for QuentinTest, bSessionEnded=true, bCleanupResources=true LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated LogPlayLevel: Display: Shutting down PIE online subsystems LogSlate: InvalidateAllWidgets triggered. All widgets were invalidated LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=3 LogAudioMixer: FMixerPlatformXAudio2::StopAudioStream() called. InstanceID=3 LogSlate: Slate User Unregistered. User Index 8 LogSlate: Slate User Destroyed. User Index 8, Is Virtual User: 1 LogUObjectHash: Compacting FUObjectHashTables data took 0.53ms LogMillicastPlayer: Millicast WebSocket Closed LogPlayLevel: Display: Destroying online subsystem :Context_3

Good luck with that one since it seems most likely related to multithreading I think but I could be wrong.

Cheers, Quentin

MaxDorn96 commented 2 years ago

I was able to reproduce this as well with our 4.27.2 Project.

Since we updated the Millicast Plugin (1.4.0), which now uses the OnAudio and OnVideoTrack Events I was able to see that once the Authentication on an Millicast Stream succeeds everything gets called correctly except for the OnVideoTrack which is never called (So OnAudio etc. is called just as intended).

p-delorme commented 1 year ago

Hello @MaxDorn96,

I was running into the same issue, but the reason was that you need to modify the codec of the broadcast to use VP8 or VP9, in the media settings.

image