Chromium Code Reviews| Index: webrtc/ortc/rtpparametersconversion.h | 
| diff --git a/webrtc/ortc/rtpparametersconversion.h b/webrtc/ortc/rtpparametersconversion.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..d2b9fdfc945772df22430887d9ce352e8a2bffb4 | 
| --- /dev/null | 
| +++ b/webrtc/ortc/rtpparametersconversion.h | 
| @@ -0,0 +1,96 @@ | 
| +/* | 
| + * Copyright 2017 The WebRTC project authors. All Rights Reserved. | 
| + * | 
| + * Use of this source code is governed by a BSD-style license | 
| + * that can be found in the LICENSE file in the root of the source | 
| + * tree. An additional intellectual property rights grant can be found | 
| + * in the file PATENTS. All contributing project authors may | 
| + * be found in the AUTHORS file in the root of the source tree. | 
| + */ | 
| + | 
| +#ifndef WEBRTC_ORTC_RTPPARAMETERSCONVERSION_H_ | 
| +#define WEBRTC_ORTC_RTPPARAMETERSCONVERSION_H_ | 
| + | 
| +#include <memory> | 
| +#include <vector> | 
| + | 
| +#include "webrtc/api/rtcerror.h" | 
| +#include "webrtc/api/rtpparameters.h" | 
| +#include "webrtc/base/optional.h" | 
| +#include "webrtc/pc/mediasession.h" | 
| +#include "webrtc/media/base/codec.h" | 
| + | 
| +namespace webrtc { | 
| + | 
| +// NOTE: Some functions are templated for convenience, such that template-based | 
| +// code dealing with AudioContentDescription and VideoContentDescription can | 
| +// use this easily. Such methods are usable with cricket::AudioCodec and | 
| +// cricket::VideoCodec. | 
| + | 
| +//*************************************************************************** | 
| +// Functions for converting from new webrtc:: structures to old cricket:: | 
| +// structures. | 
| +// | 
| +// As the return values imply, all of these functions do validation of the | 
| +// parameters and return an error if they're invalid. It's expected that any | 
| +// default values (such as video clock rate of 90000) have been filled by the | 
| +// time the webrtc:: structure is being converted to the cricket:: one. | 
| +// | 
| +// These are expected to be used when parameters are passed into an RtpSender | 
| +// or RtpReceiver, and need to be validated and converted so they can be | 
| +// applied to the media engine level. | 
| +//*************************************************************************** | 
| + | 
| +// Returns error on invalid input. Certain message types are only valid for | 
| +// certain feedback types. | 
| +RTCErrorOr<cricket::FeedbackParam> ToFeedbackParam( | 
| + const RtcpFeedback& feedback); | 
| + | 
| +// Verifies that the codec kind is correct, and it has mandatory parameters | 
| +// filled, with values in valid ranges. | 
| +template <typename C> | 
| +RTCErrorOr<C> ToCricketCodec(const RtpCodecParameters& codec); | 
| + | 
| +// Verifies that payload types aren't duplicated, in addition to normal | 
| +// validation. | 
| +template <typename C> | 
| +RTCErrorOr<std::vector<C>> ToCricketCodecs( | 
| + const std::vector<RtpCodecParameters>& codecs); | 
| + | 
| +// Validates that header extension IDs aren't duplicated. | 
| +RTCErrorOr<cricket::RtpHeaderExtensions> ToRtpHeaderExtensions( | 
| + const std::vector<RtpHeaderExtensionParameters>& extensions); | 
| 
 
pthatcher1
2017/02/21 20:11:55
ToCricketX everywhere?
 
Taylor Brandstetter
2017/02/22 01:41:59
Done.
 
 | 
| + | 
| +// SSRCs are allowed to be ommitted. This may be used for receive parameters | 
| +// where SSRCs are unsignaled. | 
| +RTCErrorOr<cricket::StreamParamsVec> ToStreamParamsVec( | 
| + const std::vector<RtpEncodingParameters>& encodings); | 
| + | 
| +//***************************************************************************** | 
| +// Functions for converting from old cricket:: structures to new webrtc:: | 
| +// structures. Unlike the above functions, these are permissive with regards to | 
| +// input validation; it's assumed that any necessary validation already | 
| +// occurred. | 
| +// | 
| +// These are expected to be used either to convert from audio/video engine | 
| +// capabilities to RtpCapabilities, or to convert from already-parsed SDP | 
| +// (in the form of cricket:: structures) to webrtc:: structures. The latter | 
| +// functionality is not yet implemented. | 
| +//***************************************************************************** | 
| + | 
| +// Returns empty value if |cricket_feedback| is a feedback type not | 
| +// supported/recognized. | 
| +rtc::Optional<RtcpFeedback> ToRtcpFeedback( | 
| + const cricket::FeedbackParam& cricket_feedback); | 
| + | 
| +template <typename C> | 
| +RtpCodecCapability ToRtpCodecCapability(const C& cricket_codec); | 
| + | 
| +template <class C> | 
| +RtpCapabilities ToRtpCapabilities( | 
| + const std::vector<C>& cricket_codecs, | 
| + const cricket::RtpHeaderExtensions& cricket_extensions); | 
| + | 
| +} // namespace webrtc | 
| + | 
| +#endif // WEBRTC_ORTC_RTPPARAMETERSCONVERSION_H_ |