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

[BUG]: Encoder/Decoder priority #1023

Open
SetoKaiba opened this issue Mar 18, 2024 · 2 comments
Open

[BUG]: Encoder/Decoder priority #1023

SetoKaiba opened this issue Mar 18, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@SetoKaiba
Copy link

SetoKaiba commented Mar 18, 2024

Package version

3.0.0-pre.7

Environment

* OS: Not related to the bug
* Unity version: Not related to the bug

Steps To Reproduce

No reproduce. Just check the code in the current behaviour.

Current Behavior

https://github.com/Unity-Technologies/com.unity.webrtc/blob/main/Plugin~/WebRTCPlugin/UnityVideoEncoderFactory.cpp#L110-L119
https://github.com/Unity-Technologies/com.unity.webrtc/blob/main/Plugin~/WebRTCPlugin/UnityVideoEncoderFactory.h#L33
Here it uses a map factories to save the encoder implementations.
https://github.com/Unity-Technologies/com.unity.webrtc/blob/main/Plugin~/WebRTCPlugin/Codec/CreateVideoCodecFactory.h#L27-L40
It finds the first implementation support the format with the same codec.
The map is sorted by the key.
The order of the implementations will be, internal, mediacodec, nvcodec, videotoolbox.

Expected Behavior

The later 3 is hardware accelerated. I think that they should be prior.

I know that currently software h264 encoder is not built in the libwebrtc.
But I think the hardware encoders should be always prior.

Anything else?

No response

@SetoKaiba SetoKaiba added the bug Something isn't working label Mar 18, 2024
@karasusan
Copy link
Collaborator

The RTCRtpTransceiver methods can be used to change the priority of the codecs to be used.
Do you expect HW Encoder to work by default in preference?

@SetoKaiba
Copy link
Author

Yes. I think that the HW Encoder/Decoder is usually with better performance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants