pion / mediadevices

Go implementation of the MediaDevices API.
https://pion.ly/
MIT License
528 stars 121 forks source link

Use wanted RTP payload type #406

Open matt-allan opened 2 years ago

matt-allan commented 2 years ago

Description

This PR updates the track implementation to use payload type ID requested by the client.

Without this fix when you run the webrtc example with a non Chromium browser, the client requests a payload type ID such as 126 and we reply with a different type ID, such as 125. When this happens the stream connects but there's no output. Any payload type ID in the range 96-127 is dynamic so we have to negotiate it.

This does fix my issue buy I''m not really sure if this is the best way to fix this. Do we need to support non dynamic payload types too? Do we need to validate bounds or anything?

Reference issue

Fixes this issue I accidentally opened on pion/webrtc repo: https://github.com/pion/webrtc/issues/2237

EmrysMyrddin commented 2 years ago

Hey ! Thank you for your proposal ! Extending compatibility by handling dynamic type ID would be great :-)

But i think we should find a way to do it transparently and automatically. And it would be awesome to avoid breaking the public API by doing it :-)