refine librtmp api, add prefix utils for utilities.

pull/133/head
winlin 10 years ago
parent b3bb2cdf2b
commit 10bc5399ec

@ -35,7 +35,7 @@ int main(int argc, char** argv)
srs_rtmp_t rtmp; srs_rtmp_t rtmp;
// time // time
int64_t time_startup = srs_get_time_ms(); int64_t time_startup = srs_utils_get_time_ms();
int64_t time_dns_resolve = 0; int64_t time_dns_resolve = 0;
int64_t time_socket_connect = 0; int64_t time_socket_connect = 0;
int64_t time_play_stream = 0; int64_t time_play_stream = 0;
@ -95,14 +95,14 @@ int main(int argc, char** argv)
goto rtmp_destroy; goto rtmp_destroy;
} }
srs_human_trace("dns resolve success"); srs_human_trace("dns resolve success");
time_dns_resolve = srs_get_time_ms(); time_dns_resolve = srs_utils_get_time_ms();
if ((ret = __srs_connect_server(rtmp)) != 0) { if ((ret = __srs_connect_server(rtmp)) != 0) {
srs_human_trace("socket connect failed. ret=%d", ret); srs_human_trace("socket connect failed. ret=%d", ret);
goto rtmp_destroy; goto rtmp_destroy;
} }
srs_human_trace("socket connect success"); srs_human_trace("socket connect success");
time_socket_connect = srs_get_time_ms(); time_socket_connect = srs_utils_get_time_ms();
if ((ret = __srs_do_simple_handshake(rtmp)) != 0) { if ((ret = __srs_do_simple_handshake(rtmp)) != 0) {
srs_human_trace("do simple handshake failed. ret=%d", ret); srs_human_trace("do simple handshake failed. ret=%d", ret);
@ -121,7 +121,7 @@ int main(int argc, char** argv)
goto rtmp_destroy; goto rtmp_destroy;
} }
srs_human_trace("play stream success"); srs_human_trace("play stream success");
time_play_stream = srs_get_time_ms(); time_play_stream = srs_utils_get_time_ms();
for (;;) { for (;;) {
if ((ret = srs_read_packet(rtmp, &type, &timestamp, &data, &size)) != 0) { if ((ret = srs_read_packet(rtmp, &type, &timestamp, &data, &size)) != 0) {
@ -133,7 +133,7 @@ int main(int argc, char** argv)
if (SRS_RTMP_TYPE_VIDEO == type || SRS_RTMP_TYPE_AUDIO == type) { if (SRS_RTMP_TYPE_VIDEO == type || SRS_RTMP_TYPE_AUDIO == type) {
if (time_first_packet <= 0) { if (time_first_packet <= 0) {
time_first_packet = srs_get_time_ms(); time_first_packet = srs_utils_get_time_ms();
} }
if (basetime <= 0) { if (basetime <= 0) {
basetime = timestamp; basetime = timestamp;
@ -142,7 +142,7 @@ int main(int argc, char** argv)
free(data); free(data);
if (srs_get_time_ms() - time_startup > timeout * 1000) { if (srs_utils_get_time_ms() - time_startup > timeout * 1000) {
srs_human_trace("timeout, terminate."); srs_human_trace("timeout, terminate.");
goto rtmp_destroy; goto rtmp_destroy;
} }
@ -154,11 +154,11 @@ int main(int argc, char** argv)
} }
rtmp_destroy: rtmp_destroy:
bytes_nsend = srs_get_nsend_bytes(rtmp); bytes_nsend = srs_utils_get_send_bytes(rtmp);
bytes_nrecv = srs_get_nrecv_bytes(rtmp); bytes_nrecv = srs_utils_get_recv_bytes(rtmp);
srs_rtmp_destroy(rtmp); srs_rtmp_destroy(rtmp);
time_cleanup = srs_get_time_ms(); time_cleanup = srs_utils_get_time_ms();
time_duration = (int)(time_cleanup - time_startup); time_duration = (int)(time_cleanup - time_startup);
// print result to stderr. // print result to stderr.

@ -48,7 +48,7 @@ int main(int argc, char** argv)
int ret = 0; int ret = 0;
// main function // main function
tools_main_entrance_startup_time = srs_get_time_ms(); tools_main_entrance_startup_time = srs_utils_get_time_ms();
// user option parse index. // user option parse index.
int opt = 0; int opt = 0;
@ -215,7 +215,7 @@ int connect_oc(srs_rtmp_t ortmp)
int64_t re_create() int64_t re_create()
{ {
// if not very precise, we can directly use this as re. // if not very precise, we can directly use this as re.
int64_t re = srs_get_time_ms(); int64_t re = srs_utils_get_time_ms();
// use the starttime to get the deviation // use the starttime to get the deviation
int64_t deviation = re - tools_main_entrance_startup_time; int64_t deviation = re - tools_main_entrance_startup_time;
@ -236,7 +236,7 @@ int64_t re_create()
void re_update(int64_t re, int32_t starttime, u_int32_t time) void re_update(int64_t re, int32_t starttime, u_int32_t time)
{ {
// send by pulse algorithm. // send by pulse algorithm.
int64_t now = srs_get_time_ms(); int64_t now = srs_utils_get_time_ms();
int64_t diff = time - starttime - (now -re); int64_t diff = time - starttime - (now -re);
if (diff > RE_PULSE_MS) { if (diff > RE_PULSE_MS) {
usleep(diff * 1000); usleep(diff * 1000);
@ -246,7 +246,7 @@ void re_cleanup(int64_t re, int32_t starttime, u_int32_t time)
{ {
// for the last pulse, always sleep. // for the last pulse, always sleep.
// for the virtual live encoder long time publishing. // for the virtual live encoder long time publishing.
int64_t now = srs_get_time_ms(); int64_t now = srs_utils_get_time_ms();
int64_t diff = time - starttime - (now -re); int64_t diff = time - starttime - (now -re);
if (diff > 0) { if (diff > 0) {
srs_human_trace("re_cleanup, diff=%d, start=%d, last=%d ms", srs_human_trace("re_cleanup, diff=%d, start=%d, last=%d ms",

@ -858,27 +858,27 @@ int srs_version_revision()
return VERSION_REVISION; return VERSION_REVISION;
} }
int64_t srs_get_time_ms() int64_t srs_utils_get_time_ms()
{ {
srs_update_system_time_ms(); srs_update_system_time_ms();
return srs_get_system_time_ms(); return srs_get_system_time_ms();
} }
int64_t srs_get_nsend_bytes(srs_rtmp_t rtmp) int64_t srs_utils_get_send_bytes(srs_rtmp_t rtmp)
{ {
srs_assert(rtmp != NULL); srs_assert(rtmp != NULL);
Context* context = (Context*)rtmp; Context* context = (Context*)rtmp;
return context->rtmp->get_send_bytes(); return context->rtmp->get_send_bytes();
} }
int64_t srs_get_nrecv_bytes(srs_rtmp_t rtmp) int64_t srs_utils_get_recv_bytes(srs_rtmp_t rtmp)
{ {
srs_assert(rtmp != NULL); srs_assert(rtmp != NULL);
Context* context = (Context*)rtmp; Context* context = (Context*)rtmp;
return context->rtmp->get_recv_bytes(); return context->rtmp->get_recv_bytes();
} }
int srs_parse_timestamp( int srs_utils_parse_timestamp(
u_int32_t time, char type, char* data, int size, u_int32_t time, char type, char* data, int size,
u_int32_t* ppts u_int32_t* ppts
) { ) {
@ -919,7 +919,7 @@ int srs_parse_timestamp(
return ret; return ret;
} }
char srs_get_codec_id(char* data, int size) char srs_utils_get_flv_video_codec_id(char* data, int size)
{ {
if (size < 1) { if (size < 1) {
return 0; return 0;
@ -931,7 +931,7 @@ char srs_get_codec_id(char* data, int size)
return codec_id; return codec_id;
} }
char srs_get_avc_packet_type(char* data, int size) char srs_utils_get_flv_video_avc_packet_type(char* data, int size)
{ {
if (size < 2) { if (size < 2) {
return -1; return -1;
@ -950,7 +950,7 @@ char srs_get_avc_packet_type(char* data, int size)
return avc_packet_type; return avc_packet_type;
} }
char srs_get_frame_type(char* data, int size) char srs_utils_get_flv_video_frame_type(char* data, int size)
{ {
if (size < 1) { if (size < 1) {
return -1; return -1;
@ -1526,16 +1526,16 @@ int srs_human_print_rtmp_packet(char type, u_int32_t timestamp, char* data, int
int ret = ERROR_SUCCESS; int ret = ERROR_SUCCESS;
u_int32_t pts; u_int32_t pts;
if (srs_parse_timestamp(timestamp, type, data, size, &pts) != 0) { if (srs_utils_parse_timestamp(timestamp, type, data, size, &pts) != 0) {
return ret; return ret;
} }
if (type == SRS_RTMP_TYPE_VIDEO) { if (type == SRS_RTMP_TYPE_VIDEO) {
srs_human_trace("Video packet type=%s, dts=%d, pts=%d, size=%d, %s(%s,%s)", srs_human_trace("Video packet type=%s, dts=%d, pts=%d, size=%d, %s(%s,%s)",
srs_human_flv_tag_type2string(type), timestamp, pts, size, srs_human_flv_tag_type2string(type), timestamp, pts, size,
srs_human_flv_video_codec_id2string(srs_get_codec_id(data, size)), srs_human_flv_video_codec_id2string(srs_utils_get_flv_video_codec_id(data, size)),
srs_human_flv_video_avc_packet_type2string(srs_get_avc_packet_type(data, size)), srs_human_flv_video_avc_packet_type2string(srs_utils_get_flv_video_avc_packet_type(data, size)),
srs_human_flv_video_frame_type2string(srs_get_frame_type(data, size)) srs_human_flv_video_frame_type2string(srs_utils_get_flv_video_frame_type(data, size))
); );
} else if (type == SRS_RTMP_TYPE_AUDIO) { } else if (type == SRS_RTMP_TYPE_AUDIO) {
srs_human_trace("Audio packet type=%s, dts=%d, pts=%d, size=%d", srs_human_trace("Audio packet type=%s, dts=%d, pts=%d, size=%d",

@ -253,6 +253,11 @@ extern int srs_write_packet(srs_rtmp_t rtmp,
char type, u_int32_t timestamp, char* data, int size char type, u_int32_t timestamp, char* data, int size
); );
/*************************************************************
**************************************************************
* version apis
**************************************************************
*************************************************************/
// get protocol stack version // get protocol stack version
extern int srs_version_major(); extern int srs_version_major();
extern int srs_version_minor(); extern int srs_version_minor();
@ -267,17 +272,17 @@ extern int srs_version_revision();
* get the current system time in ms. * get the current system time in ms.
* use gettimeofday() to get system time. * use gettimeofday() to get system time.
*/ */
extern int64_t srs_get_time_ms(); extern int64_t srs_utils_get_time_ms();
/** /**
* get the send bytes. * get the send bytes.
*/ */
extern int64_t srs_get_nsend_bytes(srs_rtmp_t rtmp); extern int64_t srs_utils_get_send_bytes(srs_rtmp_t rtmp);
/** /**
* get the recv bytes. * get the recv bytes.
*/ */
extern int64_t srs_get_nrecv_bytes(srs_rtmp_t rtmp); extern int64_t srs_utils_get_recv_bytes(srs_rtmp_t rtmp);
/** /**
* parse the dts and pts by time in header and data in tag, * parse the dts and pts by time in header and data in tag,
@ -294,7 +299,7 @@ extern int64_t srs_get_nrecv_bytes(srs_rtmp_t rtmp);
* @remark, the pts=dts for audio or data. * @remark, the pts=dts for audio or data.
* @remark, video only support h.264. * @remark, video only support h.264.
*/ */
extern int srs_parse_timestamp( extern int srs_utils_parse_timestamp(
u_int32_t time, char type, char* data, int size, u_int32_t time, char type, char* data, int size,
u_int32_t* ppts u_int32_t* ppts
); );
@ -310,7 +315,7 @@ extern int srs_parse_timestamp(
* 7 = AVC * 7 = AVC
* @return the code id. 0 for error. * @return the code id. 0 for error.
*/ */
extern char srs_get_codec_id(char* data, int size); extern char srs_utils_get_flv_video_codec_id(char* data, int size);
/** /**
* get the AVCPacketType of video tag. * get the AVCPacketType of video tag.
@ -321,7 +326,7 @@ extern char srs_get_codec_id(char* data, int size);
* not required or supported) * not required or supported)
* @return the avc packet type. -1(0xff) for error. * @return the avc packet type. -1(0xff) for error.
*/ */
extern char srs_get_avc_packet_type(char* data, int size); extern char srs_utils_get_flv_video_avc_packet_type(char* data, int size);
/** /**
* get the FrameType of video tag. * get the FrameType of video tag.
@ -333,7 +338,7 @@ extern char srs_get_avc_packet_type(char* data, int size);
* 5 = video info/command frame * 5 = video info/command frame
* @return the frame type. 0 for error. * @return the frame type. 0 for error.
*/ */
extern char srs_get_frame_type(char* data, int size); extern char srs_utils_get_flv_video_frame_type(char* data, int size);
/************************************************************* /*************************************************************
************************************************************** **************************************************************

Loading…
Cancel
Save