xref: /aosp_15_r20/external/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP9.mm (revision d9f758449e529ab9291ac668be2861e7a55c2422)
1/*
2 *  Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 *
10 */
11
12#import <Foundation/Foundation.h>
13
14#import "RTCMacros.h"
15#import "RTCVideoDecoderVP9.h"
16#import "RTCWrappedNativeVideoDecoder.h"
17
18#include "modules/video_coding/codecs/vp9/include/vp9.h"
19
20@implementation RTC_OBJC_TYPE (RTCVideoDecoderVP9)
21
22+ (id<RTC_OBJC_TYPE(RTCVideoDecoder)>)vp9Decoder {
23  std::unique_ptr<webrtc::VideoDecoder> nativeDecoder(webrtc::VP9Decoder::Create());
24  if (nativeDecoder == nullptr) {
25    return nil;
26  }
27  return [[RTC_OBJC_TYPE(RTCWrappedNativeVideoDecoder) alloc]
28      initWithNativeDecoder:std::move(nativeDecoder)];
29}
30
31+ (bool)isSupported {
32#if defined(RTC_ENABLE_VP9)
33  return true;
34#else
35  return false;
36#endif
37}
38
39@end
40