Open SetoKaiba opened 8 months ago
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?
Yes. I think that the HW Encoder/Decoder is usually with better performance.
Package version
3.0.0-pre.7
Environment
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