ZLMediaKit/webrtc/RtpExt.h

61 lines
1.5 KiB
C++
Raw Normal View History

2021-05-07 11:19:12 +08:00
/*
2021-05-06 16:25:18 +08:00
* Copyright (c) 2016 The ZLMediaKit project authors. All Rights Reserved.
*
* This file is part of ZLMediaKit(https://github.com/xia-chu/ZLMediaKit).
*
* Use of this source code is governed by MIT license that can be found in the
* LICENSE file in the root of the source tree. All contributing project authors
* may be found in the AUTHORS file in the root of the source tree.
*/
#ifndef ZLMEDIAKIT_RTPEXT_H
#define ZLMEDIAKIT_RTPEXT_H
#include <stdint.h>
#include <map>
#include <string>
#include "Common/macros.h"
#include "Rtsp/Rtsp.h"
using namespace std;
using namespace mediakit;
2021-05-07 12:00:26 +08:00
enum class RtpExtType : uint8_t {
padding = 0,
ssrc_audio_level = 1,
abs_send_time = 2,
transport_cc = 3,
sdes_mid = 4,
sdes_rtp_stream_id = 5,
sdes_repaired_rtp_stream_id = 6,
video_timing = 7,
color_space = 8,
video_content_type = 11,
playout_delay = 12,
video_orientation = 13,
toffset = 14,
reserved = 15,
};
class RtcMedia;
class RtpExt : public std::string {
2021-05-06 16:25:18 +08:00
public:
2021-05-07 14:56:01 +08:00
RtpExt(RtpExtType type, uint8_t id, const char *str, size_t size) : std::string(str, size), _type(type), _id(id) {}
2021-05-07 12:00:26 +08:00
~RtpExt() = default;
2021-05-07 14:56:01 +08:00
static map<RtpExtType/*type*/, RtpExt/*data*/> getExtValue(const RtpHeader *header, const RtcMedia &media);
2021-05-07 14:01:24 +08:00
static RtpExtType getExtType(const string &url);
static const string& getExtUrl(RtpExtType type);
2021-05-07 14:56:01 +08:00
static const char *getExtName(RtpExtType type);
2021-05-07 12:00:26 +08:00
2021-05-07 14:56:01 +08:00
string dumpString() const;
2021-05-07 12:00:26 +08:00
private:
RtpExtType _type;
2021-05-07 14:56:01 +08:00
uint8_t _id;
2021-05-06 16:25:18 +08:00
};
#endif //ZLMEDIAKIT_RTPEXT_H