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:
parent
e8c48ac8f8
commit
7acc3aca16
6 changed files with 14 additions and 13 deletions
|
@ -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>
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue