1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

support gmd. change work_dir. hourglass. add utilies.

This commit is contained in:
winlin 2016-01-08 13:58:19 +08:00
parent c9b977d337
commit f1e7e9d933
33 changed files with 702 additions and 73 deletions

View file

@ -149,11 +149,28 @@ string srs_generate_tc_url(string ip, string vhost, string app, int port, string
tcUrl += "/";
tcUrl += app;
tcUrl += param;
if (!param.empty()) {
tcUrl += "?" + param;
}
return tcUrl;
}
string srs_generate_normal_tc_url(string ip, string vhost, string app, int port)
{
return "rtmp://" + vhost + ":" + srs_int2str(port) + "/" + app;
}
string srs_generate_via_tc_url(string ip, string vhost, string app, int port)
{
return "rtmp://" + ip + ":" + srs_int2str(port) + "/" + vhost + "/" + app;
}
string srs_generate_vis_tc_url(string ip, string vhost, string app, int port)
{
return "rtmp://" + ip + ":" + srs_int2str(port) + "/" + app;
}
/**
* compare the memory in bytes.
*/
@ -179,18 +196,19 @@ bool srs_bytes_equals(void* pa, void* pb, int size)
return true;
}
int srs_do_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, int stream_id, SrsSharedPtrMessage** ppmsg)
template<typename T>
int srs_do_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, int stream_id, T** ppmsg)
{
int ret = ERROR_SUCCESS;
*ppmsg = NULL;
SrsSharedPtrMessage* msg = NULL;
T* msg = NULL;
if (type == SrsCodecFlvTagAudio) {
SrsMessageHeader header;
header.initialize_audio(size, timestamp, stream_id);
msg = new SrsSharedPtrMessage();
msg = new T();
if ((ret = msg->create(&header, data, size)) != ERROR_SUCCESS) {
srs_freep(msg);
return ret;
@ -199,7 +217,7 @@ int srs_do_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size,
SrsMessageHeader header;
header.initialize_video(size, timestamp, stream_id);
msg = new SrsSharedPtrMessage();
msg = new T();
if ((ret = msg->create(&header, data, size)) != ERROR_SUCCESS) {
srs_freep(msg);
return ret;
@ -208,7 +226,7 @@ int srs_do_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size,
SrsMessageHeader header;
header.initialize_amf0_script(size, stream_id);
msg = new SrsSharedPtrMessage();
msg = new T();
if ((ret = msg->create(&header, data, size)) != ERROR_SUCCESS) {
srs_freep(msg);
return ret;
@ -237,6 +255,19 @@ int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, in
return ret;
}
int srs_rtmp_create_msg(char type, u_int32_t timestamp, char* data, int size, int stream_id, SrsCommonMessage** ppmsg)
{
int ret = ERROR_SUCCESS;
// only when failed, we must free the data.
if ((ret = srs_do_rtmp_create_msg(type, timestamp, data, size, stream_id, ppmsg)) != ERROR_SUCCESS) {
srs_freepa(data);
return ret;
}
return ret;
}
string srs_generate_stream_url(string vhost, string app, string stream)
{
std::string url = "";
@ -334,3 +365,20 @@ string srs_join_vector_string(vector<string>& vs, string separator)
return str;
}
bool srs_is_ipv4(string domain)
{
for (int i = 0; i < (int)domain.length(); i++) {
char ch = domain.at(i);
if (ch == '.') {
continue;
}
if (ch >= '0' && ch <= '9') {
continue;
}
return false;
}
return true;
}