Enable payload type based demuxing with multiple tracks when applicable.

This fixes regressions caused by:
https://webrtc-review.googlesource.com/c/src/+/183120

... which disabled payload type demuxing when multiple video tracks are
present, to avoid one channel creating a default track intended for
another channel.

However, this isn't an issue when not bundling, as each track will be
delivered on separate transport.

And it's also not an issue when each track uses a distinct set of
payload types (e.g., VP8 is mapped to PT 96 in one m= section, and PT 97
in another).

This CL addresses both of those cases; PT demuxing is only disabled
when two bundled m= sections have overlapping payload types.

Bug: chromium:1139052, webrtc:12029
Change-Id: Ied844bffac2a5fac29147c11b56a5f83a95ecb36
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/187560
Commit-Queue: Taylor <deadbeef@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32419}
This commit is contained in:
Taylor Brandstetter
2020-10-15 18:22:57 -07:00
committed by Commit Bot
parent fa9520e752
commit d3ef499418
7 changed files with 207 additions and 41 deletions

View File

@ -490,7 +490,7 @@ class SdpOfferAnswerHandler {
const std::string GetTransportName(const std::string& content_name);
// Based on number of transceivers per media type, enabled or disable
// payload type based demuxing in the affected channels.
void UpdatePayloadTypeDemuxingState(cricket::ContentSource source);
bool UpdatePayloadTypeDemuxingState(cricket::ContentSource source);
// ==================================================================
// Access to pc_ variables