Skip to content

Commit

Permalink
Publish v4.0.4 (#39)
Browse files Browse the repository at this point in the history
* 1. fixed sdk bug  2. fixed record video demo bug

* 1. update documents
  • Loading branch information
WangYng authored and aiyaapp committed Jan 8, 2018
1 parent f0941a4 commit 5cbb98c
Show file tree
Hide file tree
Showing 10 changed files with 282 additions and 30 deletions.
Binary file modified AiyaEffectSDK/AyEffect/libaysdk.a
Binary file not shown.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
宝宝特效 AiyaEffectsSDK 涵盖Android、iOS两个平台,基于自主研发的人脸识别模块,作为一款动态贴纸和动画特效高效渲染的解决方案

### 1.1 版本信息
最新版本 : v4.0.0 [更多版本信息](doc/versionHistory.md)
最新版本 : v4.0.4 [更多版本信息](doc/versionHistory.md)

### 1.2 集成示例
* [集成到金山云示例](https://github.com/aiyaapp/AiyaEffectsWithKSVCIOS)
Expand Down
Binary file not shown.
6 changes: 5 additions & 1 deletion demo/AiyaVideoRecord/AiyaVideoRecord/Camera.m
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,9 @@ - (void)configSession{
[self.session addOutput:self.audioOutput];
}

if ([self.session canSetSessionPreset:AVCaptureSessionPreset1280x720]){
if ([self.session canSetSessionPreset:AVCaptureSessionPreset1920x1080]){
self.session.sessionPreset = AVCaptureSessionPreset1920x1080;
}else if ([self.session canSetSessionPreset:AVCaptureSessionPreset1280x720]){
self.session.sessionPreset = AVCaptureSessionPreset1280x720;
}else if ([self.session canSetSessionPreset:AVCaptureSessionPreset640x480]){
self.session.sessionPreset = AVCaptureSessionPreset640x480;
Expand All @@ -117,6 +119,8 @@ - (void)configSession{
- (void)startCapture{
if (![self.session isRunning]) {
[self.session startRunning];

[self focusAtPoint:CGPointMake(0.5f, 0.5f)];
}
}

Expand Down
13 changes: 9 additions & 4 deletions demo/AiyaVideoRecord/AiyaVideoRecord/MediaWriter.m
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#import <MobileCoreServices/UTCoreTypes.h>

@interface MediaWriter (){
dispatch_queue_t writerQueue;
dispatch_queue_t writerQueue; // AVAssetWriter 不能并行调用, 会出错.

CMFormatDescriptionRef _outputFormatDescription;
}
Expand Down Expand Up @@ -198,8 +198,10 @@ - (void)writeAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer{
}

if (!self.audioAlreadySetup){
self.audioAlreadySetup = [self setupAudioWithSettings:sampleBuffer];

dispatch_sync(writerQueue, ^{
self.audioAlreadySetup = [self setupAudioWithSettings:sampleBuffer];
});

if (!self.audioAlreadySetup) {
NSLog(@"设置音频参数失败");
return;
Expand Down Expand Up @@ -281,7 +283,10 @@ - (void)writeVideoPixelBuffer:(CVPixelBufferRef)pixelBuffer time:(CMTime)frameTi
}

if (!self.videoAlreadySetup){
self.videoAlreadySetup = [self setupVideoWithSettings:pixelBuffer];
dispatch_sync(writerQueue, ^{
self.videoAlreadySetup = [self setupVideoWithSettings:pixelBuffer];
});

if (!self.videoAlreadySetup){
NSLog(@"设置视频参数失败");
return;
Expand Down
2 changes: 1 addition & 1 deletion demo/AiyaVideoRecord/AiyaVideoRecord/OpenglHelper.m
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ - (BOOL)compileShader:(GLuint *)shader type:(GLenum)type string:(const NSString
- (GLuint)createProgramWithVert:(const NSString *)vShaderString frag:(const NSString *)fShaderString{

GLuint program = glCreateProgram();
GLuint vertShader, fragShader;
GLuint vertShader = 0, fragShader = 0;
if (![self compileShader:&vertShader
type:GL_VERTEX_SHADER
string:vShaderString]){
Expand Down
5 changes: 5 additions & 0 deletions demo/AiyaVideoRecord/AiyaVideoRecord/Preview.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,9 @@
*/
- (void)render:(CVPixelBufferRef)CVPixelBuffer;

/**
停止渲染
*/
@property (nonatomic, assign) BOOL renderSuspended;

@end
22 changes: 19 additions & 3 deletions demo/AiyaVideoRecord/AiyaVideoRecord/Preview.m
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@ - (void)initGL{

}

- (void)setRenderSuspended:(BOOL)renderSuspended{
runSynchronouslyOnOpenglHelperContextQueue(^{
_renderSuspended = renderSuspended;
});
}

- (void)render:(CVPixelBufferRef)pixelBuffer{
runSynchronouslyOnOpenglHelperContextQueue(^{
[glHelper useAsCurrentContext];
Expand Down Expand Up @@ -190,7 +196,7 @@ - (void)render:(CVPixelBufferRef)pixelBuffer{
glBindFramebuffer(GL_FRAMEBUFFER, displayFrameBuffer);
glViewport(0, 0, backingWidth, backingHeight);

glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

glUseProgram(program);
Expand Down Expand Up @@ -255,7 +261,12 @@ - (void)render:(CVPixelBufferRef)pixelBuffer{
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
[[glHelper context] presentRenderbuffer:GL_RENDERBUFFER];

if (!self.renderSuspended) {
[[glHelper context] presentRenderbuffer:GL_RENDERBUFFER];
} else {
NSLog(@"render has stoped");
}
// ----------显示纹理数据到视图中 绘制结束----------
});
}
Expand Down Expand Up @@ -316,7 +327,12 @@ - (void)createDisplayFramebuffer;{
glGenRenderbuffers(1, &renderbuffer);
glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);

[[glHelper context] renderbufferStorage:GL_RENDERBUFFER fromDrawable:(CAEAGLLayer *)self.layer];
__block CAEAGLLayer *layer;
dispatch_sync(dispatch_get_main_queue(), ^{
layer = (CAEAGLLayer *)self.layer;
});

[[glHelper context] renderbufferStorage:GL_RENDERBUFFER fromDrawable:layer];

glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &backingWidth);
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &backingHeight);
Expand Down
Loading

0 comments on commit 5cbb98c

Please sign in to comment.