嵌入式linux------SDL移植(am335x下显示yuv420)
#include<stdio.h>
#include "/usr/local/ffmpeg_arm/include/SDL/SDL.h"
char *bmp_name[3] = {"000.bmp","111.bmp","222.bmp"};
int main()
{
int i=0;
int w = 720;
int h = 576,retu;
unsigned char* pY;
unsigned char* pU;
unsigned char* pV;
FILE* fp;
SDL_Rect rect;
//The images
SDL_Surface* hello = NULL;
SDL_Surface* screen = NULL;
//Start SDL
// SDL_Init( SDL_INIT_EVERYTHING );
SDL_Init(SDL_INIT_VIDEO);
//Set up screen
screen = SDL_SetVideoMode( 1024, 768, 32, SDL_SWSURFACE );
SDL_Overlay* overlay = SDL_CreateYUVOverlay(w, h, SDL_YV12_OVERLAY, screen);
pY = (unsigned char*)malloc(w*h);
pU = (unsigned char*)malloc(w*h/4);
pV = (unsigned char*)malloc(w*h/4);
SDL_LockSurface(screen);
SDL_LockYUVOverlay(overlay);
fp = fopen("1.yuv", "rb");
while (!feof(fp))
{
fread(pY, 1, w*h, fp);
fread(pU, 1, w*h/4, fp);
fread(pV, 1, w*h/4, fp);
memcpy(overlay->pixels[0], pY, w*h);
memcpy(overlay->pixels[1], pV, w*h/4);
memcpy(overlay->pixels[2], pU, w*h/4);
SDL_UnlockYUVOverlay(overlay);
SDL_UnlockSurface(screen);
rect.w = w;
rect.h = h;
rect.x = rect.y = 0;
SDL_DisplayYUVOverlay(overlay, &rect);
SDL_Delay(40);
i += 1;
}
fclose(fp);
free(pY);
free(pU);
free(pV);
SDL_FreeYUVOverlay(overlay);
SDL_FreeSurface(screen);
//Quit SDL
SDL_Quit();
return 0;
}
编译命令:arm-linux-gcc yuv420.c -o yuv -lpthread libSDL.a
参考:MFC下用sdl 显示bmp、rgb、yuv http://blog.csdn.net/mao0514/article/details/10007873
嵌入式linux------SDL移植(am335x下显示yuv420)的更多相关文章
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...
- top(topas),vmstat,iostat在linux和AIX操作系统下显示情况
top(topas),vmstat,iostat在linux和AIX操作系统下显示情况 分类: Linux基础 2013-08-09 17:26 1093人阅读 评论(0) 收藏 举报 详细列出各命令 ...
- 嵌入式linux------SDL移植(am335x下显示bmp图片)
#include<stdio.h> #include "/usr/local/ffmpeg_arm/include/SDL/SDL.h" char *bmp_name[ ...
- 嵌入式linux系统移植(一)
内容: 交叉编译环境 bootloader功能子系统 内核核心子系统 文件系统子系统要点: 搭建交叉编译环境 bootloader的选择和移植 kernel的配置.编译.移植和调 ...
- 嵌入式Linux系统移植——uboot常用命令
flash的一般分区: 其它数据 环境变量 可执行程序.如bootloader print(可缩写为:pri):打印查看uboot这个软件中集成的环境变量setenv.saveenv:设置.保存环境变 ...
- Linux系统vi模式下显示行号
在命令模式下输入:set nu或者:set number都可以为vi设置行号,如果要取消的话,则输入:set nonu行号的设置是vi的环境设置,不会影响文本的内容.
- 嵌入式Linux系统移植(二)——交叉编译工具集
常用工具:readelf.size.nm.strip.strings.objdump.objcopy.addr2line readelf:读可执行文件的elf头 ELF Header: Magic: ...
- 嵌入式linux和嵌入式android系统有什么区别和联系?
转自:http://bbs.eeworld.com.cn/thread-430437-1-1.html 这个问题很多人问,尤其是初入嵌入式的菜鸟.其实大家都认为android是java,已经不是lin ...
- 嵌入式linux多进程编程
嵌入式linux多进程编程 在主程序显示文本菜单.提供例如以下服务.要求每一个服务都通过生成子进程来提供. 服务包含:日历信息显示,日期信息显示,推断闰年服务,文件复制功能,数字排序功能.退出功能. ...
随机推荐
- GO开发[六]:golang反射(reflect)
反射 反射:可以在运行时动态获取变量的相关信息 Import ("reflect") reflect.TypeOf,获取变量的类型,返回reflect.Type类型 refle ...
- 2017年总结的前端文章——CSS高级技巧汇总
1. 页面顶部阴影 body:before{ content: ""; position: fixed; top:-10px; left:; width: 100%; height ...
- es故障节点恢复后加入集群导致删除索引重新出现
es的每个shard下的文件都可以看做一个完整的lucene文件,shard数据目录下的segment文件包含了索引的分片数量,副本数量.es shard可以恢复,就是因为每个shard都包含了一份数 ...
- Hadoop学习笔记五
一.uber(u:ber)模式 MapReduce以Uber模式运行时,所有的map,reduce任务都在一个jvm中运行,对于小的mapreduce任务,uber模式的运行将更为高效. uber模式 ...
- 如何在Windows上安装多个MySQL
将MySQL注册为系统服务:%MySQL_HOME%\bin>mysqld --install mysql5.1,此时,在运行中输入"services.msc"或者打开&qu ...
- manacher 模板
求最长回文子序列的 O(n)做法 讲解 #include <iostream> #include <cstdio> #include <algorithm> #in ...
- python中常见的三种句型if,while,for
1.if语句: 特别说明:条件后面的冒号不能少,同样必须是英文字符. 特别特别说明:if内部的语句需要有一个统一的缩进,一般用4个空格.python用这种方法替代了其他很多编程语言中的{}. num= ...
- LeetCode - 540. Single Element in a Sorted Array
Given a sorted array consisting of only integers where every element appears twice except for one el ...
- apache服务器主域名跳转www域名
为集中网站权重,有时候我们需要把www域名跳转到主域名,或者主域名跳转到www域名. apache服务器如何实现主域名跳转www域名: 打开网站根目录下.htaccess文件,没有的话新建一个上传至网 ...
- jq自定义多选下拉列表框
多选选择国家插件 https://gitee.com/richard1015/dropDownList