com.unity.webrtc icon indicating copy to clipboard operation
com.unity.webrtc copied to clipboard

[BUG]: Encoder/Decoder priority

Open SetoKaiba opened this issue 11 months ago • 2 comments

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 avatar Mar 18 '24 17:03 SetoKaiba

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?

karasusan avatar Mar 19 '24 01:03 karasusan

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

SetoKaiba avatar Mar 19 '24 03:03 SetoKaiba