- 博客(41)
- 资源 (28)
- 收藏
- 关注

原创 在ubuntu14.04搭建Docker 环境
docker 环境搭建主要翻译这个网站 https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce一.环境准备1.安装额外linux-image-extra-* 软件包linux-image-extra-* 包用于允许Docker使用aufs存储驱动程序。AUFS是一种联合文件系统。它...
2018-10-15 09:40:48
632

原创 libyuv—libyuv测试使用ARGBToI420和ConvertToARGB接口
上一篇http://blog.youkuaiyun.com/xiaibiancheng/article/details/72853009讲解了在Android studio 下面如何编译开源libyuv库,这一篇主要讲解如何使用ARGBToI420和ConvertToARGB这两个接口。ARGBToI420接口主要用于将argb数据转换为一帧yuv I420 数据,接口定义如下: // Conv...
2017-06-11 22:07:48
13946
4

原创 libyuv—AndroidStudio 编译libyuv
libyuv是google 开源的用于实现对各种yuv数据之间的转换包括裁剪、缩放、旋转,以及yuv和rgb 之间的转换,底层有一部分代码是基于汇编实现的,大大提高了转换速度。在Android 平台下一般用于处理直接从摄像头获取的原始yuv数据。 Android studio 最新版的已经支持了ndk 编译了,支持原先的Android.mk方式编译个Cmake编译方式,这里才用原始的编译方式。我用...
2017-06-03 17:49:15
5697

原创 FFmpeg学习—android 利用ffmpeg 录制ogg格式音频文件
ffmpeg 要支持ogg编解码的话必须集成libogg库和libvorbis库,其中libvorbis 要拆分为libvorbis和libvorbisenc两个库,因为ffmpeg 编译时需要这两个,其中编译这三个库的eclipse工程下载地址为:https://github.com/XIAIBIANCHENG/AndroidLibvorbis ffmpeg 集成libogg、lib...
2017-05-30 19:03:43
3039

原创 FFmpeg学习—ffmpeg 利用 swr_convert 函数将AV_SAMPLE_FMT_S16 转 AV_SAMPLE_FMT_FLTP
在Android 平台下利用AudioRecord 录制音频数据时基于 ENCODING_PCM_16BIT 进行采样,然后在利用ffmpeg 进行编码成aac格式的音频文件,由于最新ffmpeg 库的sample_fmt必须以AV_SAMPLE_FMT_FLTP这种方式进行存储,而ENCODING_PCM_16BIT 是AV_SAMPLE_FMT_S16格式的。如果是单声道的话两者区别不大,都可...
2017-05-30 17:30:13
12567
1

原创 FFmpeg学习—android 利用ffmpeg 集成libfdk-aac 录制aac 音频文件
ffmpeg 自带aac 编码器但是 不支持 AV_SAMPLE_FMT_S16 的采样,所以本文采用libfdk-aac 进行aac的编码,其中libfdk-aac编译步凑参考:http://blog.youkuaiyun.com/xiaibiancheng/article/details/69676965,ffmpeg 编译步凑参考:http://blog.youkuaiyun.com/xiaibiancheng/...
2017-05-14 17:17:47
4583
1

原创 FFmpeg学习—解决ffmpeg 进行Audio 编码 采用AV_SAMPLE_FMT_S16 格式报 Input contains NaN/+-Inf 错误的问题
在采用ffmpeg 进行音频aac格式进行编码的时候,如果设置sample_fmt为 AV_SAMPLE_FMT_S16 格式,调用内部的aac编码库会抛出Input contains NaN/+-Inf错误,这是由于ffmpeg内置的aac 编码库不支持这种格式,这时如果必须采用AV_SAMPLE_FMT_S16 这种编码格式,必须集成第三方的aac编码库,比如libfaac和libfdk-aa...
2017-04-16 15:27:02
7399

原创 FFmpeg学习—Android 使用ffmpeg 集成x264和fdk-aac 库
这篇文章紧接上一篇ffmpeg 集成x264和fdk-aac 库的编译讲解如何使用编译后的库。上一篇的文章的连接:http://blog.youkuaiyun.com/xiaibiancheng/article/details/697030231.在eclipse 里面设置ndk 的路径如下图所示:ndk 的下载路径:https://dl.google.com/android/reposi...
2017-04-09 17:58:04
3090

原创 FFmpeg学习—android 编译 ffmpeg 集成fdk-aac、x264 精简解码库
1.编译要求Ubuntu 14.04 lts 64位ffmpeg-3.1.3fdk-aac-0.1.4x264-snapshot-20170407-2245android-ndk-r12b 2.编译步凑1.先单独编译x264和fdk-aac 的Android 平台的库。x264单独编译的方法: http://blog.youkuaiyun.com/xiaibianche...
2017-04-09 16:49:12
6696
3

原创 FFmpeg学习—android 编译libfaac 音频库
1.编译要求Ubuntu 14.04 lts 64位faac-1.28android-ndk-r12b2.编译步凑1.下载libfaac源码:https://nchc.dl.sourceforge.net/project/faac/faac-src/faac-1.28/faac-1.28.zip下载后解压,我的解压目录为:/home/wh/faac-1.282...
2017-04-08 18:17:46
3154

原创 FFmpeg学习—android 编译 FDK-AAC 库
1.编译要求Ubuntu 14.04 lts 64位fdk-aac-0.1.4android-ndk-r12b2.编译步凑1.下载fdk-aac 源码:https://nchc.dl.sourceforge.net/project/opencore-amr/fdk-aac/fdk-aac-0.1.4.tar.gz下载完后解压,我的解压目录是/home/wh/fd...
2017-04-08 17:13:23
6104

原创 FFmpeg学习—Android 编译x264 库
1.编译要求Ubuntu 14.04 lts 64位x264-snapshot-20170407-2245android-ndk-r12b2.编译1. 下载x264 源码,下载地址:ftp://ftp.videolan.org/pub/x264/snapshots/last_x264.tar.bz2下载后解压,我的解压目录是home/wh/x264-snapsh...
2017-04-08 16:01:31
3391

原创 FFmpeg学习—ubuntu 下编译 Android ffmpeg
1.编译要求Ubuntu 14.04 lts 64位ffmpeg-3.1.3android-ndk-r12b 2.编译步凑1.下载ffmpeg 3.13 源码https://github.com/FFmpeg/FFmpeg/releases/tag/n3.1.3下载完后解压,我的解压目录是 /home/wh/ffmpeg-3.1.32.安装yasm: ...
2017-04-07 13:47:47
1137

原创 Android 6.0 Gallery2 eclispe编译
Android 6.0已经出来很长时间了,最近心血来潮下载了Android 6.0的源码编译了下,其中Gallery2的程序里面滤镜功能很是酷炫,决定单独编译gallery2学习学习。
2017-03-08 13:54:13
1024

原创 Android 基于手势进行图片缩放
1.触摸事件的处理 当手指触摸屏幕时获取触摸点的个数,当触摸点只有一个时,当做平移操作处理,当触摸点为两个时则为放大缩小操作。平移操作记录下当前按下的点的坐标就行,如果是放大缩小操作,则计算出两点间的中点,后续放大和缩小以改点为中点进行.代码片段:if(ev.getActionMasked()==MotionEvent.ACTION_DOWN||ev.getActionMasked()
2016-06-13 20:11:53
1735
原创 通过jquery实现拖拽table表头改变列宽
直接上代码,有注释:<!DOCTYPE html><html><head> <style> table, td, th { border: 1px solid #ddd; text-align: left; } table { border-collapse: collapse; width: 100%
2022-01-22 18:09:19
1842
2
原创 Vue 中addEventListener事件回调函数this的指向
在Vue中调用document.addEventListener添加事件回调函数,在回调函数中调用this对象时,通过调试发现,this指向的是之前调用document.addEventListener的Vue对象或者Vue组件示例代码如下:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> &l
2022-01-22 11:05:43
5257
原创 Vue.extend 内部执行逻辑
Vue.extend 用于继承扩展Vue本身的构造函数,Vue.extend 在initExtend里面进行定义,initExtend在initGlobalAPI 里面被调用。Vue.extend函数定义如下:/** * Each instance constructor, including Vue, has a unique * cid. This enables us to create wrapped "child * constructors" for protot
2022-01-16 19:36:40
418
原创 Function原型链解析
js的函数protype 指向的是Function的protype,如下所示:由上图所示,普通函数的__proto__和Function的prototype是相等的。所以普通函数的构造函数是Function的prototype的constructor,也就是Function,如下图所示:上图红色框就是Function的内容,而绿色框就是Function的prototype,而Function的__proto__也是一个Function对象,而__proto__的__proto__指向的是Object
2022-01-09 20:10:39
638
原创 Object 原型链解析
一个js普通(非函数对象)对象的原型链指向的是Object 的prototype,Object的原型链如下:如上所示,Object 的prototype的__proto__指向的是一个空对象。而constructor指向的是Object的构造函数。Object的constructor 的__proto__...
2022-01-09 17:07:03
784
原创 centos 6.5 配置mysql
1.安装mysqlyum install -y mysql-server mysql mysql-deve2.安装odbc和mysql-connectoryum install mysql-connector-odbc.x86_64 unixODBC-devel.x86_64启动 mysqlservice mysqld start重新启动servic...
2022-01-02 10:20:58
236
原创 android Properties的使用
Android 下面Properties可用来保存程序的一些配置,其简单用法如下public class MainActivity extends Activity { Button btnInput=null; Button btnRead=null; @Override protected void onCreate(Bundle savedInstanceState) {
2014-02-28 14:40:31
1441
原创 C# WINCE调节屏幕亮度
在wince里面保存屏幕亮度的值保存在注册表HKEY_CURRENT_USER\ControlPanel\\Backlight\Brightness里面,值的范围是0-100,所以要改变屏幕的亮度,只要改变这个值,然后重新加载就行代码如下:/// /// 调节屏幕的亮度 /// public class SetBackLight {
2013-08-29 14:54:48
2562
原创 从驱动 层用c++ 获取cpu 温度
要获取cpu的温度可以通过汇编指令来读取,这里以intel cpu为例,用rdmsr指令读取 IA32_THERM_STATUS_MSR(0x019C)的值,然后用TjunctionMax 减去这个值就是当前cpu的温度,对于一般的intel cpu 的TjunctionMax值是固定的,比如我的cpu是Intel Core 2 (45nm),在官网上可以查到其值是100摄氏度,到后面的int
2013-05-31 19:57:33
12710
5
原创 用nodepad++将代码文件导出为带行号的html文件
在写博客时,要贴代码文件,虽然博客自带这个功能,但是有时还是不是令人满意,前几天在使用NodePad++时,发现有个插件叫NppExport,可以将代码文件导出为html格式,包括所有的高亮显示效果如下:<!--span {font-family:'Consolas'; font-size:10pt; color:#000000}.SpanClass2 {color
2013-05-31 14:54:23
2398
原创 vc++ 加载,卸载自己的驱动程序
用vc++加载自己的驱动程序主要分为以下几个步骤:1、加载驱动服务主要要用到以下几个函数SC_HANDLEWINAPIOpenSCManagerA( __in_opt LPCSTR lpMachineName, __in_opt LPCSTR lpDatabaseName,
2013-05-25 19:39:09
3516
原创 TCP通信中对消息进行加密(一)
在网络通信中有时要对信息进行加密 ,可以直接用微软自带的CryptoAPI。加密方法大概可分为两种:一 公钥加密技术: 加密和解密使用不同的密钥,分为公钥和私钥,私钥是不能让别人看见的,而公钥可以公开,加密时用公钥进行加密,然后用公钥对应的私钥进行解密,公钥和私钥必须配对使用。这种技术安全性高,但效率低。二 对称密钥加密技术 这种加密技术当中,加密密钥和解密密钥都是同一个,所
2013-03-31 20:04:45
9377
原创 vc++ 绘制半透明矩形
要绘制透明矩形,要用到 BLENDFUNCTION 这个结构体 和AlphaBlend这个函数 ,方法如下:CBitmap tempBitmap;//用于绘制矩形的临时位图 CDC tempDC; CRect rect(0,0,100,100); // 矩形大小 BLENDFUNCTION blend; memset( &blend, 0, sizeof( blend) ); b
2013-03-28 22:32:56
3526
原创 VC++创建popup窗体
在MFC里面创建普通的不是popup子窗体,用Create即可代码如下: CWnd *wnd=new CWnd(); wnd->Create(NULL,NULL,WS_OVERLAPPEDWINDOW,CRect(0,0,100,100),NULL,NULL); wnd->ShowWindow(SW_SHOW);这样创建出来的窗体不带popup风格,它只能作为另一个窗体的子窗
2013-03-27 20:35:04
1957
原创 android 动态注册Jni函数
Java的Native方法的名称和底层的c/c++方法名称是通过java___这种方式对应的,即它是静态注册的,例如在java层的Native 方法名为stringFromJNI,它的包名为hello,类名为 hellojni则在底层的 c函数名称为java_hello_hellojni_stringFromJNI,这样一来名称就变得很复杂,不便于阅读和维护,在Android NDK下面提供了
2013-03-26 22:05:30
1701
原创 vc++ 自定义消息和WM_NOTIFY消息实现
一、在vc++ 里面通过SendMessage可以向窗口发送自定义消息,过程大致如下:首先定义自定义消息ID#define MY_MESSAGEID WM_USER+300然后在消息映射表添加自定义消息映射ON_MESSAGE(MY_MESSAGEID,MessageFun)在头文件类里面声明消息响应函数afx_msg LRESULT MessageFun(WPARAM
2013-02-05 15:21:06
2052
原创 在 CRichEditCtrl控件里 显示位图
首先定义一个类继承自 CRichEditCtrl,头文件定义如下#pragma once// MyRichEditclass MyRichEdit : public CRichEditCtrl{ DECLARE_DYNAMIC(MyRichEdit)public: MyRichEdit(); virtual ~MyRichEdit();public: void Ins
2013-02-05 09:29:04
1239
原创 Android模拟器读取GPS串口模拟器GPS数据
在WINCE 下面开发GPS相关的程序可以通过GPS模拟器模拟数据,然后通过Configure Virtual Serial Port Driver 工具虚拟出一个串口对,再在WINCE模拟器里面进行设置就可以了,最近在做Android GPS相关的开发,为了便于调试也想这样做,于是在网上找了找,发现还真的可以,具体的方法如下:1.首先用Configure Virtual Serial Por
2013-01-21 15:37:12
3947
1
原创 Android NDK 调用Skia进行底层绘图
Skia是Android的底层的图形库,最近看了一下参考了了网上的例子最初是这样做的就是从上层直接传一个Canvas再在底层获取它运行的时候老是不成功,不过可以画图形,比如线、矩形等,最后在网上查了一下,大致是源代码版本和库不同导致的最后实在没法了,我就直接传一个Bitmap对象,再在底层将文字和图形写在上面,这样就可以了下面是底层代码:#include "SkRect.h
2013-01-09 11:33:07
8313
2
原创 在Android.mk文件中输出打印消息
在进行Android NDK的开发当中有时想看看Android.mk文件当中某个变量的值,可以再Android.mk文件当中用warnin语句实现该功能假如有个Android.mk文件的内容如下: LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := hello-jniLOCAL_SRC_FILES
2013-01-08 10:10:34
19094
1
原创 Windows CE 中向JPG文件写入经纬度 时间等信息
最近在一个项目中 需要向JPG文件中写入时间 GPS位置等信息 如果是在PC上很好实现,但是在WinCE上由于.NET CF好多库都没有 所以实现起来还是挺困难,于是就在网上google看有什么开源的东西可以用,于是就找到了 ExifLib,在CodeProject的网址为http://www.codeproject.com/Articles/43665/ExifLibrary-for-NET
2013-01-08 09:47:34
2074
原创 Wince .net ListView控件 闪烁的问题
在Wince下面当你向ListView里添加很多items会出现闪屏的问题,在Winform里面可以用AddRane一次性将数据添加到里面,但在Wince下面并没有这个方法。可以用BeginUpdate和EndUpdate来解决,当你开始要向ListView里面添加数据时,就调用ListView.BeginUpdate().当你将数据添加完后就调用EndUpdate,用这种方法。
2011-09-06 20:42:43
1326
android 6.0 gallery2 eclipse编译版本
2017-03-08
Android6.0 Gallery2 eclipse 编译运行版本
2017-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人