/* * Copyright 2017 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. */ #import "RTCDefaultVideoDecoderFactory.h" #import "RTCH264ProfileLevelId.h" #import "RTCVideoDecoderH264.h" #import "api/video_codec/RTCVideoCodecConstants.h" #import "api/video_codec/RTCVideoDecoderVP8.h" #import "base/RTCVideoCodecInfo.h" #if defined(RTC_ENABLE_VP9) #import "api/video_codec/RTCVideoDecoderVP9.h" #endif @implementation RTCDefaultVideoDecoderFactory - (id)createDecoder:(RTCVideoCodecInfo *)info { if ([info.name isEqualToString:kRTCVideoCodecH264Name]) { return [[RTCVideoDecoderH264 alloc] init]; } else if ([info.name isEqualToString:kRTCVideoCodecVp8Name]) { return [RTCVideoDecoderVP8 vp8Decoder]; #if defined(RTC_ENABLE_VP9) } else if ([info.name isEqualToString:kRTCVideoCodecVp9Name]) { return [RTCVideoDecoderVP9 vp9Decoder]; #endif } return nil; } - (NSArray *)supportedCodecs { return @[ [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecH264Name], [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp8Name], #if defined(RTC_ENABLE_VP9) [[RTCVideoCodecInfo alloc] initWithName:kRTCVideoCodecVp9Name], #endif ]; } @end