SRS: Fix bug

pull/1969/head
winlin
parent aaebecbcc9
commit a826926073

@ -151,7 +151,7 @@ srs_error_t SrsBandwidth::bandwidth_check(SrsRtmpServer* rtmp, ISrsProtocolStati
// reject the connection in the interval window. // reject the connection in the interval window.
if (last_check_time > 0 && time_now - last_check_time < interval) { if (last_check_time > 0 && time_now - last_check_time < interval) {
_rtmp->response_connect_reject(_req, "bandcheck rejected"); _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. // accept and do bandwidth check.

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

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

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

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

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

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

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

@ -189,6 +189,7 @@ SrsRtpNackForReceiver::SrsRtpNackForReceiver(SrsRtpRingBuffer* rtp, size_t queue
rtp_ = rtp; rtp_ = rtp;
pre_check_time_ = 0; pre_check_time_ = 0;
last_remove_packet_time_ = -1; 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, 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); 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) SrsMediaPayloadType::SrsMediaPayloadType(int payload_type)
{ {
payload_type_ = payload_type; payload_type_ = payload_type;
clock_rate_ = 0;
} }
SrsMediaPayloadType::~SrsMediaPayloadType() SrsMediaPayloadType::~SrsMediaPayloadType()
@ -288,7 +289,9 @@ SrsMediaDesc::SrsMediaDesc(const std::string& type)
{ {
type_ = type; type_ = type;
port_ = 0;
rtcp_mux_ = false; rtcp_mux_ = false;
rtcp_rsize_ = false;
sendrecv_ = false; sendrecv_ = false;
recvonly_ = false; recvonly_ = false;

@ -539,6 +539,8 @@ SrsRtcFromRtmpBridger::SrsRtcFromRtmpBridger(SrsRtcStream* source)
// audio track description // audio track description
if (true) { if (true) {
SrsRtcTrackDescription* audio_track_desc = new SrsRtcTrackDescription(); SrsRtcTrackDescription* audio_track_desc = new SrsRtcTrackDescription();
SrsAutoFree(SrsRtcTrackDescription, audio_track_desc);
audio_track_desc->type_ = "audio"; audio_track_desc->type_ = "audio";
audio_track_desc->id_ = "audio-" + srs_random_str(8); audio_track_desc->id_ = "audio-" + srs_random_str(8);
@ -553,6 +555,8 @@ SrsRtcFromRtmpBridger::SrsRtcFromRtmpBridger(SrsRtcStream* source)
// video track description // video track description
if (true) { if (true) {
SrsRtcTrackDescription* video_track_desc = new SrsRtcTrackDescription(); SrsRtcTrackDescription* video_track_desc = new SrsRtcTrackDescription();
SrsAutoFree(SrsRtcTrackDescription, video_track_desc);
video_track_desc->type_ = "video"; video_track_desc->type_ = "video";
video_track_desc->id_ = "video-" + srs_random_str(8); video_track_desc->id_ = "video-" + srs_random_str(8);
@ -1117,6 +1121,8 @@ void SrsRtcDummyBridger::on_unpublish()
SrsCodecPayload::SrsCodecPayload() SrsCodecPayload::SrsCodecPayload()
{ {
pt_ = 0;
sample_ = 0;
} }
SrsCodecPayload::SrsCodecPayload(uint8_t pt, std::string encode_name, int sample) 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() SrsAudioPayload::SrsAudioPayload()
{ {
type_ = "audio"; channel_ = 0;
} }
SrsAudioPayload::SrsAudioPayload(uint8_t pt, std::string encode_name, int sample, int channel) 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() SrsRedPayload::SrsRedPayload()
{ {
channel_ = 0;
} }
SrsRedPayload::SrsRedPayload(uint8_t pt, std::string encode_name, int sample, int channel) 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); rtp_queue_ = new SrsRtpRingBuffer(1000);
nack_receiver_ = new SrsRtpNackForReceiver(rtp_queue_, 1000 * 2 / 3); nack_receiver_ = new SrsRtpNackForReceiver(rtp_queue_, 1000 * 2 / 3);
} }
last_sender_report_sys_time = 0;
} }
SrsRtcRecvTrack::~SrsRtcRecvTrack() SrsRtcRecvTrack::~SrsRtcRecvTrack()

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

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

@ -877,7 +877,7 @@ srs_error_t SrsServer::acquire_pid_file()
// write the pid // write the pid
string pid = srs_int2str(getpid()); string pid = srs_int2str(getpid());
if (write(fd, pid.c_str(), pid.length()) != (int)pid.length()) { 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. // auto close when fork child process.

@ -940,6 +940,9 @@ SrsNetworkRtmpServer::SrsNetworkRtmpServer()
nb_conn_sys = nb_conn_srs = 0; nb_conn_sys = nb_conn_srs = 0;
nb_conn_sys_et = nb_conn_sys_tw = 0; nb_conn_sys_et = nb_conn_sys_tw = 0;
nb_conn_sys_udp = 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; static SrsNetworkRtmpServer _srs_network_rtmp_server;

@ -3912,7 +3912,7 @@ srs_error_t SrsMp4DecodingTime2SampleBox::on_sample(uint32_t sample_index, SrsMp
index++; index++;
if (index >= entries.size()) { 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; count += entries[index].sample_count;
@ -4038,7 +4038,7 @@ srs_error_t SrsMp4CompositionTime2SampleBox::on_sample(uint32_t sample_index, Sr
index++; index++;
if (index >= entries.size()) { 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; count += entries[index].sample_count;
@ -5217,7 +5217,7 @@ srs_error_t SrsMp4BoxReader::read(SrsSimpleStream* stream, SrsMp4Box** ppbox)
while (stream->length() < (int)required) { while (stream->length() < (int)required) {
ssize_t nread; ssize_t nread;
if ((err = rsio->read(buf, SRS_MP4_BUF_SIZE, &nread)) != srs_success) { 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); srs_assert(nread > 0);
@ -6282,6 +6282,7 @@ SrsMp4M2tsSegmentEncoder::SrsMp4M2tsSegmentEncoder()
decode_basetime = 0; decode_basetime = 0;
styp_bytes = 0; styp_bytes = 0;
mdat_bytes = 0; mdat_bytes = 0;
track_id = 0;
} }
SrsMp4M2tsSegmentEncoder::~SrsMp4M2tsSegmentEncoder() SrsMp4M2tsSegmentEncoder::~SrsMp4M2tsSegmentEncoder()

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

@ -66,6 +66,14 @@ struct SrsRtcpHeader
uint16_t type:8; uint16_t type:8;
uint16_t length:16; uint16_t length:16;
SrsRtcpHeader() {
rc = 0;
padding = 0;
version = 0;
type = 0;
length = 0;
}
}; };
class SrsRtcpCommon: public ISrsCodec class SrsRtcpCommon: public ISrsCodec
@ -134,6 +142,16 @@ struct SrsRtcpRB
uint32_t jitter; uint32_t jitter;
uint32_t lsr; uint32_t lsr;
uint32_t dlsr; 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 class SrsRtcpSR : public SrsRtcpCommon

@ -63,7 +63,7 @@ SrsRtpExtensionTypes::~SrsRtpExtensionTypes()
bool SrsRtpExtensionTypes::register_by_uri(int id, std::string uri) 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) { if (kExtensions[i].uri == uri) {
return register_id(id, kExtensions[i].type, kExtensions[i].uri); return register_id(id, kExtensions[i].type, kExtensions[i].uri);
} }

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

@ -1761,7 +1761,7 @@ namespace _srs_internal
// data // data
if (!stream->require((int)value.length())) { 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); stream->write_string(value);

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

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

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

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

Loading…
Cancel
Save