From 5af377e41d853dc9add1a52af31e75701586d092 Mon Sep 17 00:00:00 2001 From: winlin Date: Tue, 22 Oct 2013 18:30:36 +0800 Subject: [PATCH] add shared ptr message --- trunk/src/core/srs_core.hpp | 5 +++++ trunk/src/core/srs_core_client.cpp | 2 +- trunk/src/core/srs_core_protocol.cpp | 8 ++++++++ trunk/src/core/srs_core_protocol.hpp | 11 +++++++++++ trunk/src/core/srs_core_rtmp.cpp | 6 +++--- trunk/src/core/srs_core_source.cpp | 7 ++++++- trunk/src/core/srs_core_source.hpp | 2 +- 7 files changed, 35 insertions(+), 6 deletions(-) diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp index 8c992eeff..5386a8700 100755 --- a/trunk/src/core/srs_core.hpp +++ b/trunk/src/core/srs_core.hpp @@ -61,4 +61,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. } \ (void)0 +// server info. +#define RTMP_SIG_SRS_NAME "srs(simple rtmp server)" +#define RTMP_SIG_SRS_URL "https://github.com/winlinvip/simple-rtmp-server" +#define RTMP_SIG_SRS_VERSION "0.1" + #endif \ No newline at end of file diff --git a/trunk/src/core/srs_core_client.cpp b/trunk/src/core/srs_core_client.cpp index 11195fa75..d68654ec8 100755 --- a/trunk/src/core/srs_core_client.cpp +++ b/trunk/src/core/srs_core_client.cpp @@ -238,7 +238,7 @@ int SrsClient::streaming_publish(SrsSource* source) SrsPacket* pkt = msg->get_packet(); if (dynamic_cast(pkt)) { SrsOnMetaDataPacket* metadata = dynamic_cast(pkt); - if ((ret = source->on_meta_data(metadata)) != ERROR_SUCCESS) { + if ((ret = source->on_meta_data(msg, metadata)) != ERROR_SUCCESS) { srs_error("process onMetaData message failed. ret=%d", ret); return ret; } diff --git a/trunk/src/core/srs_core_protocol.cpp b/trunk/src/core/srs_core_protocol.cpp index 614bc73ca..55421ee80 100755 --- a/trunk/src/core/srs_core_protocol.cpp +++ b/trunk/src/core/srs_core_protocol.cpp @@ -1089,6 +1089,14 @@ int SrsMessage::encode_packet() return packet->encode(size, (char*&)payload); } +SrsSharedMessage::SrsSharedMessage() +{ +} + +SrsSharedMessage::~SrsSharedMessage() +{ +} + SrsPacket::SrsPacket() { } diff --git a/trunk/src/core/srs_core_protocol.hpp b/trunk/src/core/srs_core_protocol.hpp index 07f086ba2..569ae5b4b 100755 --- a/trunk/src/core/srs_core_protocol.hpp +++ b/trunk/src/core/srs_core_protocol.hpp @@ -284,6 +284,17 @@ public: virtual int encode_packet(); }; +/** +* shared ptr message. +* for audio/video/data message that need less memory copy. +*/ +class SrsSharedMessage : public SrsMessage +{ +public: + SrsSharedMessage(); + virtual ~SrsSharedMessage(); +}; + /** * the decoded message payload. */ diff --git a/trunk/src/core/srs_core_rtmp.cpp b/trunk/src/core/srs_core_rtmp.cpp index 1dcb3c58e..9db18d568 100755 --- a/trunk/src/core/srs_core_rtmp.cpp +++ b/trunk/src/core/srs_core_rtmp.cpp @@ -35,11 +35,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #define RTMP_SIG_FMS_VER "3,5,3,888" #define RTMP_SIG_AMF0_VER 0 -#define RTMP_SIG_SRS_NAME "srs(simple rtmp server)" -#define RTMP_SIG_SRS_URL "https://github.com/winlinvip/simple-rtmp-server" -#define RTMP_SIG_SRS_VERSION "0.1" #define RTMP_SIG_CLIENT_ID "ASAICiss" +/** +* onStatus consts. +*/ #define StatusLevel "level" #define StatusCode "code" #define StatusDescription "description" diff --git a/trunk/src/core/srs_core_source.cpp b/trunk/src/core/srs_core_source.cpp index 55fc3e6ba..4596590ba 100755 --- a/trunk/src/core/srs_core_source.cpp +++ b/trunk/src/core/srs_core_source.cpp @@ -25,6 +25,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include #include +#include std::map SrsSource::pool; @@ -64,9 +65,13 @@ SrsSource::~SrsSource() { } -int SrsSource::on_meta_data(SrsOnMetaDataPacket* metadata) +int SrsSource::on_meta_data(SrsMessage* msg, SrsOnMetaDataPacket* metadata) { int ret = ERROR_SUCCESS; + + metadata->metadata->set("server", + new SrsAmf0String(RTMP_SIG_SRS_NAME""RTMP_SIG_SRS_VERSION)); + return ret; } diff --git a/trunk/src/core/srs_core_source.hpp b/trunk/src/core/srs_core_source.hpp index e44719df6..a253d1bf0 100755 --- a/trunk/src/core/srs_core_source.hpp +++ b/trunk/src/core/srs_core_source.hpp @@ -75,7 +75,7 @@ public: SrsSource(std::string _stream_url); virtual ~SrsSource(); public: - virtual int on_meta_data(SrsOnMetaDataPacket* metadata); + virtual int on_meta_data(SrsMessage* msg, SrsOnMetaDataPacket* metadata); virtual int on_audio(SrsMessage* audio); virtual int on_video(SrsMessage* video); public: