@@ -1728,34 +1728,13 @@ srs_error_t SrsSourceManager::fetch_or_create(SrsRequest* r, ISrsSourceHandler*
1728
1728
// should always not exists for create a source.
1729
1729
srs_assert (pool.find (stream_url) == pool.end ());
1730
1730
1731
- #ifdef SRS_RTC
1732
- bool rtc_server_enabled = _srs_config->get_rtc_server_enabled ();
1733
- bool rtc_enabled = _srs_config->get_rtc_enabled (r->vhost );
1734
-
1735
- // Get the RTC source and bridger.
1736
- SrsRtcStream* rtc = NULL ;
1737
- if (rtc_server_enabled && rtc_enabled) {
1738
- if ((err = _srs_rtc_sources->fetch_or_create (r, &rtc)) != srs_success) {
1739
- err = srs_error_wrap (err, " init rtc %s" , r->get_stream_url ().c_str ());
1740
- goto failed;
1741
- }
1742
- }
1743
- #endif
1744
1731
srs_trace (" new source, stream_url=%s" , stream_url.c_str ());
1745
1732
1746
1733
source = new SrsSource ();
1747
1734
if ((err = source->initialize (r, h)) != srs_success) {
1748
1735
err = srs_error_wrap (err, " init source %s" , r->get_stream_url ().c_str ());
1749
1736
goto failed;
1750
1737
}
1751
-
1752
- #ifdef SRS_RTC
1753
- // If rtc enabled, bridge RTMP source to RTC,
1754
- // all RTMP packets will be forwarded to RTC source.
1755
- if (source && rtc) {
1756
- source->bridge_to (rtc->bridger ());
1757
- }
1758
- #endif
1759
1738
1760
1739
pool[stream_url] = source;
1761
1740
*pps = source;
@@ -1883,7 +1862,7 @@ SrsSource::SrsSource()
1883
1862
die_at = 0 ;
1884
1863
1885
1864
handler = NULL ;
1886
- bridger = NULL ;
1865
+ bridger_ = NULL ;
1887
1866
1888
1867
play_edge = new SrsPlayEdge ();
1889
1868
publish_edge = new SrsPublishEdge ();
@@ -1915,6 +1894,7 @@ SrsSource::~SrsSource()
1915
1894
srs_freep (gop_cache);
1916
1895
1917
1896
srs_freep (req);
1897
+ srs_freep (bridger_);
1918
1898
}
1919
1899
1920
1900
void SrsSource::dispose ()
@@ -1990,9 +1970,10 @@ srs_error_t SrsSource::initialize(SrsRequest* r, ISrsSourceHandler* h)
1990
1970
return err;
1991
1971
}
1992
1972
1993
- void SrsSource::bridge_to (ISrsSourceBridger* v)
1973
+ void SrsSource::set_bridger (ISrsSourceBridger* v)
1994
1974
{
1995
- bridger = v;
1975
+ srs_freep (bridger_);
1976
+ bridger_ = v;
1996
1977
}
1997
1978
1998
1979
srs_error_t SrsSource::on_reload_vhost_play (string vhost)
@@ -2245,7 +2226,7 @@ srs_error_t SrsSource::on_audio_imp(SrsSharedPtrMessage* msg)
2245
2226
}
2246
2227
2247
2228
// For bridger to consume the message.
2248
- if (bridger && (err = bridger ->on_audio (msg)) != srs_success) {
2229
+ if (bridger_ && (err = bridger_ ->on_audio (msg)) != srs_success) {
2249
2230
return srs_error_wrap (err, " bridger consume audio" );
2250
2231
}
2251
2232
@@ -2375,7 +2356,7 @@ srs_error_t SrsSource::on_video_imp(SrsSharedPtrMessage* msg)
2375
2356
}
2376
2357
2377
2358
// For bridger to consume the message.
2378
- if (bridger && (err = bridger ->on_video (msg)) != srs_success) {
2359
+ if (bridger_ && (err = bridger_ ->on_video (msg)) != srs_success) {
2379
2360
return srs_error_wrap (err, " bridger consume video" );
2380
2361
}
2381
2362
@@ -2539,7 +2520,7 @@ srs_error_t SrsSource::on_publish()
2539
2520
return srs_error_wrap (err, " handle publish" );
2540
2521
}
2541
2522
2542
- if (bridger && (err = bridger ->on_publish ()) != srs_success) {
2523
+ if (bridger_ && (err = bridger_ ->on_publish ()) != srs_success) {
2543
2524
return srs_error_wrap (err, " bridger publish" );
2544
2525
}
2545
2526
@@ -2584,8 +2565,9 @@ void SrsSource::on_unpublish()
2584
2565
2585
2566
handler->on_unpublish (this , req);
2586
2567
2587
- if (bridger) {
2588
- bridger->on_unpublish ();
2568
+ if (bridger_) {
2569
+ bridger_->on_unpublish ();
2570
+ srs_freep (bridger_);
2589
2571
}
2590
2572
2591
2573
// no consumer, stream is die.
0 commit comments