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{
|
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_GetBitContext tGetBitBuf;
|
||||||
T_SPS tH264SpsInfo;
|
T_SPS tH264SpsInfo;
|
||||||
memset(&tGetBitBuf,0,sizeof(tGetBitBuf));
|
memset(&tGetBitBuf,0,sizeof(tGetBitBuf));
|
||||||
@ -157,7 +160,10 @@ void H264Track::inputFrame(const Frame::Ptr &frame) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void H264Track::onReady(){
|
void H264Track::onReady(){
|
||||||
getAVCInfo(_sps,_width,_height,_fps);
|
if (!getAVCInfo(_sps, _width, _height, _fps)) {
|
||||||
|
_sps.clear();
|
||||||
|
_pps.clear();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Track::Ptr H264Track::clone() {
|
Track::Ptr H264Track::clone() {
|
||||||
|
@ -221,6 +221,10 @@ void H264RtmpEncoder::inputFrame(const Frame::Ptr &frame) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void H264RtmpEncoder::makeVideoConfigPkt() {
|
void H264RtmpEncoder::makeVideoConfigPkt() {
|
||||||
|
if (_sps.size() < 4) {
|
||||||
|
WarnL << "sps长度不足4字节";
|
||||||
|
return;
|
||||||
|
}
|
||||||
int8_t flags = FLV_CODEC_H264;
|
int8_t flags = FLV_CODEC_H264;
|
||||||
flags |= (FLV_KEY_FRAME << 4);
|
flags |= (FLV_KEY_FRAME << 4);
|
||||||
bool is_config = true;
|
bool is_config = true;
|
||||||
|
@ -186,7 +186,11 @@ void H265Track::inputFrame_l(const Frame::Ptr &frame) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void H265Track::onReady() {
|
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() {
|
Track::Ptr H265Track::clone() {
|
||||||
|
Loading…
Reference in New Issue
Block a user