void NrIceCtx::trickle_cb(void *arg, nr_ice_ctx *ice_ctx, nr_ice_media_stream *stream, int component_id, nr_ice_candidate *candidate) { // Get the ICE ctx NrIceCtx *ctx = static_cast<NrIceCtx *>(arg); RefPtr<NrIceMediaStream> s = ctx->FindStream(stream); if (!s) { // This stream has been removed because it is inactive return; } // Format the candidate. char candidate_str[NR_ICE_MAX_ATTRIBUTE_SIZE]; int r = nr_ice_format_candidate_attribute(candidate, candidate_str, sizeof(candidate_str)); MOZ_ASSERT(!r); if (r) return; MOZ_MTLOG(ML_INFO, "NrIceCtx(" << ctx->name_ << "): trickling candidate " << candidate_str); s->SignalCandidate(s, candidate_str); }
int NrIceCtx::msg_recvd(void *obj, nr_ice_peer_ctx *pctx, nr_ice_media_stream *stream, int component_id, UCHAR *msg, int len) { // Get the ICE ctx NrIceCtx *ctx = static_cast<NrIceCtx *>(obj); RefPtr<NrIceMediaStream> s = ctx->FindStream(stream); // Streams which do not exist should never have packets. MOZ_ASSERT(s); s->SignalPacketReceived(s, component_id, msg, len); return 0; }
int NrIceCtx::stream_failed(void *obj, nr_ice_media_stream *stream) { MOZ_MTLOG(PR_LOG_DEBUG, "stream_failed called"); // Get the ICE ctx NrIceCtx *ctx = static_cast<NrIceCtx *>(obj); RefPtr<NrIceMediaStream> s = ctx->FindStream(stream); // Streams which do not exist should never fail. MOZ_ASSERT(s); ctx->SetState(ICE_CTX_FAILED); s -> SignalFailed(s); return 0; }
int NrIceCtx::stream_ready(void *obj, nr_ice_media_stream *stream) { MOZ_MTLOG(PR_LOG_DEBUG, "stream_ready called"); // Get the ICE ctx NrIceCtx *ctx = static_cast<NrIceCtx *>(obj); RefPtr<NrIceMediaStream> s = ctx->FindStream(stream); // Streams which do not exist should never be ready. MOZ_ASSERT(s); s->Ready(); return 0; }
void NrIceCtx::trickle_cb(void *arg, nr_ice_ctx *ice_ctx, nr_ice_media_stream *stream, int component_id, nr_ice_candidate *candidate) { // Get the ICE ctx NrIceCtx *ctx = static_cast<NrIceCtx *>(arg); RefPtr<NrIceMediaStream> s = ctx->FindStream(stream); // Streams which do not exist shouldn't have candidates. MOZ_ASSERT(s); // Format the candidate. char candidate_str[NR_ICE_MAX_ATTRIBUTE_SIZE]; int r = nr_ice_format_candidate_attribute(candidate, candidate_str, sizeof(candidate_str)); MOZ_ASSERT(!r); if (r) return; MOZ_MTLOG(ML_INFO, "NrIceCtx(" << ctx->name_ << "): trickling candidate " << candidate_str); s->SignalCandidate(s, candidate_str); }