171f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin/*
271f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
371f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *
471f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *  Use of this source code is governed by a BSD-style license
571f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *  that can be found in the LICENSE file in the root of the source
671f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *  tree. An additional intellectual property rights grant can be found
771f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *  in the file PATENTS.  All contributing project authors may
871f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *  be found in the AUTHORS file in the root of the source tree.
971f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin *
1071f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin */
1171f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
1271f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#ifndef WEBRTC_MODULES_VIDEO_CODING_CODECS_H264_INCLUDE_H264_H_
1371f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#define WEBRTC_MODULES_VIDEO_CODING_CODECS_H264_INCLUDE_H264_H_
1471f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
1571f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#if defined(WEBRTC_IOS) || defined(WEBRTC_MAC)
1671f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
1771f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#include <Availability.h>
1871f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#if (defined(__IPHONE_8_0) &&                            \
1971f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin     __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0) || \
2071f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin    (defined(__MAC_10_8) && __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_10_8)
2171f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#define WEBRTC_VIDEO_TOOLBOX_SUPPORTED 1
2271f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#endif
2371f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
2471f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#endif  // defined(WEBRTC_IOS) || defined(WEBRTC_MAC)
2571f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
262557b86e7648ffebc5781df9f093ca5a84efc219Henrik Kjellander#include "webrtc/modules/video_coding/include/video_codec_interface.h"
2771f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
2871f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chinnamespace webrtc {
2971f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
3071f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chinclass H264Encoder : public VideoEncoder {
3171f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin public:
3271f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin  static H264Encoder* Create();
3371f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin  static bool IsSupported();
3471f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
3571f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin  ~H264Encoder() override {}
3671f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin};
3771f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
3871f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chinclass H264Decoder : public VideoDecoder {
3971f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin public:
4071f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin  static H264Decoder* Create();
4171f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin  static bool IsSupported();
4271f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
4371f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin  ~H264Decoder() override {}
4471f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin};
4571f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
4671f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin}  // namespace webrtc
4771f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin
4871f6f4405c1c5f60097f8d10841378088e78e8b9Zeke Chin#endif  // WEBRTC_MODULES_VIDEO_CODING_CODECS_H264_INCLUDE_H264_H_
49