New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 10 users

Issue metadata

Status: Fixed
Owner:
Closed: May 29
Cc:
Components:
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Implement RTP/RTCP extensions for mid value transport

Reported by docfara...@gmail.com, Nov 25 2014

Issue description

Looking at the webrtc.org code, it does not appear that there is support for setting the mid of an RTP stream for the purpose of satisfying draft-ietf-mmusic-sdp-bundle-negotiation-12 Section 13.
 
Project Member

Comment 1 by braveyao@webrtc.org, Nov 27 2014

Cc: braveyao@webrtc.org
Owner: juberti@webrtc.org
@justin, any comment?
Project Member

Comment 2 by juberti@webrtc.org, Dec 16 2014

Labels: Area-Network
Owner: pthatcher@webrtc.org
Not implemented yet.
Project Member

Comment 3 by pthatcher@webrtc.org, Dec 29 2014

Labels: EngTriaged Mstone-44
Status: Assigned
Project Member

Comment 4 by tnakamura@webrtc.org, Jan 29 2016

Labels: -Mstone-44
I don't see any CLs linked to this bug, so I don't think it's been fixed. I'm therefore leaving this in an open state, but I am removing the milestone label since this bug hasn't been updated in quite some time.
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/a3251dd83f2e3d988e32504a62ec2cf9bba06585

commit a3251dd83f2e3d988e32504a62ec2cf9bba06585
Author: Steve Anton <steveanton@webrtc.org>
Date: Fri Jul 21 17:33:25 2017

Add parsing/serializing for MID RTP header extension.

This is the first in a series of CLs to add support for media
identification as part of unified plan SDP.

Bug:  webrtc:4050 
Change-Id: I0eb5639d240a9a1412c2b047a33d5112e4901f26
Reviewed-on: https://chromium-review.googlesource.com/576374
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19111}
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/common_types.h
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.cc
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/modules/rtp_rtcp/source/rtp_packet.cc
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/modules/rtp_rtcp/source/rtp_packet_unittest.cc
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/modules/rtp_rtcp/source/rtp_utility.cc
[modify] https://crrev.com/a3251dd83f2e3d988e32504a62ec2cf9bba06585/webrtc/test/fuzzers/rtp_packet_fuzzer.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/b3329179a712212083209d5c44814d4cc6587904

commit b3329179a712212083209d5c44814d4cc6587904
Author: Steve Anton <steveanton@webrtc.org>
Date: Thu Aug 17 23:01:59 2017

Rename RsidResolutionObserver to SsrcBindingObserver.

This rename prepares SsrcBindingObserver to be used for observing all
the ways a sink can be bound to SSRCs (e.g., MID, payload types).

Bug:  webrtc:4050 
Change-Id: I16b68481d01f921c326a33f5f2baf79d8b3f12e2
Reviewed-on: https://chromium-review.googlesource.com/590762
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19396}
[modify] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/BUILD.gn
[delete] https://crrev.com/ed447aedb855f7e6141fe627c16c27b800348b0c/webrtc/call/rsid_resolution_observer.h
[modify] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/rtcp_demuxer.cc
[modify] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/rtcp_demuxer.h
[modify] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/rtcp_demuxer_unittest.cc
[modify] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/rtp_demuxer.cc
[modify] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/rtp_demuxer.h
[modify] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/rtp_demuxer_unittest.cc
[add] https://crrev.com/b3329179a712212083209d5c44814d4cc6587904/webrtc/call/ssrc_binding_observer.h

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/53c7ba632d587b449122e03d7c5e74b12e5d24ab

commit 53c7ba632d587b449122e03d7c5e74b12e5d24ab
Author: Steve Anton <steveanton@webrtc.org>
Date: Fri Aug 18 17:33:08 2017

Add BUNDLE processing to RtpDemuxer.

Extends the RtpDemuxer to do demuxing according to the BUNDLE spec,
using MID and payload types in addition to RSID and SSRC. Also extends
SsrcBindingObserver to receive notification for all types of SSRC
binding that can occur with the new algorithm.

Bug:  webrtc:4050 
Change-Id: Ie2f347f90d5074ab537fa1162fa7314dd292b68b
Reviewed-on: https://chromium-review.googlesource.com/578628
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19415}
[modify] https://crrev.com/53c7ba632d587b449122e03d7c5e74b12e5d24ab/webrtc/call/rtp_demuxer.cc
[modify] https://crrev.com/53c7ba632d587b449122e03d7c5e74b12e5d24ab/webrtc/call/rtp_demuxer.h
[modify] https://crrev.com/53c7ba632d587b449122e03d7c5e74b12e5d24ab/webrtc/call/rtp_demuxer_unittest.cc
[modify] https://crrev.com/53c7ba632d587b449122e03d7c5e74b12e5d24ab/webrtc/call/rtp_rtcp_demuxer_helper.h
[modify] https://crrev.com/53c7ba632d587b449122e03d7c5e74b12e5d24ab/webrtc/call/ssrc_binding_observer.h

Project Member

Comment 8 by anatolid@chromium.org, Sep 11 2017

Is there more work planned here?
Project Member

Comment 9 by deadbeef@chromium.org, Sep 11 2017

Yes; we still need to make use of the MID-based demuxing now in RtpDemuxer, and we also need to negotiate use of the header extension and send it when negotiated.
Project Member

Comment 10 by steveanton@webrtc.org, Mar 8

Owner: steveanton@webrtc.org
Status: Started (was: Assigned)
Project Member

Comment 11 by bugdroid1@chromium.org, Mar 23

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7

commit 296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7
Author: Steve Anton <steveanton@webrtc.org>
Date: Fri Mar 23 01:50:45 2018

Add MID sending to RTPSender

This CL adds the ability to configure RTPSender to include the
MID header extension when sending packets. The MID will be
included on every packet at the start of the stream until an RTCP
acknoledgment is received for that SSRC at which point it will
stop being included. The MID will be included on regular RTP
streams as well as RTX streams.

Bug:  webrtc:4050 
Change-Id: Ie27ebee1cd00a67f2b931f5363788f523e3e684f
Reviewed-on: https://webrtc-review.googlesource.com/60582
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22574}
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/BUILD.gn
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/include/rtp_rtcp.h
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
[add] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/mid_oracle.cc
[add] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/mid_oracle.h
[add] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/mid_oracle_unittest.cc
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/rtp_rtcp_impl.h
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/rtp_sender.cc
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/rtp_sender.h
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/modules/rtp_rtcp/source/rtp_sender_unittest.cc
[modify] https://crrev.com/296a0ce4c765ea66a8d35b47468ae7f9f96e4ff7/video/video_send_stream.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Mar 26

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/bb50ce5bb6d580b243b0fde532c596d6f4248083

commit bb50ce5bb6d580b243b0fde532c596d6f4248083
Author: Steve Anton <steveanton@webrtc.org>
Date: Mon Mar 26 18:14:30 2018

Wire up MID send value to the PeerConnection API

Bug:  webrtc:4050 
Change-Id: I522cf8621e2cb639f54be2402174befd23e4af59
Reviewed-on: https://webrtc-review.googlesource.com/60962
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22610}
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/api/rtpparameters.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/api/rtpparameters.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/audio/audio_send_stream.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/audio/audio_send_stream.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/audio/channel.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/audio/channel.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/audio/channel_proxy.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/audio/channel_proxy.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/call/audio_send_stream.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/call/video_send_stream.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/media/base/mediachannel.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/media/engine/webrtcvideoengine.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/media/engine/webrtcvideoengine.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/media/engine/webrtcvoiceengine.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/media/engine/webrtcvoiceengine.h
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/pc/channel.cc
[modify] https://crrev.com/bb50ce5bb6d580b243b0fde532c596d6f4248083/video/video_send_stream.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Mar 29

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/003930a3ce40c8d0642403d5c91b7b8d2714e732

commit 003930a3ce40c8d0642403d5c91b7b8d2714e732
Author: Steve Anton <steveanton@webrtc.org>
Date: Thu Mar 29 20:22:28 2018

Fix MID not always getting set with audio

Bug:  webrtc:4050 
Change-Id: I543a9f70c6c7fd10cd177ce16eba6c335db367ec
Reviewed-on: https://webrtc-review.googlesource.com/65020
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22681}
[modify] https://crrev.com/003930a3ce40c8d0642403d5c91b7b8d2714e732/audio/audio_send_stream.cc
[modify] https://crrev.com/003930a3ce40c8d0642403d5c91b7b8d2714e732/media/base/mediachannel.h

Project Member

Comment 14 by bugdroid1@chromium.org, Mar 29

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/ed09dc6f56231f55eb7bd96abdb9abbf941a217f

commit ed09dc6f56231f55eb7bd96abdb9abbf941a217f
Author: Steve Anton <steveanton@webrtc.org>
Date: Thu Mar 29 20:36:08 2018

Don't check MIDs when demuxing RTP packets in Call

The MID header extension is handled by the RtpTransport
which lives above Call and takes care of demuxing to SSRC.

Bug:  webrtc:4050 
Change-Id: I27135e296ae9c7b15e926ba17547c26c75684ad6
Reviewed-on: https://webrtc-review.googlesource.com/65025
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22682}
[modify] https://crrev.com/ed09dc6f56231f55eb7bd96abdb9abbf941a217f/call/rtp_demuxer.cc
[modify] https://crrev.com/ed09dc6f56231f55eb7bd96abdb9abbf941a217f/call/rtp_demuxer.h
[modify] https://crrev.com/ed09dc6f56231f55eb7bd96abdb9abbf941a217f/call/rtp_stream_receiver_controller.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Apr 6

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/4af95849f5c7f59785fd657b6744112df042d85a

commit 4af95849f5c7f59785fd657b6744112df042d85a
Author: Steve Anton <steveanton@webrtc.org>
Date: Fri Apr 06 18:11:22 2018

Always include the MID RTP header extension on every packet when configured

This removes the optimization that would stop sending the MID RTP
header extension when an RTCP report block is received. The old
implementation was not flexible enough for the API, and making
those changes is too involved at this time as we need this to work
now to unblock other work.

Bug:  webrtc:4050 
Change-Id: I099f8e9047a40993d93bcda9164eb82fdf810387
Reviewed-on: https://webrtc-review.googlesource.com/67192
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22776}
[modify] https://crrev.com/4af95849f5c7f59785fd657b6744112df042d85a/modules/rtp_rtcp/BUILD.gn
[delete] https://crrev.com/f2e3e7a25aa34f7af63b0e83970145031ac3bc42/modules/rtp_rtcp/source/mid_oracle.cc
[delete] https://crrev.com/f2e3e7a25aa34f7af63b0e83970145031ac3bc42/modules/rtp_rtcp/source/mid_oracle.h
[delete] https://crrev.com/f2e3e7a25aa34f7af63b0e83970145031ac3bc42/modules/rtp_rtcp/source/mid_oracle_unittest.cc
[modify] https://crrev.com/4af95849f5c7f59785fd657b6744112df042d85a/modules/rtp_rtcp/source/rtp_sender.cc
[modify] https://crrev.com/4af95849f5c7f59785fd657b6744112df042d85a/modules/rtp_rtcp/source/rtp_sender.h

Project Member

Comment 16 by bugdroid1@chromium.org, Apr 6

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/1b8773d8e8d8ed73330b170c8c6fe6b828b693a1

commit 1b8773d8e8d8ed73330b170c8c6fe6b828b693a1
Author: Steve Anton <steveanton@webrtc.org>
Date: Fri Apr 06 19:51:18 2018

Negotiate the MID header extension for Unified Plan

Bug:  webrtc:4050 
Change-Id: Icf02eb5186742bb0cbf1a41964daab9e35ae9b6f
Reviewed-on: https://webrtc-review.googlesource.com/65026
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22777}
[modify] https://crrev.com/1b8773d8e8d8ed73330b170c8c6fe6b828b693a1/pc/mediasession.cc
[modify] https://crrev.com/1b8773d8e8d8ed73330b170c8c6fe6b828b693a1/pc/mediasession.h

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 10

Project Member

Comment 18 by bugdroid1@chromium.org, Apr 27

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/df527fd6a6af9efe722f7500f16f775bfa59782a

commit df527fd6a6af9efe722f7500f16f775bfa59782a
Author: Steve Anton <steveanton@webrtc.org>
Date: Fri Apr 27 23:29:23 2018

Add e2e test for multiple video tracks without signaling SSRCs

This is intended to exercise end-to-end sending with the MID RTP
header extension and demuxing by MID.

Bug:  webrtc:4050 
Change-Id: I81edb3687c65f5efce9591fa34cb03522ad675e5
Reviewed-on: https://webrtc-review.googlesource.com/71601
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23062}
[modify] https://crrev.com/df527fd6a6af9efe722f7500f16f775bfa59782a/pc/peerconnection_integrationtest.cc

Project Member

Comment 19 by anatolid@chromium.org, May 29

Is this finished?
Project Member

Comment 20 by steveanton@webrtc.org, May 29

Status: Fixed (was: Started)

Sign in to add a comment