分析完应用上层的视频采集、渲染、编码之后,原本我是打算把完整的 WebRTC 带到 Flutter 的世界里,形成 FlutterRTC 的,但后来仔细想想,这件事没多大意思,做出来了也不能产生多大价值,所以我决定调头深入底层。
本篇算是真正深入底层的第一篇,让我们深究一下之前没有深究的话题:视频数据 native 层之旅,以及 WebRTC 对视频数据的处理。最近对 iOS 上层的分析也不算白费,毕竟在 iOS 平台深入底层,无论是编译还是调试都更方便。
继续阅读 »
xmake-vscode插件深度集成了xmake和vscode,提供方便快速的跨平台c/c++构建。
此版本为第一个正式版本,相比之前发布的体验版,新增了两大新特性:
快速宏记录和回放
编译错误解析和问题列表
注:使用此插件,需要先安装xmake,更多关于xmake的使用说明,请阅读:文档手册,项目源码:Github。
关于xmake-vscode的更多特性介绍,请见下文,关于xmake-vscode插件的详细过程,请参考文章:xmake-vscode插件开发过程记录
特性
语法色彩高亮
API输入自动提示和补全
状态栏快捷工具
完整的命令列表
快速配置支持
构建和安装
运行和调试
快速宏记录和回放
编译错误解
继续阅读 »
写在前面
前几天工作时遇到了一个匪夷所思的问题。经过几次尝试后问题得以解决,但问题产生的原因却仍令人费解。查找 SO 无果,我决定翻看 Python 的源码。断断续续地研究了几天,终于恍然大悟。撰此文以记。
more
本文环境:
Ubuntu 16.04 (64 bit)
Python 3.6.2
使用的 C 源码可以从 Python 官网 获取。
起因
工作时用到了 celery 作为异步任务队列,为方便调试,我写了一个脚本用以启动/关闭 celery 主进程。代码简化后如下:
```python
import sys
import subprocess
...
celery_process = subproces
继续阅读 »