Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[QUESTION] Default Android/iOS SDK does not include profile 42e01f in Offer #1033

Closed
suggestedfixes opened this issue Jan 7, 2021 · 9 comments
Assignees
Labels
question Further information is requested

Comments

@suggestedfixes
Copy link
Contributor

suggestedfixes commented Jan 7, 2021

From our Mobile Team


We’d like to integrate the iOS/Android KVSWebRTC SDK sample to our project to view the video from the camera, and the camera used KVSWebRTC_C SDK. From the log of the camera and mobile app, the video data has been returned from the camera, but the video cannot be rendered on the mobile app side. And we also refer to the KVSWebRTC SDK sample and the video can be rendered successfully. So we analyzed the offer sent to the camera and answer received from the camera, and found codec type might be not matched. The attachments are the logs of offer and answer, please kindly advise how to fix this codec issue.

On the camera side, the supported codec type is H264, so the mobile app and the web need to send H264 type to the camera in the offer.

From the iOS log, the sent offer includes the H264, but the profile-level-id is different between iOS and Camera, profile-level-id is 640c2a and 42e02a in the app, but profile-level-id is 42e01f in the camera.


Possible Suggestions on the next steps?
What we can think of:
Approach A

  • Grab an H264 decoder library that supports 42e01f profile on Android/iOS.
  • Update Android/iOS SDK to include 42e01f profile into the offer.

Approach B

  • In response to the 42e02a offer, try answering with 42e02a profile supplying 421e01f codec and see if the 42e02a decoder can decode it.

More possible approaches?

@suggestedfixes suggestedfixes added the question Further information is requested label Jan 7, 2021
@suggestedfixes suggestedfixes changed the title [QUESTION] Default Android/iOS SDK do not include profile 42e01f in Offer [QUESTION] Default Android/iOS SDK does not include profile 42e01f in Offer Jan 7, 2021
@disa6302
Copy link
Contributor

disa6302 commented Jan 8, 2021

@suggestedfixes ,

Cannot think of any other approach. I am unfamiliar with the Android/iOS SDK implementation. Perhaps @MushMal can give some insight.

I would suggest to try approach A because the SDK is expected to respond positively when the profile matches.

@suggestedfixes
Copy link
Contributor Author

suggestedfixes commented Jan 9, 2021

@disa6302 Our android team is having trouble generating H264 profiles into the offer. Is it something we have to code from scratch or can we have a feature request to serialize that into the offer?

@suggestedfixes
Copy link
Contributor Author

In addition, the default iOS SDK comes with a 42e02a decoder, so there might be video artifacts when viewing with iOS SDK?

@disa6302
Copy link
Contributor

@suggestedfixes ,

In the android SDK, we use the capabilities of org.webrtc:google directly. The KVS webrtc android SDK itself has the signaling implementation only. I would say write override methods for the decoder functions in the android and iOS SDK to see if the profile can be supported. Will need some time to investigate this further.

@suggestedfixes
Copy link
Contributor Author

We got android working, now the question is whether it's possible to generate a 42e01f offer on the iOS side.

@disa6302
Copy link
Contributor

@suggestedfixes ,

One thing I would suggest is to see if it is possible to override the decoder/encoder function in the webrtc core SDK for iOS. I have not looked at the SDK myself, so I will not be able to help you immediately. Need to look into it.

@suggestedfixes
Copy link
Contributor Author

suggestedfixes commented Jan 18, 2021

@disa6302 We made sure the C SDK side properly parses the trickle ice option and the answer contains the last baseline profile in SDP. This seems to work for the device we are testing. We will do more testing.

@suggestedfixes
Copy link
Contributor Author

There might be video artifacts due to profile mis-match, but we will do more testing.

@suggestedfixes
Copy link
Contributor Author

We don't have any residual problems for now. Closing this ticket.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants