An open API service indexing awesome lists of open source software.

https://github.com/sdwebimage/libaom-xcode

A wrapper for libaom + Xcode project. Support Carthage && CocoaPods && SwiftPM.
https://github.com/sdwebimage/libaom-xcode

aomdec av1 avif carthage ios macos swiftpm xcode

Last synced: 6 months ago
JSON representation

A wrapper for libaom + Xcode project. Support Carthage && CocoaPods && SwiftPM.

Awesome Lists containing this project

README

          

# libaom + Xcode

[![CI Status](http://img.shields.io/travis/SDWebImage/libaom-Xcode.svg?style=flat)](https://travis-ci.com/SDWebImage/libaom-Xcode)
[![Version](https://img.shields.io/cocoapods/v/libaom.svg?style=flat)](http://cocoapods.org/pods/libaom)
[![License](https://img.shields.io/cocoapods/l/libaom.svg?style=flat)](http://cocoapods.org/pods/libaom)
[![Platform](https://img.shields.io/cocoapods/p/libaom.svg?style=flat)](http://cocoapods.org/pods/libaom)
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/SDWebImage/libaom-Xcode)
[![SwiftPM compatible](https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg)](https://swift.org/package-manager/)

A wrapper for [libaom](https://aomedia.googlesource.com/aom/) + Xcode project.
This enables Carthage && SwiftPM support.

This repo also including the CocoaPods's spec file to use libaom.

## Requirements

+ iOS 9
+ macOS 10.10
+ tvOS 9.0
+ watchOS 2.0

## Note for legacy version

+ v1.0.2 is tagged with upstream `1.0.0-errata1-avif`
+ v1.0.1 && v1.0.0 is tagged with upstream `3563b12b` hash, which used by libheif dependency (no huge difference between `1.0.0-errata1`)

From v2.0.0+, the version match the upstream version.

However, the Xcode (SPM/Carthage/CocoaPods) support, disable the architecture specify assembly code, and use the pure C implementation instead. This because both the lack support for CocoaPods and Xcode NASM compiler.

If you want the best performance for specify architecture, use the pre-build static library in `lib` from [1.0.0 release](https://github.com/SDWebImage/libaom-Xcode/releases/tag/1.0.0). Which use the CMake and NASM with the full assembly optimization.

Example to build with NEON support on arm64 iOS:

```
cd aom
mkdir dist && cd dist
cmake .. -DCMAKE_TOOLCHAIN_FILE=../build/cmake/toolchains/arm64-ios.cmake
make
```

## Installation

### Carthage

libaom is (via this repo) available through [Carthage](https://github.com/Carthage/Carthage).

```
github "SDWebImage/libaom-Xcode"
```

### CocoaPods

libaom is available through [CocoaPods](https://github.com/CocoaPods/CocoaPods).

```
pod 'libaom'
```

### SwiftPM

libaom is available through [Swift Package Manager](https://img.shields.io/badge/SwiftPM-compatible-brightgreen.svg).

```swift
let package = Package(
dependencies: [
.package(url: "https://github.com/SDWebImage/libaom-Xcode", from: "1.0.2")
],
// ...
)
```

## Usage

Use libaom as you would normally, this is just a repo that adds an Xcode proj.

For Swift Package Manager user, it's recommended to use the modular import instead of C headers.

+ Objective-C

```objective-c
@import libaom;
// or if you don't use module
#import
```

+ Swift

```swift
import libaom
```

## License

libaom is available under the [Alliance for Open Media Patent License](https://aomedia.org/license/software-license/).