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.
*/
#ifndef SRS_KERNEL_AAC_HPP
#define SRS_KERNEL_AAC_HPP
#ifndef SRS_KERNEL_BALANCE_HPP
#define 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;
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;
@ -329,10 +329,10 @@ srs_hijack_io_t SimpleSocketStream::hijack_io()
return io;
}
int SimpleSocketStream::create_socket()
int SimpleSocketStream::create_socket(srs_rtmp_t owner)
{
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)

View file

@ -51,7 +51,7 @@ public:
virtual ~SimpleSocketStream();
public:
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);
// ISrsBufferReader
public:

View file

@ -539,7 +539,7 @@ srs_rtmp_t srs_rtmp_create(const char* url)
srs_freep(context->skt);
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
srs_freep(context);
return NULL;
@ -561,7 +561,7 @@ srs_rtmp_t srs_rtmp_create2(const char* url)
srs_freep(context->skt);
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
srs_freep(context);
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);
#endif
// 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).
#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);
/**
* create socket, not connect yet.
* @param owner, the rtmp context which create this socket.
* @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.
* @return 0, success; otherswise, failed.

View file

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