Compare commits

..

1 Commits

Author SHA1 Message Date
imp_rayjay
6a3af7ba14
Merge 6119ac9c53 into de7afaf992 2024-09-26 17:06:41 +08:00
3 changed files with 8 additions and 9 deletions

View File

@ -247,8 +247,7 @@ bool MP4MuxerMemory::inputFrame(const Frame::Ptr &frame) {
_key_frame = false; _key_frame = false;
} }
// only audio all frame is key frame if (frame->keyFrame()) {
if (frame->keyFrame() || !haveVideo()) {
_key_frame = true; _key_frame = true;
} }
if (frame->getTrackType() == TrackVideo || !haveVideo()) { if (frame->getTrackType() == TrackVideo || !haveVideo()) {

View File

@ -292,8 +292,8 @@ bool HandshakePacket::loadFromData(uint8_t *buf, size_t len) {
syn_cookie = loadUint32(ptr); syn_cookie = loadUint32(ptr);
ptr += 4; ptr += 4;
memcpy(peer_ip_addr, ptr, sizeof(peer_ip_addr)); memcpy(peer_ip_addr, ptr, sizeof(peer_ip_addr) * sizeof(peer_ip_addr[0]));
ptr += sizeof(peer_ip_addr); ptr += sizeof(peer_ip_addr) * sizeof(peer_ip_addr[0]);
if (encryption_field != NO_ENCRYPTION) { if (encryption_field != NO_ENCRYPTION) {
ErrorL << "not support encryption " << encryption_field; ErrorL << "not support encryption " << encryption_field;
@ -400,8 +400,8 @@ bool HandshakePacket::storeToData() {
storeUint32(ptr, syn_cookie); storeUint32(ptr, syn_cookie);
ptr += 4; ptr += 4;
memcpy(ptr, peer_ip_addr, sizeof(peer_ip_addr)); memcpy(ptr, peer_ip_addr, sizeof(peer_ip_addr) * sizeof(peer_ip_addr[0]));
ptr += sizeof(peer_ip_addr); ptr += sizeof(peer_ip_addr) * sizeof(peer_ip_addr[0]);
if (encryption_field != NO_ENCRYPTION) { if (encryption_field != NO_ENCRYPTION) {
ErrorL << "not support encryption " << encryption_field; ErrorL << "not support encryption " << encryption_field;
@ -433,7 +433,7 @@ uint32_t HandshakePacket::getSynCookie(uint8_t *buf, size_t len) {
} }
void HandshakePacket::assignPeerIP(struct sockaddr_storage *addr) { void HandshakePacket::assignPeerIP(struct sockaddr_storage *addr) {
memset(peer_ip_addr, 0, sizeof(peer_ip_addr)); memset(peer_ip_addr, 0, sizeof(peer_ip_addr) * sizeof(peer_ip_addr[0]));
if (addr->ss_family == AF_INET) { if (addr->ss_family == AF_INET) {
struct sockaddr_in *ipv4 = (struct sockaddr_in *)addr; struct sockaddr_in *ipv4 = (struct sockaddr_in *)addr;
// 抓包 奇怪好像是小头端??? [AUTO-TRANSLATED:40eb164c] // 抓包 奇怪好像是小头端??? [AUTO-TRANSLATED:40eb164c]
@ -446,7 +446,7 @@ void HandshakePacket::assignPeerIP(struct sockaddr_storage *addr) {
storeUint32LE(peer_ip_addr, addr4.s_addr); storeUint32LE(peer_ip_addr, addr4.s_addr);
} else { } else {
const sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)addr; const sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)addr;
memcpy(peer_ip_addr, ipv6->sin6_addr.s6_addr, sizeof(peer_ip_addr)); memcpy(peer_ip_addr, ipv6->sin6_addr.s6_addr, sizeof(peer_ip_addr) * sizeof(peer_ip_addr[0]));
} }
} }
} }

View File

@ -206,7 +206,7 @@ void SrtTransport::handleHandshakeInduction(HandshakePacket &pkt, struct sockadd
res->srt_socket_id = _peer_socket_id; res->srt_socket_id = _peer_socket_id;
res->syn_cookie = HandshakePacket::generateSynCookie(addr, _start_timestamp); res->syn_cookie = HandshakePacket::generateSynCookie(addr, _start_timestamp);
_sync_cookie = res->syn_cookie; _sync_cookie = res->syn_cookie;
memcpy(res->peer_ip_addr, pkt.peer_ip_addr, sizeof(pkt.peer_ip_addr)); memcpy(res->peer_ip_addr, pkt.peer_ip_addr, sizeof(pkt.peer_ip_addr) * sizeof(pkt.peer_ip_addr[0]));
_handleshake_res = res; _handleshake_res = res;
res->storeToData(); res->storeToData();