react-native-webrtc-nitro 1.2.3 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cpp/FFmpeg/Encoder.cpp +0 -8
- package/cpp/Hybrid/HybridMediaStream.cpp +16 -8
- package/cpp/Hybrid/HybridMediaStream.hpp +2 -3
- package/cpp/Hybrid/HybridRTCPeerConnection.cpp +2 -1
- package/cpp/Hybrid/HybridRTCRtpTransceiver.cpp +48 -8
- package/lib/commonjs/specs/RTCPeerConnection.nitro.js.map +1 -1
- package/lib/module/specs/RTCPeerConnection.nitro.js.map +1 -1
- package/lib/typescript/src/specs/RTCPeerConnection.nitro.d.ts +1 -0
- package/lib/typescript/src/specs/RTCPeerConnection.nitro.d.ts.map +1 -1
- package/nitrogen/generated/shared/c++/RTCIceCandidate.hpp +9 -2
- package/package.json +1 -1
- package/src/specs/RTCPeerConnection.nitro.ts +1 -0
package/cpp/FFmpeg/Encoder.cpp
CHANGED
|
@@ -45,10 +45,6 @@ void Encoder::_init (const Frame &frame)
|
|
|
45
45
|
ctx->max_b_frames = 0;
|
|
46
46
|
ctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
|
47
47
|
ctx->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE;
|
|
48
|
-
ctx->color_range = AVCOL_RANGE_MPEG;
|
|
49
|
-
ctx->color_primaries = AVCOL_PRI_BT709;
|
|
50
|
-
ctx->color_trc = AVCOL_TRC_BT709;
|
|
51
|
-
ctx->colorspace = AVCOL_SPC_BT709;
|
|
52
48
|
}
|
|
53
49
|
else if (encoder->id == AV_CODEC_ID_H265)
|
|
54
50
|
{
|
|
@@ -62,10 +58,6 @@ void Encoder::_init (const Frame &frame)
|
|
|
62
58
|
ctx->max_b_frames = 0;
|
|
63
59
|
ctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
|
64
60
|
ctx->profile = FF_PROFILE_HEVC_MAIN;
|
|
65
|
-
ctx->color_range = AVCOL_RANGE_MPEG;
|
|
66
|
-
ctx->color_primaries = AVCOL_PRI_BT709;
|
|
67
|
-
ctx->color_trc = AVCOL_TRC_BT709;
|
|
68
|
-
ctx->colorspace = AVCOL_SPC_BT709;
|
|
69
61
|
}
|
|
70
62
|
else if (encoder->id == AV_CODEC_ID_OPUS)
|
|
71
63
|
{
|
|
@@ -7,9 +7,9 @@ auto HybridMediaStream::getTracks ()
|
|
|
7
7
|
{
|
|
8
8
|
std::vector<std::shared_ptr<HybridMediaStreamTrackSpec>>
|
|
9
9
|
hybridMediaStreamTrackSpecs;
|
|
10
|
-
hybridMediaStreamTrackSpecs.reserve (
|
|
10
|
+
hybridMediaStreamTrackSpecs.reserve (mediaStreamTracks.size ());
|
|
11
11
|
|
|
12
|
-
for (const auto &
|
|
12
|
+
for (const auto &track : mediaStreamTracks)
|
|
13
13
|
{
|
|
14
14
|
hybridMediaStreamTrackSpecs.push_back (track);
|
|
15
15
|
}
|
|
@@ -21,9 +21,9 @@ auto HybridMediaStream::getAudioTracks ()
|
|
|
21
21
|
{
|
|
22
22
|
std::vector<std::shared_ptr<HybridMediaStreamTrackSpec>>
|
|
23
23
|
hybridMediaStreamTrackSpecs;
|
|
24
|
-
hybridMediaStreamTrackSpecs.reserve (
|
|
24
|
+
hybridMediaStreamTrackSpecs.reserve (mediaStreamTracks.size ());
|
|
25
25
|
|
|
26
|
-
for (const auto &
|
|
26
|
+
for (const auto &track : mediaStreamTracks)
|
|
27
27
|
{
|
|
28
28
|
if (track->getKind () == "audio")
|
|
29
29
|
{
|
|
@@ -38,9 +38,9 @@ auto HybridMediaStream::getVideoTracks ()
|
|
|
38
38
|
{
|
|
39
39
|
std::vector<std::shared_ptr<HybridMediaStreamTrackSpec>>
|
|
40
40
|
hybridMediaStreamTrackSpecs;
|
|
41
|
-
hybridMediaStreamTrackSpecs.reserve (
|
|
41
|
+
hybridMediaStreamTrackSpecs.reserve (mediaStreamTracks.size ());
|
|
42
42
|
|
|
43
|
-
for (const auto &
|
|
43
|
+
for (const auto &track : mediaStreamTracks)
|
|
44
44
|
{
|
|
45
45
|
if (track->getKind () == "video")
|
|
46
46
|
{
|
|
@@ -53,11 +53,19 @@ auto HybridMediaStream::getVideoTracks ()
|
|
|
53
53
|
void HybridMediaStream::addTrack (
|
|
54
54
|
const std::shared_ptr<HybridMediaStreamTrackSpec> &track)
|
|
55
55
|
{
|
|
56
|
-
|
|
56
|
+
if (std::find (mediaStreamTracks.begin (), mediaStreamTracks.end (), track)
|
|
57
|
+
!= mediaStreamTracks.end ())
|
|
58
|
+
{
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
mediaStreamTracks.push_back (track);
|
|
57
63
|
};
|
|
58
64
|
|
|
59
65
|
void HybridMediaStream::removeTrack (
|
|
60
66
|
const std::shared_ptr<HybridMediaStreamTrackSpec> &track)
|
|
61
67
|
{
|
|
62
|
-
|
|
68
|
+
mediaStreamTracks.erase (std::remove (mediaStreamTracks.begin (),
|
|
69
|
+
mediaStreamTracks.end (), track),
|
|
70
|
+
mediaStreamTracks.end ());
|
|
63
71
|
};
|
|
@@ -8,9 +8,8 @@ namespace margelo::nitro::webrtc
|
|
|
8
8
|
{
|
|
9
9
|
private:
|
|
10
10
|
const std::string id;
|
|
11
|
-
std::
|
|
12
|
-
|
|
13
|
-
mediaStreamTrackMap;
|
|
11
|
+
std::vector<std::shared_ptr<HybridMediaStreamTrackSpec>>
|
|
12
|
+
mediaStreamTracks;
|
|
14
13
|
|
|
15
14
|
public:
|
|
16
15
|
HybridMediaStream ()
|
|
@@ -334,7 +334,8 @@ void HybridRTCPeerConnection::setConfiguration (
|
|
|
334
334
|
{
|
|
335
335
|
if (this->iceCandidateHandler)
|
|
336
336
|
{
|
|
337
|
-
RTCIceCandidate candidateObj{ candidate.candidate ()
|
|
337
|
+
RTCIceCandidate candidateObj{ candidate.candidate (),
|
|
338
|
+
candidate.mid () };
|
|
338
339
|
RTCPeerConnectionIceEvent event{ candidateObj };
|
|
339
340
|
this->iceCandidateHandler.value () (event);
|
|
340
341
|
}
|
|
@@ -104,7 +104,6 @@ void HybridRTCRtpTransceiver::senderOnOpen ()
|
|
|
104
104
|
return;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
const size_t mtu = 1200;
|
|
108
107
|
auto ssrcs = track->description ().getSSRCs ();
|
|
109
108
|
if (ssrcs.size () != 1)
|
|
110
109
|
{
|
|
@@ -116,31 +115,72 @@ void HybridRTCRtpTransceiver::senderOnOpen ()
|
|
|
116
115
|
auto separator = rtc::NalUnit::Separator::StartSequence;
|
|
117
116
|
if (rtpMap->format == "H265")
|
|
118
117
|
{
|
|
118
|
+
// create RTP configuration
|
|
119
119
|
auto rtpConfig = std::make_shared<rtc::RtpPacketizationConfig> (
|
|
120
120
|
ssrc, track->mid (), rtpMap->payloadType,
|
|
121
121
|
rtc::H265RtpPacketizer::ClockRate);
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
122
|
+
// create packetizer
|
|
123
|
+
auto packetizer
|
|
124
|
+
= std::make_shared<rtc::H265RtpPacketizer> (separator, rtpConfig);
|
|
125
|
+
|
|
126
|
+
// add RTCP SR handler
|
|
127
|
+
auto srReporter = make_shared<rtc::RtcpSrReporter> (rtpConfig);
|
|
128
|
+
packetizer->addToChain (srReporter);
|
|
129
|
+
|
|
130
|
+
// add RTCP NACK handler
|
|
131
|
+
auto nackResponder = make_shared<rtc::RtcpNackResponder> ();
|
|
132
|
+
packetizer->addToChain (nackResponder);
|
|
133
|
+
|
|
134
|
+
// set handler
|
|
135
|
+
track->setMediaHandler (packetizer);
|
|
136
|
+
|
|
125
137
|
avCodecId = AV_CODEC_ID_H265;
|
|
126
138
|
}
|
|
127
139
|
else if (rtpMap->format == "H264")
|
|
128
140
|
{
|
|
141
|
+
// create RTP configuration
|
|
129
142
|
auto rtpConfig = std::make_shared<rtc::RtpPacketizationConfig> (
|
|
130
143
|
ssrc, track->mid (), rtpMap->payloadType,
|
|
131
144
|
rtc::H264RtpPacketizer::ClockRate);
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
145
|
+
|
|
146
|
+
// create packetizer
|
|
147
|
+
auto packetizer
|
|
148
|
+
= std::make_shared<rtc::H264RtpPacketizer> (separator, rtpConfig);
|
|
149
|
+
|
|
150
|
+
// add RTCP SR handler
|
|
151
|
+
auto srReporter = make_shared<rtc::RtcpSrReporter> (rtpConfig);
|
|
152
|
+
packetizer->addToChain (srReporter);
|
|
153
|
+
|
|
154
|
+
// add RTCP NACK handler
|
|
155
|
+
auto nackResponder = make_shared<rtc::RtcpNackResponder> ();
|
|
156
|
+
packetizer->addToChain (nackResponder);
|
|
157
|
+
|
|
158
|
+
// set handler
|
|
159
|
+
track->setMediaHandler (packetizer);
|
|
160
|
+
|
|
135
161
|
avCodecId = AV_CODEC_ID_H264;
|
|
136
162
|
}
|
|
137
163
|
else if (rtpMap->format == "opus")
|
|
138
164
|
{
|
|
165
|
+
// create RTP configuration
|
|
139
166
|
auto rtpConfig = std::make_shared<rtc::RtpPacketizationConfig> (
|
|
140
167
|
ssrc, track->mid (), rtpMap->payloadType,
|
|
141
168
|
rtc::OpusRtpPacketizer::DefaultClockRate);
|
|
169
|
+
|
|
170
|
+
// create packetizer
|
|
142
171
|
auto packetizer = std::make_shared<rtc::OpusRtpPacketizer> (rtpConfig);
|
|
143
|
-
|
|
172
|
+
|
|
173
|
+
// add RTCP SR handler
|
|
174
|
+
auto srReporter = make_shared<rtc::RtcpSrReporter> (rtpConfig);
|
|
175
|
+
packetizer->addToChain (srReporter);
|
|
176
|
+
|
|
177
|
+
// add RTCP NACK handler
|
|
178
|
+
auto nackResponder = make_shared<rtc::RtcpNackResponder> ();
|
|
179
|
+
packetizer->addToChain (nackResponder);
|
|
180
|
+
|
|
181
|
+
// set handler
|
|
182
|
+
track->setMediaHandler (packetizer);
|
|
183
|
+
|
|
144
184
|
avCodecId = AV_CODEC_ID_OPUS;
|
|
145
185
|
}
|
|
146
186
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNativeNitroModules","require","RTCPeerConnectionConstructor","getHybridObjectConstructor","RTCPeerConnectionExport","exports","RTCPeerConnection","Proxy","construct","target","args","config","instance","setConfiguration"],"sourceRoot":"../../../src","sources":["specs/RTCPeerConnection.nitro.ts"],"mappings":";;;;;;AACA,IAAAA,wBAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_reactNativeNitroModules","require","RTCPeerConnectionConstructor","getHybridObjectConstructor","RTCPeerConnectionExport","exports","RTCPeerConnection","Proxy","construct","target","args","config","instance","setConfiguration"],"sourceRoot":"../../../src","sources":["specs/RTCPeerConnection.nitro.ts"],"mappings":";;;;;;AACA,IAAAA,wBAAA,GAAAC,OAAA;AA6FA,MAAMC,4BAA4B,GAChC,IAAAC,mDAA0B,EAAoB,mBAAmB,CAAC;AACpE,MAAMC,uBAAuB,GAAAC,OAAA,CAAAC,iBAAA,GAAG,IAAIC,KAAK,CAACL,4BAA4B,EAAE;EACtEM,SAASA,CAACC,MAAM,EAAEC,IAAI,EAAE;IACtB,MAAMC,MAAM,GAAGD,IAAI,CAAC,CAAC,CAAiC;IACtD,MAAME,QAAQ,GAAG,IAAIH,MAAM,CAAC,CAAC;IAC7BG,QAAQ,CAACC,gBAAgB,CAACF,MAAM,CAAC;IACjC,OAAOC,QAAQ;EACjB;AACF,CAAC,CAA2D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getHybridObjectConstructor","RTCPeerConnectionConstructor","RTCPeerConnectionExport","Proxy","construct","target","args","config","instance","setConfiguration","RTCPeerConnection"],"sourceRoot":"../../../src","sources":["specs/RTCPeerConnection.nitro.ts"],"mappings":";;AACA,SAASA,0BAA0B,QAAQ,4BAA4B;
|
|
1
|
+
{"version":3,"names":["getHybridObjectConstructor","RTCPeerConnectionConstructor","RTCPeerConnectionExport","Proxy","construct","target","args","config","instance","setConfiguration","RTCPeerConnection"],"sourceRoot":"../../../src","sources":["specs/RTCPeerConnection.nitro.ts"],"mappings":";;AACA,SAASA,0BAA0B,QAAQ,4BAA4B;AA6FvE,MAAMC,4BAA4B,GAChCD,0BAA0B,CAAoB,mBAAmB,CAAC;AACpE,MAAME,uBAAuB,GAAG,IAAIC,KAAK,CAACF,4BAA4B,EAAE;EACtEG,SAASA,CAACC,MAAM,EAAEC,IAAI,EAAE;IACtB,MAAMC,MAAM,GAAGD,IAAI,CAAC,CAAC,CAAiC;IACtD,MAAME,QAAQ,GAAG,IAAIH,MAAM,CAAC,CAAC;IAC7BG,QAAQ,CAACC,gBAAgB,CAACF,MAAM,CAAC;IACjC,OAAOC,QAAQ;EACjB;AACF,CAAC,CAA2D;AAE5D,SAASN,uBAAuB,IAAIQ,iBAAiB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTCPeerConnection.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/RTCPeerConnection.nitro.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAE9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,KAAK,oBAAoB,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,CAAA;AAC5D,KAAK,sBAAsB,GACvB,QAAQ,GACR,WAAW,GACX,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,KAAK,CAAA;AACT,KAAK,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAA;AAE9D,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAA;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,0BAA0B,CAAA;IACtC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"RTCPeerConnection.nitro.d.ts","sourceRoot":"","sources":["../../../../src/specs/RTCPeerConnection.nitro.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
#include <string>
|
|
29
|
+
#include <NitroModules/Null.hpp>
|
|
30
|
+
#include <variant>
|
|
31
|
+
#include <optional>
|
|
29
32
|
|
|
30
33
|
namespace margelo::nitro::webrtc {
|
|
31
34
|
|
|
@@ -35,10 +38,11 @@ namespace margelo::nitro::webrtc {
|
|
|
35
38
|
struct RTCIceCandidate {
|
|
36
39
|
public:
|
|
37
40
|
std::string candidate SWIFT_PRIVATE;
|
|
41
|
+
std::optional<std::variant<nitro::NullType, std::string>> sdpMid SWIFT_PRIVATE;
|
|
38
42
|
|
|
39
43
|
public:
|
|
40
44
|
RTCIceCandidate() = default;
|
|
41
|
-
explicit RTCIceCandidate(std::string candidate): candidate(candidate) {}
|
|
45
|
+
explicit RTCIceCandidate(std::string candidate, std::optional<std::variant<nitro::NullType, std::string>> sdpMid): candidate(candidate), sdpMid(sdpMid) {}
|
|
42
46
|
};
|
|
43
47
|
|
|
44
48
|
} // namespace margelo::nitro::webrtc
|
|
@@ -51,12 +55,14 @@ namespace margelo::nitro {
|
|
|
51
55
|
static inline margelo::nitro::webrtc::RTCIceCandidate fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
|
|
52
56
|
jsi::Object obj = arg.asObject(runtime);
|
|
53
57
|
return margelo::nitro::webrtc::RTCIceCandidate(
|
|
54
|
-
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "candidate"))
|
|
58
|
+
JSIConverter<std::string>::fromJSI(runtime, obj.getProperty(runtime, "candidate")),
|
|
59
|
+
JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::fromJSI(runtime, obj.getProperty(runtime, "sdpMid"))
|
|
55
60
|
);
|
|
56
61
|
}
|
|
57
62
|
static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::webrtc::RTCIceCandidate& arg) {
|
|
58
63
|
jsi::Object obj(runtime);
|
|
59
64
|
obj.setProperty(runtime, "candidate", JSIConverter<std::string>::toJSI(runtime, arg.candidate));
|
|
65
|
+
obj.setProperty(runtime, "sdpMid", JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::toJSI(runtime, arg.sdpMid));
|
|
60
66
|
return obj;
|
|
61
67
|
}
|
|
62
68
|
static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
|
|
@@ -68,6 +74,7 @@ namespace margelo::nitro {
|
|
|
68
74
|
return false;
|
|
69
75
|
}
|
|
70
76
|
if (!JSIConverter<std::string>::canConvert(runtime, obj.getProperty(runtime, "candidate"))) return false;
|
|
77
|
+
if (!JSIConverter<std::optional<std::variant<nitro::NullType, std::string>>>::canConvert(runtime, obj.getProperty(runtime, "sdpMid"))) return false;
|
|
71
78
|
return true;
|
|
72
79
|
}
|
|
73
80
|
};
|
package/package.json
CHANGED