Resolution issue with multiple meetings hosted

When I host 4 meetings, then resolution is perfect in all of them.

But as I host more than 5-6 meetings, & run any meeting now, the issue is that now resolution reduced to very bad in all of these meetings, no matter which meeting I join.

I than again tried to close 1-2 meetings & then join again any of running meeting & meeting resolution is fine again.

I have tried this many times & found that whenever hosted events are more than 5/6 video resolution turned to very blurry or bad & as I stop some of these meetings & keep running meeting less than 5 & join any meeting again, resolution gone fine again.

There seems some issue with the SDK ?

As when i try to run any of these meetings (> 6) on zoom app, video resolution seems fine, so we can’t say that there is some zoom related settings issue…

Here is my code:

JoinMeetingOptions options = getJoinMeetingOptions();
JoinMeetingParams params = new JoinMeetingParams();
params.displayName = AppGlobal.DisplayName;
params.meetingNo = AppGlobal.MeetingID;
params.password = AppGlobal.MeetingPassword;
meetingService.joinMeetingWithParams(mContext, params, options);

private static JoinMeetingOptions getJoinMeetingOptions()
{
/* added new code */
AppGlobal.zoomSDK.getMeetingSettingsHelper().setSwitchVideoLayoutAccordingToUserCountEnabled(true);
AppGlobal.zoomSDK.getMeetingSettingsHelper().setGalleryViewCapacity(4);
AppGlobal.zoomSDK.getMeetingSettingsHelper().setNoUserJoinOrLeaveTipEnabled(true);
AppGlobal.zoomSDK.getMeetingSettingsHelper().setHideNoVideoUsersEnabled(false);
AppGlobal.zoomSDK.getMeetingSettingsHelper().setTurnOffMyVideoWhenJoinMeeting(true);
AppGlobal.zoomSDK.getMeetingSettingsHelper().setAutoConnectVoIPWhenJoinMeeting(true);
AppGlobal.zoomSDK.getMeetingSettingsHelper().setGalleryVideoViewDisabled(false);

/*******************/

JoinMeetingOptions opts = new JoinMeetingOptions();
opts.no_driving_mode = true;
opts.no_invite = true;
opts.no_meeting_end_message = true;
opts.no_meeting_error_message = true;
opts.no_titlebar = true;
opts.no_bottom_toolbar = true;
opts.no_dial_in_via_phone = true;
opts.no_dial_out_to_phone = true;
opts.no_disconnect_audio = true;
opts.no_record = true;
opts.no_share = true;
opts.no_video = true;
opts.meeting_views_options = MeetingViewsOptions.NO_BUTTON_VIDEO + MeetingViewsOptions.NO_BUTTON_AUDIO +
		MeetingViewsOptions.NO_BUTTON_SHARE + MeetingViewsOptions.NO_BUTTON_PARTICIPANTS +
		MeetingViewsOptions.NO_BUTTON_MORE + MeetingViewsOptions.NO_TEXT_MEETING_ID +
		MeetingViewsOptions.NO_TEXT_PASSWORD + MeetingViewsOptions.NO_BUTTON_SWITCH_CAMERA +
		MeetingViewsOptions.NO_BUTTON_SWITCH_AUDIO_SOURCE + MeetingViewsOptions.NO_BUTTON_LEAVE;
opts.invite_options = InviteOptions.INVITE_DISABLE_ALL;
//opts.customer_key = meetingOptions.customer_key;
//opts.custom_meeting_id = meetingOptions.custom_meeting_id;
opts.no_unmute_confirm_dialog = true;
opts.no_webinar_register_dialog = true;
opts.no_chat_msg_toast = true;
opts.no_audio = true;
return opts;

}

Hi @nilefire103, thanks for the post.

To be clear, you mention hosting 5-6 meetings. Are you saying that you are trying to host all of these meeting concurrently from the same SDK instance, or that you have started 5-6 meetings sequentially?

Thanks!

One meeting Id, One Password & 6 Host. All meeting running together sequentially

Hi @nilefire103,

I was not able to reproduce the behavior you are describing. Can you please confirm which version of the SDK you are using?

Are the below steps correct when reproducing?

  1. Using the SDK, start a meeting
  2. Join the meeting from another device with video on
  3. End the meeting
  4. Repeat steps 1/2/3 5-6 times
  5. Check video quality

Thanks!

yes, following same steps…but host meeting from computer, join on android devices…
using latest sdk version

& I have also noticed that if i join directly with zoom app, then resolution is fine, but with android sdk, its resolution get poor when total meeting increases to 5-6

On zoom app, I get gallery view fine, resolution fine, all good, but not using android sdk in my app…

Hi @nilefire103,

Thank you for clarifying that you are not using the SDK to host the meeting. Can you also confirm the version of the SDK?

Thanks!

zoom-sdk-android-5.7.1.1267

Hi @nilefire103,

Can you please try updating to the latest version and testing again?

Thanks!

After upgrading to version: zoom-sdk-android-5.9.1.3674

Resolution issue is still same

However on Android 12, getting this error:

Getting this error:

2021-12-16 18:53:59.392 16080-16080/com.live.ultrafast E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.live.ultrafast, PID: 16080
java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.live.ultrafast: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
at android.app.ActivityThread.handleCreateService(ActivityThread.java:4500)
at android.app.ActivityThread.access$1700(ActivityThread.java:247)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2072)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: java.lang.IllegalArgumentException: com.live.ultrafast: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
at android.app.PendingIntent.getActivity(PendingIntent.java:444)
at android.app.PendingIntent.getActivity(PendingIntent.java:408)
at us.zoom.sdk.SDKNotificationMgr.showConfNotificationForSDK(SDKNotificationMgr.java:10)
at com.zipow.videobox.share.ScreenShareServiceForSDK.onCreate(ScreenShareServiceForSDK.java:3)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:4487)
… 9 more
2021-12-16 18:53:59.393 16080-16080/com.live.ultrafast D/CrashErrorReporter: @Override uncaughtException
2021-12-16 18:53:59.397 16080-16080/com.live.ultrafast D/CrashErrorReporter: @CollectPackageInformation
2021-12-16 18:53:59.399 16080-16080/com.live.ultrafast E/CrashErrorReporter: !Error Report: stack-1639661039398.stacktrace
Error Report collected on : Thu Dec 16 18:53:59 GMT+05:30 2021

Environment Details : 
===================== 
  Version  : 1.2
  Package  : com.live.ultrafast
  FilePath : /data/user/0/com.live.ultrafast/files

  Package Data 
      Phone Model : sdk_gphone64_x86_64
      Android Ver : 12
      Board       : goldfish_x86_64
      Brand       : google
      Device      : emulator64_x86_64_arm64
      Display     : SE1A.211012.001
      Finger Print: google/sdk_gphone64_x86_64/emulator64_x86_64_arm64:12/SE1A.211012.001/7818354:user/release-keys
      Host        : abfarm-east4-083
      ID          : SE1A.211012.001
      Model       : sdk_gphone64_x86_64
      Product     : sdk_gphone64_x86_64
      Tags        : release-keys
      Time        : 1634092725000
      Type        : user
      User        : android-build
  Internal Memory
      Total    : 6094400k
      Available: 4829476k

Stack : 
======= 
java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.live.ultrafast: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    at android.app.ActivityThread.handleCreateService(ActivityThread.java:4500)
    at android.app.ActivityThread.access$1700(ActivityThread.java:247)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2072)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7839)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
 Caused by: java.lang.IllegalArgumentException: com.live.ultrafast: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
    at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
    at android.app.PendingIntent.getActivity(PendingIntent.java:444)
    at android.app.PendingIntent.getActivity(PendingIntent.java:408)
    at us.zoom.sdk.SDKNotificationMgr.showConfNotificationForSDK(SDKNotificationMgr.java:10)
    at com.zipow.videobox.share.ScreenShareServiceForSDK.onCreate(ScreenShareServiceForSDK.java:3)
    at android.app.ActivityThread.handleCreateService(ActivityThread.java:4487)
    	... 9 more

Cause : 
======= 
java.lang.RuntimeException: Unable to create service com.zipow.videobox.share.ScreenShareServiceForSDK: java.lang.IllegalArgumentException: com.live.ultrafast: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    at android.app.ActivityThread.handleCreateService(ActivityThread.java:4500)
    at android.app.ActivityThread.access$1700(ActivityThread.java:247)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2072)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loopOnce(Looper.java:201)
    at android.os.Looper.loop(Looper.java:288)
    at android.app.ActivityThread.main(ActivityThread.java:7839)
    at java.lang.reflect.Method.invoke(Native Method)

2021-12-16 18:53:59.399 16080-16080/com.live.ultrafast E/CrashErrorReporter: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: java.lang.IllegalArgumentException: com.live.ultrafast: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
at android.app.PendingIntent.getActivity(PendingIntent.java:444)
at android.app.PendingIntent.getActivity(PendingIntent.java:408)
at us.zoom.sdk.SDKNotificationMgr.showConfNotificationForSDK(SDKNotificationMgr.java:10)
at com.zipow.videobox.share.ScreenShareServiceForSDK.onCreate(ScreenShareServiceForSDK.java:3)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:4487)
… 9 more
java.lang.IllegalArgumentException: com.live.ultrafast: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
at android.app.PendingIntent.checkFlags(PendingIntent.java:375)
at android.app.PendingIntent.getActivityAsUser(PendingIntent.java:458)
at android.app.PendingIntent.getActivity(PendingIntent.java:444)
at android.app.PendingIntent.getActivity(PendingIntent.java:408)
at us.zoom.sdk.SDKNotificationMgr.showConfNotificationForSDK(SDKNotificationMgr.java:10)
at com.zipow.videobox.share.ScreenShareServiceForSDK.onCreate(ScreenShareServiceForSDK.java:3)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:4487)
at android.app.ActivityThread.access$1700(ActivityThread.java:247)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2072)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7839)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
**** End of current Report ***

Hi @nilefire103,

Thanks for trying the new version of the SDK. Can you please provide the meeting number and time of the meeting where this issue is present? You can submit this information privately through a ticket on our developer support site. Be sure to mention this thread so the ticket is correctly routed to me.

Regarding Android 12, this is because we have not yet released support for API 31. We are still working on this, but the changelog will be the best place to stay up-to-date with new release information.

Thanks!

Giving meeting details won’t work in this case, as for this you & me need to be connected in a live environment like in a chat. As the use case Steps are :

  1. You have to host 1 meeting with 4 Hosts using your computer.
  2. Then you have to check all videos using zoom sdk with Customized Meeting UI. You will find that all videos have good resolution.
  3. Now disconnect from meeting
  4. Now increase host to 6 (add 2 more)
  5. Join again meeting & see videos, you will find that their resolution are poor now.
  6. Again disconnect from meeting.
  7. Remove 2 Hosts again,
  8. Join meeting again, now again, resolution is fine.

So the issue is that when there are more than 4-5 Hosts for same meeting then resolution get poor.
Also as I have mentioned earlier, this happens only in Customized Meeting UI using zoom sdk,
If you join meeting using zoom app, you will find all videos fine. So i believe this is because of default UI.

So you have to check it at your end only.

Thanks.

Hi @nilefire103,

Providing the meeting information can absolutely be useful, even in the case you are describing. Although after reviewing the additional information you’ve provided, it sounds like there may have been a miscommunication on when the issue is present. You are saying that there are 6 total participants in the meeting at the same time, and not that there were 6 individual instances of a meeting, right?

If my understanding is correct, this is a different issue than what was initially described, so I want to be absolutely certain that we’re on the same page. Feel free to provide a screenshot of the meeting when the issue is present if you are able.

Thanks!

We have a Meeting No & a Password.
From Computer 1, with same Meeting No & Password, I host 1 meeting.
From Computer 2, with same Meeting No & Password, I host 1 meeting.
From Computer 3, with same Meeting No & Password, I host 1 meeting.
From Computer 4, with same Meeting No & Password, I host 1 meeting.
. and so one

Now If we open in Zoom App, then we will see gallery view right ?

So all I am saying is that if the above mentioned Computers are more than 5 then resolution is poor in case of using Android SDK, otherwise resolution is fine with Android SDK.

If we talk about Zoom App, resolution is fine in either case…

So there is something not fine in Zoom Android SDK that making this resolution poor…

Hi @nilefire103,

Got it, thank you for clarifying! Since you mentioned using a custom meeting UI, it sounds like this is expected behavior. There are scenarios where the SDK cannot receive the same quality as the Zoom client or the SDK’s default UI. The SDK is only capable of receiving 4 simultaneous streams at 360p in custom UI mode, which explains why you are seeing a drop in quality when 6 participants are in the meeting.

Thanks!

So you mean to say that if in any meeting there are more than 6 participants are there, but only 4 are being shown using adding video unit then also it will not have proper resolution ?

I have done code something like this:

for (int i = 0; i < lstVideoSenders.size(); i++) {
VideoSenders vs = lstVideoSenders.get(i);
if (i == 0) {
frameVideoView1.setVisibility(View.VISIBLE);
mobileRTCVideoView1.getVideoViewManager().addAttendeeVideoUnit(vs.getAttendeeId(), renderInfo);
} else if (i == 1) {
frameVideoView2.setVisibility(View.VISIBLE);
mobileRTCVideoView2.getVideoViewManager().addAttendeeVideoUnit(vs.getAttendeeId(), renderInfo);
} else if (i == 2) {
frameVideoView3.setVisibility(View.VISIBLE);
mobileRTCVideoView3.getVideoViewManager().addAttendeeVideoUnit(vs.getAttendeeId(), renderInfo);
} else if (i == 3) {
frameVideoView4.setVisibility(View.VISIBLE);
mobileRTCVideoView4.getVideoViewManager().addAttendeeVideoUnit(vs.getAttendeeId(), renderInfo);
}
}

So only 4 video will be rendered, then also video resolution will be poor beyond 4 participants ?

Hi @nilefire103,

If you limit your app to only subscribe to 4 total video feeds, you should be able to get them all at 360p as long as your network’s bandwidth allows for it. Even if there are 5+ participants in the meeting, if you keep the number of video subscriptions to 4 or less you should be able to receive 360p for them.

Thanks!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.