mplayer移植到S3C2440(二)
编译器版本:arm-linux-gcc 3.4.1
解决文件系统大于30M无法烧到板上的问题:
struct mtd_partition gec24xx_default_nand_part_b[] = {
[0] = {
.name = "Bootload",
.size = 0x00030000,
.offset = 0
},
[1] = {
.name = "Kernel",
.size = 0x001d0000,
.offset = 0x00030000,
},
[2] = {
.name = "RootFileSystem",
.size = 0x03e00000,
.offset = 0x00200000,
}
};
struct s3c2410_nand_set nandset ={
nr_partitions: 3 ,
partitions: gec24xx_default_nand_part_b, //partition_info ,
};
2 修改/sound/oss/s3c2410-oss.c文件,解决mplayer无法使用oss播放音频
音频无法播放的原因及解决:
这个问题产生的根源最终追溯到音频的驱动部分。现在大部分的嵌入式板子都使用菲利普uda1341音频芯片,
因而也都使用了相同一个音频驱动,即MIZI 公司拥有版权的linux uda1341音频驱动,这个驱动基本上符合了oss的规范,
但是当使用到多段DMA音频数据传输时,出现了一个问题,即DMA缓冲的建立发生在第一次调用write()函数
将音频数据传送到设备描述符的时候,然而oss驱动的调用者通常要在打开音频设备描述时候,就期望获取DMA缓冲的信息,
然而因为缓冲尚未建立,因而返回缓冲大小为0这个结果。
解决的办法是在音频驱动源码的smdk2410_audio_open()函数体,加上如下一段代码,
if (!output_stream .buffers && audio_setup_buf(&output_stream))
return -ENOMEM;
添加的位置具体见以下代码的粗体部分:
static int smdk2410_audio_open(struct inode *inode, struct file *file)
{
int cold = !audio_active;
DPRINTK("audio_open\n");
if ((file->f_flags & O_ACCMODE) == O_RDONLY) {
if (audio_rd_refcount || audio_wr_refcount)
return -EBUSY;
audio_rd_refcount++;
} else if ((file->f_flags & O_ACCMODE) == O_WRONLY) {
if (audio_wr_refcount)
return -EBUSY;
audio_wr_refcount++;
} else if ((file->f_flags & O_ACCMODE) == O_RDWR) {
if (audio_rd_refcount || audio_wr_refcount)
return -EBUSY;
audio_rd_refcount++;
audio_wr_refcount++;
} else
return -EINVAL;
if (cold) {
audio_rate = AUDIO_RATE_DEFAULT;
audio_channels = AUDIO_CHANNELS_DEFAULT;
audio_fragsize = AUDIO_FRAGSIZE_DEFAULT;
audio_nbfrags = AUDIO_NBFRAGS_DEFAULT;
if ((file->f_mode & FMODE_WRITE)){
init_s3c2410_iis_bus_tx();
audio_clear_buf(&output_stream);
// 加上以下这行代码
if (!output_stream .buffers && audio_setup_buf(&output_stream))
return -ENOMEM;
}
if ((file->f_mode & FMODE_READ)){
init_s3c2410_iis_bus_rx();
audio_clear_buf(&input_stream);
}
}
MOD_INC_USE_COUNT;
return 0;
}
改完驱动后,重新编译内核。
<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(596) | 评论(1) | 转发(0) |
上一篇:mplayer移植记录(一)
下一篇:mplayer移植到S3C2440(三)制作皮肤
- uboot移植第一课
- 常州同城好易购 加盟代理 加盟...
- LCD驱动移植
- s3c6410 arm移植实验四:qte4...
- 网卡AX88796(NE2000兼容网卡...
- linux守护进程的几个关键地方...
- stagefright与opencore对比
- 嵌入式Linux之我行——u-boot-...
- 嵌入式Linux之我行——内核、...
- CodeNavigator -- 程序员必备...
- ChinaUnix & ITPUB社区12周年...
- ssh连接出现以下提示,求解...
- 如何扩展MYSQL
- 准备做一个大型门户,用户什么...
- gbk or utf8
chinaunix网友2011-03-02 20:30:55
请问smdk2410_audio_open()函数是在哪个文件里面?
mplayer移植到S3C2440(二)相关推荐
- 嵌入式linux mplayer,Mplayer 移植
关于mplayer移植网上资料很多,但都很混乱.在此,我做了一个关于mplayer 的详细总结.在做之前好在解压源码包后,先通过./configure --help看一下相关配置. X86的LINUX ...
- 最新版本mplayer移植pxa270成功
最新版本mplayer移植pxa270成功 1.下载新版本的mplayer,方法可以参见其他版本的README cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/c ...
- SimpleFOC移植STM32(二)—— 开环控制
目录 注意事项 一.硬件介绍 1.1.硬件准备 1.1.1.SimpleMotor方案 1.1.2.SimpleFOCShield V2.0.3方案 1.2.硬件连接 1.2.1.原理图 1.2.2. ...
- 嵌入式linux播放视频 mplayer,mplayer 移植后无法播放视频
请 登录 后使用快捷导航 没有帐号?注册 阅 2800|回 5 最后登录2016-9-8 在线时间1 小时 威望0分 芯积分E金币好友 发表于2010-1-15 11:31 mplayer 移植后无法 ...
- linux系统移植篇(二)—— Uboot使用介绍
linux系列目录: linux基础篇(一)--GCC和Makefile编译过程 linux基础篇(二)--静态和动态链接 ARM裸机篇(一)--i.MX6ULL介绍 ARM裸机篇(二)--i.MX6 ...
- 最新版本mplayer移植pxa270成功!
最新版本mplayer移植pxa270成功 1.下载新版本的mplayer,方法可以参见其他版本的README svn checkout svn://svn.mplayerhq.hu/mplayer/ ...
- MPlayer移植步骤
Mplayer移植 目录 Mplayer移植 前期准备: 中期执行: 测试: 后期总结: 前期准备: 1.软件:MPlayer-1.0rc4.tar libmad-0.15.1b.tar 2.环境:L ...
- MPlayer移植到arm开发板
今天用了一天的时间将mplayer移植到arm开发板上,移植过程中遇到各种问题,在此做以记录. mplayer版本:1.0rc2 Ubuntu版本:12.04 64位 移植过程: 1.su获取root ...
- U-Boot移植教程之二:移植
内容来自 韦东山<嵌入式Linux应用开发完全手册> 一.U-Boot移植 开发板smdk2410的配置适用于大多数S3C2410单板,或是只需要极少的修改即可使用.但是目前U-Boot中 ...
最新文章
- 用最骚的话让你彻底弄懂贝叶斯!
- Linux修改文件/目录权限
- android+ebook控件,Android 自定义控件 eBook 翻书效果
- 二叉树的三种遍历(递归与非递归) + 层次遍历
- EL表达式, JSTL, 获取map集合中key的value
- 信息学奥赛一本通(1169:大整数减法)
- Android 系统优化(35)---Android 中如何计算 App 的启动时间?
- 电商扣减库存_电商系统秒杀架构设计
- wifi网卡工作模式和iwconfig
- Linux文件莫名被删除,【Linux】Linux文件被删除后的恢复方法
- 无线 WIFI 的13个信道频率范围
- 粥左罗教你从零开始学写作笔记系列
- PMP项目管理是什么意思?
- png图片尺寸大小调整
- iPad----------教你如何查询ipad型号
- 刀片机服务器的虚拟化,刀片机服务器虚拟化
- 《数据结构》—— 二叉树的复制、查深度与算结点操作
- 分布式系统实践学习总结
- X5045看门狗电路
- 小红书笔记怎么推广?笔记关键词有什么需要注意?
热门文章
- 特征选择方法总结(过滤式,包裹式,嵌入式)
- 完全卸载Oracle(亲身体验完整版)
- 006 - CMake 安装动态库并生成 XxxConfig.cmake 文件
- PYTHON CIS线阵相机(PYTHON CISC)
- java-php-python-ssm-诗歌分享平台-计算机毕业设计
- 大姐夫说人类五年内就要重返月球了!
- mysql分区方法_mysql 分区PARTITIONS之分区方法
- android实现runnable接口,013 Android多线程-实现Runnable接口
- 【金猿产品展】Stratifyd——敏捷AI驱动的客户体验数据分析平台
- 如何关闭 FlashGet 右侧的网页