Index: talk/session/media/mediasession.cc |
diff --git a/talk/session/media/mediasession.cc b/talk/session/media/mediasession.cc |
index 66d0caf9d774cd9dc3b80b9f79e7d551b6e5f2a6..a1426c34ab3e2b21149c5d789a732021782b827d 100644 |
--- a/talk/session/media/mediasession.cc |
+++ b/talk/session/media/mediasession.cc |
@@ -1908,4 +1908,71 @@ const DataContentDescription* GetFirstDataContentDescription( |
GetFirstMediaContentDescription(sdesc, MEDIA_TYPE_DATA)); |
} |
+bool GetMediaChannelNameFromComponent( |
+ int component, MediaType media_type, std::string* channel_name) { |
+ if (media_type == MEDIA_TYPE_AUDIO) { |
+ if (component == ICE_CANDIDATE_COMPONENT_RTP) { |
+ *channel_name = GICE_CHANNEL_NAME_RTP; |
+ return true; |
+ } else if (component == ICE_CANDIDATE_COMPONENT_RTCP) { |
+ *channel_name = GICE_CHANNEL_NAME_RTCP; |
+ return true; |
+ } |
+ } else if (media_type == MEDIA_TYPE_VIDEO) { |
+ if (component == ICE_CANDIDATE_COMPONENT_RTP) { |
+ *channel_name = GICE_CHANNEL_NAME_VIDEO_RTP; |
+ return true; |
+ } else if (component == ICE_CANDIDATE_COMPONENT_RTCP) { |
+ *channel_name = GICE_CHANNEL_NAME_VIDEO_RTCP; |
+ return true; |
+ } |
+ } else if (media_type == MEDIA_TYPE_DATA) { |
+ if (component == ICE_CANDIDATE_COMPONENT_RTP) { |
+ *channel_name = GICE_CHANNEL_NAME_DATA_RTP; |
+ return true; |
+ } else if (component == ICE_CANDIDATE_COMPONENT_RTCP) { |
+ *channel_name = GICE_CHANNEL_NAME_DATA_RTCP; |
+ return true; |
+ } |
+ } |
+ |
+ return false; |
+} |
+ |
+bool GetMediaComponentFromChannelName( |
+ const std::string& channel_name, int* component) { |
+ if (channel_name == GICE_CHANNEL_NAME_RTP || |
+ channel_name == GICE_CHANNEL_NAME_VIDEO_RTP || |
+ channel_name == GICE_CHANNEL_NAME_DATA_RTP) { |
+ *component = ICE_CANDIDATE_COMPONENT_RTP; |
+ return true; |
+ } else if (channel_name == GICE_CHANNEL_NAME_RTCP || |
+ channel_name == GICE_CHANNEL_NAME_VIDEO_RTCP || |
+ channel_name == GICE_CHANNEL_NAME_DATA_RTP) { |
+ *component = ICE_CANDIDATE_COMPONENT_RTCP; |
+ return true; |
+ } |
+ |
+ return false; |
+} |
+ |
+bool GetMediaTypeFromChannelName( |
+ const std::string& channel_name, MediaType* media_type) { |
+ if (channel_name == GICE_CHANNEL_NAME_RTP || |
+ channel_name == GICE_CHANNEL_NAME_RTCP) { |
+ *media_type = MEDIA_TYPE_AUDIO; |
+ return true; |
+ } else if (channel_name == GICE_CHANNEL_NAME_VIDEO_RTP || |
+ channel_name == GICE_CHANNEL_NAME_VIDEO_RTCP) { |
+ *media_type = MEDIA_TYPE_VIDEO; |
+ return true; |
+ } else if (channel_name == GICE_CHANNEL_NAME_DATA_RTP || |
+ channel_name == GICE_CHANNEL_NAME_DATA_RTCP) { |
+ *media_type = MEDIA_TYPE_DATA; |
+ return true; |
+ } |
+ |
+ return false; |
+} |
+ |
} // namespace cricket |