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:
parent
c9b977d337
commit
f1e7e9d933
33 changed files with 702 additions and 73 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -36,11 +36,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
#include <srs_kernel_consts.hpp>
|
||||
|
||||
class SrsMessageHeader;
|
||||
class SrsSharedPtrMessage;
|
||||
class SrsCommonMessage;
|
||||
class ISrsProtocolReaderWriter;
|
||||
|
||||
/**
|
||||
|
@ -62,6 +64,10 @@ extern void srs_discovery_tc_url(
|
|||
std::string& app, int& port, std::string& param
|
||||
);
|
||||
|
||||
// parse query string to map(k,v).
|
||||
// must format as key=value&...&keyN=valueN
|
||||
extern void srs_parse_query_string(std::string q, std::map<std::string, std::string>& query);
|
||||
|
||||
/**
|
||||
* generate ramdom data for handshake.
|
||||
*/
|
||||
|
@ -79,6 +85,24 @@ extern std::string srs_generate_tc_url(
|
|||
std::string param
|
||||
);
|
||||
|
||||
/**
|
||||
* srs_detect_tools generate the normal tcUrl
|
||||
*/
|
||||
extern std::string srs_generate_normal_tc_url(
|
||||
std::string ip, std::string vhost, std::string app, int port);
|
||||
|
||||
/**
|
||||
* srs_detect_tools generate the normal tcUrl
|
||||
*/
|
||||
extern std::string srs_generate_via_tc_url(
|
||||
std::string ip, std::string vhost, std::string app, int port);
|
||||
|
||||
/**
|
||||
* srs_detect_tools generate the vis/vis2 tcUrl
|
||||
*/
|
||||
extern std::string srs_generate_vis_tc_url(
|
||||
std::string ip, std::string vhost, std::string app, int port);
|
||||
|
||||
/**
|
||||
* compare the memory in bytes.
|
||||
* @return true if completely equal; otherwise, false.
|
||||
|
@ -94,6 +118,10 @@ extern int srs_rtmp_create_msg(
|
|||
char type, u_int32_t timestamp, char* data, int size, int stream_id,
|
||||
SrsSharedPtrMessage** ppmsg
|
||||
);
|
||||
extern int srs_rtmp_create_msg(
|
||||
char type, u_int32_t timestamp, char* data, int size, int stream_id,
|
||||
SrsCommonMessage** ppmsg
|
||||
);
|
||||
|
||||
// get the stream identify, vhost/app/stream.
|
||||
extern std::string srs_generate_stream_url(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue