1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

SRT: remove rtmp_to_srt

This commit is contained in:
hondaxiao 2022-05-30 20:03:11 +08:00 committed by winlin
parent 43d98d0b1c
commit fbc6eebe18
7 changed files with 1 additions and 163 deletions

View file

@ -815,95 +815,3 @@ srs_error_t SrsSrtSource::on_packet(SrsSrtPacket* packet)
return err;
}
SrsSrtFromRtmpBridge::SrsSrtFromRtmpBridge(SrsSrtSource* source)
: ISrsLiveSourceBridger(SrsBridgeDestTypeSRT)
{
srt_source_ = source;
ts_muxer_ = NULL;
offset_ = 0;
}
SrsSrtFromRtmpBridge::~SrsSrtFromRtmpBridge()
{
srs_freep(ts_muxer_);
}
srs_error_t SrsSrtFromRtmpBridge::initialize(SrsRequest* r)
{
srs_error_t err = srs_success;
// TODO: FIXME: check config.
req_ = r;
ts_muxer_ = new SrsTsTransmuxer();
if ((err = ts_muxer_->initialize(this)) != srs_success) {
return srs_error_wrap(err, "init ts muxer");
}
return err;
}
srs_error_t SrsSrtFromRtmpBridge::on_publish()
{
srs_error_t err = srs_success;
// TODO: FIXME: check if enable rtmp_to_srt
if ((err = srt_source_->on_publish()) != srs_success) {
return srs_error_wrap(err, "source publish");
}
return err;
}
void SrsSrtFromRtmpBridge::on_unpublish()
{
// TODO: FIXME: check if enable rtmp_to_srt
srt_source_->on_unpublish();
}
srs_error_t SrsSrtFromRtmpBridge::on_audio(SrsSharedPtrMessage* msg)
{
srs_error_t err = srs_success;
if ((err = ts_muxer_->write_audio(msg->timestamp, msg->payload, msg->size)) != srs_success) {
return srs_error_wrap(err, "rtmp to srt, ts mux audio");
}
return err;
}
srs_error_t SrsSrtFromRtmpBridge::on_video(SrsSharedPtrMessage* msg)
{
srs_error_t err = srs_success;
if ((err = ts_muxer_->write_video(msg->timestamp, msg->payload, msg->size)) != srs_success) {
return srs_error_wrap(err, "rtmp to srt, ts mux video");
}
return err;
}
srs_error_t SrsSrtFromRtmpBridge::write(void* buf, size_t size, ssize_t* nwrite)
{
srs_error_t err = srs_success;
if (size % SRS_TS_PACKET_SIZE != 0) {
return srs_error_new(ERROR_RTMP_TO_SRT, "invalid ts size=%u", size);
}
for (int i = 0; i < size; i += SRS_TS_PACKET_SIZE) {
memcpy(ts_buf_ + offset_, (const char*)buf + i, SRS_TS_PACKET_SIZE);
offset_ += SRS_TS_PACKET_SIZE;
if (offset_ >= 1316) {
offset_ = 0;
SrsSrtPacket* packet = new SrsSrtPacket();
SrsAutoFree(SrsSrtPacket, packet);
packet->wrap(ts_buf_, 1316);
srt_source_->on_packet(packet);
}
}
return err;
}