IOS Video Tool Box后台解码失败

---恢复内容开始---

1、VideoToolBox硬件解码H264流的过程中,如果App从前台按Home键进入后台,会立马产生一个-12903的错误

   如果这个时候重置解码器,继续解码,会遇到 -12911的错误 ,-12911代表一种数据错误

kVTPropertyNotSupportedErr    = -12900,
kVTPropertyReadOnlyErr     = -12901,
kVTParameterErr       = -12902,
kVTInvalidSessionErr     = -12903,
kVTAllocationFailedErr     = -12904,
kVTPixelTransferNotSupportedErr   = -12905, // c.f. -8961
kVTCouldNotFindVideoDecoderErr   = -12906,
kVTCouldNotCreateInstanceErr   = -12907,
kVTCouldNotFindVideoEncoderErr   = -12908,
kVTVideoDecoderBadDataErr    = -12909, // c.f. -8969
kVTVideoDecoderUnsupportedDataFormatErr = -12910, // c.f. -8970
kVTVideoDecoderMalfunctionErr   = -12911, // c.f. -8960

  

当继续遇到I帧以后,后续的解码将会正常,也就意味着,解码器在后台可以工作

2、硬解过程中从后台切换到前台,工作状态不受影响

测试环境:iphone5s 10.2

时间: 2024-12-28 00:52:38

IOS Video Tool Box后台解码失败的相关文章

iOS 程序退到后台,如何继续执行任务

程序从前台退到后,将执行程序的委托方法. - (void)applicationDidEnterBackground:(UIApplication *)application { } 问题: 当应用被送到后台,主线程就会被暂停.用 NSThread 的 detachNewThreadSelector:toTar get:withObject:类方法创建的线程也被挂起. 场景: 应用从前台退到后台 程序执行代理方法 applicationDidEnterBackground.这时候,我们只有很短的

windows8安装docker(tool box)

打开 https://store.docker.com/editions/community/docker-ce-desktop-windows 下载安装包文件 双击安装 非Win 10不能安装 打开 https://www.docker.com/products/docker-toolbox 下载docker-toolbox 双击安装 一路Next, 改安装路径,All selected, Run 失败.看来要Disable Hyper-V. 取消 Hyper-V功能,正常来说,安装了tool

(原)从mp4,flv文件中解析出h264和aac,送解码器解码失败

转载请注明出处:http://www.cnblogs.com/lihaiping/p/5285166.html 今天在做本地文件解码测试,发现从mp4,flv文件中读出来的帧数据,h264和aac帧直接送解码器解码,发现解码失败,但文件放在pc上用ffplay和vlc却都能播放,而且这个测试的视频文件是用ffmpeg.exe进行转码出来的,所以应该不存在解码不了的问题,那问题在哪呢? 百度了下,网上有人说mp4文件里面封装的h264有两种格式:h264和avc1: 而这两种格式的差别是: AVC

iOS申请持续的后台时间

iOS申请持续的后台时间 分类:IOS开发相关 (877)  (0) 由于苹果的后台机制,当我们按下home键的时候,所有线程包括主线程的任务都会被挂起,一些资源比如socket也会被系统回收,会导致很多问题,比如一个很重要的资源中断下载,或者定时器方法被暂停等等. 苹果在4.0以后提供了一种申请后台时间的机制: - (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void (^)(void))handl

使用多字节字符集的跨平台(PC、Android、IOS、WP)编码/解码方法

随着移动端的发展,跨平台已成为通讯架构设计的重要考虑因素,PC.Android.IOS.WP等跨多平台间的数据通讯,必然要解决字符编码/解码的问题. 多字节字符集MBCS不是跨平台的首选字符集,面向跨平台.国际化的推荐字符集肯定是UNICODE. 写VC的人都知道,在以前VC++6.0中默认的字符集是多字节字符集,而VS2005及以后默认的字符集是Unicode,VS2013中默认不再对多字节字符串进行支持. 但对很多较早的服务端项目,依然使用的是多字节字符集,不过使用多字节字符集依然可以实现跨

遇到一个json解码失败的问题

今日批量导入游戏, 从别人接口拉去的字符串json_decode总是失败, 但是把log里面记录的解码失败的字符串copy出来单独解析,却可以成功. 排除了是字符编码的问题后, 还是不行, 百思不得其解. 只好二进制对比, 把接收到buf和我打印到log对比, 发现还真存在一些差异 分析:一个一个字节对比, 发现从第373个字节开始不匹配. 一个是9=>\t, 一个是32对应空格.373 not equal, org:9 , new:32 , 原来, 如果字符串中含有\t字符, 就会解码失败.

iOS解决应用进入后台后计时器和位置更新停止的问题

由于iOS系统为"伪后台"运行模式,当按下HOME键时,如程序不做任何操作,应用会有5秒的执行缓冲时间,随机程序被挂起,所有任务终端,包括计时器和位置更新等操作,但程序打开后台模式开关后,部分任务可以再后台执行,如音频,定位,蓝牙,下载,VOIP,即便如此,程序的后台运行最多可以延长594秒(大概是10分钟).不幸的是,程序在声明后台模式后很有可能在app上架时被拒.基于此,我研究出了不用申明后台模式就能让计时器和定位在app进入前台时继续运行的方法. 实现原理如下: 利用iOS的通知

ios实现程序切入后台,实现后台任务

- (void)applicationDidEnterBackground:(UIApplication *)application { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in

关于iOS中用AudioFile相关API解码或播放AAC_HE_V2时只能识别单声首22.05k采样率的问题

关于iOS中用AudioFile相关API解码或播放AAC_HE_V2时只能识别单声首22.05k采样率的问题 在官方AQPlayer Demo 和 aqofflinerender中,都用了AudioFile相关的API来读取音频文件,大部分情况下,都是没问题的.但在读取或播放AAC_HE_V2格式音频时,会出现只能把原本双声道44100采样率的文件当成单声道22050采样来读取的问题. 在调用AudioFileGetProperty用 kAudioFilePropertyDataFormat参