Files
platform-external-webrtc/pc/sdpserializer.h
Amit Hilbuch c57d573d0f RID parsing for Simulcast support.
Adding RidDescription to StreamParams that will contain the list of rids
for the track.
Adding receive_stream to MediaContentDescription to allow identifying
the stream that originates from the answerer (but is referenced by the
sender). For example, to signal that it will be received in Simulcast.

Bug: webrtc:10073.
Change-Id: Icd9a6b0a69d42bef51f525e673ce447255584334
Reviewed-on: https://webrtc-review.googlesource.com/c/113794
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25978}
2018-12-12 00:33:59 +00:00

61 lines
2.4 KiB
C++

/*
* Copyright 2018 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 PC_SDPSERIALIZER_H_
#define PC_SDPSERIALIZER_H_
#include <string>
#include "absl/strings/string_view.h"
#include "api/rtcerror.h"
#include "media/base/riddescription.h"
#include "pc/sessiondescription.h"
namespace webrtc {
// This class should serialize components of the SDP (and not the SDP itself).
// Example:
// SimulcastDescription can be serialized and deserialized by this class.
// The serializer will know how to translate the data to spec-compliant
// format without knowing about the SDP attribute details (a=simulcast:)
// Usage:
// Consider the SDP attribute for simulcast a=simulcast:<configuration>.
// The SDP serializtion code (webrtcsdp.h) should use |SdpSerializer| to
// serialize and deserialize the <configuration> section.
// This class will allow testing the serialization of components without
// having to serialize the entire SDP while hiding implementation details
// from callers of sdp serialization (webrtcsdp.h).
class SdpSerializer {
public:
// Serialization for the Simulcast description according to
// https://tools.ietf.org/html/draft-ietf-mmusic-sdp-simulcast-13#section-5.1
std::string SerializeSimulcastDescription(
const cricket::SimulcastDescription& simulcast) const;
// Deserialization for the SimulcastDescription according to
// https://tools.ietf.org/html/draft-ietf-mmusic-sdp-simulcast-13#section-5.1
RTCErrorOr<cricket::SimulcastDescription> DeserializeSimulcastDescription(
absl::string_view string) const;
// Serialization for the RID description according to
// https://tools.ietf.org/html/draft-ietf-mmusic-rid-15#section-10
std::string SerializeRidDescription(
const cricket::RidDescription& rid_description) const;
// Deserialization for the RidDescription according to
// https://tools.ietf.org/html/draft-ietf-mmusic-rid-15#section-10
RTCErrorOr<cricket::RidDescription> DeserializeRidDescription(
absl::string_view string) const;
};
} // namespace webrtc
#endif // PC_SDPSERIALIZER_H_