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

refine hijack io for srslibrtmp

This commit is contained in:
winlin 2017-01-18 16:23:59 +08:00
parent e8c48ac8f8
commit 7acc3aca16
6 changed files with 14 additions and 13 deletions

View file

@ -21,8 +21,8 @@
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/ */
#ifndef SRS_KERNEL_AAC_HPP #ifndef SRS_KERNEL_BALANCE_HPP
#define SRS_KERNEL_AAC_HPP #define SRS_KERNEL_BALANCE_HPP
/* /*
#include <srs_kernel_balance.hpp> #include <srs_kernel_balance.hpp>

View file

@ -102,7 +102,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
SrsBlockSyncSocket* skt = (SrsBlockSyncSocket*)ctx; SrsBlockSyncSocket* skt = (SrsBlockSyncSocket*)ctx;
srs_freep(skt); srs_freep(skt);
} }
int srs_hijack_io_create_socket(srs_hijack_io_t ctx) int srs_hijack_io_create_socket(srs_hijack_io_t ctx, srs_rtmp_t owner)
{ {
SrsBlockSyncSocket* skt = (SrsBlockSyncSocket*)ctx; SrsBlockSyncSocket* skt = (SrsBlockSyncSocket*)ctx;
@ -329,10 +329,10 @@ srs_hijack_io_t SimpleSocketStream::hijack_io()
return io; return io;
} }
int SimpleSocketStream::create_socket() int SimpleSocketStream::create_socket(srs_rtmp_t owner)
{ {
srs_assert(io); srs_assert(io);
return srs_hijack_io_create_socket(io); return srs_hijack_io_create_socket(io, owner);
} }
int SimpleSocketStream::connect(const char* server_ip, int port) int SimpleSocketStream::connect(const char* server_ip, int port)

View file

@ -51,7 +51,7 @@ public:
virtual ~SimpleSocketStream(); virtual ~SimpleSocketStream();
public: public:
virtual srs_hijack_io_t hijack_io(); virtual srs_hijack_io_t hijack_io();
virtual int create_socket(); virtual int create_socket(srs_rtmp_t owner);
virtual int connect(const char* server, int port); virtual int connect(const char* server, int port);
// ISrsBufferReader // ISrsBufferReader
public: public:

View file

@ -539,7 +539,7 @@ srs_rtmp_t srs_rtmp_create(const char* url)
srs_freep(context->skt); srs_freep(context->skt);
context->skt = new SimpleSocketStream(); context->skt = new SimpleSocketStream();
if (context->skt->create_socket() != ERROR_SUCCESS) { if (context->skt->create_socket(context) != ERROR_SUCCESS) {
// free the context and return NULL // free the context and return NULL
srs_freep(context); srs_freep(context);
return NULL; return NULL;
@ -561,7 +561,7 @@ srs_rtmp_t srs_rtmp_create2(const char* url)
srs_freep(context->skt); srs_freep(context->skt);
context->skt = new SimpleSocketStream(); context->skt = new SimpleSocketStream();
if (context->skt->create_socket() != ERROR_SUCCESS) { if (context->skt->create_socket(context) != ERROR_SUCCESS) {
// free the context and return NULL // free the context and return NULL
srs_freep(context); srs_freep(context);
return NULL; return NULL;

View file

@ -992,7 +992,7 @@ typedef void* srs_hijack_io_t;
extern srs_hijack_io_t srs_hijack_io_get(srs_rtmp_t rtmp); extern srs_hijack_io_t srs_hijack_io_get(srs_rtmp_t rtmp);
#endif #endif
// define the following macro and functions in your module to hijack the io. // define the following macro and functions in your module to hijack the io.
// the example @see https://github.com/winlinvip/st-load // the example @see https://github.com/ossrs/srs-bench
// which use librtmp but use its own io(use st also). // which use librtmp but use its own io(use st also).
#ifdef SRS_HIJACK_IO #ifdef SRS_HIJACK_IO
/** /**
@ -1006,9 +1006,10 @@ typedef void* srs_hijack_io_t;
extern void srs_hijack_io_destroy(srs_hijack_io_t ctx); extern void srs_hijack_io_destroy(srs_hijack_io_t ctx);
/** /**
* create socket, not connect yet. * create socket, not connect yet.
* @param owner, the rtmp context which create this socket.
* @return 0, success; otherswise, failed. * @return 0, success; otherswise, failed.
*/ */
extern int srs_hijack_io_create_socket(srs_hijack_io_t ctx); extern int srs_hijack_io_create_socket(srs_hijack_io_t ctx, srs_rtmp_t owner);
/** /**
* connect socket at server_ip:port. * connect socket at server_ip:port.
* @return 0, success; otherswise, failed. * @return 0, success; otherswise, failed.

View file

@ -29,6 +29,9 @@
*/ */
#include <srs_core.hpp> #include <srs_core.hpp>
// default http listen port.
#define SRS_DEFAULT_HTTP_PORT 80
#if !defined(SRS_EXPORT_LIBRTMP) #if !defined(SRS_EXPORT_LIBRTMP)
#include <map> #include <map>
@ -68,9 +71,6 @@ class ISrsHttpResponseWriter;
// for ead all of http body, read each time. // for ead all of http body, read each time.
#define SRS_HTTP_READ_CACHE_BYTES 4096 #define SRS_HTTP_READ_CACHE_BYTES 4096
// default http listen port.
#define SRS_DEFAULT_HTTP_PORT 80
// for http parser macros // for http parser macros
#define SRS_CONSTS_HTTP_OPTIONS HTTP_OPTIONS #define SRS_CONSTS_HTTP_OPTIONS HTTP_OPTIONS
#define SRS_CONSTS_HTTP_GET HTTP_GET #define SRS_CONSTS_HTTP_GET HTTP_GET