@@ -44,6 +44,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
44
44
#include < srs_app_source.hpp>
45
45
#include < srs_app_utility.hpp>
46
46
#include < srs_app_heartbeat.hpp>
47
+ #include < srs_app_mpegts_udp.hpp>
47
48
48
49
// signal defines.
49
50
#define SIGNAL_RELOAD SIGHUP
@@ -226,14 +227,18 @@ int SrsListener::cycle()
226
227
return ret;
227
228
}
228
229
229
- SrsUdpListener::SrsUdpListener (SrsServer* server, SrsListenerType type) : SrsListener(server, type)
230
+ #ifdef SRS_AUTO_STREAM_CASTER
231
+ SrsUdpListener::SrsUdpListener (SrsServer* server, SrsListenerType type, SrsConfDirective* c) : SrsListener(server, type)
230
232
{
231
233
nb_buf = SRS_UDP_MAX_PACKET_SIZE;
232
234
buf = new char [nb_buf];
235
+ caster = new SrsMpegtsOverUdp (c);
233
236
}
234
237
235
238
SrsUdpListener::~SrsUdpListener ()
236
239
{
240
+ srs_freep (caster);
241
+ srs_freep (buf);
237
242
}
238
243
239
244
int SrsUdpListener::listen (int port)
@@ -313,7 +318,7 @@ int SrsUdpListener::cycle()
313
318
continue ;
314
319
}
315
320
316
- if ((ret = _server ->on_udp_packet (_type, &from, buf, nread)) != ERROR_SUCCESS) {
321
+ if ((ret = caster ->on_udp_packet (&from, buf, nread)) != ERROR_SUCCESS) {
317
322
srs_warn (" handle udp packet failed. ret=%d" , ret);
318
323
continue ;
319
324
}
@@ -328,6 +333,7 @@ int SrsUdpListener::cycle()
328
333
329
334
return ret;
330
335
}
336
+ #endif
331
337
332
338
SrsSignalManager* SrsSignalManager::instance = NULL ;
333
339
@@ -1015,7 +1021,7 @@ int SrsServer::listen_stream_caster()
1015
1021
1016
1022
std::string caster = _srs_config->get_stream_caster_engine (stream_caster);
1017
1023
if (caster == SRS_CONF_DEFAULT_STREAM_CASTER_MPEGTS_OVER_UDP) {
1018
- listener = new SrsUdpListener (this , SrsListenerMpegTsOverUdp);
1024
+ listener = new SrsUdpListener (this , SrsListenerMpegTsOverUdp, stream_caster );
1019
1025
} else {
1020
1026
ret = ERROR_STREAM_CASTER_ENGINE;
1021
1027
srs_error (" unsupported stream caster %s. ret=%d" , caster.c_str (), ret);
@@ -1141,19 +1147,6 @@ int SrsServer::accept_client(SrsListenerType type, st_netfd_t client_stfd)
1141
1147
return ret;
1142
1148
}
1143
1149
1144
- int SrsServer::on_udp_packet (SrsListenerType type, sockaddr_in* from, char * buf, int nb_buf)
1145
- {
1146
- int ret = ERROR_SUCCESS;
1147
-
1148
- std::string peer_ip = inet_ntoa (from->sin_addr );
1149
- int peer_port = ntohs (from->sin_port );
1150
-
1151
- // TODO: FIXME: implements it.
1152
- srs_warn (" udp: drop %s:%d packet %d bytes" , peer_ip.c_str (), peer_port, nb_buf);
1153
-
1154
- return ret;
1155
- }
1156
-
1157
1150
int SrsServer::on_reload_listen ()
1158
1151
{
1159
1152
return listen ();
0 commit comments