Skip to content

Instantly share code, notes, and snippets.

View omarojo's full-sized avatar

Omar Juarez omarojo

View GitHub Profile
//self.inputVideoData is an instanace of RawDataOutput
if let rawData = self.inputVideoData {
rawData.dataAvailableCallbackWithSize = {[weak self] dataArray, frameSize in
let numberOfBytesPerRow = frameSize.width;
let data = Data.init(bytes: dataArray)
data.withUnsafeBytes { (u8Ptr: UnsafePointer<UInt8>) -> Void in
@omarojo
omarojo / VideoMediaInput.swift
Last active November 11, 2022 06:17
How to use MTAudioProcessingTap in Swift 4.2
//
// VideoMediaInput.swift
// GenerateMetal-iOS
//
// Created by Omar Juarez Ortiz on 2018-11-28.
// Copyright © 2018 All rights reserved.
//
import Foundation
import UIKit
@omarojo
omarojo / imageToPixelBuffer.swift
Created February 23, 2017 23:02
Image To CVPixelBuffer in Swift
var thePixelBuffer : CVPixelBuffer?
let testImage : UIImage = UIImage.init(named: "twdEnds.png")!
self.thePixelBuffer = self.pixelBufferFromImage(image: testImage)
func pixelBufferFromImage(image: UIImage) -> CVPixelBuffer {
@omarojo
omarojo / imageToPixelBuffer.m
Last active July 11, 2022 08:57
Image to CVPixelBuffer OBJC
let myPixelBuffy = [self pixelBufferFromCGImage:[[UIImage imageNamed:@"myImage.png"] CGImage]];
- (CVPixelBufferRef)pixelBufferFromCGImage:(CGImageRef)image
{
CGSize frameSize = CGSizeMake(CGImageGetWidth(image), CGImageGetHeight(image));
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], kCVPixelBufferCGImageCompatibilityKey,
[NSNumber numberWithBool:YES], kCVPixelBufferCGBitmapContextCompatibilityKey,
nil];
//
// G8Shaders.metal
// GenerateMetal-iOS
//
// Created by Omar Juarez Ortiz on 2019-02-25.
// Copyright © 2019 Generate Software Inc. All rights reserved.
//
#include <metal_stdlib>
#include "MTIShaderLib.h"
@omarojo
omarojo / G8AspectRatio.swift
Created January 29, 2020 02:05
MetalPetal Aspect Ratio Cropping
//
// G8AspectRatio.swift
// GenerateMetal-iOS
//
// Created by Omar Juarez Ortiz on 2019-12-12.
// Copyright © 2019 Generate Software Inc. All rights reserved.
//
import Foundation
import MetalPetal
@omarojo
omarojo / G8AppleLogin.swift
Last active April 8, 2020 10:55
Apple Login
import Foundation
import AuthenticationServices
@available(iOS 13.0, *)
class G8AppleLogin: NSObject{
var authController: ASAuthorizationController!
override init(){
super.init()
@omarojo
omarojo / Pause.swift
Created May 4, 2017 10:32
Pause Image for LF Streamer
var pausePixelBuffer = CVPixelBuffer?
func pauseTheStream(){
//Create your Pause Image
createOncePixelBuffer()
//Push your Pause Image into the stream
pushPixelBufferToStream(self.pausePixelBuffer)
//Pause the stream, the video should stop in the last frame, which is your image
rtmpStream.togglePause()
}
@omarojo
omarojo / script.js
Created June 14, 2018 05:42
Animate an Object
// ----------- API -------------
const D = require('Diagnostics');
const Scene = require('Scene');
const FT = require('FaceTracking');
const FGestures = require('FaceGestures');
const A = require('Animation');
const R = require('Reactive');
const Time = require('Time');
var objToAnimate = Scene.root.find("plane0");
@omarojo
omarojo / ContrastShader.fsh
Created March 27, 2018 22:08
Contrast Shader (GPUImage)
varying vec2 textureCoordinate;
uniform sampler2D inputImageTexture;
uniform float contrast;
void main()
{
vec4 textureColor = texture2D(inputImageTexture, textureCoordinate);
gl_FragColor = vec4(((textureColor.rgb - vec3(0.5)) * contrast + vec3(0.5)), textureColor.w);