// This function is only expected to be called on the signalling thread. // On the other hand, some test or even production setups may use // several signaling threads.
int RtpReceiverInternal::GenerateUniqueId() { static std::atomic<int> g_unique_id{0};
return ++g_unique_id;
}
std::vector<scoped_refptr<MediaStreamInterface>>
RtpReceiverInternal::CreateStreamsFromIds(std::vector<std::string> stream_ids) {
std::vector<scoped_refptr<MediaStreamInterface>> streams(stream_ids.size());
for (size_t i = 0; i < stream_ids.size(); ++i) {
streams[i] = MediaStreamProxy::Create(
Thread::Current(), MediaStream::Create(std::move(stream_ids[i])));
} return streams;
}
void RtpReceiverBase::SetFrameDecryptor(
scoped_refptr<FrameDecryptorInterface> frame_decryptor) {
RTC_DCHECK_RUN_ON(worker_thread_);
frame_decryptor_ = std::move(frame_decryptor); // Special Case: Set the frame decryptor to any value on any existing channel.
if (media_channel() && signaled_ssrc_) {
media_channel()->SetFrameDecryptor(*signaled_ssrc_, frame_decryptor_);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.