void SrsSource::on_unpublish() { #ifdef SRS_HLS hls->on_unpublish(); #endif #ifdef SRS_FFMPEG encoder->on_unpublish(); #endif // close all forwarders std::vector<SrsForwarder*>::iterator it; for (it = forwarders.begin(); it != forwarders.end(); ++it) { SrsForwarder* forwarder = *it; forwarder->on_unpublish(); srs_freep(forwarder); } forwarders.clear(); gop_cache->clear(); srs_freep(cache_metadata); frame_rate = sample_rate = 0; srs_freep(cache_sh_video); srs_freep(cache_sh_audio); srs_trace("clear cache/metadata/sequence-headers when unpublish."); _can_publish = true; }
void SrsSource::destroy_forwarders() { std::vector<SrsForwarder*>::iterator it; for (it = forwarders.begin(); it != forwarders.end(); ++it) { SrsForwarder* forwarder = *it; forwarder->on_unpublish(); srs_freep(forwarder); } forwarders.clear(); }