mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-23 03:10:04 +08:00
commit
28d73db9f7
@ -378,7 +378,7 @@ void MultiMediaSourceMuxer::inputFrame(const Frame::Ptr &frame_in) {
|
|||||||
|
|
||||||
bool MultiMediaSourceMuxer::isEnabled(){
|
bool MultiMediaSourceMuxer::isEnabled(){
|
||||||
#if defined(ENABLE_RTPPROXY)
|
#if defined(ENABLE_RTPPROXY)
|
||||||
return _muxer->isEnabled() || _ps_rtp_sender
|
return (_muxer->isEnabled() || _ps_rtp_sender);
|
||||||
#endif //ENABLE_RTPPROXY
|
#endif //ENABLE_RTPPROXY
|
||||||
return _muxer->isEnabled();
|
return _muxer->isEnabled();
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,11 @@ public:
|
|||||||
typedef std::shared_ptr<H264Frame> Ptr;
|
typedef std::shared_ptr<H264Frame> Ptr;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NAL_SPS = 7,
|
|
||||||
NAL_PPS = 8,
|
|
||||||
NAL_IDR = 5,
|
NAL_IDR = 5,
|
||||||
NAL_SEI = 6,
|
NAL_SEI = 6,
|
||||||
|
NAL_SPS = 7,
|
||||||
|
NAL_PPS = 8,
|
||||||
|
NAL_AUD = 9,
|
||||||
} NalType;
|
} NalType;
|
||||||
|
|
||||||
H264Frame(){
|
H264Frame(){
|
||||||
@ -179,7 +180,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
void inputFrame(const Frame::Ptr &frame) override{
|
void inputFrame(const Frame::Ptr &frame) override{
|
||||||
int type = H264_TYPE(*((uint8_t *)frame->data() + frame->prefixSize()));
|
int type = H264_TYPE(*((uint8_t *)frame->data() + frame->prefixSize()));
|
||||||
if(type == H264Frame::NAL_SPS || type == H264Frame::NAL_PPS || type == H264Frame::NAL_SEI){
|
if(type == H264Frame::NAL_SPS || type == H264Frame::NAL_PPS || type == H264Frame::NAL_SEI ||
|
||||||
|
type == H264Frame::NAL_AUD){
|
||||||
//有些设备会把SPS PPS IDR帧当做一个帧打包,所以我们要split一下
|
//有些设备会把SPS PPS IDR帧当做一个帧打包,所以我们要split一下
|
||||||
splitH264(frame->data(), frame->size(), frame->prefixSize(), [&](const char *ptr, int len, int prefix) {
|
splitH264(frame->data(), frame->size(), frame->prefixSize(), [&](const char *ptr, int len, int prefix) {
|
||||||
H264FrameInternal::Ptr sub_frame = std::make_shared<H264FrameInternal>(frame, (char *)ptr, len, prefix);
|
H264FrameInternal::Ptr sub_frame = std::make_shared<H264FrameInternal>(frame, (char *)ptr, len, prefix);
|
||||||
@ -224,6 +226,10 @@ private:
|
|||||||
VideoTrack::inputFrame(frame);
|
VideoTrack::inputFrame(frame);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case H264Frame::NAL_AUD:{
|
||||||
|
//忽略AUD帧;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
VideoTrack::inputFrame(frame);
|
VideoTrack::inputFrame(frame);
|
||||||
@ -326,4 +332,4 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
}//namespace mediakit
|
}//namespace mediakit
|
||||||
#endif //ZLMEDIAKIT_H264_H
|
#endif //ZLMEDIAKIT_H264_H
|
||||||
|
Loading…
Reference in New Issue
Block a user