winlin

amf0 utest: remove class SrsAmf0String, use SrsAmf0Any instead

@@ -276,7 +276,7 @@ int SrsBandwidth::check_play( @@ -276,7 +276,7 @@ int SrsBandwidth::check_play(
276 std::stringstream seq; 276 std::stringstream seq;
277 seq << i; 277 seq << i;
278 std::string play_data = "SrS band check data from server's playing......"; 278 std::string play_data = "SrS band check data from server's playing......";
279 - pkt->data->set(seq.str(), new SrsAmf0String(play_data.c_str())); 279 + pkt->data->set(seq.str(), SrsAmf0Any::str(play_data.c_str()));
280 } 280 }
281 data_count += 2; 281 data_count += 2;
282 282
@@ -639,10 +639,8 @@ int SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata @@ -639,10 +639,8 @@ int SrsSource::on_meta_data(SrsCommonMessage* msg, SrsOnMetaDataPacket* metadata
639 } 639 }
640 #endif 640 #endif
641 641
642 - metadata->metadata->set("server", new SrsAmf0String(  
643 - RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));  
644 - metadata->metadata->set("contributor",  
645 - new SrsAmf0String(RTMP_SIG_SRS_PRIMARY_AUTHROS)); 642 + metadata->metadata->set("server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));
  643 + metadata->metadata->set("contributor", SrsAmf0Any::str(RTMP_SIG_SRS_PRIMARY_AUTHROS));
646 644
647 SrsAmf0Any* prop = NULL; 645 SrsAmf0Any* prop = NULL;
648 if ((prop = metadata->metadata->get_property("audiosamplerate")) != NULL) { 646 if ((prop = metadata->metadata->get_property("audiosamplerate")) != NULL) {
@@ -105,12 +105,23 @@ bool SrsAmf0Any::is_ecma_array() @@ -105,12 +105,23 @@ bool SrsAmf0Any::is_ecma_array()
105 return marker == RTMP_AMF0_EcmaArray; 105 return marker == RTMP_AMF0_EcmaArray;
106 } 106 }
107 107
  108 +std::string SrsAmf0Any::to_str()
  109 +{
  110 + __SrsAmf0String* o = srs_amf0_convert<__SrsAmf0String>(this);
  111 + return o->value;
  112 +}
  113 +
108 bool SrsAmf0Any::is_object_eof() 114 bool SrsAmf0Any::is_object_eof()
109 { 115 {
110 return marker == RTMP_AMF0_ObjectEnd; 116 return marker == RTMP_AMF0_ObjectEnd;
111 } 117 }
112 118
113 -SrsAmf0String::SrsAmf0String(const char* _value) 119 +SrsAmf0Any* SrsAmf0Any::str(const char* value)
  120 +{
  121 + return new __SrsAmf0String(value);
  122 +}
  123 +
  124 +__SrsAmf0String::__SrsAmf0String(const char* _value)
114 { 125 {
115 marker = RTMP_AMF0_String; 126 marker = RTMP_AMF0_String;
116 if (_value) { 127 if (_value) {
@@ -118,11 +129,11 @@ SrsAmf0String::SrsAmf0String(const char* _value) @@ -118,11 +129,11 @@ SrsAmf0String::SrsAmf0String(const char* _value)
118 } 129 }
119 } 130 }
120 131
121 -SrsAmf0String::~SrsAmf0String() 132 +__SrsAmf0String::~__SrsAmf0String()
122 { 133 {
123 } 134 }
124 135
125 -int SrsAmf0String::size() 136 +int __SrsAmf0String::size()
126 { 137 {
127 return SrsAmf0Size::str(value); 138 return SrsAmf0Size::str(value);
128 } 139 }
@@ -1035,8 +1046,8 @@ int srs_amf0_read_any(SrsStream* stream, SrsAmf0Any*& value) @@ -1035,8 +1046,8 @@ int srs_amf0_read_any(SrsStream* stream, SrsAmf0Any*& value)
1035 if ((ret = srs_amf0_read_string(stream, data)) != ERROR_SUCCESS) { 1046 if ((ret = srs_amf0_read_string(stream, data)) != ERROR_SUCCESS) {
1036 return ret; 1047 return ret;
1037 } 1048 }
1038 - value = new SrsAmf0String();  
1039 - srs_amf0_convert<SrsAmf0String>(value)->value = data; 1049 + value = SrsAmf0Any::str();
  1050 + srs_amf0_convert<__SrsAmf0String>(value)->value = data;
1040 return ret; 1051 return ret;
1041 } 1052 }
1042 case RTMP_AMF0_Boolean: { 1053 case RTMP_AMF0_Boolean: {
@@ -1109,7 +1120,7 @@ int srs_amf0_write_any(SrsStream* stream, SrsAmf0Any* value) @@ -1109,7 +1120,7 @@ int srs_amf0_write_any(SrsStream* stream, SrsAmf0Any* value)
1109 1120
1110 switch (value->marker) { 1121 switch (value->marker) {
1111 case RTMP_AMF0_String: { 1122 case RTMP_AMF0_String: {
1112 - std::string data = srs_amf0_convert<SrsAmf0String>(value)->value; 1123 + std::string data = srs_amf0_convert<__SrsAmf0String>(value)->value;
1113 return srs_amf0_write_string(stream, data); 1124 return srs_amf0_write_string(stream, data);
1114 } 1125 }
1115 case RTMP_AMF0_Boolean: { 1126 case RTMP_AMF0_Boolean: {
@@ -47,10 +47,10 @@ class SrsAmf0Any @@ -47,10 +47,10 @@ class SrsAmf0Any
47 { 47 {
48 public: 48 public:
49 char marker; 49 char marker;
50 - 50 +public:
51 SrsAmf0Any(); 51 SrsAmf0Any();
52 virtual ~SrsAmf0Any(); 52 virtual ~SrsAmf0Any();
53 - 53 +public:
54 virtual bool is_string(); 54 virtual bool is_string();
55 virtual bool is_boolean(); 55 virtual bool is_boolean();
56 virtual bool is_number(); 56 virtual bool is_number();
@@ -59,8 +59,12 @@ public: @@ -59,8 +59,12 @@ public:
59 virtual bool is_object(); 59 virtual bool is_object();
60 virtual bool is_object_eof(); 60 virtual bool is_object_eof();
61 virtual bool is_ecma_array(); 61 virtual bool is_ecma_array();
62 - 62 +public:
  63 + virtual std::string to_str();
  64 +public:
63 virtual int size() = 0; 65 virtual int size() = 0;
  66 +public:
  67 + static SrsAmf0Any* str(const char* value = NULL);
64 }; 68 };
65 69
66 /** 70 /**
@@ -68,14 +72,15 @@ public: @@ -68,14 +72,15 @@ public:
68 * 2.4 String Type 72 * 2.4 String Type
69 * string-type = string-marker UTF-8 73 * string-type = string-marker UTF-8
70 * @return default value is empty string. 74 * @return default value is empty string.
  75 +* @remark: use SrsAmf0Any::str() to create it.
71 */ 76 */
72 -class SrsAmf0String : public SrsAmf0Any 77 +class __SrsAmf0String : public SrsAmf0Any
73 { 78 {
74 public: 79 public:
75 std::string value; 80 std::string value;
76 81
77 - SrsAmf0String(const char* _value = NULL);  
78 - virtual ~SrsAmf0String(); 82 + __SrsAmf0String(const char* _value);
  83 + virtual ~__SrsAmf0String();
79 84
80 virtual int size(); 85 virtual int size();
81 }; 86 };
@@ -280,15 +280,15 @@ int SrsRtmpClient::connect_app(string app, string tc_url) @@ -280,15 +280,15 @@ int SrsRtmpClient::connect_app(string app, string tc_url)
280 msg->set_packet(pkt, 0); 280 msg->set_packet(pkt, 0);
281 281
282 pkt->command_object = new SrsAmf0Object(); 282 pkt->command_object = new SrsAmf0Object();
283 - pkt->command_object->set("app", new SrsAmf0String(app.c_str()));  
284 - pkt->command_object->set("swfUrl", new SrsAmf0String());  
285 - pkt->command_object->set("tcUrl", new SrsAmf0String(tc_url.c_str())); 283 + pkt->command_object->set("app", SrsAmf0Any::str(app.c_str()));
  284 + pkt->command_object->set("swfUrl", SrsAmf0Any::str());
  285 + pkt->command_object->set("tcUrl", SrsAmf0Any::str(tc_url.c_str()));
286 pkt->command_object->set("fpad", new SrsAmf0Boolean(false)); 286 pkt->command_object->set("fpad", new SrsAmf0Boolean(false));
287 pkt->command_object->set("capabilities", new SrsAmf0Number(239)); 287 pkt->command_object->set("capabilities", new SrsAmf0Number(239));
288 pkt->command_object->set("audioCodecs", new SrsAmf0Number(3575)); 288 pkt->command_object->set("audioCodecs", new SrsAmf0Number(3575));
289 pkt->command_object->set("videoCodecs", new SrsAmf0Number(252)); 289 pkt->command_object->set("videoCodecs", new SrsAmf0Number(252));
290 pkt->command_object->set("videoFunction", new SrsAmf0Number(1)); 290 pkt->command_object->set("videoFunction", new SrsAmf0Number(1));
291 - pkt->command_object->set("pageUrl", new SrsAmf0String()); 291 + pkt->command_object->set("pageUrl", SrsAmf0Any::str());
292 pkt->command_object->set("objectEncoding", new SrsAmf0Number(0)); 292 pkt->command_object->set("objectEncoding", new SrsAmf0Number(0));
293 293
294 if ((ret = protocol->send_message(msg)) != ERROR_SUCCESS) { 294 if ((ret = protocol->send_message(msg)) != ERROR_SUCCESS) {
@@ -632,14 +632,14 @@ int SrsRtmpServer::connect_app(SrsRequest* req) @@ -632,14 +632,14 @@ int SrsRtmpServer::connect_app(SrsRequest* req)
632 srs_error("invalid request, must specifies the tcUrl. ret=%d", ret); 632 srs_error("invalid request, must specifies the tcUrl. ret=%d", ret);
633 return ret; 633 return ret;
634 } 634 }
635 - req->tcUrl = srs_amf0_convert<SrsAmf0String>(prop)->value; 635 + req->tcUrl = prop->to_str();
636 636
637 if ((prop = pkt->command_object->ensure_property_string("pageUrl")) != NULL) { 637 if ((prop = pkt->command_object->ensure_property_string("pageUrl")) != NULL) {
638 - req->pageUrl = srs_amf0_convert<SrsAmf0String>(prop)->value; 638 + req->pageUrl = prop->to_str();
639 } 639 }
640 640
641 if ((prop = pkt->command_object->ensure_property_string("swfUrl")) != NULL) { 641 if ((prop = pkt->command_object->ensure_property_string("swfUrl")) != NULL) {
642 - req->swfUrl = srs_amf0_convert<SrsAmf0String>(prop)->value; 642 + req->swfUrl = prop->to_str();
643 } 643 }
644 644
645 if ((prop = pkt->command_object->ensure_property_number("objectEncoding")) != NULL) { 645 if ((prop = pkt->command_object->ensure_property_number("objectEncoding")) != NULL) {
@@ -698,31 +698,31 @@ int SrsRtmpServer::response_connect_app(SrsRequest *req, const char* server_ip) @@ -698,31 +698,31 @@ int SrsRtmpServer::response_connect_app(SrsRequest *req, const char* server_ip)
698 SrsCommonMessage* msg = new SrsCommonMessage(); 698 SrsCommonMessage* msg = new SrsCommonMessage();
699 SrsConnectAppResPacket* pkt = new SrsConnectAppResPacket(); 699 SrsConnectAppResPacket* pkt = new SrsConnectAppResPacket();
700 700
701 - pkt->props->set("fmsVer", new SrsAmf0String("FMS/"RTMP_SIG_FMS_VER)); 701 + pkt->props->set("fmsVer", SrsAmf0Any::str("FMS/"RTMP_SIG_FMS_VER));
702 pkt->props->set("capabilities", new SrsAmf0Number(127)); 702 pkt->props->set("capabilities", new SrsAmf0Number(127));
703 pkt->props->set("mode", new SrsAmf0Number(1)); 703 pkt->props->set("mode", new SrsAmf0Number(1));
704 704
705 - pkt->info->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
706 - pkt->info->set(StatusCode, new SrsAmf0String(StatusCodeConnectSuccess));  
707 - pkt->info->set(StatusDescription, new SrsAmf0String("Connection succeeded")); 705 + pkt->info->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  706 + pkt->info->set(StatusCode, SrsAmf0Any::str(StatusCodeConnectSuccess));
  707 + pkt->info->set(StatusDescription, SrsAmf0Any::str("Connection succeeded"));
708 pkt->info->set("objectEncoding", new SrsAmf0Number(req->objectEncoding)); 708 pkt->info->set("objectEncoding", new SrsAmf0Number(req->objectEncoding));
709 SrsAmf0EcmaArray* data = new SrsAmf0EcmaArray(); 709 SrsAmf0EcmaArray* data = new SrsAmf0EcmaArray();
710 pkt->info->set("data", data); 710 pkt->info->set("data", data);
711 711
712 - data->set("version", new SrsAmf0String(RTMP_SIG_FMS_VER));  
713 - data->set("srs_sig", new SrsAmf0String(RTMP_SIG_SRS_KEY));  
714 - data->set("srs_server", new SrsAmf0String(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));  
715 - data->set("srs_license", new SrsAmf0String(RTMP_SIG_SRS_LICENSE));  
716 - data->set("srs_role", new SrsAmf0String(RTMP_SIG_SRS_ROLE));  
717 - data->set("srs_url", new SrsAmf0String(RTMP_SIG_SRS_URL));  
718 - data->set("srs_version", new SrsAmf0String(RTMP_SIG_SRS_VERSION));  
719 - data->set("srs_site", new SrsAmf0String(RTMP_SIG_SRS_WEB));  
720 - data->set("srs_email", new SrsAmf0String(RTMP_SIG_SRS_EMAIL));  
721 - data->set("srs_copyright", new SrsAmf0String(RTMP_SIG_SRS_COPYRIGHT));  
722 - data->set("srs_primary_authors", new SrsAmf0String(RTMP_SIG_SRS_PRIMARY_AUTHROS)); 712 + data->set("version", SrsAmf0Any::str(RTMP_SIG_FMS_VER));
  713 + data->set("srs_sig", SrsAmf0Any::str(RTMP_SIG_SRS_KEY));
  714 + data->set("srs_server", SrsAmf0Any::str(RTMP_SIG_SRS_KEY" "RTMP_SIG_SRS_VERSION" ("RTMP_SIG_SRS_URL_SHORT")"));
  715 + data->set("srs_license", SrsAmf0Any::str(RTMP_SIG_SRS_LICENSE));
  716 + data->set("srs_role", SrsAmf0Any::str(RTMP_SIG_SRS_ROLE));
  717 + data->set("srs_url", SrsAmf0Any::str(RTMP_SIG_SRS_URL));
  718 + data->set("srs_version", SrsAmf0Any::str(RTMP_SIG_SRS_VERSION));
  719 + data->set("srs_site", SrsAmf0Any::str(RTMP_SIG_SRS_WEB));
  720 + data->set("srs_email", SrsAmf0Any::str(RTMP_SIG_SRS_EMAIL));
  721 + data->set("srs_copyright", SrsAmf0Any::str(RTMP_SIG_SRS_COPYRIGHT));
  722 + data->set("srs_primary_authors", SrsAmf0Any::str(RTMP_SIG_SRS_PRIMARY_AUTHROS));
723 723
724 if (server_ip) { 724 if (server_ip) {
725 - data->set("srs_server_ip", new SrsAmf0String(server_ip)); 725 + data->set("srs_server_ip", SrsAmf0Any::str(server_ip));
726 } 726 }
727 727
728 msg->set_packet(pkt, 0); 728 msg->set_packet(pkt, 0);
@@ -742,9 +742,9 @@ void SrsRtmpServer::response_connect_reject(SrsRequest *req, const char* desc) @@ -742,9 +742,9 @@ void SrsRtmpServer::response_connect_reject(SrsRequest *req, const char* desc)
742 742
743 SrsConnectAppResPacket* pkt = new SrsConnectAppResPacket(); 743 SrsConnectAppResPacket* pkt = new SrsConnectAppResPacket();
744 pkt->command_name = "_error"; 744 pkt->command_name = "_error";
745 - pkt->props->set(StatusLevel, new SrsAmf0String(StatusLevelError));  
746 - pkt->props->set(StatusCode, new SrsAmf0String(StatusCodeConnectRejected));  
747 - pkt->props->set(StatusDescription, new SrsAmf0String(desc)); 745 + pkt->props->set(StatusLevel, SrsAmf0Any::str(StatusLevelError));
  746 + pkt->props->set(StatusCode, SrsAmf0Any::str(StatusCodeConnectRejected));
  747 + pkt->props->set(StatusDescription, SrsAmf0Any::str(desc));
748 //pkt->props->set("objectEncoding", new SrsAmf0Number(req->objectEncoding)); 748 //pkt->props->set("objectEncoding", new SrsAmf0Number(req->objectEncoding));
749 749
750 SrsCommonMessage* msg = (new SrsCommonMessage())->set_packet(pkt, 0); 750 SrsCommonMessage* msg = (new SrsCommonMessage())->set_packet(pkt, 0);
@@ -864,11 +864,11 @@ int SrsRtmpServer::start_play(int stream_id) @@ -864,11 +864,11 @@ int SrsRtmpServer::start_play(int stream_id)
864 SrsCommonMessage* msg = new SrsCommonMessage(); 864 SrsCommonMessage* msg = new SrsCommonMessage();
865 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 865 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
866 866
867 - pkt->data->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
868 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodeStreamReset));  
869 - pkt->data->set(StatusDescription, new SrsAmf0String("Playing and resetting stream."));  
870 - pkt->data->set(StatusDetails, new SrsAmf0String("stream"));  
871 - pkt->data->set(StatusClientId, new SrsAmf0String(RTMP_SIG_CLIENT_ID)); 867 + pkt->data->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  868 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodeStreamReset));
  869 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Playing and resetting stream."));
  870 + pkt->data->set(StatusDetails, SrsAmf0Any::str("stream"));
  871 + pkt->data->set(StatusClientId, SrsAmf0Any::str(RTMP_SIG_CLIENT_ID));
872 872
873 msg->set_packet(pkt, stream_id); 873 msg->set_packet(pkt, stream_id);
874 874
@@ -884,11 +884,11 @@ int SrsRtmpServer::start_play(int stream_id) @@ -884,11 +884,11 @@ int SrsRtmpServer::start_play(int stream_id)
884 SrsCommonMessage* msg = new SrsCommonMessage(); 884 SrsCommonMessage* msg = new SrsCommonMessage();
885 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 885 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
886 886
887 - pkt->data->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
888 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodeStreamStart));  
889 - pkt->data->set(StatusDescription, new SrsAmf0String("Started playing stream."));  
890 - pkt->data->set(StatusDetails, new SrsAmf0String("stream"));  
891 - pkt->data->set(StatusClientId, new SrsAmf0String(RTMP_SIG_CLIENT_ID)); 887 + pkt->data->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  888 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodeStreamStart));
  889 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Started playing stream."));
  890 + pkt->data->set(StatusDetails, SrsAmf0Any::str("stream"));
  891 + pkt->data->set(StatusClientId, SrsAmf0Any::str(RTMP_SIG_CLIENT_ID));
892 892
893 msg->set_packet(pkt, stream_id); 893 msg->set_packet(pkt, stream_id);
894 894
@@ -918,7 +918,7 @@ int SrsRtmpServer::start_play(int stream_id) @@ -918,7 +918,7 @@ int SrsRtmpServer::start_play(int stream_id)
918 SrsCommonMessage* msg = new SrsCommonMessage(); 918 SrsCommonMessage* msg = new SrsCommonMessage();
919 SrsOnStatusDataPacket* pkt = new SrsOnStatusDataPacket(); 919 SrsOnStatusDataPacket* pkt = new SrsOnStatusDataPacket();
920 920
921 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodeDataStart)); 921 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodeDataStart));
922 922
923 msg->set_packet(pkt, stream_id); 923 msg->set_packet(pkt, stream_id);
924 924
@@ -944,9 +944,9 @@ int SrsRtmpServer::on_play_client_pause(int stream_id, bool is_pause) @@ -944,9 +944,9 @@ int SrsRtmpServer::on_play_client_pause(int stream_id, bool is_pause)
944 SrsCommonMessage* msg = new SrsCommonMessage(); 944 SrsCommonMessage* msg = new SrsCommonMessage();
945 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 945 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
946 946
947 - pkt->data->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
948 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodeStreamPause));  
949 - pkt->data->set(StatusDescription, new SrsAmf0String("Paused stream.")); 947 + pkt->data->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  948 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodeStreamPause));
  949 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Paused stream."));
950 950
951 msg->set_packet(pkt, stream_id); 951 msg->set_packet(pkt, stream_id);
952 952
@@ -977,9 +977,9 @@ int SrsRtmpServer::on_play_client_pause(int stream_id, bool is_pause) @@ -977,9 +977,9 @@ int SrsRtmpServer::on_play_client_pause(int stream_id, bool is_pause)
977 SrsCommonMessage* msg = new SrsCommonMessage(); 977 SrsCommonMessage* msg = new SrsCommonMessage();
978 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 978 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
979 979
980 - pkt->data->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
981 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodeStreamUnpause));  
982 - pkt->data->set(StatusDescription, new SrsAmf0String("Unpaused stream.")); 980 + pkt->data->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  981 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodeStreamUnpause));
  982 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Unpaused stream."));
983 983
984 msg->set_packet(pkt, stream_id); 984 msg->set_packet(pkt, stream_id);
985 985
@@ -1087,8 +1087,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) @@ -1087,8 +1087,8 @@ int SrsRtmpServer::start_fmle_publish(int stream_id)
1087 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 1087 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
1088 1088
1089 pkt->command_name = RTMP_AMF0_COMMAND_ON_FC_PUBLISH; 1089 pkt->command_name = RTMP_AMF0_COMMAND_ON_FC_PUBLISH;
1090 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodePublishStart));  
1091 - pkt->data->set(StatusDescription, new SrsAmf0String("Started publishing stream.")); 1090 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodePublishStart));
  1091 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Started publishing stream."));
1092 1092
1093 msg->set_packet(pkt, stream_id); 1093 msg->set_packet(pkt, stream_id);
1094 1094
@@ -1103,10 +1103,10 @@ int SrsRtmpServer::start_fmle_publish(int stream_id) @@ -1103,10 +1103,10 @@ int SrsRtmpServer::start_fmle_publish(int stream_id)
1103 SrsCommonMessage* msg = new SrsCommonMessage(); 1103 SrsCommonMessage* msg = new SrsCommonMessage();
1104 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 1104 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
1105 1105
1106 - pkt->data->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
1107 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodePublishStart));  
1108 - pkt->data->set(StatusDescription, new SrsAmf0String("Started publishing stream."));  
1109 - pkt->data->set(StatusClientId, new SrsAmf0String(RTMP_SIG_CLIENT_ID)); 1106 + pkt->data->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  1107 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodePublishStart));
  1108 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Started publishing stream."));
  1109 + pkt->data->set(StatusClientId, SrsAmf0Any::str(RTMP_SIG_CLIENT_ID));
1110 1110
1111 msg->set_packet(pkt, stream_id); 1111 msg->set_packet(pkt, stream_id);
1112 1112
@@ -1132,8 +1132,8 @@ int SrsRtmpServer::fmle_unpublish(int stream_id, double unpublish_tid) @@ -1132,8 +1132,8 @@ int SrsRtmpServer::fmle_unpublish(int stream_id, double unpublish_tid)
1132 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 1132 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
1133 1133
1134 pkt->command_name = RTMP_AMF0_COMMAND_ON_FC_UNPUBLISH; 1134 pkt->command_name = RTMP_AMF0_COMMAND_ON_FC_UNPUBLISH;
1135 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodeUnpublishSuccess));  
1136 - pkt->data->set(StatusDescription, new SrsAmf0String("Stop publishing stream.")); 1135 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodeUnpublishSuccess));
  1136 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Stop publishing stream."));
1137 1137
1138 msg->set_packet(pkt, stream_id); 1138 msg->set_packet(pkt, stream_id);
1139 1139
@@ -1161,10 +1161,10 @@ int SrsRtmpServer::fmle_unpublish(int stream_id, double unpublish_tid) @@ -1161,10 +1161,10 @@ int SrsRtmpServer::fmle_unpublish(int stream_id, double unpublish_tid)
1161 SrsCommonMessage* msg = new SrsCommonMessage(); 1161 SrsCommonMessage* msg = new SrsCommonMessage();
1162 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 1162 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
1163 1163
1164 - pkt->data->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
1165 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodeUnpublishSuccess));  
1166 - pkt->data->set(StatusDescription, new SrsAmf0String("Stream is now unpublished"));  
1167 - pkt->data->set(StatusClientId, new SrsAmf0String(RTMP_SIG_CLIENT_ID)); 1164 + pkt->data->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  1165 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodeUnpublishSuccess));
  1166 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Stream is now unpublished"));
  1167 + pkt->data->set(StatusClientId, SrsAmf0Any::str(RTMP_SIG_CLIENT_ID));
1168 1168
1169 msg->set_packet(pkt, stream_id); 1169 msg->set_packet(pkt, stream_id);
1170 1170
@@ -1189,10 +1189,10 @@ int SrsRtmpServer::start_flash_publish(int stream_id) @@ -1189,10 +1189,10 @@ int SrsRtmpServer::start_flash_publish(int stream_id)
1189 SrsCommonMessage* msg = new SrsCommonMessage(); 1189 SrsCommonMessage* msg = new SrsCommonMessage();
1190 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket(); 1190 SrsOnStatusCallPacket* pkt = new SrsOnStatusCallPacket();
1191 1191
1192 - pkt->data->set(StatusLevel, new SrsAmf0String(StatusLevelStatus));  
1193 - pkt->data->set(StatusCode, new SrsAmf0String(StatusCodePublishStart));  
1194 - pkt->data->set(StatusDescription, new SrsAmf0String("Started publishing stream."));  
1195 - pkt->data->set(StatusClientId, new SrsAmf0String(RTMP_SIG_CLIENT_ID)); 1192 + pkt->data->set(StatusLevel, SrsAmf0Any::str(StatusLevelStatus));
  1193 + pkt->data->set(StatusCode, SrsAmf0Any::str(StatusCodePublishStart));
  1194 + pkt->data->set(StatusDescription, SrsAmf0Any::str("Started publishing stream."));
  1195 + pkt->data->set(StatusClientId, SrsAmf0Any::str(RTMP_SIG_CLIENT_ID));
1196 1196
1197 msg->set_packet(pkt, stream_id); 1197 msg->set_packet(pkt, stream_id);
1198 1198
@@ -52,7 +52,7 @@ VOID TEST(AMF0Test, Size) @@ -52,7 +52,7 @@ VOID TEST(AMF0Test, Size)
52 SrsAmf0Object o; 52 SrsAmf0Object o;
53 53
54 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 54 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
55 - o.set("name", new SrsAmf0String("winlin")); 55 + o.set("name", SrsAmf0Any::str("winlin"));
56 56
57 EXPECT_EQ(size, SrsAmf0Size::object(&o)); 57 EXPECT_EQ(size, SrsAmf0Size::object(&o));
58 } 58 }
@@ -106,7 +106,7 @@ VOID TEST(AMF0Test, Size) @@ -106,7 +106,7 @@ VOID TEST(AMF0Test, Size)
106 SrsAmf0EcmaArray o; 106 SrsAmf0EcmaArray o;
107 107
108 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 108 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
109 - o.set("name", new SrsAmf0String("winlin")); 109 + o.set("name", SrsAmf0Any::str("winlin"));
110 110
111 EXPECT_EQ(size, SrsAmf0Size::array(&o)); 111 EXPECT_EQ(size, SrsAmf0Size::array(&o));
112 } 112 }
@@ -153,10 +153,10 @@ VOID TEST(AMF0Test, Size) @@ -153,10 +153,10 @@ VOID TEST(AMF0Test, Size)
153 SrsAmf0Object o; 153 SrsAmf0Object o;
154 154
155 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 155 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
156 - o.set("name", new SrsAmf0String("winlin")); 156 + o.set("name", SrsAmf0Any::str("winlin"));
157 157
158 SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); 158 SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
159 - args->set("p0", new SrsAmf0String("function")); 159 + args->set("p0", SrsAmf0Any::str("function"));
160 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); 160 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
161 o.set("args", args); 161 o.set("args", args);
162 162
@@ -167,10 +167,10 @@ VOID TEST(AMF0Test, Size) @@ -167,10 +167,10 @@ VOID TEST(AMF0Test, Size)
167 SrsAmf0Object o; 167 SrsAmf0Object o;
168 168
169 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 169 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
170 - o.set("name", new SrsAmf0String("winlin")); 170 + o.set("name", SrsAmf0Any::str("winlin"));
171 171
172 SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); 172 SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
173 - args->set("p0", new SrsAmf0String("function")); 173 + args->set("p0", SrsAmf0Any::str("function"));
174 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); 174 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
175 o.set("args", args); 175 o.set("args", args);
176 176
@@ -188,10 +188,10 @@ VOID TEST(AMF0Test, Size) @@ -188,10 +188,10 @@ VOID TEST(AMF0Test, Size)
188 SrsAmf0EcmaArray o; 188 SrsAmf0EcmaArray o;
189 189
190 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 190 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
191 - o.set("name", new SrsAmf0String("winlin")); 191 + o.set("name", SrsAmf0Any::str("winlin"));
192 192
193 SrsAmf0Object* args = new SrsAmf0Object(); 193 SrsAmf0Object* args = new SrsAmf0Object();
194 - args->set("p0", new SrsAmf0String("function")); 194 + args->set("p0", SrsAmf0Any::str("function"));
195 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); 195 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
196 o.set("args", args); 196 o.set("args", args);
197 197
@@ -202,10 +202,10 @@ VOID TEST(AMF0Test, Size) @@ -202,10 +202,10 @@ VOID TEST(AMF0Test, Size)
202 SrsAmf0EcmaArray o; 202 SrsAmf0EcmaArray o;
203 203
204 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 204 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
205 - o.set("name", new SrsAmf0String("winlin")); 205 + o.set("name", SrsAmf0Any::str("winlin"));
206 206
207 SrsAmf0Object* args = new SrsAmf0Object(); 207 SrsAmf0Object* args = new SrsAmf0Object();
208 - args->set("p0", new SrsAmf0String("function")); 208 + args->set("p0", SrsAmf0Any::str("function"));
209 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); 209 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
210 o.set("args", args); 210 o.set("args", args);
211 211
@@ -223,10 +223,10 @@ VOID TEST(AMF0Test, Size) @@ -223,10 +223,10 @@ VOID TEST(AMF0Test, Size)
223 SrsAmf0Object o; 223 SrsAmf0Object o;
224 224
225 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 225 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
226 - o.set("name", new SrsAmf0String("winlin")); 226 + o.set("name", SrsAmf0Any::str("winlin"));
227 227
228 SrsAmf0Object* args = new SrsAmf0Object(); 228 SrsAmf0Object* args = new SrsAmf0Object();
229 - args->set("p0", new SrsAmf0String("function")); 229 + args->set("p0", SrsAmf0Any::str("function"));
230 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args); 230 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::object(args);
231 o.set("args", args); 231 o.set("args", args);
232 232
@@ -244,10 +244,10 @@ VOID TEST(AMF0Test, Size) @@ -244,10 +244,10 @@ VOID TEST(AMF0Test, Size)
244 SrsAmf0EcmaArray o; 244 SrsAmf0EcmaArray o;
245 245
246 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin"); 246 size += SrsAmf0Size::utf8("name")+SrsAmf0Size::str("winlin");
247 - o.set("name", new SrsAmf0String("winlin")); 247 + o.set("name", SrsAmf0Any::str("winlin"));
248 248
249 SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray(); 249 SrsAmf0EcmaArray* args = new SrsAmf0EcmaArray();
250 - args->set("p0", new SrsAmf0String("function")); 250 + args->set("p0", SrsAmf0Any::str("function"));
251 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args); 251 size += SrsAmf0Size::utf8("args")+SrsAmf0Size::array(args);
252 o.set("args", args); 252 o.set("args", args);
253 253