Inquery about ZoomVideoSDKVideoAspect,video cannot be filled to full screen

Description
when status is in session,the remote video cannot be displayed in full screen .
the sample of version 1.2.1 also has this problem.

Which Android Video SDK version?
version 1.2.1

To Reproduce(If applicable)
When we upgrade the sdk version to 1.2.1, there are still black areas on both sides of the video in ZoomVideoSDKVideoAspect_PanAndScan mode~
We have tried all Aspect types and the problem still exists。

Screenshots

Smartphone (please complete the following information):

  • Device: [TV]
  • OS: [ Android 9]

Additional context
Please help to confirm this question~ Thanks!

Hi @Benedict,

Based on the screenshot, it looks like you’re using the LetterBox aspect mode. The sample app uses that for the active speaker by default. If you change it to PanAndScan in MeetingActivity, it will correctly fill the whole view.

Thanks!

Dear Jon.lieblich
I have confirmed many times~ the problem still exists after I changed to PanAndScan in MeetingActivity, Code as attached.

Please help to double check ,thanks~

Hi @Benedict,

It’s pretty strange that we’re both seeing different results with seemingly the same implementation. Let’s try to narrow down where the difference lies by getting some additional information.

  • Which device make/model are you running the sample app on in the screenshot?
  • Which device make/model is sending the video you are showing?
  • A diff containing the changes you’ve made to the SDK sample app (be sure to exclude any developer credentials or other private info before creating the diff)

Thanks!

Hi @jon.lieblich
This should not be related to the running equipment,Is it possible that we got a different sample app?
I compared my sample app project code with the original downloaded, there are three modifications.

  1. the screenshot of the last comment, modify LetterBox&Original to PanAndScan

  2. add role_type when create token, the screenshot is as follows

  3. add sdk key/secret

Hi @Benedict,

This should not be related to the running equipment

It probably isn’t, but we need to rule out as many variables as possible so this information will be important. Different devices’ cameras may have different resolutions, so it is possible that things like the resolution of the video or the screen of the device can be the key difference.

Is it possible that we got a different sample app?

As long as you are using the sample app from the Marketplace, we should be using the same app. I’ve tried testing on v1.2.0 and 1.2.1, both with the same results.

Just to be 100% sure, can you please provide a diff after modifying a fresh copy of the sample app? Screenshots are useful, but in this scenario we need to be as explicit as possible in each detail to determine why this is not reproducible on our end.

Thanks!

Hi @jon.lieblich
My device is DTEN ME~, I’ ve tried testing on v1.1.1 before , That is OK, but v1.2.1 has the problem, so I think that’s not be related to device.

How do I upload my sample code(or diff files) for you to analyze? It seems to be able to upload pictures only

Thanks~

Hi @Benedict,

Thanks for confirming the device you’re using. You can post the diff file directly as text, since the forum does limit which types of files you are able to upload.

Thanks!

Hi @jon.lieblich
The diff file I generated is pasted below,please help to confirm ASAP,Thanks

diff --git a/build.gradle b/build.gradle
index 98a098c..bec859e 100644
--- a/build.gradle
+++ b/build.gradle
@@ -15,13 +15,19 @@ buildscript {
 
 allprojects {
     repositories {
+        maven { url 'https://jitpack.io' }
+        maven { url 'https://maven.aliyun.com/repository/public' }
+        maven { url 'https://maven.aliyun.com/repository/central' }
+        maven { url 'https://maven.aliyun.com/repository/google' }
+        maven { url 'https://maven.aliyun.com/repository/public' }
+        maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
         jcenter()
-        maven {
+        /*maven {
             url 'https://maven.google.com/'
             name 'Google'
         }
         maven {
             url "https://jitpack.io"
-        }
+        }*/
     }
 }
diff --git a/sample/src/main/java/us/zoom/sdksample/MeetingActivity.java b/sample/src/main/java/us/zoom/sdksample/MeetingActivity.java
index 12cc594..1417eef 100644
--- a/sample/src/main/java/us/zoom/sdksample/MeetingActivity.java
+++ b/sample/src/main/java/us/zoom/sdksample/MeetingActivity.java
@@ -258,9 +258,9 @@ public class MeetingActivity extends BaseMeetingActivity {
 
     protected void subscribeVideoByUser(ZoomVideoSDKUser user) {
         if (renderType == RENDER_TYPE_ZOOMRENDERER) {
-            ZoomVideoSDKVideoAspect aspect = ZoomVideoSDKVideoAspect.ZoomVideoSDKVideoAspect_LetterBox;
+            ZoomVideoSDKVideoAspect aspect = ZoomVideoSDKVideoAspect.ZoomVideoSDKVideoAspect_PanAndScan;
             if (ZoomVideoSDK.getInstance().isInSession()) {
-                aspect = ZoomVideoSDKVideoAspect.ZoomVideoSDKVideoAspect_Original;
+                aspect = ZoomVideoSDKVideoAspect.ZoomVideoSDKVideoAspect_PanAndScan;
             }
             if (null != currentShareUser) {
                 currentShareUser.getShareCanvas().unSubscribe(zoomCanvas);
diff --git a/sample/src/main/java/us/zoom/sdksample/util/JWTUtil.java b/sample/src/main/java/us/zoom/sdksample/util/JWTUtil.java
index 48a0775..a1bd8b3 100644
--- a/sample/src/main/java/us/zoom/sdksample/util/JWTUtil.java
+++ b/sample/src/main/java/us/zoom/sdksample/util/JWTUtil.java
@@ -26,9 +26,9 @@ public class JWTUtil {
 
     final static long EXPIRED_TIME = 3600 * 4;
 
-    private static final String apiKey = "";
+    private static final String apiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 
-    private static final String apiSecret = "";
+    private static final String apiSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
     //for sdk user to bind zoom id with app userId.
     public static String customIdentity="test_"+ Build.MODEL;
 
@@ -53,6 +53,7 @@ public class JWTUtil {
         try {
             payLoadObject.put("app_key", apiKey);
             payLoadObject.put("version", version);
+            payLoadObject.put("role_type", 1);
             payLoadObject.put("iat", iat);
             payLoadObject.put("exp", exp);
             payLoadObject.put("user_identity",customIdentity);

Hi @Benedict,

Thanks for providing that. This confirms that we are both making the same changes. I think we’ll need the SDK logs to investigate further. Can you please provide those? Instructions on how to obtain them can be found here (instructions are for the Meeting SDK, but they’re the same for the Video SDK).

Thanks!

Hello @jon.lieblich
Now let’s confirm again
If our sample app and the modifications are exactly the same, then the appearance should not be inconsistent。and I will describe the phenomenon on my side again to make sure we have not misunderstood。
SAMPLE APP, the default display after two devices are connected is still the local camera stream(not peer’s),the display in this scenario is OK。when the screen is switched to show remote side, that will be not right(not PanAndScan mode)。
Is this not the case on your side?

Thanks~

Hi @jon.lieblich
It seems sample app has enabled sdk logs default

protected void initSDK() {
        ZoomVideoSDKInitParams params = new ZoomVideoSDKInitParams();
        params.domain = Constants.WEB_DOMAIN;
        **params.enableLog = true;**
...............

but I can not find the log file inside data/xxx

Hi @Benedict,

When I change the user with the changes in your diff made to the subscribeVideoByUser, I am seeing the correct aspect ratio. I only see a difference if I change aspect = ZoomVideoSDKVideoAspect.ZoomVideoSDKVideoAspect_PanAndScan; back to aspect = ZoomVideoSDKVideoAspect.ZoomVideoSDKVideoAspect_Original;.

but I can not find the log file inside data/xxx

Apologies, but this is not the correct path. Our documentation mentions it is inside Android/data/(your app's name)/logs, not under the root data folder. For example, on my device the full path for the sample project is sdcard/Android/data/us.zoom.VideoSDKPlayground/logs.

Thanks!

Hi @jon.lieblich
I get the logs,but they are encrypted and there is no way to upload files here, so how do I send to you~

Thanks~

Hi @Benedict,

You can either upload them to a file hosting service such as Google Drive, or submit them through a ticket on our developer support site. If you choose the latter option, be sure to mention me and this thread so the ticket is correctly routed. :slightly_smiling_face:

Thanks!

Hi @jon.lieblich

FYI ZoomVideoSDK_3.zip - Google Drive

Thanks

Hi @Benedict,

Thanks for providing the logs. Based on what I’m seeing in there, the aspect mode is only being set to PanAndScan (which is what we expected based on your diff). We’ll need to investigate further to see what exactly is going on here. I’ll let you know as soon as we have any updates.

Thanks!

Hi @Benedict,

Would you be able to provide SDK logs after setting the aspect ratio to Full_Filled for comparison’s sake as we continue to investigate?

Thanks!

Hi @jon.lieblich

OK, I will send to you later

And, would you please send me a copy of your Sample app code that works fine on your side?

Thanks

Hi @Benedict,

Based on the diff you provided earlier, our implementations were identical. We are still working on figuring out why you’re seeing different behavior, as we have had several people test and have not yet been able to reproduce the issue you are seeing. Once you can provide those logs using Full_Filled, we may get some additional insight into what exactly is going wrong.

Thanks!