imx VPU解码分析3-wrap的示例

本文介绍了如何在Linux环境下使用imxVPU的wrap库进行解码,涉及test_dec_arm_elinux.c和decode_stream.c文件的使用,以及如何通过Makefile编译链接库文件和指定参数。作者提到需要h264输入流和yuv输出,并分享了解决编译器库路径问题的经验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

imx VPU解码分析1icon-default.png?t=N7T8https://blog.youkuaiyun.com/huntenganwei/article/details/132526586?spm=1001.2014.3001.5502中介绍了wrap的解码基本内容,这里从库中扣除一个示例,来看看wrap具体的解码。

官方开源库icon-default.png?t=N7T8https://github.com/nxp-imx/imx-vpuwrap

这里我抠出二个c文件

test_dec_arm_elinux.c

decode_stream.c

主函数在test_dec_arm_elinux.c中,进行一些参数的解析,在decode_stream.c中处理具体的wrap解码过程。

只需要二个头文件

decode_stream.h

vpu_wrapper.h

vpu_wrapper.h这个文件就是我们的wrap库的头文件了,基本对应了在imx VPU解码分析1中的介绍。

这几个所需要的库文件抠出来,编译器目录里面有,我下载的 imx-vpuwrap库也带了,或者在开发板里面抠出来。我引用了这几个

然后就是编写Makefile文件了

#源文件,自动找所有.c和.cpp文件,并将目标定义为同名.o文件,不需要修改
SOURCE  := $(wildcard *.c) $(wildcard *.cpp)
OBJS    := $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SOURCE)))
  
#目标文件名,可修改为任意你想要的执行文件名
TARGET  := vpuwraptest
  
#编译参数
CC      := aarch64-poky-linux-gcc --sysroot=$(SDKTARGETSYSROOT)

##库文件的目录
LIBS 	= -L./lib -lhantro -lfslvpuwrap -lcodec -lg1 
#LDFLAGS := -L.
##头文件的目录
CFLAGS  := -I. 
CXXFLAGS:= $(CFLAGS) -DHAVE_CONFIG_H
#下面的基本上不需要做任何改动了
.PHONY : everything objs clean veryclean rebuild
  
everything : $(TARGET)
  
all : $(TARGET)
  
objs : $(OBJS)
  
rebuild: veryclean everything
                
clean :
	rm -fr *.o
    
veryclean : clean
	rm -fr $(TARGET)
  
$(TARGET) : $(OBJS)
	$(CC)  $(CXXFLAGS) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)

和之前的博文经典写法基本一致

Linux应用程序之Makefile编写icon-default.png?t=N7T8https://blog.youkuaiyun.com/huntenganwei/article/details/123555496?spm=1001.2014.3001.5502编译成功,运行正常。

运行指令是: ./vpuwraptest -i 200frames.h264 -f 8 -o out.yuv

可以看出这里需要h264流文件,输出的是yuv420文件,使用yuv工具查看正常。

如此,一个极简的wrap测试例程即完成。

我在编译时发现把编译器库路径添加上,会报一些莫名的错误,这里还是不多搞操作,使用编译器环境的environment-setup设置下。

程序就不细看了,对着第一篇基本就清晰了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值