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

refine core, move specified functions to kernel utility.

This commit is contained in:
winlin 2014-06-08 13:03:03 +08:00
parent 7c7920698d
commit 31b568b013
30 changed files with 224 additions and 165 deletions

View file

@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <srs_core.hpp>
#include <string>
#ifdef SRS_AUTO_DVR
class SrsSource;
@ -238,4 +240,4 @@ public:
#endif
#endif
#endif

View file

@ -43,6 +43,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_core_autofree.hpp>
#include <srs_app_socket.hpp>
#include <srs_app_kbps.hpp>
#include <srs_kernel_utility.hpp>
// when error, edge ingester sleep for a while and retry.
#define SRS_EDGE_INGESTER_SLEEP_US (int64_t)(1*1000*1000LL)

View file

@ -33,6 +33,7 @@ using namespace std;
#include <srs_app_pithy_print.hpp>
#include <srs_protocol_rtmp_stack.hpp>
#include <srs_app_ffmpeg.hpp>
#include <srs_kernel_utility.hpp>
#ifdef SRS_AUTO_TRANSCODE

View file

@ -40,6 +40,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_protocol_utility.hpp>
#include <srs_protocol_rtmp.hpp>
#include <srs_app_kbps.hpp>
#include <srs_kernel_utility.hpp>
// when error, forwarder sleep for a while and retry.
#define SRS_FORWARDER_SLEEP_US (int64_t)(3*1000*1000LL)

View file

@ -43,6 +43,7 @@ using namespace std;
#include <srs_core_autofree.hpp>
#include <srs_protocol_rtmp.hpp>
#include <srs_app_pithy_print.hpp>
#include <srs_kernel_utility.hpp>
// max PES packets size to flush the video.
#define SRS_AUTO_HLS_AUDIO_CACHE_SIZE 1024 * 1024

View file

@ -35,6 +35,7 @@ using namespace std;
#include <srs_app_http_api.hpp>
#include <srs_app_http_conn.hpp>
#include <srs_app_json.hpp>
#include <srs_kernel_utility.hpp>
#define SRS_DEFAULT_HTTP_PORT 80

View file

@ -33,6 +33,7 @@ using namespace std;
#include <srs_kernel_error.hpp>
#include <srs_kernel_log.hpp>
#include <srs_app_socket.hpp>
#include <srs_kernel_utility.hpp>
SrsHttpClient::SrsHttpClient()
{

View file

@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <srs_core.hpp>
#include <string>
#ifdef SRS_AUTO_HTTP_PARSER
#include <srs_app_st.hpp>

View file

@ -41,6 +41,7 @@ using namespace std;
#include <srs_app_json.hpp>
#include <srs_app_config.hpp>
#include <srs_kernel_flv.hpp>
#include <srs_kernel_utility.hpp>
#define SRS_HTTP_DEFAULT_PAGE "index.html"

View file

@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <srs_core.hpp>
#include <string>
#ifdef SRS_AUTO_HTTP_CALLBACK
#include <http_parser.h>
@ -117,4 +119,4 @@ public:
#endif
#endif
#endif

View file

@ -32,6 +32,7 @@ using namespace std;
#include <srs_kernel_log.hpp>
#include <srs_app_ffmpeg.hpp>
#include <srs_app_pithy_print.hpp>
#include <srs_kernel_utility.hpp>
// when error, ingester sleep for a while and retry.
// ingest never sleep a long time, for we must start the stream ASAP.

View file

@ -33,6 +33,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_config.hpp>
#include <srs_kernel_error.hpp>
#include <srs_app_utility.hpp>
#include <srs_kernel_utility.hpp>
SrsThreadContext::SrsThreadContext()
{

View file

@ -46,6 +46,9 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_utility.hpp>
#include <srs_app_heartbeat.hpp>
// signal defines.
#define SIGNAL_RELOAD SIGHUP
#define SERVER_LISTEN_BACKLOG 512
// system interval

View file

@ -40,6 +40,7 @@ using namespace std;
#include <srs_app_dvr.hpp>
#include <srs_kernel_stream.hpp>
#include <srs_app_edge.hpp>
#include <srs_kernel_utility.hpp>
#define CONST_MAX_JITTER_MS 500
#define DEFAULT_FRAME_TIME_MS 40

View file

@ -26,6 +26,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_error.hpp>
#include <srs_kernel_log.hpp>
// const time for st to convert to us
#define SRS_TIME_MILLISECONDS 1000
#define SRS_TIME_SECONDS 1000000
ISrsThreadHandler::ISrsThreadHandler()
{
}
@ -180,4 +184,4 @@ void* SrsThread::thread_fun(void* arg)
st_thread_exit(NULL);
return NULL;
}
}

View file

@ -23,128 +23,3 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_core.hpp>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
using namespace std;
string srs_string_replace(string str, string old_str, string new_str)
{
std::string ret = str;
if (old_str == new_str) {
return ret;
}
size_t pos = 0;
while ((pos = ret.find(old_str, pos)) != std::string::npos) {
ret = ret.replace(pos, old_str.length(), new_str);
}
return ret;
}
string srs_string_trim_end(string str, string trim_chars)
{
std::string ret = str;
for (int i = 0; i < (int)trim_chars.length(); i++) {
char ch = trim_chars.at(i);
while (!ret.empty() && ret.at(ret.length() - 1) == ch) {
ret.erase(ret.end() - 1);
// ok, matched, should reset the search
i = 0;
}
}
return ret;
}
string srs_string_trim_start(string str, string trim_chars)
{
std::string ret = str;
for (int i = 0; i < (int)trim_chars.length(); i++) {
char ch = trim_chars.at(i);
while (!ret.empty() && ret.at(0) == ch) {
ret.erase(ret.begin());
// ok, matched, should reset the search
i = 0;
}
}
return ret;
}
string srs_string_remove(string str, string remove_chars)
{
std::string ret = str;
for (int i = 0; i < (int)remove_chars.length(); i++) {
char ch = remove_chars.at(i);
for (std::string::iterator it = ret.begin(); it != ret.end();) {
if (ch == *it) {
it = ret.erase(it);
// ok, matched, should reset the search
i = 0;
} else {
++it;
}
}
}
return ret;
}
bool srs_string_ends_with(string str, string flag)
{
return str.rfind(flag) == str.length() - flag.length();
}
string srs_dns_resolve(string host)
{
if (inet_addr(host.c_str()) != INADDR_NONE) {
return host;
}
hostent* answer = gethostbyname(host.c_str());
if (answer == NULL) {
return "";
}
char ipv4[16];
memset(ipv4, 0, sizeof(ipv4));
for (int i = 0; i < answer->h_length; i++) {
inet_ntop(AF_INET, answer->h_addr_list[i], ipv4, sizeof(ipv4));
break;
}
return ipv4;
}
bool srs_is_little_endian()
{
// convert to network(big-endian) order, if not equals,
// the system is little-endian, so need to convert the int64
static int little_endian_check = -1;
if(little_endian_check == -1) {
union {
int32_t i;
int8_t c;
} little_check_union;
little_check_union.i = 0x01;
little_endian_check = little_check_union.c;
}
return (little_endian_check == 1);
}

View file

@ -85,30 +85,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// it's recomments to free each elem explicit.
// so we remove the srs_freepa utility.
// compare
#define srs_min(a, b) (((a) < (b))? (a) : (b))
#define srs_max(a, b) (((a) < (b))? (b) : (a))
// signal defines.
#define SIGNAL_RELOAD SIGHUP
#include <string>
// replace old_str to new_str of str
extern std::string srs_string_replace(std::string str, std::string old_str, std::string new_str);
// trim char in trim_chars of str
extern std::string srs_string_trim_end(std::string str, std::string trim_chars);
// trim char in trim_chars of str
extern std::string srs_string_trim_start(std::string str, std::string trim_chars);
// remove char in remove_chars of str
extern std::string srs_string_remove(std::string str, std::string remove_chars);
// whether string end with
extern bool srs_string_ends_with(std::string str, std::string flag);
// dns resolve utility, return the resolved ip address.
extern std::string srs_dns_resolve(std::string host);
// whether system is little endian
extern bool srs_is_little_endian();
/**
* disable copy constructor of class
*/
@ -120,8 +96,4 @@ extern bool srs_is_little_endian();
className(const className&); \
className& operator= (const className&)
// const time for st to convert to us
#define SRS_TIME_MILLISECONDS 1000
#define SRS_TIME_SECONDS 1000000
#endif

View file

@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <srs_core.hpp>
#include <string>
class SrsStream;
/**
@ -173,4 +175,4 @@ public:
virtual int read_previous_tag_size(char ts[4]);
};
#endif
#endif

View file

@ -27,6 +27,7 @@ using namespace std;
#include <srs_kernel_log.hpp>
#include <srs_kernel_error.hpp>
#include <srs_kernel_utility.hpp>
SrsStream::SrsStream()
{

View file

@ -23,8 +23,13 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_utility.hpp>
#include <sys/time.h>
#include <unistd.h>
#include <string.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/time.h>
using namespace std;
#include <srs_kernel_log.hpp>
@ -58,3 +63,122 @@ void srs_update_system_time_ms()
_srs_system_time_us_cache = now_us;
}
string srs_dns_resolve(string host)
{
if (inet_addr(host.c_str()) != INADDR_NONE) {
return host;
}
hostent* answer = gethostbyname(host.c_str());
if (answer == NULL) {
return "";
}
char ipv4[16];
memset(ipv4, 0, sizeof(ipv4));
for (int i = 0; i < answer->h_length; i++) {
inet_ntop(AF_INET, answer->h_addr_list[i], ipv4, sizeof(ipv4));
break;
}
return ipv4;
}
bool srs_is_little_endian()
{
// convert to network(big-endian) order, if not equals,
// the system is little-endian, so need to convert the int64
static int little_endian_check = -1;
if(little_endian_check == -1) {
union {
int32_t i;
int8_t c;
} little_check_union;
little_check_union.i = 0x01;
little_endian_check = little_check_union.c;
}
return (little_endian_check == 1);
}
string srs_string_replace(string str, string old_str, string new_str)
{
std::string ret = str;
if (old_str == new_str) {
return ret;
}
size_t pos = 0;
while ((pos = ret.find(old_str, pos)) != std::string::npos) {
ret = ret.replace(pos, old_str.length(), new_str);
}
return ret;
}
string srs_string_trim_end(string str, string trim_chars)
{
std::string ret = str;
for (int i = 0; i < (int)trim_chars.length(); i++) {
char ch = trim_chars.at(i);
while (!ret.empty() && ret.at(ret.length() - 1) == ch) {
ret.erase(ret.end() - 1);
// ok, matched, should reset the search
i = 0;
}
}
return ret;
}
string srs_string_trim_start(string str, string trim_chars)
{
std::string ret = str;
for (int i = 0; i < (int)trim_chars.length(); i++) {
char ch = trim_chars.at(i);
while (!ret.empty() && ret.at(0) == ch) {
ret.erase(ret.begin());
// ok, matched, should reset the search
i = 0;
}
}
return ret;
}
string srs_string_remove(string str, string remove_chars)
{
std::string ret = str;
for (int i = 0; i < (int)remove_chars.length(); i++) {
char ch = remove_chars.at(i);
for (std::string::iterator it = ret.begin(); it != ret.end();) {
if (ch == *it) {
it = ret.erase(it);
// ok, matched, should reset the search
i = 0;
} else {
++it;
}
}
}
return ret;
}
bool srs_string_ends_with(string str, string flag)
{
return str.rfind(flag) == str.length() - flag.length();
}

View file

@ -30,9 +30,32 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_core.hpp>
#include <string>
// compare
#define srs_min(a, b) (((a) < (b))? (a) : (b))
#define srs_max(a, b) (((a) < (b))? (b) : (a))
// get current system time in ms, use cache to avoid performance problem
extern int64_t srs_get_system_time_ms();
// the deamon st-thread will update it.
extern void srs_update_system_time_ms();
// dns resolve utility, return the resolved ip address.
extern std::string srs_dns_resolve(std::string host);
// whether system is little endian
extern bool srs_is_little_endian();
// replace old_str to new_str of str
extern std::string srs_string_replace(std::string str, std::string old_str, std::string new_str);
// trim char in trim_chars of str
extern std::string srs_string_trim_end(std::string str, std::string trim_chars);
// trim char in trim_chars of str
extern std::string srs_string_trim_start(std::string str, std::string trim_chars);
// remove char in remove_chars of str
extern std::string srs_string_remove(std::string str, std::string remove_chars);
// whether string end with
extern bool srs_string_ends_with(std::string str, std::string flag);
#endif

View file

@ -38,6 +38,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_config.hpp>
#include <srs_app_log.hpp>
#include <srs_app_server.hpp>
#include <srs_kernel_utility.hpp>
// kernel module.
ISrsLog* _srs_log = new SrsFastLog();

View file

@ -39,6 +39,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_app_config.hpp>
#include <srs_app_log.hpp>
#include <srs_app_utility.hpp>
#include <srs_kernel_utility.hpp>
// pre-declare
int run();

View file

@ -32,6 +32,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_protocol_rtmp_stack.hpp>
#include <srs_protocol_utility.hpp>
#include <srs_kernel_stream.hpp>
#include <srs_kernel_utility.hpp>
using namespace std;

View file

@ -30,6 +30,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_kernel_buffer.hpp>
#include <srs_kernel_stream.hpp>
#include <srs_core_autofree.hpp>
#include <srs_kernel_utility.hpp>
using namespace std;

View file

@ -26,6 +26,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <stdlib.h>
#include <srs_kernel_log.hpp>
#include <srs_kernel_utility.hpp>
void srs_vhost_resolve(std::string& vhost, std::string& app)
{

View file

@ -29,6 +29,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include <srs_core.hpp>
#include <string>
#define RTMP_DEFAULT_PORT "1935"
// the default chunk size for system.

View file

@ -23,6 +23,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_utest_buffer.hpp>
#include <srs_kernel_error.hpp>
#include <srs_kernel_utility.hpp>
MockBufferReader::MockBufferReader(const char* data)
{