mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
WebRTC: Fix no audio and video issue for Firefox. (#3079)
* Remove extern SrsPps* duplicate declarations * fix(rtmp2rtc): fix video payload type for rtmp to rtc bridge (#3041) * Revert changes not belongs to this PR. * Fix naming issue, follow SRS style. * Use srs_assert instead of assert. * Fix firefox no audio issue. Co-authored-by: winlin <winlin@vip.126.com>
This commit is contained in:
parent
62ab1a1c69
commit
6eb10afca2
2 changed files with 13 additions and 6 deletions
|
@ -710,6 +710,7 @@ srs_error_t SrsRtcSource::on_timer(srs_utime_t interval)
|
|||
}
|
||||
|
||||
#ifdef SRS_FFMPEG_FIT
|
||||
|
||||
SrsRtcFromRtmpBridge::SrsRtcFromRtmpBridge(SrsRtcSource* source)
|
||||
{
|
||||
req = NULL;
|
||||
|
@ -729,6 +730,8 @@ SrsRtcFromRtmpBridge::SrsRtcFromRtmpBridge(SrsRtcSource* source)
|
|||
if (!descs.empty()) {
|
||||
audio_ssrc = descs.at(0)->ssrc_;
|
||||
}
|
||||
// Note we must use the PT of source, see https://github.com/ossrs/srs/pull/3079
|
||||
audio_payload_type_ = descs.empty() ? kAudioPayloadType : descs.front()->media_->pt_;
|
||||
}
|
||||
|
||||
// video track ssrc
|
||||
|
@ -737,6 +740,8 @@ SrsRtcFromRtmpBridge::SrsRtcFromRtmpBridge(SrsRtcSource* source)
|
|||
if (!descs.empty()) {
|
||||
video_ssrc = descs.at(0)->ssrc_;
|
||||
}
|
||||
// Note we must use the PT of source, see https://github.com/ossrs/srs/pull/3079
|
||||
video_payload_type_ = descs.empty() ? kVideoPayloadType : descs.front()->media_->pt_;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -910,7 +915,7 @@ srs_error_t SrsRtcFromRtmpBridge::package_opus(SrsAudioFrame* audio, SrsRtpPacke
|
|||
{
|
||||
srs_error_t err = srs_success;
|
||||
|
||||
pkt->header.set_payload_type(kAudioPayloadType);
|
||||
pkt->header.set_payload_type(audio_payload_type_);
|
||||
pkt->header.set_ssrc(audio_ssrc);
|
||||
pkt->frame_type = SrsFrameTypeAudio;
|
||||
pkt->header.set_marker(true);
|
||||
|
@ -1054,7 +1059,7 @@ srs_error_t SrsRtcFromRtmpBridge::package_stap_a(SrsRtcSource* source, SrsShared
|
|||
return srs_error_new(ERROR_RTC_RTP_MUXER, "sps/pps empty");
|
||||
}
|
||||
|
||||
pkt->header.set_payload_type(kVideoPayloadType);
|
||||
pkt->header.set_payload_type(video_payload_type_);
|
||||
pkt->header.set_ssrc(video_ssrc);
|
||||
pkt->frame_type = SrsFrameTypeVideo;
|
||||
pkt->nalu_type = (SrsAvcNaluType)kStapA;
|
||||
|
@ -1136,7 +1141,7 @@ srs_error_t SrsRtcFromRtmpBridge::package_nalus(SrsSharedPtrMessage* msg, const
|
|||
SrsRtpPacket* pkt = new SrsRtpPacket();
|
||||
pkts.push_back(pkt);
|
||||
|
||||
pkt->header.set_payload_type(kVideoPayloadType);
|
||||
pkt->header.set_payload_type(video_payload_type_);
|
||||
pkt->header.set_ssrc(video_ssrc);
|
||||
pkt->frame_type = SrsFrameTypeVideo;
|
||||
pkt->nalu_type = (SrsAvcNaluType)first_nalu_type;
|
||||
|
@ -1170,7 +1175,7 @@ srs_error_t SrsRtcFromRtmpBridge::package_nalus(SrsSharedPtrMessage* msg, const
|
|||
SrsRtpPacket* pkt = new SrsRtpPacket();
|
||||
pkts.push_back(pkt);
|
||||
|
||||
pkt->header.set_payload_type(kVideoPayloadType);
|
||||
pkt->header.set_payload_type(video_payload_type_);
|
||||
pkt->header.set_ssrc(video_ssrc);
|
||||
pkt->frame_type = SrsFrameTypeVideo;
|
||||
pkt->nalu_type = (SrsAvcNaluType)kFuA;
|
||||
|
@ -1200,7 +1205,7 @@ srs_error_t SrsRtcFromRtmpBridge::package_single_nalu(SrsSharedPtrMessage* msg,
|
|||
SrsRtpPacket* pkt = new SrsRtpPacket();
|
||||
pkts.push_back(pkt);
|
||||
|
||||
pkt->header.set_payload_type(kVideoPayloadType);
|
||||
pkt->header.set_payload_type(video_payload_type_);
|
||||
pkt->header.set_ssrc(video_ssrc);
|
||||
pkt->frame_type = SrsFrameTypeVideo;
|
||||
pkt->header.set_sequence(video_sequence++);
|
||||
|
@ -1233,7 +1238,7 @@ srs_error_t SrsRtcFromRtmpBridge::package_fu_a(SrsSharedPtrMessage* msg, SrsSamp
|
|||
SrsRtpPacket* pkt = new SrsRtpPacket();
|
||||
pkts.push_back(pkt);
|
||||
|
||||
pkt->header.set_payload_type(kVideoPayloadType);
|
||||
pkt->header.set_payload_type(video_payload_type_);
|
||||
pkt->header.set_ssrc(video_ssrc);
|
||||
pkt->frame_type = SrsFrameTypeVideo;
|
||||
pkt->header.set_sequence(video_sequence++);
|
||||
|
|
|
@ -261,6 +261,8 @@ private:
|
|||
uint16_t video_sequence;
|
||||
uint32_t audio_ssrc;
|
||||
uint32_t video_ssrc;
|
||||
uint8_t audio_payload_type_;
|
||||
uint8_t video_payload_type_;
|
||||
public:
|
||||
SrsRtcFromRtmpBridge(SrsRtcSource* source);
|
||||
virtual ~SrsRtcFromRtmpBridge();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue