open-webrtc-toolkit / owt-client-native

Open WebRTC Toolkit client SDK for native Windows/Linux/iOS applications.
https://01.org/open-webrtc-toolkit
Apache License 2.0
391 stars 180 forks source link

Windows SDK Perf optimization #517

Closed taste1981 closed 3 years ago

taste1981 commented 3 years ago

This is accumulative changes for optimizing performance of Windows SDK. Please do not squash when merge, to keep the history.

Feature/changes made by these commits are basically:

  1. Switch to D3D11 from D3D9 for encoder/decoder implementation.
  2. Switch to D3D11 for local I420 rendering and D3D11+MPO for remote view rendering.
  3. Enable VP9 and AV1 dec/enc HW acceleration.
  4. Add rate controller for VP9.
  5. Extend DeviceUtil to make it more application friendly.
  6. Support differentiated QoS by allowing application specifying different ICE port ranges for audio/video/screen/data tracks.
  7. Enable DSCP flag setting on Linux by adding NetworkPriority in RtpEncodingParam interface for publishing/subscribing.