mirror of
https://github.com/moonlight-stream/moonlight-common-c.git
synced 2025-08-18 01:15:46 +00:00
Move ConnectionListener initialization prior to possible Limelog() usage
This commit is contained in:
parent
c2471157c0
commit
86751d9162
@ -173,6 +173,19 @@ int LiStartConnection(PSERVER_INFORMATION serverInfo, PSTREAM_CONFIGURATION stre
|
|||||||
void* audioContext, int arFlags) {
|
void* audioContext, int arFlags) {
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
|
// Replace missing callbacks with placeholders
|
||||||
|
fixupMissingCallbacks(&drCallbacks, &arCallbacks, &clCallbacks);
|
||||||
|
memcpy(&VideoCallbacks, drCallbacks, sizeof(VideoCallbacks));
|
||||||
|
memcpy(&AudioCallbacks, arCallbacks, sizeof(AudioCallbacks));
|
||||||
|
|
||||||
|
// Hook the termination callback so we can avoid issuing a termination callback
|
||||||
|
// after LiStopConnection() is called.
|
||||||
|
//
|
||||||
|
// Initialize ListenerCallbacks before anything that could call Limelog().
|
||||||
|
originalTerminationCallback = clCallbacks->connectionTerminated;
|
||||||
|
memcpy(&ListenerCallbacks, clCallbacks, sizeof(ListenerCallbacks));
|
||||||
|
ListenerCallbacks.connectionTerminated = ClInternalConnectionTerminated;
|
||||||
|
|
||||||
NegotiatedVideoFormat = 0;
|
NegotiatedVideoFormat = 0;
|
||||||
memcpy(&StreamConfig, streamConfig, sizeof(StreamConfig));
|
memcpy(&StreamConfig, streamConfig, sizeof(StreamConfig));
|
||||||
OriginalVideoBitrate = streamConfig->bitrate;
|
OriginalVideoBitrate = streamConfig->bitrate;
|
||||||
@ -204,17 +217,6 @@ int LiStartConnection(PSERVER_INFORMATION serverInfo, PSTREAM_CONFIGURATION stre
|
|||||||
goto Cleanup;
|
goto Cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replace missing callbacks with placeholders
|
|
||||||
fixupMissingCallbacks(&drCallbacks, &arCallbacks, &clCallbacks);
|
|
||||||
memcpy(&VideoCallbacks, drCallbacks, sizeof(VideoCallbacks));
|
|
||||||
memcpy(&AudioCallbacks, arCallbacks, sizeof(AudioCallbacks));
|
|
||||||
|
|
||||||
// Hook the termination callback so we can avoid issuing a termination callback
|
|
||||||
// after LiStopConnection() is called
|
|
||||||
originalTerminationCallback = clCallbacks->connectionTerminated;
|
|
||||||
memcpy(&ListenerCallbacks, clCallbacks, sizeof(ListenerCallbacks));
|
|
||||||
ListenerCallbacks.connectionTerminated = ClInternalConnectionTerminated;
|
|
||||||
|
|
||||||
alreadyTerminated = 0;
|
alreadyTerminated = 0;
|
||||||
ConnectionInterrupted = 0;
|
ConnectionInterrupted = 0;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user