整理MediaSink

This commit is contained in:
xiongziliang
2019-12-03 12:32:57 +08:00
parent c1ab73f758
commit c55f26fba7
19 changed files with 243 additions and 167 deletions

View File

@@ -31,7 +31,7 @@
#include "Rtmp/RtmpMediaSourceMuxer.h"
#include "MediaFile/MediaRecorder.h"
class MultiMediaSourceMuxer : public FrameWriterInterface{
class MultiMediaSourceMuxer : public MediaSink{
public:
typedef std::shared_ptr<MultiMediaSourceMuxer> Ptr;
@@ -54,25 +54,10 @@ public:
}
virtual ~MultiMediaSourceMuxer(){}
/**
* 添加音视频媒体
* @param track 媒体描述
*/
void addTrack(const Track::Ptr & track) {
if(_rtmp){
_rtmp->addTrack(track);
}
if(_rtsp){
_rtsp->addTrack(track);
}
_record->addTrack(track);
}
/**
* 重置音视频媒体
*/
void resetTracks() {
void resetTracks() override{
if(_rtmp){
_rtmp->resetTracks();
}
@@ -82,20 +67,6 @@ public:
_record->resetTracks();
}
/**
* 写入帧数据然后打包rtmp
* @param frame 帧数据
*/
void inputFrame(const Frame::Ptr &frame) override {
if(_rtmp) {
_rtmp->inputFrame(frame);
}
if(_rtsp) {
_rtsp->inputFrame(frame);
}
_record->inputFrame(frame);
}
/**
* 设置事件监听器
* @param listener
@@ -122,6 +93,47 @@ public:
_rtsp->setTimeStamp(stamp);
}
}
protected:
/**
* 添加音视频媒体
* @param track 媒体描述
*/
void onTrackReady(const Track::Ptr & track) override {
if(_rtmp){
_rtmp->addTrack(track);
}
if(_rtsp){
_rtsp->addTrack(track);
}
_record->addTrack(track);
}
/**
* 写入帧数据然后打包rtmp
* @param frame 帧数据
*/
void onTrackFrame(const Frame::Ptr &frame) override {
if(_rtmp) {
_rtmp->inputFrame(frame);
}
if(_rtsp) {
_rtsp->inputFrame(frame);
}
_record->inputFrame(frame);
}
/**
* 所有Track都准备就绪触发媒体注册事件
*/
void onAllTrackReady() override{
if(_rtmp) {
_rtmp->onAllTrackReady();
}
if(_rtsp) {
_rtsp->onAllTrackReady();
}
}
private:
RtmpMediaSourceMuxer::Ptr _rtmp;
RtspMediaSourceMuxer::Ptr _rtsp;