diff options
Diffstat (limited to 'third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc')
-rw-r--r-- | third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc new file mode 100644 index 0000000000..95db212bef --- /dev/null +++ b/third_party/libwebrtc/modules/rtp_rtcp/source/create_video_rtp_depacketizer.cc @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#include "modules/rtp_rtcp/source/create_video_rtp_depacketizer.h" + +#include <memory> + +#include "api/video/video_codec_type.h" +#include "modules/rtp_rtcp/source/video_rtp_depacketizer.h" +#include "modules/rtp_rtcp/source/video_rtp_depacketizer_av1.h" +#include "modules/rtp_rtcp/source/video_rtp_depacketizer_generic.h" +#include "modules/rtp_rtcp/source/video_rtp_depacketizer_h264.h" +#include "modules/rtp_rtcp/source/video_rtp_depacketizer_vp8.h" +#include "modules/rtp_rtcp/source/video_rtp_depacketizer_vp9.h" + +namespace webrtc { + +std::unique_ptr<VideoRtpDepacketizer> CreateVideoRtpDepacketizer( + VideoCodecType codec) { + switch (codec) { + case kVideoCodecH264: + return std::make_unique<VideoRtpDepacketizerH264>(); + case kVideoCodecVP8: + return std::make_unique<VideoRtpDepacketizerVp8>(); + case kVideoCodecVP9: + return std::make_unique<VideoRtpDepacketizerVp9>(); + case kVideoCodecAV1: + return std::make_unique<VideoRtpDepacketizerAv1>(); + case kVideoCodecH265: + // TODO(bugs.webrtc.org/13485): Implement VideoRtpDepacketizerH265. + return nullptr; + case kVideoCodecGeneric: + case kVideoCodecMultiplex: + return std::make_unique<VideoRtpDepacketizerGeneric>(); + } + RTC_CHECK_NOTREACHED(); +} + +} // namespace webrtc |