zoukankan      html  css  js  c++  java
  • iOS VideoToolbox硬编H.265(HEVC)H.264(AVC):4 同步编码

    本文档描述Video Toolbox实现同步编码的办法。

    Video Toolbox在头文件描述了编码方式为异步,实际开发中也确实为异步。

    This function may be called asynchronously, on a different thread from the one that calls VTCompressionSessionEncodeFrame.

    然而,有些场合,我们希望使用同步处理。使用如pthread_mutex_t、dispatch_semaphore_t等方式在VTCompressionSessionEncodeFrame与编码回调函数中作线程同步并不理想,甚至导致死锁。GCD串行队列也并不像苹果说的那么好用,特别是预览播放器下快速接收网络数据包并解码,会堆积Block,性能反而没pthread好。

    NSRecursiveLock、OSSpinLockLock、Barrier等方式我没尝试。

    不过,我用另一个方式实现了同步编码,强制Video Toolbox发射出规定时间内的缓冲区的数据,配合semaphore即可。



    文/熊皮皮(简书作者)
    原文链接:http://www.jianshu.com/p/0bb7e30e57d8

  • 相关阅读:
    收藏文章
    Python __func__
    Python 可变对象 & 不可变对象
    Kafka SASL ACL配置踩坑总结
    C++ 传递动态内存
    负数取反,单目运算“-”的运算
    C++重载运算符的理解
    c++ 随机函数用法
    static变量
    路由汇聚及其相关计算
  • 原文地址:https://www.cnblogs.com/isItOk/p/5964636.html
Copyright © 2011-2022 走看看