- 博客(6)
- 资源 (3)
- 收藏
- 关注
原创 动态视频流切换的处理策略
问题背景动态视频流切换是指在视频播放过程中,将输入动态地从一个视频流切换到另一个视频流。具体场景包括:切换播放画质 插播广告(有多个广告打包插播) 电视剧连续播放 多个点播节目拼接为虚拟直播频道 用户切换播放节目动态切换播放视频流,需要做到无缓冲、不闪黑屏,声音连续。方案设计因为存在插播,直观上需要通过树形结构来描述视频流的关系,但是这样做的复杂度很高,需要寻找简单的模型...
2019-01-29 10:47:21 2131
原创 利用 leakcanary 构建离线的内存泄漏检测
需求分析LeakCanary是一个Java内存泄露检测工具。它能十分方便的检测出项目中的内存泄露,同时提供非常友好的通知提示。但是在实际运用中,LeakCanary只能够用在调试版本中,不能够在发布版本中进行泄露测试。LeakCanary集成了haha库,来分析内存dump文件,这个代码量还是蛮大的,会导致应用发布版本体积增大不少。 LeakCanary的泄漏界面很好,但是肯定不能向...
2019-01-28 13:54:04 446
原创 实时通知队列的设计与实现
问题分析在程序设计中,我们经常遇到这样的问题:有一个模块,外部多线程访问,其内部也有多个工作线程;外部调用和内部工作都可能产生一系列事件(包括状态变化),这些都需要“有序”并且“实时”的通知到外部。总结一下基本需求:多路,事件来源于多个线程 有序,事件通知要严格保持其产生的顺序 实时,外部收到状态变化(一种事件)通知时,可以假定模块仍然处在该状态 串行,外部不需要在回调方法中...
2019-01-25 16:06:09 1281
原创 SurfaceHolder/Surface 与 MediaPlayer 异步问题探讨
SurfaceHolder 在主线程通知 Surface 的创建、销毁、变化,一般此时将 Surface 设置给 MediaPlayer,这没有问题。本文讨论的场景是在另一个线程异步的给MediaPlayer设置Surface会出现什么问题,如果想用独立的状态机线程与 MediaPlayer 协作,这将是一个确实存在的问题。异步设置 Surface 存在 Surface失效问题。考虑S...
2019-01-24 12:24:37 580
原创 Android Surface 使用总结
1、Surface的本质1.1、BufferQueueAndroid通过BufferQueue管理图像图层数据的跨进程传输。BufferQueue的两端分别是图像数据的生产者和消费者。1.2、GraphicBufferGraphicBuffer(简称Buffer)是BufferQueue传递的数据,一个Buffer包含一帧图像,Buffer由gralloc分配和回收。根据需求Buf...
2019-01-24 11:39:13 7484 2
原创 机器视觉技术概况
1、问题场景1.1、图像分类用分类器,确定图像所属的分类,如汽车,杯子等。1.2、图像检测检测图像中存在的物体,比如人脸检测。1.3、图像识别识别物体的特征信息,如人脸识别,文字识别。2、经典理论2.1、常用图像处理手段灰度处理,机器视觉的算法一般只处理灰度图像,色彩对处理结果影响不大 二值化,在灰度图像基础上,分离前景与背景 灰度直方图,用统计方法对比图像...
2019-01-24 10:14:23 661
WinRT 环境下缺失 Windows API 模拟实现
2013-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人