From b58930c6877891d2ace843a6ae8389a44927f66c Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 13 Jun 2021 15:30:37 -0500 Subject: [PATCH] Don't start the decoder thread in pull-mode --- src/VideoStream.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/VideoStream.c b/src/VideoStream.c index 7960705..7986489 100644 --- a/src/VideoStream.c +++ b/src/VideoStream.c @@ -197,7 +197,7 @@ void stopVideoStream(void) { PltInterruptThread(&udpPingThread); PltInterruptThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltInterruptThread(&decoderThread); } @@ -207,13 +207,13 @@ void stopVideoStream(void) { PltJoinThread(&udpPingThread); PltJoinThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltJoinThread(&decoderThread); } PltCloseThread(&udpPingThread); PltCloseThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltCloseThread(&decoderThread); } @@ -260,7 +260,7 @@ int startVideoStream(void* rendererContext, int drFlags) { return err; } - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { err = PltCreateThread("VideoDec", DecoderThreadProc, NULL, &decoderThread); if (err != 0) { VideoCallbacks.stop(); @@ -281,15 +281,15 @@ int startVideoStream(void* rendererContext, int drFlags) { VideoCallbacks.stop(); stopVideoDepacketizer(); PltInterruptThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltInterruptThread(&decoderThread); } PltJoinThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltJoinThread(&decoderThread); } PltCloseThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltCloseThread(&decoderThread); } closeSocket(rtpSocket); @@ -305,15 +305,15 @@ int startVideoStream(void* rendererContext, int drFlags) { VideoCallbacks.stop(); stopVideoDepacketizer(); PltInterruptThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltInterruptThread(&decoderThread); } PltJoinThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltJoinThread(&decoderThread); } PltCloseThread(&receiveThread); - if ((VideoCallbacks.capabilities & CAPABILITY_DIRECT_SUBMIT) == 0) { + if ((VideoCallbacks.capabilities & (CAPABILITY_DIRECT_SUBMIT | CAPABILITY_PULL_RENDERER)) == 0) { PltCloseThread(&decoderThread); } closeSocket(rtpSocket);