mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-10-31 00:37:39 +08:00
兼容一些不规范的流
This commit is contained in:
parent
56f044f8ed
commit
fb3603b433
@ -15,7 +15,10 @@ using namespace toolkit;
|
||||
|
||||
namespace mediakit{
|
||||
|
||||
static bool getAVCInfo(const char * sps,size_t sps_len,int &iVideoWidth, int &iVideoHeight, float &iVideoFps){
|
||||
static bool getAVCInfo(const char *sps, size_t sps_len,int &iVideoWidth, int &iVideoHeight, float &iVideoFps){
|
||||
if (sps_len < 4) {
|
||||
return false;
|
||||
}
|
||||
T_GetBitContext tGetBitBuf;
|
||||
T_SPS tH264SpsInfo;
|
||||
memset(&tGetBitBuf,0,sizeof(tGetBitBuf));
|
||||
@ -157,7 +160,10 @@ void H264Track::inputFrame(const Frame::Ptr &frame) {
|
||||
}
|
||||
|
||||
void H264Track::onReady(){
|
||||
getAVCInfo(_sps,_width,_height,_fps);
|
||||
if (!getAVCInfo(_sps, _width, _height, _fps)) {
|
||||
_sps.clear();
|
||||
_pps.clear();
|
||||
}
|
||||
}
|
||||
|
||||
Track::Ptr H264Track::clone() {
|
||||
|
@ -221,6 +221,10 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
||||
}
|
||||
|
||||
void H264RtmpEncoder::makeVideoConfigPkt() {
|
||||
if (_sps.size() < 4) {
|
||||
WarnL << "sps长度不足4字节";
|
||||
return;
|
||||
}
|
||||
int8_t flags = FLV_CODEC_H264;
|
||||
flags |= (FLV_KEY_FRAME << 4);
|
||||
bool is_config = true;
|
||||
|
@ -186,7 +186,11 @@ void H265Track::inputFrame_l(const Frame::Ptr &frame) {
|
||||
}
|
||||
|
||||
void H265Track::onReady() {
|
||||
getHEVCInfo(_vps, _sps, _width, _height, _fps);
|
||||
if (!getHEVCInfo(_vps, _sps, _width, _height, _fps)) {
|
||||
_vps.clear();
|
||||
_sps.clear();
|
||||
_pps.clear();
|
||||
}
|
||||
}
|
||||
|
||||
Track::Ptr H265Track::clone() {
|
||||
|
Loading…
Reference in New Issue
Block a user