Mobile memory usage on Android leading to downgraded video

My app app uses the Jitsi SDK to embed Jitsi calling into the application. While in the JitsiMeetActivity, the application memory usage tracks up to the 512 MB ram - the default upper limit for most android images. As this happens, the video resolution and framerate gets steadily downgraded from hd, right down to 180p.

I think that the React Native component that handles the video transcoding is being starved of available memory, and is downgrading to keep the call alive. If the binaries that handled the video processing were compiled with the NDK, I don’t think that the memory allocations would count towards the application max.

Is there any active effort to improve the Android experience, or to optimize the SDKs? Our use case is deploying to an android media box which has 2GB of RAM, and a 2.0Ghz CPU Quad Core Cortex A53, GPU: ARM MALI G31 MP2, 850MHz in case that matters.

Any help greatly appreciated.

That sounds insanely high. Did you mean MB?

What SDK version did you test?

Lol, yes I did mean MB - not GB :-). I’ve updated the question.

We’re using the latest I believe: org.jitsi.react:jitsi-meet-sdk:3.+

We are on SDK 6 already, 3 is years old at this point :sweat_smile:

1 Like

@saghul Oh my days! I’ve no idea where my using version 3 came from - I thought from the mobile SDK sample apps, but I could be wrong.

Thanks for noticing that - I’ve upgraded and tried both version 5 and version 6. However, the behaviour and video quality is still the same (terrible). The framerate drops as low as 10fps, and the resolution still floats below 200p, and and sub 20fps (see below)

I’ve tried experimenting with all sorts of settings - .setFeatureFlag(“resolution”, 480) / .setFeatureFlag(“resolution”, 720). While the resolution is respected, it does nothing to improve the video quality. Could it be memory or CPU throttled? When profiling the application (which does appear to have a slight negative effect on performance anyway - frame rate will drop a little), but however - this is the readout:

Image 11

Another gripe - using version 6 of the SDK appears to not respect the: .setFeatureFlag(“welcomepage.enabled”, false) setting. And version 5.2.0 just crashes immediately on entering a conference room. I’ve dialed it back to version 5.1.0 (as per the current sample SDK examples). Also - the remote control D-pad control in the Jitsi activity just doesn’t work at all.

The memory usage does appear to be OK - certainly upgrading the libraries had a positive effect on the memory usage (down to a little over 256MB).

It’s a nightmare…

THat looks about right. CPU is not burning. Do you have good network connectivity?

That’s the default. What error do you get if you set it? Can you please share a traceback?

What remote control d-pad?