自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (5)
  • 收藏
  • 关注

原创 从零完成智能指针

写C/C++程序常常苦恼于内存的释放管理,需要程序开发人员自己去管理,拥有内存控制权限的同时也带来了很多头疼的释放操作,从而导致内存的泄露。那到底有哪些“不正规”操作导致了内存泄漏呢:new了一个对象忘记delete的 delete后忘记将指针置为NULL的 异常或者中断(程序退出)发生在delete之前的 可见new delete需要耗费程序开发人员不...

2019-07-16 23:54:24 284 3

原创 安卓MediaPlayer源码跟读解析

简介: 安卓通过MediaPlayer这个类提供了一整套接口呈现给给客户实现视音频的播放。可是凡事必究其根,我们今天就来看看安卓的MediaPlayer框架(基于Android 8.0)究竟是怎么实现的。因为框架层全是C/C++代码,建议读者拥有相关基础,没有也没关系,都能看懂。概要: 先给出网上扒的MediaPlayer状态图,MediaPlayer常用...

2019-06-22 11:39:58 2928 3

原创 安卓源码消息机制----AMessage,ALooper,AHandler

在安卓底层框架中,大量使用了AMessage,ALopper,AHandler来实现消息循环处理机制。比如在Nuplayer底层播放器中使用了七八个进程来异步处理事务,其错综复杂程度如果单单使用一般的通信机制来处理,可能有点水果刀宰牛的感觉。于是强如谷歌另开发了一套消息循环处理机制来实现消息队列,这就是AMessage,ALopper,Ahandler三剑客。 顾名思义,消息,循...

2019-06-21 16:17:25 2501

原创 JNI入门介绍(Android Studio 3.4)

最近入手安卓的开发与学习,就迫不及待的下载了最新版的AS3.4。可是当我开发JNI程序时,却发现网上的方法大多已经过时,所以在此更新一波以做备忘。 环境:Win10 X86 64位 Android Studio 3.4稳定版 ...

2019-06-09 19:21:10 7586 5

原创 TS封装格式解析出ES视频流

本博客的目的是手写一个程序DEMO,它的作用是将一段TS封装格式的视频解析为一段包含H264编码的ES视频流。 一,DEMO前期准备。 1.1 知识准备。TS全称transport stream,是基于MPEG-2的封装格式(所以也叫MPEG-TS),通常后缀为.ts,.mpg,.mpeg。TS封装格式如今广泛应用于数字电视,在即时通讯传输业务上...

2019-05-31 10:48:53 2666

原创 JNI方法总结

1

2019-12-09 16:03:27 187

原创 Error:Cause: unable to find valid certification path to requested target

当你遇到Error:Cause: unable to find valid certification path to requested target,如果按照网上的方法总是不灵验时,考虑一下升级系统版本号(笔者是这样的,哎心塞~)。...

2019-12-02 16:23:55 252

原创 ERROR: Cause: executing external native build for cmake XXX/XXX/CMakeLists.txt

尝试一下把CMakeLists.txt文件放到Src目录下,并修改相应路径。

2019-11-25 14:58:00 4634

原创 求最接近数n的2的次方数

我们当然可以直接暴力求解(负次方不考虑):int findTableSizeof2(const int target){ if(target < 0) return 0; int power = 0, temp = target; int temp2power = 1; while(1){ temp/=2; ...

2019-11-19 20:38:38 3983 2

原创 AAC编码格式分析

AAC

2019-11-15 16:10:20 702 3

原创 MP4文件格式分析

Mp4算是一种比较复杂也比较常用的媒体格式,它是在“ISO/IEC 14496-14”标准文件中定义的,属于MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file format)”标准中所定义的媒体格式的一种实现,后者定义了一种通用的媒体文件结构标准。MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的...

2019-11-14 14:17:20 393

原创 捋一捋MediaCodec,ACodec,OMX解码流程

wait

2019-11-11 10:39:03 1306 5

原创 安卓音频输出设备切换时framwork代码流程

安卓系统维护着很多种的streamType并且根据音频策略尽量做到了互不影响。这其中的复杂繁复程度绝不是我们使用手机播放个音乐那么简单。比如我们接上蓝牙耳机播放网易云音乐,此时此刻来了电话会怎样?底层代码流程会怎么处理?这些都是我们需要了解并熟知于心的。笔者也是刚接触不久,作此文仅当备忘与加强记忆。 比如我们正在播放音乐,玩家接入了蓝牙耳机会怎么处理呢?...

2019-09-28 13:56:23 922 1

原创 Crash常见信号列表

信号机制是 Linux 进程间通信的一种重要方式,Linux 信号一方面用于正常的进程间通信和同步,如任务控制(SIGINT, SIGTSTP,SIGKILL, SIGCONT,……);另一方面,它还负责监控系统异常及中断。 当应用程序运行异常时, Linux 内核将产生错误信号并通知当前进程。 当前进程在接收到该错误信号后,可以有三种不同的处理方式。(1)忽略该信号。(2)捕捉该信号并执...

2019-08-20 10:01:23 1179

原创 C++消息队列实现

C

2019-07-20 13:41:22 724 1

原创 安卓媒体流音量设置流程

2019-07-20 13:39:47 257

原创 安卓音量设置流程之MasterVolume

先附上时序图吧,后面会跟上代码讲解: 一、概述 安卓系统的音量主要有MasterVolume和StreamVolume来控制,这对于安卓开发人员来说并不陌生。MasterVolume就是系统音量,这个全局的变量影响着Android系统的所有音频通路;StreamVolume则对应着Android系统各种各样的StreamType音频流类型,比如...

2019-07-20 13:38:10 3836

原创 安卓音频系统启动流程

自Android6.0后,Audio系统便和Media系统分离,独立模块。所以了解Audio系统的启动流程就很有必要,它的启动入口位于:main_audioserver.cpp ,由rc文件引导,主要作用是调用了AudioFlinger和AudioPolicyService这两大模块的初始化接口。 1 进程入口//xref: /frameworks/av...

2019-07-19 11:05:31 1040

原创 安卓视频播放器(TV)

最近写了一款视频播放器的Demo,基于安卓智能电视的(电视与手机的程序大同小异),各种功能都已经完善,特此分享给大家。 https://github.com/Vashonisonly/VideoPlayer...

2019-07-01 19:58:47 2452

原创 安卓源码AOSP--强弱指针

1

2019-06-22 15:19:07 170

原创 安卓MediaPlayer框架之Binder机制

一、Binder简介 Binder是Android系统进程间通信的主要方式之一。 1.在ASOP中,Binder使用传统的C/S通信方式:即一个进程作为服务端提供诸如视音频解封...

2019-06-21 10:37:00 561

原创 输出16进制文件出现很多ffffff的问题解决办法

最近由于一个小需求,需要输出16进制数到文件中,本以为是一个小小的demo就可以解决,谁知道出现了这么个情况: 冷静分析了一下,但凡最高位是1的情况都会多出这么多fffffff,看来是范围超界了。原来:我用来缓存数据的buffer是char型的,16进制数据当然要用unsigned char来表示,不然就会出现上述情况。 修改之后,就豁然开朗了!...

2019-06-12 22:12:31 5381 5

原创 Ubuntu16/18下java编译环境的配置(jdk)

有时候我们用sudo spt-get install 安装的jdk总是找不到bin包,所以我们还是手动安装配置一下更为妥当。这样一方面能更完善的安装配置,又能加深我们的记忆,加强我们的操作能力。 环境:Ubuntu18 64位,安装jdk1.8. 其他环境的安装和目标文件的配置都是大同小异。 一,JDK文件的下载 当然是前往ORACLE官网下载...

2019-06-12 11:06:18 398

转载 深入理解Binder

转载自:https://blog.csdn.net/innost/article/details/47208049。详细讲解Binder机制

2019-06-09 21:35:59 168

原创 基于Qt的一款五子棋应用(包括AI,双人对战,联网对战,华丽的UI界面,音效等)

先将程序开源,后期补上相应文档介绍,具体代码请参考我的github:https://github.com/Vashonisonly/GoBang- 其中联网对战模块尚且不够完善,后面会修复的。...

2019-06-05 16:14:52 2061 4

原创 H264编码格式入门解析

1

2019-05-23 15:42:02 742

原创 TS封装格式小白入门分析之抓包码流分析介绍

首先应当介绍几个基本概念,前面提到TS Header中含有13b的PID,关于PID常见的类型取值如下: PID取值 PID值使用描述 X0000 ...

2019-05-23 15:39:54 3378 1

原创 TS封装格式小白入门分析总结(二)之工具的使用

要分析TS文件格式,EasyICE应该是当之无愧的标杆了。本文基于TS封装格式入门分析讲解,使用工具抓包分析讲解。

2019-05-23 15:00:28 855 2

原创 TS封装格式小白入门分析总结

TS全称transport stream,是基于MPEG-2的封装格式(所以也叫MPEG-TS),通常后缀为.ts,.mpg,.mpeg。TS封装格式如今广泛应用于数字电视,在即时通讯传输业务上大方光彩,本文将详细介绍TS文件的生成过程,以及对其数据结构的详细分析。 关于视音频的基础知识可以参考雷神的博客:https://blog.csdn.net/leixiaoh...

2019-05-23 14:27:30 6222 2

原创 Qt打包程序提示“应用程序无法正常启动(0xc000007b)”解决方案

如果您用windeployqt打包完成后运行exe文件仍然提示缺少“***dll”文件,然后您找到了这个dll文件放到当前目录下,然后自信的点击exe文件(没错,这个傻吊就是我)却报出了如下错误: 那么有一种可能会不会是您使用的Qt打包工具错了呢?比如我的编译器是: 那么我们使用的打包工具应该是这个:仅仅作为一种可能情况的...

2019-05-07 15:14:56 18763 21

原创 DP算法求解最大连续子数组的和

最近面试好几次遇到同一个面试题:给定一个整数数组,数组里可能有正数、负数和零。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。 《算法导论》里用分治算法解决此类问题,使时间复杂度达到lgN,后来发现此题用动态规划求解更好一点。 动态规划的思想是用已知的结果决策之后的一层。此题中,假设数组为int items[7] = {...

2019-03-29 18:38:00 465

原创 回溯算法与动态规划基于背包问题的浅析

经典问题描述:有n 个物品,它们有各自的重量,现有给定容量w的背包,如何让背包里装入的物品具有最大的重量? 回溯算法解背包问题 假设我们有五个物品,重量分别为2,3,3,7,5,背包所能容纳的最大重量为10.怎么解呢?最笨的...

2019-03-26 19:47:49 1155 1

翻译 C++面试知识点(基础知识篇1)

本文所来源题目转载自http://www.cnblogs.com/Forever-Kenlen-Ja/p/9142799.html。做此答案的补充,一方面为了自己查漏补缺,另一方面希望能给求职者一点帮助。本篇结合了网上一些见解,为入门级别,如有错误望指正,如有侵权请联系作者删除。 1、多态的实现 答:多态即一个接口多种实现,主要体现在静态多态与动态多态。静态多态...

2019-03-25 17:30:30 128

原创 2048小游戏献给大家!

**2048小游戏献给大家!**不多说,直接上代码!#include #include &lt;windows.h&gt;#includeusing namespace std;//定义表格全局变量;int const ROW = 4;int const COL = 4;int game[ROW][COL]...

2018-11-14 14:52:33 659

基于Qt五子棋软件,包含人人对战,AI对战,网络对战,含有华丽的界面,迷人的音效

基于Qt五子棋软件,包含人人对战,AI对战,网络对战,含有华丽的界面,迷人的音效

2019-06-12

easyice.7z

ts文件分析工具easyICE及相关素材。easyICE用于对ts文件分析,内含一段素材

2019-05-21

谁说程序员不浪漫?!基于easyX图形库的绚烂美丽的烟花!快拿去表白吧

强制一分,有图形界面,绚烂多彩,可以下来看看,笔者可解答

2018-11-14

C++,QT实现多文档编辑器

C++,QT实现多文档编辑器,可以实现word文档的大部分功能,基于QTcreater quick教程,可用作参考

2018-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除