A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Haivision/srt/commit/c885ed152d8222800bd498167b90031de5878228 below:

[core] Group::updateReadState() support out-of-order messages · Haivision/srt@c885ed1 · GitHub

File tree Expand file treeCollapse file tree 2 files changed

+14

-16

lines changed

Filter options

Expand file treeCollapse file tree 2 files changed

+14

-16

lines changed Original file line number Diff line number Diff line change

@@ -7663,7 +7663,7 @@ void srt::CUDT::releaseSynch()

7663 7663

}

7664 7664 7665 7665

// [[using locked(m_RcvBufferLock)]];

7666 -

int32_t srt::CUDT::ackDataUpTo(int32_t ack)

7666 +

void srt::CUDT::ackDataUpTo(int32_t ack)

7667 7667

{

7668 7668

const int acksize SRT_ATR_UNUSED = CSeqNo::seqoff(m_iRcvLastSkipAck, ack);

7669 7669

@@ -7673,24 +7673,14 @@ int32_t srt::CUDT::ackDataUpTo(int32_t ack)

7673 7673

m_iRcvLastAck = ack;

7674 7674

m_iRcvLastSkipAck = ack;

7675 7675 7676 -

#if ENABLE_NEW_RCVBUFFER

7677 -

const std::pair<int, int> range = m_pRcvBuffer->getAvailablePacketsRange();

7678 -

// Some packets acknowledged are not available in the buffer.

7679 -

if (CSeqNo::seqcmp(range.second, ack) < 0)

7680 -

{

7681 -

LOGC(xtlog.Error, log << "IPE: Acknowledged seqno %" << ack << " outruns the RCV buffer state %" << range.first

7682 -

<< " - %" << range.second);

7683 -

}

7684 -

return CSeqNo::decseq(range.second);

7685 -

#else

7676 +

#if !ENABLE_NEW_RCVBUFFER

7686 7677

// NOTE: This is new towards UDT and prevents spurious

7687 7678

// wakeup of select/epoll functions when no new packets

7688 7679

// were signed off for extraction.

7689 7680

if (acksize > 0)

7690 7681

{

7691 7682

m_pRcvBuffer->ackData(acksize);

7692 7683

}

7693 -

return ack;

7694 7684

#endif

7695 7685

}

7696 7686

@@ -7930,7 +7920,16 @@ int srt::CUDT::sendCtrlAck(CPacket& ctrlpkt, int size)

7930 7920

// IF ack %> m_iRcvLastAck

7931 7921

if (CSeqNo::seqcmp(ack, m_iRcvLastAck) > 0)

7932 7922

{

7933 -

const int32_t group_read_seq SRT_ATR_UNUSED = ackDataUpTo(ack);

7923 +

ackDataUpTo(ack);

7924 + 7925 +

#if ENABLE_EXPERIMENTAL_BONDING

7926 +

#if ENABLE_NEW_RCVBUFFER

7927 +

const int32_t group_read_seq = m_pRcvBuffer->getFirstReadablePacketInfo(steady_clock::now()).seqno;

7928 +

#else

7929 +

const int32_t group_read_seq = CSeqNo::decseq(ack);

7930 +

#endif

7931 +

#endif

7932 + 7934 7933

InvertedLock un_bufflock (m_RcvBufferLock);

7935 7934 7936 7935

#if ENABLE_EXPERIMENTAL_BONDING

@@ -8015,7 +8014,7 @@ int srt::CUDT::sendCtrlAck(CPacket& ctrlpkt, int size)

8015 8014

}

8016 8015

}

8017 8016

#if ENABLE_EXPERIMENTAL_BONDING

8018 -

if (m_parent->m_GroupOf)

8017 +

if (group_read_seq != SRT_SEQNO_NONE && m_parent->m_GroupOf)

8019 8018

{

8020 8019

// See above explanation for double-checking

8021 8020

ScopedLock glock (uglobal().m_GlobControlLock);

Original file line number Diff line number Diff line change

@@ -1075,8 +1075,7 @@ class CUDT

1075 1075

/// @brief Acknowledge reading position up to the @p seq.

1076 1076

/// Updates m_iRcvLastAck and m_iRcvLastSkipAck to @p seq.

1077 1077

/// @param seq first unacknowledged packet sequence number.

1078 -

/// @return

1079 -

int32_t ackDataUpTo(int32_t seq);

1078 +

void ackDataUpTo(int32_t seq);

1080 1079 1081 1080

void handleKeepalive(const char* data, size_t lenghth);

1082 1081

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4