Add the initial libyuv support

The main benefit of libyuv, apart from shortening the video pipeline, is quite noticeable latency and CPU usage decrease due to various assembler/SIMD optimizations of the library. However, there is a drawback for macOS systems: libyuv cannot be downloaded as a compiled library and can only be built from the source, which means we should include a cropped source code of the library (~10K LoC) into the app or rise the complexity of macOS dev and run toolchains. The main target system -- Linux, and Windows will use compiled lib from the package managers and macOS will use the lib included as a shortened source-code.

Building the app with the no_libyuv tag will force it to use libyuv from the provided source files.
This commit is contained in:
Sergey Stepanov 2023-10-04 15:14:31 +03:00 committed by sergystepanov
parent 072b674fb1
commit b1b33713d6
73 changed files with 12017 additions and 1543 deletions

17
test/test.go Normal file
View file

@ -0,0 +1,17 @@
package test
import (
"os"
"path"
"runtime"
)
// runs tests from the root dir when imported
func init() {
_, filename, _, _ := runtime.Caller(0)
dir := path.Join(path.Dir(filename), "..")
if err := os.Chdir(dir); err != nil {
panic(err)
}
}

View file

Binary file not shown.