Video Capture (webcam): [HACK] do synch frame notifications#19
Conversation
- Recent change moved webcam video capture to asynchronous signals towards upper layers - But some upper layers (e.g. P4C) have heavyweight handlers - Heavyweight enough to not service the thread message queue - ... which can create a pileup of video frames
|
//cc: @digitalmouse12 ( @willkelleher if he's still looking), @DinhNguyenCat This sort of reverts timing to what webrtc would do. The issue with the asynchronous implementation is that if you have a slow network, or similar, our video encoding can slow down enough to not service the video frame queue quickly enough. This looks like a really bad (and unsurvivable) memory leak. |
|
So is the "OnEncoded" handler blocking for too long when the network is slow, causing the encoder to slow down the capture handler thread, thereby building up a huge queue of frames that can't be handled? |
|
Didn't trace all the way down to onencoded, but the time across the video Either way, some more work should probably be done there, but until then
|
|
What does the phenomenon look like ? Is it about recording with webcam and video quality really bad/slow ? Just curious if I'm seeing same issue with you. |
|
@longk15t : this was in a call (low/constrained uplink) with a webcam. Video would be really sluggish/delayed and memory would start ramping hard until Personify crashed (out of memory). |
|
@DinhNguyenCat , @digitalmouse12 : any thoughts (note: feedback on this is lower priority than chroma stuff--not in critical path)? |
signals towards upper layers