自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (16)
  • 收藏
  • 关注

原创 FFMPEG函数之avformat_open_input

在进行输入和输出转码的过程中,会使用一个函数:int avformat_open_input(AVFormatContext **ps, const char *filename,                        AVInputFormat *fmt, AVDictionary **options)其目的是打开流,并通过filename来初始化AVFormatContex

2017-11-07 14:11:30 849

原创 Android蓝牙BLE应用的开发

1、检查设备是否支持蓝牙设备:PackageManager pm = getPackageManager();Bool bsupport = pm.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE);if(bsupport)Logd(TAG,“blue tooth has  exist”);ElseLogd(TAG,”

2017-06-09 14:55:07 440

原创 Linux下SPI驱动的分析

1、platform_device 和 platform_driver之间的关系:platform_device 是板卡信息,可能有的板卡有SPI控制器,但没有使用SPI总线的时候,就会存在platform_device中没有SPI相关的板卡信息。这样系统就不会加载SPI驱动到系统中。板卡相关的信息一般在目录arch/arm/下(以S3C6410为例,arch\arm\plat-s5p\dev

2017-03-01 15:19:03 581

原创 C++实现类JAVA的线程类的开发

最近在学习JAVA的编程,发现java真的很好很好。封装的类,使用起来实在是太方便了。特别是在用到了java的多线程编程的时候,真的让人耳目一新,然后就自己寻思是否可以在linux上使用c++来封装一个类似java的线程类呢?于是就开始动手了。#include #include using namespace std;class Thread{private: pthread_

2017-03-01 15:04:21 551

原创 单片机上实现内存池的功能

#define MAX_ALLOC_NUM32  //最多可申请的内存块数。#define MEM_PAGE_SZ32 //一页内存的字节数。(分配的最小单位为page)#define MEM_BLK_NUM2   //可供分配的块数量。(一个块2048byte字节)//内存池的块typedef struct mem_block{unsigned c

2016-11-21 15:29:01 1161

原创 判断一个时间点是否在一个时间段的方法

判断时间点是否在时间段有两种方法:一种是计算出当前时间的秒数来判断,即从00:00:00为起始值,所经历的秒数。如  08:10:10,那么从00:00:00开始所经历的秒数为 8*60*60+10*60+10 = 29410s;所以判断一个时间点是否在一个时间段内,就可以从所经历的秒数来判断得到。其中需要注意的是,当起始大于结束时间时,需要做一些处理。如起始时间22:00:00

2016-07-06 11:39:18 8445

原创 c++中的回调函数的实现

因为一直做底层的缘故,一直对回调函数的使用只限与C。但现在开始使用C++开始编程的时候,发现实现回调比较困难,因为要传入的函数必须是静态的。本来使用C++就是为了使用其面向对象的特性。但是要现在这样使用回调,感觉又走入了以前的老路。这是我使用C方式实现的函数指针:#include using namespace std;typedef void (*pFunction)(v

2016-05-20 18:22:45 501

原创 面向对象学习记录(一)

首先得说说的经历,我是一个嵌入式软件开发工程师,属于偏底层的软件工作。大多是直接和硬件打交道。比如单片机啊,ARM啊等等。所以在我的心里,面向过程的是思想是根深蒂固的。在没有接触面向对象以前,总觉得面向过程是最好的,对面向对象是嗤之以鼻的。但在工作的过程中,慢慢的发现了C不能解决的问题,就是重用性。如果我们C的水平足够高,也许我们只要拷贝 和粘贴就可以了。但是在大多数情况下,是需要进行更改的。所以

2016-05-14 11:12:26 287

原创 循环队列和链表队列代码

链表实现的队列/************************************************file : queue_link.h************************************************/#ifndef QUEUE_LINK_H_#define QUEUE_LINK_H_#include "ringQueue.

2015-02-14 12:28:16 443

原创 lwip驱动的分析(基于LPC17XX)

首先需要说明的是这个驱动是基于LPC17XX 的芯片。很多代码会涉及到lpc17xx mac寄存器的操作。驱动文件名:LPC18xx_43xx_emac.c先看下结构体lpc_enetdata_t信息:/* LPC EMAC driver data structure*/typedef struct {       /* prxs must be 8 bytealigned!

2015-02-14 11:15:54 1528

原创 lwip的架构分析(基于LPC17xx)

首先,此文是为了给自己再次整理自己思路的文档,其次也希望能帮助到其他人。LWIP开源的TCP/IP协议栈的架构分析。主要讲述了系统整个运行的基本流程和原理,对于准备开始学习lwip的同学会有很大的帮助。

2015-02-14 11:08:52 1905

原创 Linux之NiosSOC创建

1、Nios系统的构成:(1)  epcs_flash控制器;(2)  SDRAM控制器(SDRAM需要大于8MB);(3)  Jtag_uart控制器;(4)  Timer定时器(必须为全功能的定时器);(5)  UART串口控制器(不是必须的);(6)  Sysid在EDS中运行时需要添加此外设;(7)  Triple_speed_ethernet以太网设备(不是必

2013-09-11 22:25:13 784

原创 mpegts代码分析

因为TS流的复用和解复用是通过一个结构体 AVInputFormat 传递给解复用器的。所以重点分析该结构体提供的外部接口:AVInputFormat mpegtsraw_demuxer = { "mpegtsraw", NULL_IF_CONFIG_SMALL("MPEG-2 raw transport stream format"), sizeof(MpegTSCo

2013-09-10 18:56:14 1251

原创 mpegts.c文件分析

1. 综述ffmpeg框架对应MPEG-2 TS流的解析的代码在mpegts.c文件中,该文件有两个解复用的实例:mpegts_demuxer和mpegtsraw_demuxer,mpegts_demuxer对应的真实的TS流格式,也就是机顶盒直接处理的TS流,本文主要分析和该种格式相关的代码;mpegtsraw_demuxer这个格式我没有遇见过,本文中不做分析。本文针对的ffmpeg的版本

2013-09-09 16:55:07 892

转载 FFplay的一些接口函数

muxer/demuxer和encoder/decoder在FFmpeg中的实现代码里,有许多相同的地方,而二者最大的差别是muxer和demuxer分别是不同的结构AVOutputFormat与AVInputFormat,而encoder和decoder都是用的AVCodec结构。这个需要认识清楚。1.// Open video fileav_open_input

2013-09-09 16:09:10 1348

原创 ffplay程序运行流程分析

1、main()开始:分别注册编解码器,复用以及解复用器avcodec_register_all(); //register codecavdevice_register_all();av_register_all(); //register demux and mux接着就是一些分配内存空间的代码代码 略parse_options(argc, argv, op

2013-09-06 17:11:52 1639 1

转载 ffmpeg结构体以及函数介绍(三)

1 AVPackettypedef struct AVPacket {    /**     * Presentation timestamp in AVStream->time_base units; the time at which     * the decompressed packet will be presented to the user.     * C

2013-09-06 15:41:51 520

转载 ffmpeg结构体以及函数介绍(一)

本文对在使用ffmpeg进行音视频编解码时使用到的一些函数做一个简单介绍,我当前使用的ffmpeg版本为:0.8.5,因为本人发现在不同的版本中,有些函数名称会有点小改动,所以在此有必要说明下ffmpeg的版本号。    ffmpeg本人也是刚接触,本文将采用累加的方法逐个介绍我使用到的函数,如有不妥之处,还望谅解!    头文件引入方法:extern "C"{#inclu

2013-09-06 15:41:46 601

转载 ffmpeg结构体以及函数介绍(二)

1 avcodec_find_decoder()/** * Find a registered decoder with a matching codec ID. * * @param id CodecID of the requested decoder * @return A decoder if one was found, NULL otherwise. */

2013-09-06 15:41:10 564

转载 ffmpeg分析系列之七(打开输入的流)

err = av_open_input_stream(ic_ptr, pb, filename, fmt, ap);int av_open_input_stream(AVFormatContext **ic_ptr, // 输出参数: 格式上下文ByteIOContext *pb, // 字节IO上下文const char *file

2013-09-06 15:12:40 911

转载 ffmpeg分析系列之六(再次探测输入的格式)

void *logctx= ap && ap->prealloced_context ? *ic_ptr : NULL; // 因为 ap == NULL, 所以 logctx 也 == NULL.    if (!fmt && (err = ff_probe_input_buffer(&pb, &fmt, filename, logctx, 0,        logctx ?

2013-09-06 15:10:59 728

转载 ffmpeg分析系列之五(打开输入的文件)

1. 打开文件:if (!fmt || !(fmt->flags & AVFMT_NOFILE)) {     因 fmt == NULL, 上面成立, 再看下面的代码:        ByteIOContext *pb = NULL; // 字节IO上下文     

2013-09-06 15:09:06 692

ffmpeg分析系列之六(再次探测输入的格式)

void *logctx= ap && ap->prealloced_context ? *ic_ptr : NULL; // 因为 ap == NULL, 所以 logctx 也 == NULL.    if (!fmt && (err = ff_probe_input_buffer(&pb, &fmt, filename, logctx, 0,        logctx ? 

2013-09-06 15:08:37 517

转载 ffmpeg分析系列之四(探测输入的格式)

调用av_open_input_file(&pFormatCtx, is->filename, NULL, 0, NULL)函数打开输入的文件.1. 分析一下函数原型:int av_open_input_file(AVFormatContext **ic_ptr, // 输出参数: 格式上下文                       const char *filename

2013-09-06 15:00:15 905

转载 ffmpeg分析系列之三(输入输出格式)

探测数据结构:/** This structure contains the data a format has to probe a file. */typedef struct AVProbeData {    const char *filename;    unsigned char *buf; /**< Buffer must have

2013-09-06 14:58:22 884

转载 ffmpeg分析系列之二(文件协议)

URL协议结构:URLProtocol,URLContext和ByteIOContext是FFMpeg操作文件(即I/O,包括网络数据流)的结构,这几个结构现实的功能类似于C++的多态继承吧,C++的多态是通过子类继承实现,而FFMpeg的“多态”是通过静态对像现实。这部分的代码非常值得C程序借鉴,我是说,如果你要在C里实现类似C++多态性的功能;比如当你要区分你老婆和情人之间的不同功能时。

2013-09-06 14:52:19 736

转载 ffmpeg分析系列之一(注册编解码器)

一. 调用av_register_all函数注册所有的格式和编码解码器.1.1 先调用avcodec_register_all函数注册所有的编码解码器.1. 下面列出与H264相关的注册:    // 注册硬件加速器    REGISTER_HWACCEL (H264_DXVA2, h264_dxva2);    RE

2013-09-06 14:26:53 1429

特征提取与图像处理

图像识别中的特征提取教程,只要1分的资源,看到了一定要下载,不容错过。

2015-05-30

Linux嵌入式系统环境搭建、内核配置、最小系统启动与设备文件分析

Linux嵌入式系统环境搭建、内核配置、最小系统启动与设备文件分析的文档。初学linux的必备。

2013-10-25

学习MPEG-2的笔记

这是本人在学习MPEG-2的时候,写下的笔记,比较凌乱。主要有TS流的系统结构、ffmpeg中的重要的结构体定义、ffmpeg解码TS流代码实例、FFMPEG解码流程、FFmpeg对mpeg2-TS解析的最详细分析、ffmpeg解析mpeg2ts时的数据结构分析 、ffmpeg 中av_rescale_rnd 的含义、MPEG2-TS音视频同步原理、ffmpeg转码MPEG2-TS的音视频同步机制分析。正在学习mpeg的同学可以下载看看

2013-10-25

nios上的i2c_master外设

自己写的能在nios上运行的i2c外设,参考Opencore i2c写的(Opencore i2c我没有运行成功,所以没有办法自己写了)。写操作已在示波器上调试通过。

2013-03-12

Triple-Speed Ethernet MegaCore手册

Triple-Speed Ethernet MegaCore手册

2012-10-26

贴片电子元器件封装尺寸

汇集了很多贴片元器件的封装以及封装尺寸。方便各位PCB板元器件封装的绘制。

2012-10-26

基于NiosⅡ软核处理器的uClinux移植

基于nios的ucLinux移植技术文档。这个是低版本的uClinux内核。支持select HW。

2012-10-26

天嵌TQ2440的linux移植文档

天嵌TQ2440板子的linux移植开发手册。

2012-10-26

nios2-linux资料

主要介绍了如何将linux移植到nios2上的说明文档。并附有步骤

2012-10-26

linux内核配置(1)

详细介绍了linux内核配置的各个选项.要的赶快下载

2012-05-25

linux之nios移植教程.

linux之nios移植教程.linux之nios移植教程.

2012-05-25

ARM学习之Jlink烧写Uboot

ARM学习之Jlink烧写Uboot的方法介绍

2012-05-25

ARM入门教程(PPT)

主要讲解了现在嵌入式系统的发展方向,如果你对嵌入式这块感到茫然的话,建议看看。

2011-08-24

用GDI画的汽车仪表盘

用GDI画的汽车仪表盘,可用于带嵌入式的虚拟仪表方面。

2011-08-24

PDA上使用的串口调试程序

本软件及代码主要实现在掌上电脑PDA的串口调试用的工具。实现了在PC上实现的功能。

2011-08-17

C#定时关机的PC程序(适合初学者使用)

主要是利用windows API函数来达到定时关机的目的。本人是初学者,也许程序很简单。但希望能对新手有一定的帮助

2011-08-17

空空如也

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

TA关注的人

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