Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
胡斌
/
srs
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
winlin
2014-12-02 13:38:30 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
9387d09f5ff7ea96efc7a6cd8fe7e740cbd12f55
9387d09f
1 parent
15ae4745
refine the macros for windows of srs-librtmp
隐藏空白字符变更
内嵌
并排对比
正在显示
3 个修改的文件
包含
78 行增加
和
60 行删除
trunk/src/libs/srs_lib_simple_socket.cpp
trunk/src/libs/srs_lib_simple_socket.hpp
trunk/src/libs/srs_librtmp.hpp
trunk/src/libs/srs_lib_simple_socket.cpp
查看文件 @
9387d09
...
...
@@ -27,6 +27,34 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
#ifndef _WIN32
#define SOCKET_ETIME ETIME
#define SOCKET_ECONNRESET ECONNRESET
#define SOCKET_ERRNO() errno
#define SOCKET_RESET(fd) fd = -1; (void)0
#define SOCKET_CLOSE(fd) \
if (fd > 0) {\
::close(fd); \
fd = -1; \
} \
(void)0
#define SOCKET_VALID(x) (x > 0)
#define SOCKET_SETUP() (void)0
#define SOCKET_CLEANUP() (void)0
#else
#define SOCKET_ETIME WSAETIMEDOUT
#define SOCKET_ECONNRESET WSAECONNRESET
#define SOCKET_ERRNO() WSAGetLastError()
#define SOCKET_RESET(x) x=INVALID_SOCKET
#define SOCKET_CLOSE(x) if(x!=INVALID_SOCKET){::closesocket(x);x=INVALID_SOCKET;}
#define SOCKET_VALID(x) (x!=INVALID_SOCKET)
#define SOCKET_BUFF(x) ((char*)x)
#define SOCKET_SETUP() socket_setup()
#define SOCKET_CLEANUP() socket_cleanup()
#endif
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
#ifndef _WIN32
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
...
...
trunk/src/libs/srs_lib_simple_socket.hpp
查看文件 @
9387d09
...
...
@@ -33,6 +33,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_protocol_io.hpp>
#include <srs_librtmp.hpp>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
#ifndef _WIN32
#define SOCKET int
#endif
/**
* simple socket stream,
* use tcp socket, sync block mode, for client like srs-librtmp.
...
...
trunk/src/libs/srs_librtmp.hpp
查看文件 @
9387d09
...
...
@@ -28,27 +28,11 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <srs_librtmp.h>
*/
#include <sys/types.h>
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
#ifndef _WIN32
#define SOCKET_ETIME ETIME
#define SOCKET_ECONNRESET ECONNRESET
#define SOCKET int
#define SOCKET_ERRNO() errno
#define SOCKET_RESET(fd) fd = -1; (void)0
#define SOCKET_CLOSE(fd) \
if (fd > 0) {\
::close(fd); \
fd = -1; \
} \
(void)0
#define SOCKET_VALID(x) (x > 0)
#define SOCKET_SETUP() (void)0
#define SOCKET_CLEANUP() (void)0
#else
#define _CRT_SECURE_NO_WARNINGS
#ifdef _WIN32
// include windows first.
#include <windows.h>
// the type used by this header for windows.
typedef
unsigned
long
long
u_int64_t
;
typedef
long
long
int64_t
;
typedef
unsigned
int
u_int32_t
;
...
...
@@ -62,48 +46,10 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
void
*
iov_base
;
/* Starting address */
size_t
iov_len
;
/* Number of bytes to transfer */
};
#include <time.h>
#include <windows.h>
int
gettimeofday
(
struct
timeval
*
tv
,
struct
timezone
*
tz
);
#define PRId64 "lld"
#define SOCKET_ETIME WSAETIMEDOUT
#define SOCKET_ECONNRESET WSAECONNRESET
#define SOCKET_ERRNO() WSAGetLastError()
#define SOCKET_RESET(x) x=INVALID_SOCKET
#define SOCKET_CLOSE(x) if(x!=INVALID_SOCKET){::closesocket(x);x=INVALID_SOCKET;}
#define SOCKET_VALID(x) (x!=INVALID_SOCKET)
#define SOCKET_BUFF(x) ((char*)x)
#define SOCKET_SETUP() socket_setup()
#define SOCKET_CLEANUP() socket_cleanup()
typedef
int
socklen_t
;
const
char
*
inet_ntop
(
int
af
,
const
void
*
src
,
char
*
dst
,
socklen_t
size
);
typedef
int
mode_t
;
#define S_IRUSR 0
#define S_IWUSR 0
#define S_IRGRP 0
#define S_IWGRP 0
#define S_IROTH 0
#include <io.h>
#include <fcntl.h>
#define open _open
#define close _close
#define lseek _lseek
#define write _write
#define read _read
typedef
int
pid_t
;
pid_t
getpid
(
void
);
#define snprintf _snprintf
ssize_t
writev
(
int
fd
,
const
struct
iovec
*
iov
,
int
iovcnt
);
typedef
int64_t
useconds_t
;
int
usleep
(
useconds_t
usec
);
int
socket_setup
();
int
socket_cleanup
();
#endif
#include <sys/types.h>
/**
* srs-librtmp is a librtmp like library,
* used to play/publish rtmp stream from/to rtmp server.
...
...
@@ -1028,6 +974,45 @@ typedef void* srs_hijack_io_t;
extern
int
srs_hijack_io_write
(
srs_hijack_io_t
ctx
,
void
*
buf
,
size_t
size
,
ssize_t
*
nwrite
);
#endif
/*************************************************************
**************************************************************
* Windows SRS-LIBRTMP solution
**************************************************************
*************************************************************/
// for srs-librtmp, @see https://github.com/winlinvip/simple-rtmp-server/issues/213
#ifdef _WIN32
#define _CRT_SECURE_NO_WARNINGS
#include <time.h>
int
gettimeofday
(
struct
timeval
*
tv
,
struct
timezone
*
tz
);
#define PRId64 "lld"
typedef
int
socklen_t
;
const
char
*
inet_ntop
(
int
af
,
const
void
*
src
,
char
*
dst
,
socklen_t
size
);
typedef
int
mode_t
;
#define S_IRUSR 0
#define S_IWUSR 0
#define S_IRGRP 0
#define S_IWGRP 0
#define S_IROTH 0
#include <io.h>
#include <fcntl.h>
#define open _open
#define close _close
#define lseek _lseek
#define write _write
#define read _read
typedef
int
pid_t
;
pid_t
getpid
(
void
);
#define snprintf _snprintf
ssize_t
writev
(
int
fd
,
const
struct
iovec
*
iov
,
int
iovcnt
);
typedef
int64_t
useconds_t
;
int
usleep
(
useconds_t
usec
);
int
socket_setup
();
int
socket_cleanup
();
#endif
#ifdef __cplusplus
}
#endif
...
...
请
注册
或
登录
后发表评论