NACK调用栈
从分发器接收Packet包
void RtpVideoStreamReceiver::ReceivePacket(const RtpPacketReceived& packet) {if (packet.payload_size() == 0) {// Padding or keep-alive packet.// TODO(nisse): Could drop empty packets earlier, but need to figure out how// they should be counted in stats.NotifyReceiverOfEmptyPacket(packet.SequenceNumber());return;}if (packet.PayloadType() == config_.rtp.red_payload_type) {ParseAndHandleEncapsulatingHeader(packet);//red走这里return;}//根据PayloadType去payload_type_map_表中寻找RTP解包器const auto type_it = payload_type_map_.find(packet.PayloadType());if (type_it == payload_type_map_.end()) {return;}absl::optional<VideoRtpDepacketizer::ParsedRtpPayload> parsed_payload =type_it->second->Pars