From ff565c4d9bf79dea3a85a3ee927bf10a2563e2d2 Mon Sep 17 00:00:00 2001 From: winlin Date: Sat, 16 Nov 2013 12:54:48 +0800 Subject: [PATCH] fix bug of amf0 decode --- trunk/conf/srs.conf | 2 +- trunk/src/core/srs_core_amf0.cpp | 2 ++ trunk/src/core/srs_core_protocol.cpp | 2 +- trunk/src/core/srs_core_source.cpp | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/trunk/conf/srs.conf b/trunk/conf/srs.conf index 633848f8a..8328dbda4 100755 --- a/trunk/conf/srs.conf +++ b/trunk/conf/srs.conf @@ -1,5 +1,5 @@ # the listen ports, split by space. -listen 1935; +listen 1937; # the default chunk size is 128, max is 65536, # some client does not support chunk size change, # however, most clients supports it and it can improve diff --git a/trunk/src/core/srs_core_amf0.cpp b/trunk/src/core/srs_core_amf0.cpp index 8c8faac2d..a778dbf06 100755 --- a/trunk/src/core/srs_core_amf0.cpp +++ b/trunk/src/core/srs_core_amf0.cpp @@ -734,10 +734,12 @@ int srs_amf0_read_any(SrsStream* stream, SrsAmf0Any*& value) return ret; } case RTMP_AMF0_Null: { + stream->skip(1); value = new SrsAmf0Null(); return ret; } case RTMP_AMF0_Undefined: { + stream->skip(1); value = new SrsAmf0Undefined(); return ret; } diff --git a/trunk/src/core/srs_core_protocol.cpp b/trunk/src/core/srs_core_protocol.cpp index 4cc512dbb..69983cb54 100755 --- a/trunk/src/core/srs_core_protocol.cpp +++ b/trunk/src/core/srs_core_protocol.cpp @@ -538,7 +538,7 @@ int SrsProtocol::on_recv_message(SrsCommonMessage* msg) srs_assert(msg != NULL); // acknowledgement - if (skt->get_recv_bytes() - in_ack_size.acked_size > in_ack_size.ack_window_size) { + if (in_ack_size.ack_window_size > 0 && skt->get_recv_bytes() - in_ack_size.acked_size > in_ack_size.ack_window_size) { if ((ret = response_acknowledgement_message()) != ERROR_SUCCESS) { return ret; } diff --git a/trunk/src/core/srs_core_source.cpp b/trunk/src/core/srs_core_source.cpp index ddbe75dfc..04586af42 100755 --- a/trunk/src/core/srs_core_source.cpp +++ b/trunk/src/core/srs_core_source.cpp @@ -359,7 +359,7 @@ int SrsSource::on_audio(SrsCommonMessage* audio) if (codec->audio_is_sequence_header(msg->payload, msg->size)) { srs_freep(cache_sh_audio); cache_sh_audio = msg->copy(); - srs_trace("update audio sequence header success."); + srs_trace("update audio sequence header success. size=%d", msg->header.payload_length); return ret; } @@ -404,7 +404,7 @@ int SrsSource::on_video(SrsCommonMessage* video) if (codec->video_is_sequence_header(msg->payload, msg->size)) { srs_freep(cache_sh_video); cache_sh_video = msg->copy(); - srs_trace("update video sequence header success."); + srs_trace("update video sequence header success. size=%d", msg->header.payload_length); return ret; }