1e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org/* 2e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 3e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org * 4e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org * Use of this source code is governed by a BSD-style license 5e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org * that can be found in the LICENSE file in the root of the source 6e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org * tree. An additional intellectual property rights grant can be found 7e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org * in the file PATENTS. All contributing project authors may 8e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org */ 10e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org 11e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org#include "webrtc/modules/rtp_rtcp/source/rtp_format.h" 12e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org 13e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org#include "webrtc/modules/rtp_rtcp/source/rtp_format_h264.h" 14b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org#include "webrtc/modules/rtp_rtcp/source/rtp_format_video_generic.h" 15b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org#include "webrtc/modules/rtp_rtcp/source/rtp_format_vp8.h" 16e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org 17e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.orgnamespace webrtc { 18e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.orgRtpPacketizer* RtpPacketizer::Create(RtpVideoCodecTypes type, 19b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org size_t max_payload_len, 20b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org const RTPVideoTypeHeader* rtp_type_header, 21b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org FrameType frame_type) { 22e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org switch (type) { 23e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org case kRtpVideoH264: 24b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org return new RtpPacketizerH264(frame_type, max_payload_len); 25e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org case kRtpVideoVp8: 26b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org assert(rtp_type_header != NULL); 27b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org return new RtpPacketizerVp8(rtp_type_header->VP8, max_payload_len); 28b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org case kRtpVideoGeneric: 29b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org return new RtpPacketizerGeneric(frame_type, max_payload_len); 30b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org case kRtpVideoNone: 31e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org assert(false); 32e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org } 33e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org return NULL; 34e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org} 35e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org 36e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.orgRtpDepacketizer* RtpDepacketizer::Create(RtpVideoCodecTypes type, 37e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org RtpData* const callback) { 38e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org switch (type) { 39e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org case kRtpVideoH264: 40e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org return new RtpDepacketizerH264(callback); 41e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org case kRtpVideoVp8: 42b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org return new RtpDepacketizerVp8(callback); 43b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org case kRtpVideoGeneric: 44b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org return new RtpDepacketizerGeneric(callback); 45b7fb080fab9a42241324a0dfc238de51ba5f911apbos@webrtc.org case kRtpVideoNone: 46e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org assert(false); 47e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org } 48e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org return NULL; 49e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org} 50e75b34844a4e9998475ab557001ce0cfa1fe458fstefan@webrtc.org} // namespace webrtc 51