MCPcopy Create free account
hub / github.com/apache/brpc / OnSetBufferLength

Method OnSetBufferLength

src/brpc/policy/rtmp_protocol.cpp:2029–2058  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2027}
2028
2029bool RtmpChunkStream::OnSetBufferLength(const RtmpMessageHeader& mh,
2030 const butil::StringPiece& event_data,
2031 Socket* socket) {
2032 RtmpService* service = connection_context()->service();
2033 if (service == NULL) {
2034 RTMP_ERROR(socket, mh) << "Client should not receive `SetBufferLength'";
2035 return false;
2036 }
2037 if (event_data.size() != 8) {
2038 RTMP_ERROR(socket, mh) << "Invalid SetBufferLength.event_data.size="
2039 << event_data.size();
2040 return false;
2041 }
2042 const uint32_t stream_id = ReadBigEndian4Bytes(event_data.data());
2043 const uint32_t bl_ms = ReadBigEndian4Bytes(event_data.data() + 4);
2044 RPC_VLOG << socket->remote_side() << "[" << mh.stream_id
2045 << "] SetBufferLength{stream_id=" << stream_id
2046 << " buffer_length_ms=" << bl_ms << '}';
2047 if (stream_id == RTMP_CONTROL_MESSAGE_STREAM_ID) {
2048 // Ignore SetBufferSize for control stream.
2049 return true;
2050 }
2051 butil::intrusive_ptr<RtmpStreamBase> stream;
2052 if (!connection_context()->FindMessageStream(stream_id, &stream)) {
2053 RTMP_WARNING(socket, mh) << "Fail to find stream_id=" << stream_id;
2054 return false;
2055 }
2056 static_cast<RtmpServerStream*>(stream.get())->OnSetBufferLength(bl_ms);
2057 return true;
2058}
2059
2060bool RtmpChunkStream::OnPingRequest(const RtmpMessageHeader& mh,
2061 const butil::StringPiece& event_data,

Callers

nothing calls this directly

Calls 7

ReadBigEndian4BytesFunction · 0.85
serviceMethod · 0.80
FindMessageStreamMethod · 0.80
sizeMethod · 0.45
dataMethod · 0.45
remote_sideMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected