之前在iOS里写过一个支持x86_64的支持rtsp连接静态库,发现在mac上运行不了,于是以为ios用的x86_64静态库和mac用的不通用。
于是去百度,去谷歌找适合mac的ffmpeg静态库编译方法,搞了三天没结果。
偶然一朋友说起它们是通用的,于是把步骤一再跑了一边,发现提示错误:
in /Users/wutong/Desktop/project/rtsptest/librtspstatic.a(Rtsp_instance.o), building for OSX, but linking in object file built for iOS, for architecture x86_64
百度了这个错误信息,发现这是xcode7的一个坑。
于是去网上下载了支持ios x86_64的ffmpeg静态库,直接搞定了。
总结:
1、ffmpeg用c语言实现,.m文件后缀不要改。
2、在xcode7上编译的支持x86_64的静态库,不能和mac通用。(要通用就别用xcode7编译)。
3、在项目连接这几个文件: libz.tbd、libiconv.tbd、libicucore.tbd(最后一个不确定需不需要)
关于caopengllayer
1、self.layer addSublayer 之前,执行
self.wantsLayer = YES;
self.layer.geometryFlipped = YES;
2、nsview的背景颜色:
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
// Drawing code here.
NSLog(@"drawRect");
[_backColor set];
NSRectFill([self bounds]);
}
3、nscolor转nscolorref
[[NSColor redcolor] cgcolor];
4、绝对不要在主线程里面调用[layer displayyuv];