SRS: Fix bug

pull/1969/head
winlin 5 years ago
parent aaebecbcc9
commit a826926073

@ -151,7 +151,7 @@ srs_error_t SrsBandwidth::bandwidth_check(SrsRtmpServer* rtmp, ISrsProtocolStati
// reject the connection in the interval window.
if (last_check_time > 0 && time_now - last_check_time < interval) {
_rtmp->response_connect_reject(_req, "bandcheck rejected");
return srs_error_new(ERROR_SYSTEM_BANDWIDTH_DENIED, "reject, last_check=%" PRId64 ", now=%" PRId64 ", interval=%d", last_check_time, time_now, interval);
return srs_error_new(ERROR_SYSTEM_BANDWIDTH_DENIED, "reject, last_check=%" PRId64 ", now=%" PRId64 ", interval=%" PRId64 "", last_check_time, time_now, interval);
}
// accept and do bandwidth check.

@ -620,6 +620,7 @@ srs_error_t srs_config_dumps_engine(SrsConfDirective* dir, SrsJsonObject* engine
SrsConfDirective::SrsConfDirective()
{
conf_line = 0;
}
SrsConfDirective::~SrsConfDirective()

@ -65,6 +65,7 @@ SrsEdgeRtmpUpstream::SrsEdgeRtmpUpstream(string r)
{
redirect = r;
sdk = NULL;
selected_port = 0;
}
SrsEdgeRtmpUpstream::~SrsEdgeRtmpUpstream()

@ -200,6 +200,7 @@ SrsHlsMuxer::SrsHlsMuxer()
accept_floor_ts = 0;
hls_ts_floor = false;
max_td = 0;
writer = NULL;
_sequence_no = 0;
current = NULL;
hls_keys = false;
@ -758,6 +759,10 @@ srs_error_t SrsHlsMuxer::_refresh_m3u8(string m3u8_file)
// #EXT-X-MEDIA-SEQUENCE:4294967295\n
SrsHlsSegment* first = dynamic_cast<SrsHlsSegment*>(segments->first());
if (first == NULL) {
return srs_error_new(ERROR_HLS_WRITE_FAILED, "segments cast");
}
ss << "#EXT-X-MEDIA-SEQUENCE:" << first->sequence_no << SRS_CONSTS_LF;
// #EXT-X-TARGETDURATION:4294967295\n

@ -532,7 +532,7 @@ srs_error_t SrsHttpHooks::do_post(SrsHttpClient* hc, std::string url, std::strin
}
if ((res_code->to_integer()) != ERROR_SUCCESS) {
return srs_error_new(ERROR_RESPONSE_CODE, "http: response object code %d %s", res_code->to_integer(), res.c_str());
return srs_error_new(ERROR_RESPONSE_CODE, "http: response object code %" PRId64 " %s", res_code->to_integer(), res.c_str());
}
return err;

@ -38,6 +38,7 @@ using namespace std;
SrsIngesterFFMPEG::SrsIngesterFFMPEG()
{
ffmpeg = NULL;
starttime = 0;
}
SrsIngesterFFMPEG::~SrsIngesterFFMPEG()

@ -125,6 +125,7 @@ void SrsUdpListener::set_socket_buffer()
int r0_sndbuf = 0;
if (true) {
socklen_t opt_len = sizeof(default_sndbuf);
// TODO: FIXME: check err
getsockopt(fd(), SOL_SOCKET, SO_SNDBUF, (void*)&default_sndbuf, &opt_len);
if ((r0_sndbuf = setsockopt(fd(), SOL_SOCKET, SO_SNDBUF, (void*)&actual_sndbuf, sizeof(actual_sndbuf))) < 0) {
@ -132,6 +133,7 @@ void SrsUdpListener::set_socket_buffer()
}
opt_len = sizeof(actual_sndbuf);
// TODO: FIXME: check err
getsockopt(fd(), SOL_SOCKET, SO_SNDBUF, (void*)&actual_sndbuf, &opt_len);
}
@ -142,6 +144,7 @@ void SrsUdpListener::set_socket_buffer()
int r0_rcvbuf = 0;
if (true) {
socklen_t opt_len = sizeof(default_rcvbuf);
// TODO: FIXME: check err
getsockopt(fd(), SOL_SOCKET, SO_RCVBUF, (void*)&default_rcvbuf, &opt_len);
if ((r0_rcvbuf = setsockopt(fd(), SOL_SOCKET, SO_RCVBUF, (void*)&actual_rcvbuf, sizeof(actual_rcvbuf))) < 0) {
@ -149,6 +152,7 @@ void SrsUdpListener::set_socket_buffer()
}
opt_len = sizeof(actual_rcvbuf);
// TODO: FIXME: check err
getsockopt(fd(), SOL_SOCKET, SO_RCVBUF, (void*)&actual_rcvbuf, &opt_len);
}
@ -288,6 +292,7 @@ SrsUdpMuxSocket::SrsUdpMuxSocket(srs_netfd_t fd)
lfd = fd;
fromlen = 0;
peer_port = 0;
}
SrsUdpMuxSocket::~SrsUdpMuxSocket()

@ -170,6 +170,7 @@ srs_error_t SrsAudioEncoder::initialize()
case 24000:
opus_encoder_ctl(opus_, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_SUPERWIDEBAND));
break;
case 16000:
opus_encoder_ctl(opus_, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_WIDEBAND));
@ -343,6 +344,11 @@ SrsAudioRecode::SrsAudioRecode(int channels, int samplerate)
{
size_ = 0;
data_ = new char[kPcmBufMax];
dec_ = NULL;
enc_ = NULL;
resample_ = NULL;
data_ = NULL;
}
SrsAudioRecode::~SrsAudioRecode()

@ -316,6 +316,8 @@ SrsDtlsImpl::SrsDtlsImpl(ISrsDtlsCallback* callback)
{
dtls_ctx = NULL;
dtls = NULL;
bio_in = NULL;
bio_out = NULL;
callback_ = callback;
handshake_done_for_us = false;

@ -189,6 +189,7 @@ SrsRtpNackForReceiver::SrsRtpNackForReceiver(SrsRtpRingBuffer* rtp, size_t queue
rtp_ = rtp;
pre_check_time_ = 0;
last_remove_packet_time_ = -1;
rtt_ = 0;
srs_info("max_queue_size=%u, nack opt: max_count=%d, max_alive_time=%us, first_nack_interval=%" PRId64 ", nack_interval=%" PRId64,
max_queue_size_, opts_.max_count, opts_.max_alive_time, opts.first_nack_interval, opts_.nack_interval);

@ -254,6 +254,7 @@ srs_error_t SrsSSRCGroup::encode(std::ostringstream& os)
SrsMediaPayloadType::SrsMediaPayloadType(int payload_type)
{
payload_type_ = payload_type;
clock_rate_ = 0;
}
SrsMediaPayloadType::~SrsMediaPayloadType()
@ -288,7 +289,9 @@ SrsMediaDesc::SrsMediaDesc(const std::string& type)
{
type_ = type;
port_ = 0;
rtcp_mux_ = false;
rtcp_rsize_ = false;
sendrecv_ = false;
recvonly_ = false;

@ -539,6 +539,8 @@ SrsRtcFromRtmpBridger::SrsRtcFromRtmpBridger(SrsRtcStream* source)
// audio track description
if (true) {
SrsRtcTrackDescription* audio_track_desc = new SrsRtcTrackDescription();
SrsAutoFree(SrsRtcTrackDescription, audio_track_desc);
audio_track_desc->type_ = "audio";
audio_track_desc->id_ = "audio-" + srs_random_str(8);
@ -553,6 +555,8 @@ SrsRtcFromRtmpBridger::SrsRtcFromRtmpBridger(SrsRtcStream* source)
// video track description
if (true) {
SrsRtcTrackDescription* video_track_desc = new SrsRtcTrackDescription();
SrsAutoFree(SrsRtcTrackDescription, video_track_desc);
video_track_desc->type_ = "video";
video_track_desc->id_ = "video-" + srs_random_str(8);
@ -1117,6 +1121,8 @@ void SrsRtcDummyBridger::on_unpublish()
SrsCodecPayload::SrsCodecPayload()
{
pt_ = 0;
sample_ = 0;
}
SrsCodecPayload::SrsCodecPayload(uint8_t pt, std::string encode_name, int sample)
@ -1249,7 +1255,7 @@ srs_error_t SrsVideoPayload::set_h264_param_desc(std::string fmtp)
SrsAudioPayload::SrsAudioPayload()
{
type_ = "audio";
channel_ = 0;
}
SrsAudioPayload::SrsAudioPayload(uint8_t pt, std::string encode_name, int sample, int channel)
@ -1331,6 +1337,7 @@ srs_error_t SrsAudioPayload::set_opus_param_desc(std::string fmtp)
SrsRedPayload::SrsRedPayload()
{
channel_ = 0;
}
SrsRedPayload::SrsRedPayload(uint8_t pt, std::string encode_name, int sample, int channel)
@ -1604,6 +1611,8 @@ SrsRtcRecvTrack::SrsRtcRecvTrack(SrsRtcConnection* session, SrsRtcTrackDescripti
rtp_queue_ = new SrsRtpRingBuffer(1000);
nack_receiver_ = new SrsRtpNackForReceiver(rtp_queue_, 1000 * 2 / 3);
}
last_sender_report_sys_time = 0;
}
SrsRtcRecvTrack::~SrsRtcRecvTrack()

@ -308,6 +308,12 @@ class SrsAudioPayload : public SrsCodecPayload
int minptime;
bool use_inband_fec;
bool usedtx;
SrsOpusParameter() {
minptime = 0;
use_inband_fec = false;
usedtx = false;
}
};
public:

@ -193,6 +193,11 @@ SrsRtspConn::SrsRtspConn(SrsRtspCaster* c, srs_netfd_t fd, std::string o)
skt = new SrsStSocket();
rtsp = new SrsRtspStack(skt);
trd = new SrsSTCoroutine("rtsp", this);
audio_id = 0;
video_id = 0;
audio_sample_rate = 0;
audio_channel = 0;
req = NULL;
sdk = NULL;
@ -223,6 +228,9 @@ SrsRtspConn::~SrsRtspConn()
srs_freep(vjitter);
srs_freep(ajitter);
srs_freep(avc);
srs_freep(aac);
srs_freep(acodec);
srs_freep(acache);
}

@ -877,7 +877,7 @@ srs_error_t SrsServer::acquire_pid_file()
// write the pid
string pid = srs_int2str(getpid());
if (write(fd, pid.c_str(), pid.length()) != (int)pid.length()) {
return srs_error_new(ERROR_SYSTEM_PID_WRITE_FILE, "write pid=%d to file=%s", pid.c_str(), pid_file.c_str());
return srs_error_new(ERROR_SYSTEM_PID_WRITE_FILE, "write pid=%s to file=%s", pid.c_str(), pid_file.c_str());
}
// auto close when fork child process.

@ -940,6 +940,9 @@ SrsNetworkRtmpServer::SrsNetworkRtmpServer()
nb_conn_sys = nb_conn_srs = 0;
nb_conn_sys_et = nb_conn_sys_tw = 0;
nb_conn_sys_udp = 0;
rkbps = skbps = 0;
rkbps_30s = skbps_30s = 0;
rkbps_5m = skbps_5m = 0;
}
static SrsNetworkRtmpServer _srs_network_rtmp_server;

@ -3912,7 +3912,7 @@ srs_error_t SrsMp4DecodingTime2SampleBox::on_sample(uint32_t sample_index, SrsMp
index++;
if (index >= entries.size()) {
return srs_error_new(ERROR_MP4_ILLEGAL_TIMESTAMP, "illegal ts, stts overflow, count=%d", entries.size());
return srs_error_new(ERROR_MP4_ILLEGAL_TIMESTAMP, "illegal ts, stts overflow, count=%zd", entries.size());
}
count += entries[index].sample_count;
@ -4038,7 +4038,7 @@ srs_error_t SrsMp4CompositionTime2SampleBox::on_sample(uint32_t sample_index, Sr
index++;
if (index >= entries.size()) {
return srs_error_new(ERROR_MP4_ILLEGAL_TIMESTAMP, "illegal ts, ctts overflow, count=%d", entries.size());
return srs_error_new(ERROR_MP4_ILLEGAL_TIMESTAMP, "illegal ts, ctts overflow, count=%d", (int)entries.size());
}
count += entries[index].sample_count;
@ -5217,7 +5217,7 @@ srs_error_t SrsMp4BoxReader::read(SrsSimpleStream* stream, SrsMp4Box** ppbox)
while (stream->length() < (int)required) {
ssize_t nread;
if ((err = rsio->read(buf, SRS_MP4_BUF_SIZE, &nread)) != srs_success) {
return srs_error_wrap(err, "load failed, nread=%d, required=%d", (int)nread, required);
return srs_error_wrap(err, "load failed, nread=%d, required=%d", (int)nread, (int)required);
}
srs_assert(nread > 0);
@ -6282,6 +6282,7 @@ SrsMp4M2tsSegmentEncoder::SrsMp4M2tsSegmentEncoder()
decode_basetime = 0;
styp_bytes = 0;
mdat_bytes = 0;
track_id = 0;
}
SrsMp4M2tsSegmentEncoder::~SrsMp4M2tsSegmentEncoder()

@ -31,6 +31,7 @@ using namespace std;
SrsRtcpCommon::SrsRtcpCommon(): ssrc_(0), data_(NULL), nb_data_(0)
{
payload_len_ = 0;
}
SrsRtcpCommon::~SrsRtcpCommon()
@ -190,7 +191,7 @@ srs_error_t SrsRtcpApp::set_subtype(uint8_t type)
srs_error_t SrsRtcpApp::set_name(std::string name)
{
if(name.length() > 4) {
return srs_error_new(ERROR_RTC_RTCP, "invalid name length %d", name.length());
return srs_error_new(ERROR_RTC_RTCP, "invalid name length %zu", name.length());
}
memset(name_, 0, sizeof(name_));
@ -298,6 +299,13 @@ SrsRtcpSR::SrsRtcpSR()
header_.rc = 0;
header_.version = kRtcpVersion;
header_.length = 6;
ssrc_ = 0;
ntp_ = 0;
rtp_ts_ = 0;
send_rtp_packets_ = 0;
send_rtp_bytes_ = 0;
send_rtp_bytes_ = 0;
}
SrsRtcpSR::~SrsRtcpSR()
@ -706,6 +714,11 @@ SrsRtcpTWCC::SrsRtcpTWCC(uint32_t sender_ssrc) : pkt_len(0)
header_.rc = 15;
header_.version = kRtcpVersion;
ssrc_ = sender_ssrc;
media_ssrc_ = 0;
base_sn_ = 0;
packet_count_ = 0;
reference_time_ = 0;
fb_pkt_count_ = 0;
}
SrsRtcpTWCC::~SrsRtcpTWCC()
@ -1178,6 +1191,7 @@ SrsRtcpNack::SrsRtcpNack(uint32_t sender_ssrc)
header_.rc = 1;
header_.version = kRtcpVersion;
ssrc_ = sender_ssrc;
media_ssrc_ = 0;
}
SrsRtcpNack::~SrsRtcpNack()

@ -66,6 +66,14 @@ struct SrsRtcpHeader
uint16_t type:8;
uint16_t length:16;
SrsRtcpHeader() {
rc = 0;
padding = 0;
version = 0;
type = 0;
length = 0;
}
};
class SrsRtcpCommon: public ISrsCodec
@ -134,6 +142,16 @@ struct SrsRtcpRB
uint32_t jitter;
uint32_t lsr;
uint32_t dlsr;
SrsRtcpRB() {
ssrc = 0;
fraction_lost = 0;
lost_packets = 0;
highest_sn = 0;
jitter = 0;
lsr = 0;
dlsr = 0;
}
};
class SrsRtcpSR : public SrsRtcpCommon

@ -63,7 +63,7 @@ SrsRtpExtensionTypes::~SrsRtpExtensionTypes()
bool SrsRtpExtensionTypes::register_by_uri(int id, std::string uri)
{
for (int i = 0; i < (int)sizeof(kExtensions); ++i) {
for (int i = 0; i < (int)(sizeof(kExtensions)/sizeof(kExtensions[0])); ++i) {
if (kExtensions[i].uri == uri) {
return register_id(id, kExtensions[i].type, kExtensions[i].uri);
}

@ -2012,6 +2012,9 @@ SrsTsPayloadPSI::SrsTsPayloadPSI(SrsTsPacket* p) : SrsTsPayload(p)
const0_value = 0;
const1_value = 3;
CRC_32 = 0;
section_length = 0;
section_syntax_indicator = 0;
table_id = SrsTsPsiIdPas;
}
SrsTsPayloadPSI::~SrsTsPayloadPSI()
@ -2223,7 +2226,12 @@ srs_error_t SrsTsPayloadPATProgram::encode(SrsBuffer* stream)
SrsTsPayloadPAT::SrsTsPayloadPAT(SrsTsPacket* p) : SrsTsPayloadPSI(p)
{
transport_stream_id = 0;
const3_value = 3;
version_number = 0;
current_next_indicator = 0;
section_number = 0;
last_section_number = 0;
}
SrsTsPayloadPAT::~SrsTsPayloadPAT()
@ -2422,6 +2430,12 @@ SrsTsPayloadPMT::SrsTsPayloadPMT(SrsTsPacket* p) : SrsTsPayloadPSI(p)
const1_value0 = 3;
const1_value1 = 7;
const1_value2 = 0x0f;
PCR_PID = 0;
last_section_number = 0;
program_number = 0;
version_number = 0;
current_next_indicator = 0;
section_number = 0;
}
SrsTsPayloadPMT::~SrsTsPayloadPMT()

@ -1761,7 +1761,7 @@ namespace _srs_internal
// data
if (!stream->require((int)value.length())) {
return srs_error_new(ERROR_RTMP_AMF0_ENCODE, "requires %d only %d bytes", value.length(), stream->left());
return srs_error_new(ERROR_RTMP_AMF0_ENCODE, "requires %" PRIu64 " only %d bytes", value.length(), stream->left());
}
stream->write_string(value);

@ -92,6 +92,8 @@ SrsStunPacket::SrsStunPacket()
use_candidate = false;
ice_controlled = false;
ice_controlling = false;
mapped_port = 0;
mapped_address = 0;
}
SrsStunPacket::~SrsStunPacket()

@ -865,6 +865,8 @@ namespace _srs_internal
c1s1::c1s1()
{
payload = NULL;
version = 0;
time = 0;
}
c1s1::~c1s1()
{

@ -792,6 +792,9 @@ SrsRtspSetupResponse::SrsRtspSetupResponse(int seq) : SrsRtspResponse(seq)
{
local_port_min = 0;
local_port_max = 0;
client_port_min = 0;
client_port_max = 0;
}
SrsRtspSetupResponse::~SrsRtspSetupResponse()

@ -319,6 +319,7 @@ SrsHttpMessage::SrsHttpMessage(ISrsReader* reader, SrsFastStream* buffer) : ISrs
_content_length = -1;
// From HTTP/1.1, default to keep alive.
_keep_alive = true;
type_ = 0;
}
SrsHttpMessage::~SrsHttpMessage()

Loading…
Cancel
Save