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

M111 #1341

Merged
merged 3 commits into from
Mar 17, 2023
Merged

M111 #1341

merged 3 commits into from
Mar 17, 2023

Conversation

saghul
Copy link
Member

@saghul saghul commented Mar 14, 2023

No description provided.

@davidliu
Copy link
Collaborator

Would it be possible to get the webrtc libs hosted on maven?

@saghul
Copy link
Member Author

saghul commented Mar 14, 2023

I tried one approach today, will try another this week. I wish ti do that for this release, yeah.

@davidliu
Copy link
Collaborator

If it's any help, I actually just went through the process of publishing to sonatype (maven central) over here:

https://github.com/webrtc-sdk/android

Might need separate publications for two jars though? If you can combine it into an aar, that'd work easier.

@saghul
Copy link
Member Author

saghul commented Mar 15, 2023

I managed to push the AAR yesterday evening!

I'll be continuing the work here tomorrow, now using the Maven Central build.

FTR the build scripts are in the jitsi/webrtc repo.

@saghul saghul force-pushed the M111 branch 2 times, most recently from e641105 to 24dd460 Compare March 15, 2023 19:54
@saghul
Copy link
Member Author

saghul commented Mar 15, 2023

@davidliu Updated! I'll do some testing tomorrow.

@saghul saghul marked this pull request as ready for review March 15, 2023 20:31
@saghul
Copy link
Member Author

saghul commented Mar 16, 2023

Added another commit with an API to customize codec factories and a couple of useful ones we have been using with Jitsi Meet.

The default codec factories use the hardware codecs and fallback to the
software ones if not available.

If simulcast is defired a software encoder must be used. In addition, we
(Jitsi) have seen many crashes with hardware decoders in the past, so we
also resorted to software decoding.

2 types of codec factories are provided for convenience:

- SoftwareVideo{Encoder,Decoder}FactoryProxy: In 111 WebRTC refactored
  the software codec factories, which now depend on JNI and thus cannot
  be initialized early. These proxy factories delay initialization so
  they are easier to work with.
- H264AndSoftwareVideo{Encoder,Decoder}Factory: These are hybrid
  factories that use the hardware encoder / decoder for H.264 and the
  software codec factories for the rest. These mimic the default iOS
  codec factories.

This was on Android. I'll add a similar one for iOS, without the extra factory implementations, since the default one is already doing H.264 in hardware and the rest in software.

Migrate Android to using the Jitsi WebRTC build now available on Maven
Central.

The deprecated bitcode downloading scripts have now been removed.
@saghul saghul force-pushed the M111 branch 2 times, most recently from bf91eb3 to 0d86043 Compare March 16, 2023 12:42
@saghul
Copy link
Member Author

saghul commented Mar 16, 2023

Added iOS initialization options config.

WebRTCModuleOptions must be instantiated early, before React Native is.

Currently supporting:

- (video) codec factories
- Field trials
- Logging level

The default codec factories use the hardware codecs and fallback to the
software ones if not available.

If simulcast is defired a software encoder must be used. In addition, we
(Jitsi) have seen many crashes with hardware decoders in the past, so we
also resorted to software decoding.

2 types of codec factories are provided for convenience:

- SoftwareVideo{Encoder,Decoder}FactoryProxy: In 111 WebRTC refactored
  the software codec factories, which now depend on JNI and thus cannot
  be initialized early. These proxy factories delay initialization so
  they are easier to work with.
- H264AndSoftwareVideo{Encoder,Decoder}Factory: These are hybrid
  factories that use the hardware encoder / decoder for H.264 and the
  software codec factories for the rest. These mimic the default iOS
  codec factories.
Currently supporting:

- (video) codec factories
- Field trials
- Logging level
@saghul
Copy link
Member Author

saghul commented Mar 16, 2023

Testing went fine. I'll likely merge it tomorrow if there are no further comments.

@8BallBomBom
Copy link
Member

LGTM, will run some tests, loving the customisation changes 👍🏻

@saghul
Copy link
Member Author

saghul commented Mar 16, 2023

LGTM, will run some tests, loving the customisation changes 👍🏻

Thank you!

Copy link
Collaborator

@davidliu davidliu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Copy link
Member

@8BallBomBom 8BallBomBom left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues on my end, will test a bit more but seems all good 👍🏻

@saghul saghul merged commit 5bfce40 into master Mar 17, 2023
@saghul saghul deleted the M111 branch March 17, 2023 07:55
@saghul
Copy link
Member Author

saghul commented Mar 17, 2023

No issues on my end, will test a bit more but seems all good 👍🏻

Thanks @8BallBomBom ! I don't plan to make the release today, let's have it settle a bit in master :-)

@davidliu davidliu mentioned this pull request Mar 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants