|  | /* | 
|  | *  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 "RTCVideoDecoderFactoryH264.h" | 
|  |  | 
|  | #import "RTCH264ProfileLevelId.h" | 
|  | #import "RTCVideoDecoderH264.h" | 
|  |  | 
|  | @implementation RTC_OBJC_TYPE (RTCVideoDecoderFactoryH264) | 
|  |  | 
|  | - (NSArray<RTC_OBJC_TYPE(RTCVideoCodecInfo) *> *)supportedCodecs { | 
|  | NSMutableArray<RTC_OBJC_TYPE(RTCVideoCodecInfo) *> *codecs = [NSMutableArray array]; | 
|  | NSString *codecName = kRTCVideoCodecH264Name; | 
|  |  | 
|  | NSDictionary<NSString *, NSString *> *constrainedHighParams = @{ | 
|  | @"profile-level-id" : kRTCMaxSupportedH264ProfileLevelConstrainedHigh, | 
|  | @"level-asymmetry-allowed" : @"1", | 
|  | @"packetization-mode" : @"1", | 
|  | }; | 
|  | RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedHighInfo = | 
|  | [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:codecName | 
|  | parameters:constrainedHighParams]; | 
|  | [codecs addObject:constrainedHighInfo]; | 
|  |  | 
|  | NSDictionary<NSString *, NSString *> *constrainedBaselineParams = @{ | 
|  | @"profile-level-id" : kRTCMaxSupportedH264ProfileLevelConstrainedBaseline, | 
|  | @"level-asymmetry-allowed" : @"1", | 
|  | @"packetization-mode" : @"1", | 
|  | }; | 
|  | RTC_OBJC_TYPE(RTCVideoCodecInfo) *constrainedBaselineInfo = | 
|  | [[RTC_OBJC_TYPE(RTCVideoCodecInfo) alloc] initWithName:codecName | 
|  | parameters:constrainedBaselineParams]; | 
|  | [codecs addObject:constrainedBaselineInfo]; | 
|  |  | 
|  | return [codecs copy]; | 
|  | } | 
|  |  | 
|  | - (id<RTC_OBJC_TYPE(RTCVideoDecoder)>)createDecoder:(RTC_OBJC_TYPE(RTCVideoCodecInfo) *)info { | 
|  | return [[RTC_OBJC_TYPE(RTCVideoDecoderH264) alloc] init]; | 
|  | } | 
|  |  | 
|  | @end |