Add option to configure raw RTP packetization per payload type.
Bug: webrtc:10625 Change-Id: I699f61af29656827eccb3c4ed507b4229dee972a Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/137803 Commit-Queue: Mirta Dvornicic <mirtad@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Reviewed-by: Åsa Persson <asapersson@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/master@{#28036}
This commit is contained in:
committed by
Commit Bot
parent
a352248c43
commit
fe68daab97
@ -24,14 +24,19 @@
|
||||
namespace webrtc {
|
||||
|
||||
std::unique_ptr<RtpPacketizer> RtpPacketizer::Create(
|
||||
VideoCodecType type,
|
||||
absl::optional<VideoCodecType> type,
|
||||
rtc::ArrayView<const uint8_t> payload,
|
||||
PayloadSizeLimits limits,
|
||||
// Codec-specific details.
|
||||
const RTPVideoHeader& rtp_video_header,
|
||||
VideoFrameType frame_type,
|
||||
const RTPFragmentationHeader* fragmentation) {
|
||||
switch (type) {
|
||||
if (!type) {
|
||||
// Use raw packetizer.
|
||||
return absl::make_unique<RtpPacketizerGeneric>(payload, limits);
|
||||
}
|
||||
|
||||
switch (*type) {
|
||||
case kVideoCodecH264: {
|
||||
RTC_CHECK(fragmentation);
|
||||
const auto& h264 =
|
||||
@ -133,8 +138,13 @@ std::vector<int> RtpPacketizer::SplitAboutEqually(
|
||||
return result;
|
||||
}
|
||||
|
||||
RtpDepacketizer* RtpDepacketizer::Create(VideoCodecType type) {
|
||||
switch (type) {
|
||||
RtpDepacketizer* RtpDepacketizer::Create(absl::optional<VideoCodecType> type) {
|
||||
if (!type) {
|
||||
// Use raw depacketizer.
|
||||
return new RtpDepacketizerGeneric(/*generic_header_enabled=*/false);
|
||||
}
|
||||
|
||||
switch (*type) {
|
||||
case kVideoCodecH264:
|
||||
return new RtpDepacketizerH264();
|
||||
case kVideoCodecVP8:
|
||||
@ -145,4 +155,5 @@ RtpDepacketizer* RtpDepacketizer::Create(VideoCodecType type) {
|
||||
return new RtpDepacketizerGeneric(/*generic_header_enabled=*/true);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
Reference in New Issue
Block a user