OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2004 Google Inc. | 3 * Copyright 2004 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 13 matching lines...) Expand all Loading... |
24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | 24 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 */ | 26 */ |
27 | 27 |
28 // Types and classes used in media session descriptions. | 28 // Types and classes used in media session descriptions. |
29 | 29 |
30 #ifndef TALK_SESSION_MEDIA_MEDIASESSION_H_ | 30 #ifndef TALK_SESSION_MEDIA_MEDIASESSION_H_ |
31 #define TALK_SESSION_MEDIA_MEDIASESSION_H_ | 31 #define TALK_SESSION_MEDIA_MEDIASESSION_H_ |
32 | 32 |
33 #include <algorithm> | 33 #include <algorithm> |
| 34 #include <map> |
34 #include <string> | 35 #include <string> |
35 #include <vector> | 36 #include <vector> |
36 | 37 |
37 #include "webrtc/base/scoped_ptr.h" | 38 #include "webrtc/base/scoped_ptr.h" |
38 #include "webrtc/media/base/codec.h" | 39 #include "webrtc/media/base/codec.h" |
39 #include "webrtc/media/base/constants.h" | 40 #include "webrtc/media/base/constants.h" |
40 #include "webrtc/media/base/cryptoparams.h" | 41 #include "webrtc/media/base/cryptoparams.h" |
41 #include "webrtc/media/base/mediachannel.h" | 42 #include "webrtc/media/base/mediachannel.h" |
42 #include "webrtc/media/base/mediaengine.h" // For DataChannelType | 43 #include "webrtc/media/base/mediaengine.h" // For DataChannelType |
43 #include "webrtc/media/base/streamparams.h" | 44 #include "webrtc/media/base/streamparams.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 bool recv_audio; | 142 bool recv_audio; |
142 bool recv_video; | 143 bool recv_video; |
143 DataChannelType data_channel_type; | 144 DataChannelType data_channel_type; |
144 bool is_muc; | 145 bool is_muc; |
145 bool vad_enabled; | 146 bool vad_enabled; |
146 bool rtcp_mux_enabled; | 147 bool rtcp_mux_enabled; |
147 bool bundle_enabled; | 148 bool bundle_enabled; |
148 // bps. -1 == auto. | 149 // bps. -1 == auto. |
149 int video_bandwidth; | 150 int video_bandwidth; |
150 int data_bandwidth; | 151 int data_bandwidth; |
151 TransportOptions audio_transport_options; | 152 // content name ("mid") => options. |
152 TransportOptions video_transport_options; | 153 std::map<std::string, TransportOptions> transport_options; |
153 TransportOptions data_transport_options; | |
154 | 154 |
155 struct Stream { | 155 struct Stream { |
156 Stream(MediaType type, | 156 Stream(MediaType type, |
157 const std::string& id, | 157 const std::string& id, |
158 const std::string& sync_label, | 158 const std::string& sync_label, |
159 int num_sim_layers) | 159 int num_sim_layers) |
160 : type(type), id(id), sync_label(sync_label), | 160 : type(type), id(id), sync_label(sync_label), |
161 num_sim_layers(num_sim_layers) { | 161 num_sim_layers(num_sim_layers) { |
162 } | 162 } |
163 MediaType type; | 163 MediaType type; |
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
529 bool add_legacy_; | 529 bool add_legacy_; |
530 std::string lang_; | 530 std::string lang_; |
531 const TransportDescriptionFactory* transport_desc_factory_; | 531 const TransportDescriptionFactory* transport_desc_factory_; |
532 }; | 532 }; |
533 | 533 |
534 // Convenience functions. | 534 // Convenience functions. |
535 bool IsMediaContent(const ContentInfo* content); | 535 bool IsMediaContent(const ContentInfo* content); |
536 bool IsAudioContent(const ContentInfo* content); | 536 bool IsAudioContent(const ContentInfo* content); |
537 bool IsVideoContent(const ContentInfo* content); | 537 bool IsVideoContent(const ContentInfo* content); |
538 bool IsDataContent(const ContentInfo* content); | 538 bool IsDataContent(const ContentInfo* content); |
| 539 const ContentInfo* GetFirstMediaContent(const ContentInfos& contents, |
| 540 MediaType media_type); |
539 const ContentInfo* GetFirstAudioContent(const ContentInfos& contents); | 541 const ContentInfo* GetFirstAudioContent(const ContentInfos& contents); |
540 const ContentInfo* GetFirstVideoContent(const ContentInfos& contents); | 542 const ContentInfo* GetFirstVideoContent(const ContentInfos& contents); |
541 const ContentInfo* GetFirstDataContent(const ContentInfos& contents); | 543 const ContentInfo* GetFirstDataContent(const ContentInfos& contents); |
542 const ContentInfo* GetFirstAudioContent(const SessionDescription* sdesc); | 544 const ContentInfo* GetFirstAudioContent(const SessionDescription* sdesc); |
543 const ContentInfo* GetFirstVideoContent(const SessionDescription* sdesc); | 545 const ContentInfo* GetFirstVideoContent(const SessionDescription* sdesc); |
544 const ContentInfo* GetFirstDataContent(const SessionDescription* sdesc); | 546 const ContentInfo* GetFirstDataContent(const SessionDescription* sdesc); |
545 const AudioContentDescription* GetFirstAudioContentDescription( | 547 const AudioContentDescription* GetFirstAudioContentDescription( |
546 const SessionDescription* sdesc); | 548 const SessionDescription* sdesc); |
547 const VideoContentDescription* GetFirstVideoContentDescription( | 549 const VideoContentDescription* GetFirstVideoContentDescription( |
548 const SessionDescription* sdesc); | 550 const SessionDescription* sdesc); |
549 const DataContentDescription* GetFirstDataContentDescription( | 551 const DataContentDescription* GetFirstDataContentDescription( |
550 const SessionDescription* sdesc); | 552 const SessionDescription* sdesc); |
551 | 553 |
552 void GetSupportedAudioCryptoSuites(std::vector<int>* crypto_suites); | 554 void GetSupportedAudioCryptoSuites(std::vector<int>* crypto_suites); |
553 void GetSupportedVideoCryptoSuites(std::vector<int>* crypto_suites); | 555 void GetSupportedVideoCryptoSuites(std::vector<int>* crypto_suites); |
554 void GetSupportedDataCryptoSuites(std::vector<int>* crypto_suites); | 556 void GetSupportedDataCryptoSuites(std::vector<int>* crypto_suites); |
555 void GetDefaultSrtpCryptoSuites(std::vector<int>* crypto_suites); | 557 void GetDefaultSrtpCryptoSuites(std::vector<int>* crypto_suites); |
556 void GetSupportedAudioCryptoSuiteNames( | 558 void GetSupportedAudioCryptoSuiteNames( |
557 std::vector<std::string>* crypto_suite_names); | 559 std::vector<std::string>* crypto_suite_names); |
558 void GetSupportedVideoCryptoSuiteNames( | 560 void GetSupportedVideoCryptoSuiteNames( |
559 std::vector<std::string>* crypto_suite_names); | 561 std::vector<std::string>* crypto_suite_names); |
560 void GetSupportedDataCryptoSuiteNames( | 562 void GetSupportedDataCryptoSuiteNames( |
561 std::vector<std::string>* crypto_suite_names); | 563 std::vector<std::string>* crypto_suite_names); |
562 void GetDefaultSrtpCryptoSuiteNames( | 564 void GetDefaultSrtpCryptoSuiteNames( |
563 std::vector<std::string>* crypto_suite_names); | 565 std::vector<std::string>* crypto_suite_names); |
564 | 566 |
565 } // namespace cricket | 567 } // namespace cricket |
566 | 568 |
567 #endif // TALK_SESSION_MEDIA_MEDIASESSION_H_ | 569 #endif // TALK_SESSION_MEDIA_MEDIASESSION_H_ |
OLD | NEW |