From b3825c402144a355c040eadd366d5cd15d746178 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 13 Jun 2017 16:10:46 +0800 Subject: [PATCH] Fix warnings --- trunk/src/kernel/srs_kernel_codec.cpp | 8 +++--- trunk/src/kernel/srs_kernel_file.cpp | 11 +++++--- trunk/src/kernel/srs_kernel_flv.cpp | 10 ++++++- trunk/src/kernel/srs_kernel_flv.hpp | 3 +++ trunk/src/kernel/srs_kernel_mp4.cpp | 29 +++++++++++--------- trunk/src/kernel/srs_kernel_utility.cpp | 2 +- trunk/src/libs/srs_librtmp.cpp | 34 +++++++++--------------- trunk/src/libs/srs_librtmp.hpp | 5 ++++ trunk/src/protocol/srs_protocol_amf0.cpp | 4 +++ 9 files changed, 64 insertions(+), 42 deletions(-) diff --git a/trunk/src/kernel/srs_kernel_codec.cpp b/trunk/src/kernel/srs_kernel_codec.cpp index 491e513f5..b151f302d 100644 --- a/trunk/src/kernel/srs_kernel_codec.cpp +++ b/trunk/src/kernel/srs_kernel_codec.cpp @@ -568,14 +568,14 @@ int SrsFormat::on_audio(int64_t timestamp, char* data, int size) return ret; } + // Parse by specified codec. buffer->skip(-1 * buffer->pos()); + if (codec == SrsAudioCodecIdMP3) { return audio_mp3_demux(buffer, timestamp); - } else if (codec == SrsAudioCodecIdAAC) { - return audio_aac_demux(buffer, timestamp); - } else { - return ret; } + + return audio_aac_demux(buffer, timestamp); } int SrsFormat::on_video(int64_t timestamp, char* data, int size) diff --git a/trunk/src/kernel/srs_kernel_file.cpp b/trunk/src/kernel/srs_kernel_file.cpp index 7a29195ac..4cbe502cd 100644 --- a/trunk/src/kernel/srs_kernel_file.cpp +++ b/trunk/src/kernel/srs_kernel_file.cpp @@ -119,7 +119,8 @@ bool SrsFileWriter::is_open() void SrsFileWriter::seek2(int64_t offset) { - ::lseek(fd, (off_t)offset, SEEK_SET); + off_t r0 = ::lseek(fd, (off_t)offset, SEEK_SET); + srs_assert(r0 != -1); } int64_t SrsFileWriter::tellg() @@ -241,7 +242,8 @@ int64_t SrsFileReader::tellg() void SrsFileReader::skip(int64_t size) { - ::lseek(fd, (off_t)size, SEEK_CUR); + off_t r0 = ::lseek(fd, (off_t)size, SEEK_CUR); + srs_assert(r0 != -1); } int64_t SrsFileReader::seek2(int64_t offset) @@ -253,7 +255,10 @@ int64_t SrsFileReader::filesize() { int64_t cur = tellg(); int64_t size = (int64_t)::lseek(fd, 0, SEEK_END); - ::lseek(fd, (off_t)cur, SEEK_SET); + + off_t r0 = ::lseek(fd, (off_t)cur, SEEK_SET); + srs_assert(r0 != -1); + return size; } diff --git a/trunk/src/kernel/srs_kernel_flv.cpp b/trunk/src/kernel/srs_kernel_flv.cpp index 2fd385780..7cfd4eb23 100644 --- a/trunk/src/kernel/srs_kernel_flv.cpp +++ b/trunk/src/kernel/srs_kernel_flv.cpp @@ -192,6 +192,14 @@ int SrsCommonMessage::create(SrsMessageHeader* pheader, char* body, int size) return ret; } +SrsSharedMessageHeader::SrsSharedMessageHeader() : payload_length(0), message_type(0), perfer_cid(0) +{ +} + +SrsSharedMessageHeader::~SrsSharedMessageHeader() +{ +} + SrsSharedPtrMessage::SrsSharedPtrPayload::SrsSharedPtrPayload() { payload = NULL; @@ -207,7 +215,7 @@ SrsSharedPtrMessage::SrsSharedPtrPayload::~SrsSharedPtrPayload() srs_freepa(payload); } -SrsSharedPtrMessage::SrsSharedPtrMessage() +SrsSharedPtrMessage::SrsSharedPtrMessage() : timestamp(0), stream_id(0), size(0), payload(NULL) { ptr = NULL; } diff --git a/trunk/src/kernel/srs_kernel_flv.hpp b/trunk/src/kernel/srs_kernel_flv.hpp index fc0a04c29..f04dbb9ff 100644 --- a/trunk/src/kernel/srs_kernel_flv.hpp +++ b/trunk/src/kernel/srs_kernel_flv.hpp @@ -321,6 +321,9 @@ struct SrsSharedMessageHeader * for example, dispatch to all connections. */ int perfer_cid; + + SrsSharedMessageHeader(); + virtual ~SrsSharedMessageHeader(); }; /** diff --git a/trunk/src/kernel/srs_kernel_mp4.cpp b/trunk/src/kernel/srs_kernel_mp4.cpp index 7d46eee77..79e1c388c 100644 --- a/trunk/src/kernel/srs_kernel_mp4.cpp +++ b/trunk/src/kernel/srs_kernel_mp4.cpp @@ -1595,7 +1595,7 @@ int SrsMp4MovieBox::decode_header(SrsBuffer* buf) return SrsMp4Box::decode_header(buf); } -SrsMp4MovieHeaderBox::SrsMp4MovieHeaderBox() +SrsMp4MovieHeaderBox::SrsMp4MovieHeaderBox() : creation_time(0), modification_time(0), timescale(0), duration_in_tbn(0) { type = SrsMp4BoxTypeMVHD; @@ -1956,7 +1956,7 @@ SrsMp4AudioSampleEntry* SrsMp4TrackBox::mp4a() return box? box->mp4a():NULL; } -SrsMp4TrackHeaderBox::SrsMp4TrackHeaderBox() +SrsMp4TrackHeaderBox::SrsMp4TrackHeaderBox() : creation_time(0), modification_time(0), track_ID(0) { type = SrsMp4BoxTypeTKHD; @@ -2090,7 +2090,7 @@ SrsMp4EditBox::~SrsMp4EditBox() { } -SrsMp4ElstEntry::SrsMp4ElstEntry() +SrsMp4ElstEntry::SrsMp4ElstEntry() : segment_duration(0), media_time(0), media_rate_integer(0) { media_rate_fraction = 0; } @@ -2263,7 +2263,7 @@ void SrsMp4MediaBox::set_minf(SrsMp4MediaInformationBox* v) boxes.push_back(v); } -SrsMp4MediaHeaderBox::SrsMp4MediaHeaderBox() +SrsMp4MediaHeaderBox::SrsMp4MediaHeaderBox() : duration(0) { type = SrsMp4BoxTypeMDHD; language = 0; @@ -2388,6 +2388,8 @@ SrsMp4HandlerReferenceBox::SrsMp4HandlerReferenceBox() pre_defined = 0; memset(reserved, 0, 12); + + handler_type = SrsMp4HandlerTypeForbidden; } SrsMp4HandlerReferenceBox::~SrsMp4HandlerReferenceBox() @@ -2990,7 +2992,7 @@ int SrsMp4SampleTableBox::decode_header(SrsBuffer* buf) return SrsMp4Box::decode_header(buf); } -SrsMp4SampleEntry::SrsMp4SampleEntry() +SrsMp4SampleEntry::SrsMp4SampleEntry() : data_reference_index(0) { memset(reserved, 0, 6); } @@ -3042,7 +3044,7 @@ stringstream& SrsMp4SampleEntry::dumps_detail(stringstream& ss, SrsMp4DumpContex return ss; } -SrsMp4VisualSampleEntry::SrsMp4VisualSampleEntry() +SrsMp4VisualSampleEntry::SrsMp4VisualSampleEntry() : width(0), height(0) { type = SrsMp4BoxTypeAVC1; @@ -3193,7 +3195,7 @@ stringstream& SrsMp4AvccBox::dumps_detail(stringstream& ss, SrsMp4DumpContext dc return ss; } -SrsMp4AudioSampleEntry::SrsMp4AudioSampleEntry() +SrsMp4AudioSampleEntry::SrsMp4AudioSampleEntry() : samplerate(0) { type = SrsMp4BoxTypeMP4A; @@ -3448,7 +3450,7 @@ stringstream& SrsMp4DecoderSpecificInfo::dumps_detail(stringstream& ss, SrsMp4Du return srs_print_bytes(ss, (const char*)&asc[0], (int)asc.size(), dc.indent()); } -SrsMp4DecoderConfigDescriptor::SrsMp4DecoderConfigDescriptor() +SrsMp4DecoderConfigDescriptor::SrsMp4DecoderConfigDescriptor() : upStream(0), bufferSizeDB(0), maxBitrate(0), avgBitrate(0) { tag = SrsMp4ESTagESDecoderConfigDescrTag; objectTypeIndication = SrsMp4ObjectTypeForbidden; @@ -3568,10 +3570,10 @@ int SrsMp4SLConfigDescriptor::decode_payload(SrsBuffer* buf) return ret; } -SrsMp4ES_Descriptor::SrsMp4ES_Descriptor() +SrsMp4ES_Descriptor::SrsMp4ES_Descriptor() : ES_ID(0), dependsOn_ES_ID(0), OCR_ES_Id(0) { tag = SrsMp4ESTagESDescrTag; - streamDependenceFlag = URL_Flag = OCRstreamFlag = 0; + streamPriority = streamDependenceFlag = URL_Flag = OCRstreamFlag = 0; } SrsMp4ES_Descriptor::~SrsMp4ES_Descriptor() @@ -5040,12 +5042,14 @@ int SrsMp4SampleManager::load_trak(map& tses, SrsFrameT uint32_t sample_size = 0; if ((ret = stsz->get_sample_size(sample->index, &sample_size)) != ERROR_SUCCESS) { + srs_freep(sample); return ret; } sample_relative_offset += sample_size; SrsMp4SttsEntry* stts_entry = NULL; if ((ret = stts->on_sample(sample->index, &stts_entry)) != ERROR_SUCCESS) { + srs_freep(sample); return ret; } if (previous) { @@ -5054,6 +5058,7 @@ int SrsMp4SampleManager::load_trak(map& tses, SrsFrameT SrsMp4CttsEntry* ctts_entry = NULL; if (ctts && (ret = ctts->on_sample(sample->index, &ctts_entry)) != ERROR_SUCCESS) { + srs_freep(sample); return ret; } if (ctts_entry) { @@ -5618,8 +5623,8 @@ int SrsMp4Encoder::write_sample(SrsMp4HandlerType ht, uint16_t ft, uint16_t ct, SrsMp4Sample* ps = new SrsMp4Sample(); // For SPS/PPS or ASC, copy it to moov. - bool vsh = (ht == SrsMp4HandlerTypeVIDE) && (ct == SrsVideoAvcFrameTraitSequenceHeader); - bool ash = (ht == SrsMp4HandlerTypeSOUN) && (ct == SrsAudioAacFrameTraitSequenceHeader); + bool vsh = (ht == SrsMp4HandlerTypeVIDE) && (ct == (uint16_t)SrsVideoAvcFrameTraitSequenceHeader); + bool ash = (ht == SrsMp4HandlerTypeSOUN) && (ct == (uint16_t)SrsAudioAacFrameTraitSequenceHeader); if (vsh || ash) { ret = copy_sequence_header(vsh, sample, nb_sample); srs_freep(ps); diff --git a/trunk/src/kernel/srs_kernel_utility.cpp b/trunk/src/kernel/srs_kernel_utility.cpp index 3cae281cf..05a8ce82e 100644 --- a/trunk/src/kernel/srs_kernel_utility.cpp +++ b/trunk/src/kernel/srs_kernel_utility.cpp @@ -920,7 +920,7 @@ int srs_do_create_dir_recursively(string dir) // no sign extension const uint8_t *in = (const uint8_t*)in_str; unsigned bits = 0xff; - unsigned v; + unsigned v = 0; while (end - dst > 3) { BASE64_DEC_STEP(0); diff --git a/trunk/src/libs/srs_librtmp.cpp b/trunk/src/libs/srs_librtmp.cpp index bff6edfe3..91867124d 100644 --- a/trunk/src/libs/srs_librtmp.cpp +++ b/trunk/src/libs/srs_librtmp.cpp @@ -126,7 +126,7 @@ struct Context // The RTMP handler level buffer, can used to format packet. char buffer[1024]; - Context() { + Context() : port(0) { rtmp = NULL; skt = NULL; req = NULL; @@ -664,8 +664,7 @@ extern "C"{ #ifndef SRS_AUTO_SSL // complex handshake requires ssl return ERROR_RTMP_HS_SSL_REQUIRE; -#endif - +#else int ret = ERROR_SUCCESS; srs_assert(rtmp != NULL); @@ -682,6 +681,7 @@ extern "C"{ } return ret; +#endif } int srs_rtmp_do_simple_handshake(srs_rtmp_t rtmp) @@ -1579,12 +1579,12 @@ extern "C"{ } if (ht == SrsMp4HandlerTypeSOUN) { - s->codec = dec->acodec; + s->codec = (uint16_t)dec->acodec; s->sample_rate = dec->sample_rate; s->channels = dec->channels; s->sound_bits = dec->sound_bits; } else { - s->codec = dec->vcodec; + s->codec = (uint16_t)dec->vcodec; } s->handler_type = (uint32_t)ht; @@ -1599,13 +1599,13 @@ extern "C"{ int32_t srs_mp4_sizeof(srs_mp4_t mp4, srs_mp4_sample_t* s) { if (s->handler_type == SrsMp4HandlerTypeSOUN) { - if (s->codec == SrsAudioCodecIdAAC) { + if (s->codec == (uint16_t)SrsAudioCodecIdAAC) { return s->nb_sample + 2; } return s->nb_sample + 1; } - if (s->codec == SrsVideoCodecIdAVC) { + if (s->codec == (uint16_t)SrsVideoCodecIdAVC) { return s->nb_sample + 5; } return s->nb_sample + 1; @@ -1624,7 +1624,7 @@ extern "C"{ // E.4.2.1 AUDIODATA, flv_v10_1.pdf, page 3 p.write_1bytes(uint8_t(s->codec << 4) | uint8_t(s->sample_rate << 2) | uint8_t(s->sound_bits << 1) | s->channels); if (s->codec == SrsAudioCodecIdAAC) { - p.write_1bytes(uint8_t(s->frame_trait == SrsAudioAacFrameTraitSequenceHeader? 0:1)); + p.write_1bytes(uint8_t(s->frame_trait == (uint16_t)SrsAudioAacFrameTraitSequenceHeader? 0:1)); } p.write_bytes((char*)s->sample, s->nb_sample); @@ -1632,11 +1632,11 @@ extern "C"{ } // E.4.3.1 VIDEODATA, flv_v10_1.pdf, page 5 - p.write_1bytes(uint8_t(s->frame_type<<4) | s->codec); + p.write_1bytes(uint8_t(s->frame_type<<4) | uint8_t(s->codec)); if (s->codec == SrsVideoCodecIdAVC) { *type = SRS_RTMP_TYPE_VIDEO; - p.write_1bytes(uint8_t(s->frame_trait == SrsVideoAvcFrameTraitSequenceHeader? 0:1)); + p.write_1bytes(uint8_t(s->frame_trait == (uint16_t)SrsVideoAvcFrameTraitSequenceHeader? 0:1)); // cts = pts - dts, where dts = flvheader->timestamp. uint32_t cts = s->pts - s->dts; p.write_3bytes(cts); @@ -1824,7 +1824,8 @@ extern "C"{ void srs_flv_lseek(srs_flv_t flv, int64_t offset) { FlvContext* context = (FlvContext*)flv; - context->reader.seek2(offset); + int64_t r0 = context->reader.seek2(offset); + srs_assert(r0 != -1); } srs_bool srs_flv_is_eof(int error_code) @@ -2297,9 +2298,6 @@ extern "C"{ uint8_t sound_rate = data[0]; sound_rate = (sound_rate >> 2) & 0x03; - if (sound_rate > 3) { - return -1; - } return sound_rate; } @@ -2312,9 +2310,6 @@ extern "C"{ uint8_t sound_size = data[0]; sound_size = (sound_size >> 1) & 0x01; - if (sound_size > 1) { - return -1; - } return sound_size; } @@ -2327,9 +2322,6 @@ extern "C"{ uint8_t sound_type = data[0]; sound_type = sound_type & 0x01; - if (sound_type > 1) { - return -1; - } return sound_type; } @@ -2618,7 +2610,7 @@ extern "C"{ // packets interval in milliseconds. double pi = 0; - if (pre_now > starttime) { + if (pre_now > starttime && nb_packets > 0) { pi = (pre_now - starttime) / (double)nb_packets; } diff --git a/trunk/src/libs/srs_librtmp.hpp b/trunk/src/libs/srs_librtmp.hpp index 231db1ff2..5c3779c06 100644 --- a/trunk/src/libs/srs_librtmp.hpp +++ b/trunk/src/libs/srs_librtmp.hpp @@ -32,6 +32,11 @@ * thread-safe: no */ +// @see http://blog.csdn.net/win_lin/article/details/7912693 +#ifndef __STDC_FORMAT_MACROS + #define __STDC_FORMAT_MACROS +#endif + /************************************************************* ************************************************************** * Windows SRS-LIBRTMP pre-declare diff --git a/trunk/src/protocol/srs_protocol_amf0.cpp b/trunk/src/protocol/srs_protocol_amf0.cpp index 728b6460b..343d0e0e7 100644 --- a/trunk/src/protocol/srs_protocol_amf0.cpp +++ b/trunk/src/protocol/srs_protocol_amf0.cpp @@ -203,6 +203,8 @@ void srs_fill_level_spaces(stringstream& ss, int level) } void srs_amf0_do_print(SrsAmf0Any* any, stringstream& ss, int level) { + std::ios_base::fmtflags oflags = ss.flags(); + if (any->is_boolean()) { ss << "Boolean " << (any->to_boolean()? "true":"false") << endl; } else if (any->is_number()) { @@ -253,6 +255,8 @@ void srs_amf0_do_print(SrsAmf0Any* any, stringstream& ss, int level) } else { ss << "Unknown" << endl; } + + ss.flags(oflags); } char* SrsAmf0Any::human_print(char** pdata, int* psize)