mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-06-29 22:32:23 +08:00
完成Track对象与SDP对象的转换
This commit is contained in:
38
src/Rtsp/RtspEncoder.cpp
Normal file
38
src/Rtsp/RtspEncoder.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// Created by xzl on 2018/10/23.
|
||||
//
|
||||
#include "RtspEncoder.h"
|
||||
|
||||
namespace ZL{
|
||||
namespace Rtsp{
|
||||
|
||||
|
||||
Sdp::Ptr Sdp::getSdpByTrack(const Track::Ptr &track) {
|
||||
switch (track->getCodecId()){
|
||||
case CodecH264:{
|
||||
H264Track::Ptr h264Track = dynamic_pointer_cast<H264Track>(track);
|
||||
if(!h264Track){
|
||||
return nullptr;
|
||||
}
|
||||
return std::make_shared<H264Sdp>(h264Track->getSps(),h264Track->getPps());
|
||||
}
|
||||
|
||||
case CodecAAC:{
|
||||
AACTrack::Ptr aacTrack = dynamic_pointer_cast<AACTrack>(track);
|
||||
if(!aacTrack){
|
||||
return nullptr;
|
||||
}
|
||||
return std::make_shared<AACSdp>(aacTrack->getAacCfg(),aacTrack->getAudioSampleRate());
|
||||
}
|
||||
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "RTP/H264RtpCodec.h"
|
||||
#include "RTP/AACRtpCodec.h"
|
||||
#include "Util/base64.h"
|
||||
#include "Player/Track.h"
|
||||
|
||||
namespace ZL{
|
||||
namespace Rtsp{
|
||||
@@ -28,6 +29,14 @@ public:
|
||||
_sample_rate = sample_rate;
|
||||
_playload_type = playload_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据Track生成SDP对象
|
||||
* @param track 媒体信息
|
||||
* @return 返回sdp对象
|
||||
*/
|
||||
static Ptr getSdpByTrack(const Track::Ptr &track);
|
||||
|
||||
virtual ~Sdp(){}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user