自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(139)
  • 资源 (8)
  • 问答 (1)
  • 收藏
  • 关注

原创 ADTS头部格式分析

ADTS头分为固定头信息(adts_fixed_header)和可变头信息(adts_variable_header)两个部分,在其他的流传输中也可能不带有adts头,所以在送往播放器前需进行adts头的补充。flv格式中裸流的AAC数据是没办法播放的,需要添加ADTS头才能够播放。固定头信息在每个帧中的是一样的,可变头信息在各个帧中并不是固定值。ADTS头一般是7Byte(28bit+28bit)长度。所以ADTS头的实际长度是7个字节或9个字节。

2023-05-10 15:25:42 803

原创 路由链路选择scope link规则笔记

参考 https://blog.51cto.com/u_15060460/4330762。这种情况下,也会直接走网关,网关回复一个icmp redirect,有2种类型 proto kernel 和 proto dhcp。表示这个路由条目是由谁添加, 由内核添加还是由动态路由配置。但是网关仍然会把这个数据包转发到同一个二层的目标地址。特点是所有的数据请求走二层arp,而不是走三层路由。加入eth0:1 的 IP地址。查看当前的安卓系统路由规则表。删除eth0:1 地址。区分在二层和三层的转发。

2023-04-25 11:28:37 1756

原创 使用字符驱动ioctl与linux内核交换数据

当应用程序需要调用内核的方法进行数据交互,可以使用 ioctl 进行调用。

2022-10-13 15:39:27 346

原创 摄像头V4L2获取的YUY2格式转YUV420格式

摄像头数据格式转化到ffmpeg支持格式

2022-08-10 16:15:43 1378

原创 安卓代码简单读取摄像头YUV原始数据

100行代码直接读取安卓摄像头yuv原始数据

2022-08-09 14:31:56 1472

原创 安卓摄像头V4L2获取YUV422转NV12过程示例解析

在使用V4L2获取摄像头数据,配置使用了 V4L2_PIX_FMT_YUYV。那么摄像头返回的数据就是 YUYV 格式的,属于YUV422打包格式中的一种,即yuv三个分量按2:1:1(也是4:2:2)的比例分配。先假设V4L2取出图像的输出分辨率是 6*8,这 YUV422 的空间排布如下首先解读上面图像像素的,YUYV格式图像是YUV色彩空间的一种表示方式。每个像素保留一个Y分量,而UV分量在水平方向上每两个Y像素采样一次。一个宏像素(macro-pixel)为4个字节,用于表示2个实际

2021-11-19 19:38:22 3853

原创 GetStringUTFChars和GetStringUTFRegion的使用示例

常用的字符串传递有2种方式 使用例程进行测试示例一 GetStringUTFRegion#include <stdio.h>// demo.cppjstring jni_debug_string(JNIEnv *jenv, jobject thiz, jstring str){ LOGI("[%s]START#1\n", __FUNCTION__); char outputbuf[128]; char inputbuf[128]; int len = jenv-&

2021-11-17 10:31:59 5240

原创 GetByteArrayElements和GetByteArrayRegion的使用示例

GetByteArrayElements官方解释为获取数组内容,直到ReleaseByteArrayElements()被调用。言下之意,就是在 ReleaseByteArrayElements 被调用之前 这个数据一直有效。所以必须伴随有 ReleaseByteArrayElements 进行使用,是否会导致指针不被释放。GetByteArrayRegion官方解释为从缓冲区中获取数组的数据。其中 ReleaseByteArrayElements 官方释义拷贝数组到第一个参数,并且释放第

2021-11-15 19:20:45 7531

原创 JNI中使用AAssetManager_open读取assets文件

为了方便jni中使用assets文件NDK中封装了更方便的接口直接读取assets文件JNI代码如下(示例):#include "jni_main.h"#include <pthread.h>#include <stdio.h>#include <android/asset_manager_jni.h>#include <android/asset_manager.h>#include <string.h>JNIEXPORT v

2021-07-10 10:49:54 2180

原创 线程中使用AttachCurrentThread得到JNIEnv

要在jni代码的线程中调用java代码的方法,必须把当前线程连接到VM中,获取到一个[JNIEnv*].A JNI interface pointer (JNIEnv*) is passed as an argument for each native function mapped to a Java method, allowing for interaction with the JNI environment within the native method.This JNI interface

2021-07-10 10:20:47 3062

原创 v4l2摄像头ioctl功能详解

VIDIOC_S_STD设置视频的制式 PAL/NTSC VIDIOC_S_CROP设置视频图像的采集窗口的大小, v4l2_crop.type, v4l2_crop.cstruct v4l2_crop {__u32 type; struct v4l2_rect c;};struct v4l2_rect { __s32 left; __s32 top; __s32 width; __s32 hei..

2021-06-10 13:44:03 1223 1

原创 Linux驱动注册轮询设备

一般情况下很少需要使用注册轮询设备的,因为轮询设备需要高频率调用获取外设的状态,增加CPU的负担.但是碰到过2次需要使用注册轮询的情况:1 外设IO口非常紧张的情况下,没有空出多余的IO口作为中断脚.2 所使用的IO口没有带有中断功能.#include <linux/input-polldev.h>#include <linux/platform_device.h>#include <linux/rtc.h>struct pollgpio_key_dat

2020-07-24 10:25:45 454

原创 Linux设备注册中断服务request_irq

中断处理程序是管理硬件的驱动程序的组成部分,每一设备都有相关的驱动程序,驱动程序可以通过request_irq()函数注册一个中断处理程序,并且激活给定的中断线,来处理指定的中断. 同时需要芯片对应的IO口支持中断两个注意的地方第一中断是随时都可以产生,意味着中断的处理程序随时都可以执行,所以得保证中断处理程序能够快速执行,才可能尽快的恢复中断代码执行,所以中断代码尽量简短。第二每一个中断都有自己唯一的数字标记,这样在共享中断中CPU才能找到对应的中断信息#include <linu

2020-07-23 19:14:31 667

原创 内核定时器init_timer与mod_timer的使用

内核定时器为了可以在某个时间点上调用函数内核定时器的调度函数运行过一次后就不会再被运行了,但是在del_timer销毁定时之前,可以使用add_timer(注册)或者mod_timer(修改)重新调用一般重新调用的场景有1 通过在被调度的函数中重新调度自己来周期运行。2 通过某个中断服务函数中重新唤起调用这样就可以实现while(1)循环的功能,可以用于轮询设备等工作需求。这里被调度的函数是异步执行的。#include <linux/init.h>#include <li

2020-07-20 20:10:51 3493 1

原创 自定义队列queue_work和内核共享列队schedule_work

#include <linux/delay.h> #include <linux/rtc.h>static struct delayed_work mdwq; static struct workqueue_struct *mwq; static void delay_work_func(struct work_struct *work) { int i; struct timex txc; struct rtc_time tm;

2020-07-20 17:01:42 2291

转载 C/C++实现RGB565转BMP图像

分为两个文件 rgb2bmp.h 和 rgb2bmp.c需要注意的BMP格式文件的头部的14个字节和40个字节的结构体rgb2bmp.h//rgb2bmp.h文件#include &lt;stdio.h&gt;typedef unsigned char BYTE;typedef unsigned short WORD;typedef int DWORD;// BMP图像各部分说明...

2018-11-23 14:28:17 2318

原创 安卓JNI下的静态库和动态库编译及使用

安卓使用原生代码一般都是以编译成动态库的形式直接在Java中应用 当需要构建大型项目的时候,一般希望向上层提供一个动态库,而内部能够引用多个静态库 分模块的形式达到解耦合的目的以实例说明,编译生成静态库后,在动态库中引用静态库,并最终生成一个动态库提供到上层 生成静态库 Android.mk LOCAL_PATH := $(call my-dir)inclu...

2018-03-08 14:03:24 1911

原创 stm8单片机内部存储EEPROM字节读写实例解析

EEPROM(Electrically Erasable Programmable Read-Only Memory),电擦除可编程只读存储器。 它是一种可在线电擦除和电写入、掉电后数据不丢失的存储器,在嵌入式系统中应用特别广泛。 它在应用中一般存储用户数据,在系统运行过程中可以随时修改,系统复位之后从里面读取的是修改之后的新数据。FLASH 存储器又称为闪存(FLASH Memory)。 它

2018-01-03 16:56:50 9554

原创 stm8单片机点亮LED中断定时串口读写功能测试笔记

STM8系列单片机开发,使用青风电子社区的例程进行基本的点亮LED 串口读写 按键中断 串口读写等单片机基础开发STM8系列是意法半导体公司生产的8位的单片机。该型号单片机分为STM8A、STM8S、STM8L三个系列

2017-12-26 10:39:53 1686

原创 一个超级简单又实用的AES加密解密字符串示例

Advanced Encryption Standard 高级加密标准 在密码学中AES又称Rijndael加密法 是美国联邦政府采用的一种区块加密标准。加密是一比一生成密文 如果用于传入 加密后不会增加传输的带宽压力 对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。

2017-12-20 16:27:18 5505

原创 ijkplayer项目编译脚本详解及安卓工程测试(eclipse编译)

ijkplayer库官方教程已经给出明确的编译过程以及编译脚本https://github.com/Bilibili/ijkplayer但是因为我是从window中直接下载的整个工程的zip包 拷贝到Linux下进行库的编译 出现一些教程中未提及的问题 主要是软链接的问题和ndk库新版本与github中发布的ijkplayer库更新时使用的ndk版本的部分兼容问题

2017-12-15 17:48:24 1087

转载 第一次完成FFmepg的移植,编译ffmpeg4Android

文章使用了 ffmpeg3.1.4 版本的库编译并使用SDL进行播放

2017-12-05 22:58:49 372

原创 JNI下使用AndroidBitmap_lockPixels修改位图为黑白照片

这次使用的场景是QQ好友下线后头像变黑白 使用了NDK中提供的位图解析接口 android\bitmap.h库中的三个接口 并且一共也是三个接口 至少到目前为止是三个 关于这个库的接口 点击查看android-ndk-r9d\android\bitmap.h好友下线的效果图如下(图片尺寸900*675,位深度24) android部分代码 public class Ma

2017-12-05 11:30:00 6943 5

原创 C++实现单例模式的简单例程

在Java中使用单例模式是常用的事情 这里使用C++实现一次单例模式,虽然实际场景中很少使用这次例程有四个文件 Singleton.h Singleton.cpp Demo.cpp Client.cpp Singleton.h #ifndef _SINGLETON_H_#define _SINGLETON_H_#include <iostream>using na

2017-12-04 17:18:03 578

翻译 android-ndk-r9d\android\bitmap.h

翻译 android-ndk-r9d\platforms\android-19\arch-arm\usr\include\android\bitmap.h 对应的库 android-ndk-r9d\platforms\android-19\arch-arm\usr\lib\libjnigraphics.so android-ndk-r9d\platforms\android-19\arch-

2017-12-04 11:21:40 1019

原创 JNI方法的静态注册和动态注册RegisterNatives

代码结构如下: Android下的Java代码 仍然还是使用了eclipse开发环境 这里在NDKUtils.java文件里定义了所有的本地方法 Linux下的C代码 这里是在Linux系统目录下新建的文件 其中libs/和obj/都是由ndk-build编译后编译器产生 点击查看完整项目代码JniDemo-master// MainActivity.javapublic ...

2017-11-25 10:37:57 1307

原创 html开发笔记导航栏样式

<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge" ><meta name="viewport" content="width=de

2017-11-22 15:59:38 774

原创 使用table标签制作常用的html表格

table 标签用于定义 HTML 表格。简单的 HTML 表格由 table 元素以及一个或多个 tr、th 或 td 元素组成。 tr 元素定义表格行,th 元素定义表头,td 元素定义表格单元。 <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title></head><sty

2017-11-15 15:17:04 3144

原创 goahead-3.3.6源码分析

主要分为访问网页文件以及接口的调用逻辑 首先网页访问流程:网页访问事件注册 程序中需要返回html网页文件已经相关的图片、css等资源上面的流程是直接使用websDefineHandler来把响应网页访问的事务添加到事务表,具体的网页文件返回的逻辑则在fileHandler函数中处理// fileHandler函数判断和处理需要返回到浏览器的html文件数据static bool fileHan

2017-09-21 14:01:54 1288

原创 goahead-3.3.6版本源码方式移植到wince

从Linux下的goahead-3.3.6版本移植到wince平台 官网文档表示可以直接支持,但是因为我们wince系统的裁剪 以及我当前开发环境是 visual studio 2005 ,而3.3.6版本需要2010版本后的vs才可以打开 所以直接从源码开始编译移植,并且部分接口在我们系统无法使用 需要重写 先知道需要知道有哪些.c/.cpp文件需要编译,可以通过阅读Linux下gcc编译

2017-09-20 11:39:49 907

原创 通过RegOpenKeyEx和RegQueryValueEx获取wince设备的IP

wince嵌入式应用程序// test_api.cpp : 定义应用程序的入口点。#include "stdafx.h"#include "test_api.h"#include <windows.h>#include <commctrl.h>#include <time.h>#include <stdio.h>typedef struct _NETWORK_ADPT_INFO {

2017-09-11 17:28:34 729

原创 char和wchar_t的关系以及wprintf的应用

#include <cstdio>#include <cstdlib>#include <clocale>#include <cwchar>#include <cstring>// g++ demo.cpp (UTF-8编码)int main(int argc, char * argv[]){ int i = 0; wchar_t wstr[] = L"中文"; /

2017-09-01 18:30:51 1098

转载 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解

操作系统 计算机网络 算法 架构Ascii编码 开始计算机只在美国用。八位的字节一共可以组合出256(0xFF)种不同的状态; 于是最开始只有一个标准 美国信息互换标准代码(即Ascii编码 American Standard Code for Information Interchange);

2017-08-30 11:49:04 861

原创 ortp库移植到arm平台进行文件传输测试

测试ortp的介绍,官方一句话介绍了 oRTP is a library implemeting Real-time Transport Protocol (RFC 3550), licensed under LGPLv2.oRTP作为 linphone 的 RTP 库,为基于 RTP 协议传输语音和视频数据提供保障。 流媒体,主要还是依赖于UDP作为传输层协议, 开销小的原则;

2017-08-25 11:46:26 2026

原创 Linux下使用Socket实现http文件下载

Linux linux// 转载自 http://blog.csdn.net/xiongyangg/article/details/50767482// g++ download_demo.cpp -lpthread#include <stdio.h>#include <string.h>#include <sys/socket.h>#include <arpa/inet.h>#incl

2017-08-17 17:28:01 3996

原创 iptables-1.6.0的ARM移植

配置脚本./configure --host=arm-none-linux-gnueabi \--enable-static \--disable-shared \--prefix=$PWD/_install \--disable-ipv6 \--disable-largefile \--disable-nftables编译$ make -j4$ make install$ arm

2017-08-17 16:56:51 1845

原创 IP包头结构定义以及结构体iphdr分析

Linux, linux 来看一下IP包, IP头结构的定义 包格式解析如图 数据对应 对应的结构体在 /usr/src/linux-2.6.19/include/linux/ip.h(或 /usr/src/linux-headers-3.5.0-18/include/linux/ip.h)struct iphdr {#if defined(__LITTLE_ENDIAN_BITFIE

2017-08-14 11:57:43 5105

原创 进程间通信msgsnd和msgrcv应用笔记

示例程序接收端//MsgrcvDemo.c 接收端#include <stdlib.h>#include <stdio.h>#include <string.h>#include <errno.h>#include <unistd.h>#include <sys/msg.h> #define MAX_TEXT 512struct MSG_TEST { long int mFl

2017-08-11 11:56:40 1089

原创 移植libeXosip2和libosip2到arm开发板

Linux linux本篇主要是为了补充之前写的《编译libeXosip以及向代理服务器注册》 http://blog.csdn.net/dreamintheworld/article/details/72939454下载解压 libosip2-4.1.0.tar.gz libeXosip2-4.1.0.tar.gz编译 libosip2-4.1.0(使用arm-none-linux-gnue

2017-07-26 16:26:56 3311

原创 extern C配合__cplusplus实现CPP文件和C文件的函数互相调用

C语言 c语言 先看一下区别,首先看一下编译一个最简单的函数 demo.cvoid testFunction(){ return;}demo.cpp extern "C"{ void testFunction(){ return; }}demo.cppvoid testFunction(){ return;}分别编译 gcc -S demo.

2017-07-25 15:48:54 1365

freetype-2.4.10.tar.gz

编译方法:http://blog.csdn.net/dreamintheworld/article/details/55224529

2017-02-15

zlib-1.2.8.tar.gz和libpng-1.6.17.tar.gz

交叉编译libpng以及zlib开源库 http://blog.csdn.net/dreamintheworld/article/details/54933859

2017-02-08

GreenORMDemo2(安卓数据库开源框架)

GreenORMDemo2(安卓数据库开源框架) http://blog.csdn.net/dreamintheworld/article/details/39450365#comments

2015-06-18

安卓开发单元测试demo

简单的可执行的安卓单元测试 /TestLogin /TestLogin/src zy.zh.logindemo.test /TestLogin/src/zy/zh/logindemo/test/FxLoginActivityTest.java /TestLogin/src/zy/zh/logindemo/test/FxResultActivityTest.java

2015-01-22

读取系统所有图片并且进行删除操作

安卓开发中获取系统所有图片显示的时候,删除操作执行完却还能获取图片信息的问题

2014-10-27

WebView控件的缓存以及不打开手机浏览器浏览下级页面

WebView控件的缓存以及不打开手机浏览器浏览下级页面。 浏览博客http://blog.csdn.net/dreamintheworld/article/details/40043459

2014-10-13

开源安卓框架ThinkAndroidDemo含有源码

开源安卓框架ThinkAndroidDemo含有源码

2014-08-20

java反射机制,调用私有方法

Method,invoke,getMethod等反射私有方法和私有属性

2014-08-05

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

TA关注的人

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