全志F1C100s主线linux入坑记录 (6)音视频播放(视频播放软解)

音视频播放(视频播放软解)

百度网站



一、音频播放

1.声卡驱移动植入

(1)下载安装声卡补丁

参考挖坑网大神提供的声音驱动以及声音卡驱动补丁文件下载文件下载
全志F1C100s声卡补丁
在这里插入图片描述

解压文件打上补丁
在这里插入图片描述

(2)配置声卡

修改设备树文件添加声卡节点

vi arch/arm/boot/dts/suniv-f1c100s.dtsi
dma: dma-controller@1c02000 {
	compatible = "allwinner,suniv-dma";
	reg = <0x01c02000 0x1000>;
	interrupts = <18>;
	clocks = <&ccu CLK_BUS_DMA>;
	resets = <&ccu RST_BUS_DMA>;
	#dma-cells = <2>;
};

codec: codec@1c23c00 {
	compatible = "allwinner,suniv-codec";
	reg = <0x01c23c00 0x400>;
	interrupts = <21>;
	clocks = <&ccu CLK_BUS_CODEC>,
		 <&ccu CLK_CODEC>;
	clock-names = "apb", "codec";
	resets = <&ccu RST_BUS_CODEC>;
	dmas = <&dma 0 12>, <&dma 0 12>;
	dma-names = "rx", "tx";
	status = "disabled";
};

在这里插入图片描述

vi arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
&codec {
	allwinner,audio-routing =
		"Headphone", "HP",
		"Headphone", "HPCOM",
		"MIC", "Mic";
	status = "okay";
};

在这里插入图片描述
内核配置

make ARCH=arm menuconfig
Device Drivers
     <*> Sound card support 
         <*> Advanced Linux Sound Architecture 
             <*> ALSA for SoC audio support 
                 -> Allwinner SoC Audio support

在这里插入图片描述

Device Drivers 
   <*> DMA Engine support

在这里插入图片描述

(3)linux内核编译烧录

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12

可以看到声卡已经挂载了
在这里插入图片描述

(4)使用声卡

安装alsa-utils

//添加包
cd buildroot 
make menuconfig
Target packages  ---> 
	Libraries  --->
		Audio/Sound  --->
			[*] alsa-lib  --->	

在这里插入图片描述

 Target packages  --->
 	Audio and video applications  --->
 		[*] alsa-utils  ---> 

在这里插入图片描述
安装myplayer音视频播放器

 Target packages  --->
 	Audio and video applications  --->
 		[*] mplayer
 		[*] Build and install mplayer
 		[*] Build and install mencoder

编译烧录buildroot

make -j12

启动开发板,设置默认声卡

 vi /etc/asound.conf
defaults.ctl.card 1
defaults.pcm.card 1
defaults.timer.card 1

在这里插入图片描述

添加配置alsa文件

vi /var/lib/alsa/asound.state

如果感觉比较麻烦可以直接看下面采用 alsamixer 可视化配置,不添加这个文件
在这里插入图片描述

设置配置

alsactl restore -f /var/lib/alsa/asound.state

重启系统

reboot

播放音乐

 mplayer -ao alsa xxx.mp3

在这里插入图片描述
解决播放声音变快的问题

修改drivers/clk/sunxi-ng/ccu-suniv-f1c100s.c 中 311行

static SUNXI_CCU_GATE(codec_clk, "codec", "pll-audio", 0x140, BIT(31), 0);

改为

static SUNXI_CCU_GATE(codec_clk, "codec", "pll-audio", 0x140, BIT(31), CLK_SET_RATE_PARENT);

在这里插入图片描述

使用可视化界面设置声卡

alsamixer

在这里插入图片描述
光标移动至 Headphon 按 >按键 和 <按键 打开耳机 按上键设置音量

二、视频播放

播放MP4视频命令

mplayer xxx.mp4  -vo fbdev2  -framedrop -ao alsa  -zoom -x 320 -y 240                          
-ao sdl
-autosync 30

注意这里使用的是软件解码播放,想要流畅的播放视频必须使用硬件解码,得需要使用全志官方的 tina sdk 才行


参考

https://whycan.com/viewtopic.php?id=2041
https://whycan.com/viewtopic.php?id=4304

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
全志F1C100S芯片是一款广泛应用于嵌入式系统的ARM处理器,支持运行Linux操作系统。设备树(Device Tree)作为一种硬件描述语言,被广泛应用于嵌入式系统中,用于描述硬件设备的信息。 要在运行Linux系统的全志F1C100S芯片上添加设备树,需要按照以下步骤进行: 1. 首先,了解全志F1C100S芯片的硬件架构和设备信息。通过查阅芯片的数据手册,获得芯片中的各个设备及其相关寄存器地址、中断信息等。 2. 在Linux内核源码中找到与全志F1C100S芯片相关的设备树文件(一般以.dts或.dtb文件格式存在)。这些文件位于arch/arm/boot/dts目录下。 3. 复制芯片相关的设备树文件,命名为相应的名称。根据需要,在设备树文件中添加新设备的描述。可以参考其他设备的描述,了解设备树的结构和语法规则。 4. 编辑设备树文件,添加新设备的描述信息。根据设备手册中的相关信息,包括设备的名称、地址、中断等,正确地描述设备的各个属性。 5. 编译设备树文件。使用设备树编译器(dtc)将设备树文件编译为设备树二进制文件(.dtb)。 6. 更新内核配置文件。在Makefile或Kconfig文件中,确保设备树文件被正确引用和编译进内核镜像中。 7. 编译内核。使用交叉编译工具链将内核源码编译为可在全志F1C100S芯片上运行的二进制文件。 8. 烧写内核。将编译好的内核镜像烧写到全志F1C100S芯片的存储介质中,如SPI Flash、SD卡等。 9. 启动系统。按照相应的启动方式(如从SPI Flash、SD卡启动),启动全志F1C100S芯片上的Linux系统。 通过以上步骤,我们可以成功地在运行Linux系统的全志F1C100S芯片上添加设备树,使得系统能够正确地识别和管理新添加的设备。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值