void Sender::sendPublish() { rtmp::Packet packet; packet.channel = rtmp::Channel::SOURCE; packet.messageStreamId = streamId; packet.timestamp = 0; packet.messageType = rtmp::MessageType::INVOKE; amf0::Node commandName = std::string("publish"); commandName.encode(packet.data); amf0::Node transactionIdNode = static_cast<double>(++invokeId); transactionIdNode.encode(packet.data); amf0::Node argument1(amf0::Marker::Null); argument1.encode(packet.data); amf0::Node argument2 = streamName; argument2.encode(packet.data); std::vector<uint8_t> buffer; encodePacket(buffer, outChunkSize, packet, sentPackets); #ifdef DEBUG std::cout << "Sending INVOKE " << commandName.asString() << ", transaction ID: " << invokeId << std::endl; #endif socket.send(buffer); invokes[invokeId] = commandName.asString(); }
int main(int argc, char** argv) { LogBetaFunction<size_t, 2> lB_1; Eigen::Matrix<size_t, 2, 1> argument1; argument1(0) = 1; argument1(1) = 1; std::cout << "lB_1(1, 1): " << std::fixed << lB_1(argument1) << std::endl; if (fabs(lB_1(argument1) - 0.0) > std::numeric_limits<double>::epsilon()) return 1; argument1(0) = 1; argument1(1) = 2; std::cout << "lB_1(1, 2): " << std::fixed << lB_1(argument1) << std::endl; if (fabs(lB_1(argument1) - log(0.5)) > std::numeric_limits<double>::epsilon()) return 1; argument1(0) = 2; argument1(1) = 2; std::cout << "lB_1(2, 2): " << lB_1(argument1) << std::endl; if (fabs(lB_1(argument1) - log(1.0 / 6.0)) > std::numeric_limits<double>::epsilon()) return 1; LogBetaFunction<double, 2> lB_2; Eigen::Matrix<double, 2, 1> argument2; argument2(0) = 0.5; argument2(1) = 0.5; std::cout << "lB_2(0.5, 0.5): " << std::fixed << lB_2(argument2) << std::endl; if (fabs(lB_2(argument2) - log(M_PI)) > 1e-6) return 1; argument2(0) = 0.4; argument2(1) = -0.6; std::cout << "lB_2(0.4, -0.6): " << std::fixed << lB_2(argument2) << std::endl; return 0; }