Skip to content

Commit cfb84d3

Browse files
author
chenliming
committed
update version
1 parent 984bcb8 commit cfb84d3

File tree

370 files changed

+43923
-36
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

370 files changed

+43923
-36
lines changed

LFLiveKit.podspec

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Pod::Spec.new do |s|
33

44
s.name = "LFLiveKit"
5-
s.version = "1.9.5"
5+
s.version = "1.9.6"
66
s.summary = "LaiFeng ios Live. LFLiveKit."
77
s.homepage = "https://github.com/chenliming777"
88
s.license = { :type => "MIT", :file => "LICENSE" }
@@ -18,6 +18,4 @@ Pod::Spec.new do |s|
1818

1919
s.requires_arc = true
2020

21-
s.dependency 'LMGPUImage', '~> 0.1.9'
22-
s.dependency 'pili-librtmp', '~> 1.0.3.1'
2321
end

LFLiveKit.xcodeproj/project.pbxproj

+1,488-4
Large diffs are not rendered by default.

LFLiveKit/Info.plist

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>1.9.5</string>
18+
<string>1.9.6</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

LFLiveKit/Vendor/GPUImage/GLProgram.h

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// This is Jeff LaMarche's GLProgram OpenGL shader wrapper class from his OpenGL ES 2.0 book.
2+
// A description of this can be found at his page on the topic:
3+
// http://iphonedevelopment.blogspot.com/2010/11/opengl-es-20-for-ios-chapter-4.html
4+
// I've extended this to be able to take programs as NSStrings in addition to files, for baked-in shaders
5+
6+
#import <Foundation/Foundation.h>
7+
8+
#if TARGET_IPHONE_SIMULATOR || TARGET_OS_IPHONE
9+
#import <OpenGLES/ES2/gl.h>
10+
#import <OpenGLES/ES2/glext.h>
11+
#else
12+
#import <OpenGL/OpenGL.h>
13+
#import <OpenGL/gl.h>
14+
#endif
15+
16+
@interface GLProgram : NSObject
17+
{
18+
NSMutableArray *attributes;
19+
NSMutableArray *uniforms;
20+
GLuint program,
21+
vertShader,
22+
fragShader;
23+
}
24+
25+
@property(readwrite, nonatomic) BOOL initialized;
26+
@property(readwrite, copy, nonatomic) NSString *vertexShaderLog;
27+
@property(readwrite, copy, nonatomic) NSString *fragmentShaderLog;
28+
@property(readwrite, copy, nonatomic) NSString *programLog;
29+
30+
- (id)initWithVertexShaderString:(NSString *)vShaderString
31+
fragmentShaderString:(NSString *)fShaderString;
32+
- (id)initWithVertexShaderString:(NSString *)vShaderString
33+
fragmentShaderFilename:(NSString *)fShaderFilename;
34+
- (id)initWithVertexShaderFilename:(NSString *)vShaderFilename
35+
fragmentShaderFilename:(NSString *)fShaderFilename;
36+
- (void)addAttribute:(NSString *)attributeName;
37+
- (GLuint)attributeIndex:(NSString *)attributeName;
38+
- (GLuint)uniformIndex:(NSString *)uniformName;
39+
- (BOOL)link;
40+
- (void)use;
41+
- (void)validate;
42+
@end

LFLiveKit/Vendor/GPUImage/GLProgram.m

+236
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,236 @@
1+
// This is Jeff LaMarche's GLProgram OpenGL shader wrapper class from his OpenGL ES 2.0 book.
2+
// A description of this can be found at his page on the topic:
3+
// http://iphonedevelopment.blogspot.com/2010/11/opengl-es-20-for-ios-chapter-4.html
4+
5+
6+
#import "GLProgram.h"
7+
// START:typedefs
8+
#pragma mark Function Pointer Definitions
9+
typedef void (*GLInfoFunction)(GLuint program, GLenum pname, GLint* params);
10+
typedef void (*GLLogFunction) (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
11+
// END:typedefs
12+
#pragma mark -
13+
#pragma mark Private Extension Method Declaration
14+
// START:extension
15+
@interface GLProgram()
16+
17+
- (BOOL)compileShader:(GLuint *)shader
18+
type:(GLenum)type
19+
string:(NSString *)shaderString;
20+
@end
21+
// END:extension
22+
#pragma mark -
23+
24+
@implementation GLProgram
25+
// START:init
26+
27+
@synthesize initialized = _initialized;
28+
29+
- (id)initWithVertexShaderString:(NSString *)vShaderString
30+
fragmentShaderString:(NSString *)fShaderString;
31+
{
32+
if ((self = [super init]))
33+
{
34+
_initialized = NO;
35+
36+
attributes = [[NSMutableArray alloc] init];
37+
uniforms = [[NSMutableArray alloc] init];
38+
program = glCreateProgram();
39+
40+
if (![self compileShader:&vertShader
41+
type:GL_VERTEX_SHADER
42+
string:vShaderString])
43+
{
44+
NSLog(@"Failed to compile vertex shader");
45+
}
46+
47+
// Create and compile fragment shader
48+
if (![self compileShader:&fragShader
49+
type:GL_FRAGMENT_SHADER
50+
string:fShaderString])
51+
{
52+
NSLog(@"Failed to compile fragment shader");
53+
}
54+
55+
glAttachShader(program, vertShader);
56+
glAttachShader(program, fragShader);
57+
}
58+
59+
return self;
60+
}
61+
62+
- (id)initWithVertexShaderString:(NSString *)vShaderString
63+
fragmentShaderFilename:(NSString *)fShaderFilename;
64+
{
65+
NSString *fragShaderPathname = [[NSBundle mainBundle] pathForResource:fShaderFilename ofType:@"fsh"];
66+
NSString *fragmentShaderString = [NSString stringWithContentsOfFile:fragShaderPathname encoding:NSUTF8StringEncoding error:nil];
67+
68+
if ((self = [self initWithVertexShaderString:vShaderString fragmentShaderString:fragmentShaderString]))
69+
{
70+
}
71+
72+
return self;
73+
}
74+
75+
- (id)initWithVertexShaderFilename:(NSString *)vShaderFilename
76+
fragmentShaderFilename:(NSString *)fShaderFilename;
77+
{
78+
NSString *vertShaderPathname = [[NSBundle mainBundle] pathForResource:vShaderFilename ofType:@"vsh"];
79+
NSString *vertexShaderString = [NSString stringWithContentsOfFile:vertShaderPathname encoding:NSUTF8StringEncoding error:nil];
80+
81+
NSString *fragShaderPathname = [[NSBundle mainBundle] pathForResource:fShaderFilename ofType:@"fsh"];
82+
NSString *fragmentShaderString = [NSString stringWithContentsOfFile:fragShaderPathname encoding:NSUTF8StringEncoding error:nil];
83+
84+
if ((self = [self initWithVertexShaderString:vertexShaderString fragmentShaderString:fragmentShaderString]))
85+
{
86+
}
87+
88+
return self;
89+
}
90+
// END:init
91+
// START:compile
92+
- (BOOL)compileShader:(GLuint *)shader
93+
type:(GLenum)type
94+
string:(NSString *)shaderString
95+
{
96+
// CFAbsoluteTime startTime = CFAbsoluteTimeGetCurrent();
97+
98+
GLint status;
99+
const GLchar *source;
100+
101+
source =
102+
(GLchar *)[shaderString UTF8String];
103+
if (!source)
104+
{
105+
NSLog(@"Failed to load vertex shader");
106+
return NO;
107+
}
108+
109+
*shader = glCreateShader(type);
110+
glShaderSource(*shader, 1, &source, NULL);
111+
glCompileShader(*shader);
112+
113+
glGetShaderiv(*shader, GL_COMPILE_STATUS, &status);
114+
115+
if (status != GL_TRUE)
116+
{
117+
GLint logLength;
118+
glGetShaderiv(*shader, GL_INFO_LOG_LENGTH, &logLength);
119+
if (logLength > 0)
120+
{
121+
GLchar *log = (GLchar *)malloc(logLength);
122+
glGetShaderInfoLog(*shader, logLength, &logLength, log);
123+
if (shader == &vertShader)
124+
{
125+
self.vertexShaderLog = [NSString stringWithFormat:@"%s", log];
126+
}
127+
else
128+
{
129+
self.fragmentShaderLog = [NSString stringWithFormat:@"%s", log];
130+
}
131+
132+
free(log);
133+
}
134+
}
135+
136+
// CFAbsoluteTime linkTime = (CFAbsoluteTimeGetCurrent() - startTime);
137+
// NSLog(@"Compiled in %f ms", linkTime * 1000.0);
138+
139+
return status == GL_TRUE;
140+
}
141+
// END:compile
142+
#pragma mark -
143+
// START:addattribute
144+
- (void)addAttribute:(NSString *)attributeName
145+
{
146+
if (![attributes containsObject:attributeName])
147+
{
148+
[attributes addObject:attributeName];
149+
glBindAttribLocation(program,
150+
(GLuint)[attributes indexOfObject:attributeName],
151+
[attributeName UTF8String]);
152+
}
153+
}
154+
// END:addattribute
155+
// START:indexmethods
156+
- (GLuint)attributeIndex:(NSString *)attributeName
157+
{
158+
return (GLuint)[attributes indexOfObject:attributeName];
159+
}
160+
- (GLuint)uniformIndex:(NSString *)uniformName
161+
{
162+
return glGetUniformLocation(program, [uniformName UTF8String]);
163+
}
164+
// END:indexmethods
165+
#pragma mark -
166+
// START:link
167+
- (BOOL)link
168+
{
169+
// CFAbsoluteTime startTime = CFAbsoluteTimeGetCurrent();
170+
171+
GLint status;
172+
173+
glLinkProgram(program);
174+
175+
glGetProgramiv(program, GL_LINK_STATUS, &status);
176+
if (status == GL_FALSE)
177+
return NO;
178+
179+
if (vertShader)
180+
{
181+
glDeleteShader(vertShader);
182+
vertShader = 0;
183+
}
184+
if (fragShader)
185+
{
186+
glDeleteShader(fragShader);
187+
fragShader = 0;
188+
}
189+
190+
self.initialized = YES;
191+
192+
// CFAbsoluteTime linkTime = (CFAbsoluteTimeGetCurrent() - startTime);
193+
// NSLog(@"Linked in %f ms", linkTime * 1000.0);
194+
195+
return YES;
196+
}
197+
// END:link
198+
// START:use
199+
- (void)use
200+
{
201+
glUseProgram(program);
202+
}
203+
// END:use
204+
#pragma mark -
205+
206+
- (void)validate;
207+
{
208+
GLint logLength;
209+
210+
glValidateProgram(program);
211+
glGetProgramiv(program, GL_INFO_LOG_LENGTH, &logLength);
212+
if (logLength > 0)
213+
{
214+
GLchar *log = (GLchar *)malloc(logLength);
215+
glGetProgramInfoLog(program, logLength, &logLength, log);
216+
self.programLog = [NSString stringWithFormat:@"%s", log];
217+
free(log);
218+
}
219+
}
220+
221+
#pragma mark -
222+
// START:dealloc
223+
- (void)dealloc
224+
{
225+
if (vertShader)
226+
glDeleteShader(vertShader);
227+
228+
if (fragShader)
229+
glDeleteShader(fragShader);
230+
231+
if (program)
232+
glDeleteProgram(program);
233+
234+
}
235+
// END:dealloc
236+
@end

0 commit comments

Comments
 (0)