mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-26 12:37:09 +08:00
优化rtmp注册速度
This commit is contained in:
parent
ce44694a43
commit
4c760d010a
@ -106,6 +106,7 @@ inline void H264RtmpDecoder::onGetH264(const char* pcData, int iLen, uint32_t ui
|
|||||||
|
|
||||||
H264RtmpEncoder::H264RtmpEncoder(const Track::Ptr &track) {
|
H264RtmpEncoder::H264RtmpEncoder(const Track::Ptr &track) {
|
||||||
_track = dynamic_pointer_cast<H264Track>(track);
|
_track = dynamic_pointer_cast<H264Track>(track);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
||||||
@ -122,9 +123,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
|||||||
//sps
|
//sps
|
||||||
if(_sps.empty()){
|
if(_sps.empty()){
|
||||||
_sps = string(pcData,iLen);
|
_sps = string(pcData,iLen);
|
||||||
if(!_pps.empty()){
|
|
||||||
makeVideoConfigPkt();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -132,9 +130,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
|||||||
//pps
|
//pps
|
||||||
if(_pps.empty()){
|
if(_pps.empty()){
|
||||||
_pps = string(pcData,iLen);
|
_pps = string(pcData,iLen);
|
||||||
if(!_sps.empty()){
|
|
||||||
makeVideoConfigPkt();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -142,10 +137,14 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//尝试从track中获取sps pps信息
|
if(_track && _track->ready()){
|
||||||
if((!_sps.empty() || !_pps.empty()) && _track && _track->ready()){
|
//尝试从track中获取sps pps信息
|
||||||
_sps = _track->getSps();
|
_sps = _track->getSps();
|
||||||
_pps = _track->getPps();
|
_pps = _track->getPps();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!_sps.empty() && !_pps.empty()){
|
||||||
|
_gotSpsPps = true;
|
||||||
makeVideoConfigPkt();
|
makeVideoConfigPkt();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -190,8 +189,6 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
|||||||
|
|
||||||
|
|
||||||
void H264RtmpEncoder::makeVideoConfigPkt() {
|
void H264RtmpEncoder::makeVideoConfigPkt() {
|
||||||
_gotSpsPps = true;
|
|
||||||
|
|
||||||
int8_t flags = 7; //h.264
|
int8_t flags = 7; //h.264
|
||||||
flags |= (FLV_KEY_FRAME << 4);
|
flags |= (FLV_KEY_FRAME << 4);
|
||||||
bool is_config = true;
|
bool is_config = true;
|
||||||
|
Loading…
Reference in New Issue
Block a user