嵌入式Linux小项目之图片编解码播放器

Posted 小嵌同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Linux小项目之图片编解码播放器相关的知识,希望对你有一定的参考价值。

一、及时规整才能写出好项目

1、再次强调规范问题

(1)函数、变量起名字要合法合理
(2)要写注释
(3)函数长短要合适
(4)多文件组织,每个东西丢到合理的位置

可参考:《华为的C语言编程规范》
链接地址:我用阿里云盘分享了「华为C语言规范.pdf」,你可以不限速下载🚀
复制这段内容打开「阿里云盘」App 即可获取
链接:https://www.aliyundrive.com/s/y3mFwXVDS1u

2、为什么要规整项目

(1)完全自由写项目时不可能一步到位,只能先重内容和功能,后补条理和规范
(2)规整的过程也是一个梳理逻辑和分析架构的过程

3、对项目进行规整

(1)去掉测试显示时头文件形式提供的图片显示数据相关的东西,用C语言方式读取并解析BMP文件

4、一些重构代码的技巧

(1)用#if 0 #endif来屏幕不需要的代码,尽量不要用/* */
(2)暂时不要的代码先不要删除,而是屏幕掉

5、一些调试技巧

(1)添加DEBUG宏以控制调试信息输出
debug宏添加好后,要使能输出可以有2种方式:
第一种:就是在debug宏定义之前定义DEBUG宏。

#define DEBUG     //打开调试信息输出的开关
#ifdef DEBUG
#define DBG(...)                                    \\
			fprintf(stderr, " DBG(%s, %s(), %d): ",  \\
			__FILE__, __FUNCTION__, __LINE__);       \\
            fprintf(stderr, __VA_ARGS__);
#else

#define DBG(...)

第二种:在编译参数中添加-DDEBUG编译选项(Makefile中添加)

CFLAGS := -Wall -O2 -g -DDEBUG#编译器参数

(2)图片信息用结构体来封装来作为函数的参数传递

//用于封装一张图片的相关信息
typedef struct
{
	char *pathname;     //图片在文件系统中的路径+文件名
	unsigned int width; //图片分辨率之宽
	unsigned int height;//图片分辨率之高
	unsigned int bpp;   //图片的位图深度bpp
	char *pData;		//指向存储图片有效数据的buf
}pic_info;


注:本资料大部分由朱老师物联网大讲堂课程笔记整理而来并且引用了部分他人博客的内容,如有侵权,联系删除!水平有限,如有错误,欢迎各位在评论区交流。

以上是关于嵌入式Linux小项目之图片编解码播放器的主要内容,如果未能解决你的问题,请参考以下文章

研究人员表示,音频编解码器中的缺陷使三分之二的智能手机面临窥探的风险

研究人员表示,音频编解码器中的缺陷使三分之二的智能手机面临窥探的风险

凭一己之力养活全球无数播放器 这个开源项目迎来20周年生日

从零开始用C语言实现图片解码播放器(有源码)

Linux之gstreamer视频编解码测试指令

android ndk之opencv+MediaCodec硬编解码来处理视频动态时间水印