【引用】iOS ARC

本文引用自勇者之尊《iOS ARC》











2011-12-01 10:47:14|  分类: 11月






ARC工作原理是在编译程序的时候由xCode将内存操作的代码(如:retain,release 和 autorelease)自动添加到需要的位置。

ARC 只能在iOS4 和iOS5上使用,weak refrences 只能在iOS5上使用,并且只能是工程在ARC管理内存的时候才能用。

老版本的工程是可以转换成使用ARC的工程,转换规则包括:

        1.去掉所有的retain,release,autorelease

        2.把NSAutoRelease替换成@autoreleasepool{}块

        3.把assign的属性变为weak

使用ARC的一些强制规定

        1.不能直接调用dealloc方法,不能调用retain,release,autorelease,reraubCount方法,包括@selector(retain)的方式也不行

        2.截图租户事故宣布dealloc方法来管理一些资源,但不能用来释放实例变量,也不能在dealloc方法里面去掉[super dealloc]方法,在ARC下父类的dealloc同样由编译器来自动完成

        3.Core Foundation类型的对象任然可以用CFRetain,CFRelease这些方法

        4.不能在使用NSAllocateObject和NSDeallocateObject对象

        5.不能在c结构体中使用对象指针,如果有类似功能可以创建一个Objective-c类来管理这些对象

        6.在id和void *之间没有简便的转换方法,同样在Objective-c和core Foundation类型之间的转换都需要使用编译器制定的转换函数

        7.不能再使用NSAutoreleasePool对象,ARC提供了@autoreleasepool块来代替它,这样更加有效率

        8.不能使用内存存储区(不能再使用NSZone)

        9.不能以new为开头给一个属性命名

        10.声明outlet时一般应当使用weak,除了对StoryBoard 这样nib中间的顶层对象要用strong

        11.weak 相当于老版本的assign,strong相当于retain

对工程中的单个文件制定不使用ARC的方法:在targets的build phases选项下Compile Sources下选择要不使用arc编译的文件,双击它,输入-fno-objc-arc即可
rk3588 下使用v4l2 采集摄像头,然后使用 mpp 压缩成 h264 最后用rtsp 输出流媒体,个人原创,学习v4l2, mpp 压缩, rtsp 流媒体可以参考学习,已工程使用,分辨率自动支持不完善,有时间再改优化在现代数字媒体处理领域,rk3588处理器由于其强大的性能和高集成度,已成为众多开发者和制造商的首选。rk3588是一块高性能的系统级芯片(SoC),广泛应用于智能电视、平板电脑、工业控制等多种场景。本项目主要探讨了如何在rk3588平台上,通过v4l2接口采集摄像头的图像数据,再利用MPP(Media Processing Platform,多媒体处理平台)将其压缩成h264格式的视频流,并最终通过RTSP(Real Time Streaming Protocol,实时流媒体传输协议)实现流媒体的输出。v4l2是Linux内核中用于视频输入输出的设备驱动架构,它是Video4Linux的第二版。v4l2提供了一套标准的编程接口,让应用程序能够访问和控制摄像头等视频捕获设备。在这个项目中,v4l2的作用是作为视频数据采集的接口,把摄像头捕获到的原始图像数据读取出来。MPP是Rockchip公司为RK系列芯片开发的一套多媒体处理方案,它能在硬件层面上实现对多媒体数据的编解码处理。在本项目中,MPP的主要工作是接收来自v4l2的原始视频数据,并将这些数据压缩编码成h264格式。h264是一种广泛使用的视频压缩标准,具有高压缩比和良好的视频质量,非常适合作为网络传输的视频格式。RTSP是一种网络控制协议,用来控制音频和视频流的点播,允许像播放、暂停、停止等控制,因此它经常被用于流媒体服务中。项目最后通过RTSP协议输出压缩后的视频流,使用户可以通过网络实时观看视频内容。该工程的一个主要亮点是它支持自动分辨率调整。这意味着摄像头采集的视频数据可以自动适应不同的输出需求,无需手动设置,极大地方便了用户使用。然而,开发者也提到目前分辨率的自动支持还不完善,存在一些兼容性和稳定性方面的问题,因此计划未来会进一步优化和改进。整个项目是一个典型的多媒体数据处理流程,从视频数据的采集、处理到传输,覆盖了多媒体应用的多个关键环节。对于学习和掌握v4l2、MPP压缩技术和RTSP流媒体传输的开发者来说,该项目的代码和工程实践可以提供非常宝贵的参考价值。同时,由于它已经应用于实际工程,因此项目的成熟度和实用性也得到了验证。由于该项目还处于开发和完善阶段,它也给开发者留下了一定的改进空间。例如,对分辨率自动支持的完善,以及可能的性能优化等,都是值得进一步研究的方向。对于那些希望在rk3588平台上开发流媒体服务的开发者来说,该项目无疑是一个非常值得研究的案例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值