armv4l-unknown-linux-gcc下载,FFMPEG S3C2410上的交叉编译 armv4l-unknown-linux-gcc(2.95)

FFMPEG 编译与移植

(1)FFMPEG下载

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpegs

(2)FFMPEG x86 平台编译安装

进入ffmpeg 目录

#./configure --prefix=/usr

#make

#make install

(3)FFMPEG 移植ARM(S3C2410)平台

a.修改ffmpeg/libavcodec/armv4l/dsputil_arm_s.S文件

--- armv4l/dsputil_arm_s.S (revision 8264)

+++ armv4l/dsputil_arm_s.S (working copy)

@@ -19,6 +19,10 @@

@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

@+.macro pld arg+

@+.endm+.macro ADJ_ALIGN_QUADWORD_D shift, Rd0, Rd1, Rd2, Rd3, Rn0, Rn1, Rn2, Rn3, Rn4

mov \Rd0, \Rn0, lsr #(\shift * 8)

mov \Rd1, \Rn1, lsr #(\shift * 8)

注意:pld 这条指令好像是ARM5TE里面的指令,而S3C2410是貌似不支持这条指令。

b.修改libavcodec/armv4l/dsputil_arm.c

//extern void simple_idct_armv5te(DCTELEM *data);

//extern void simple_idct_put_armv5te(uint8_t *dest, int line_size,

//                                    DCTELEM *data);

//extern void simple_idct_add_armv5te(uint8_t *dest, int line_size,

//                                    DCTELEM *data);

//extern void ff_simple_idct_armv6(DCTELEM *data);

//extern void ff_simple_idct_put_armv6(uint8_t *dest, int line_size,

//                                     DCTELEM *data);

//extern void ff_simple_idct_add_armv6(uint8_t *dest, int line_size,

//                                     DCTELEM *data);

将以上这些声明注释掉,编译的时候要把ARMV5TE和ARMV6 disable掉。所以这

几个函数所在的汇编文件不会编译。

c.配置,编译

#./configure --cross-prefix=armv4l-unknown-linux- --prefix=/usr --cross-compile --arch=armv4l --target-os=arm-linux --enable-static --enable-shared --disable-ffserver --disable-ffplay --disable-mmx --disable-ipv6 --disable-iwmmxt --disable-strip --disable-armv5te --disable-armv6

#make

#make install DESTDIR=/root/ffmpeg/install

FFMPEG相关的头文件,库文件都在/root/ffmpeg/install目录下。将lib里面的动态连接库拷贝到开发板的/mnt/yaffs/lib目录下。

d.FFMPEG库的使用

FFMpeg 中比较重要的函数以及数据结构如下:

1. 数据结构:

(1) AVFormatContext

(2) AVOutputFormat

(3) AVInputFormat

(4) AVCodecContext

(5) AVCodec

(6) AVFrame

(7) AVPacket

(8) AVPicture

(9) AVStream

2. 初始化函数:

(1) av_register_all()

(2) avcodec_open()

(3) avcodec_close()

(4) av_open_input_file()

(5) av_find_input_format()

(6) av_find_stream_info()

(7) av_close_input_file()

3. 音视频编解码函数:

(1) avcodec_find_decoder()

(2) avcodec_alloc_frame()

(3) avpicture_get_size()

(4) avpicture_fill()

(5) img_convert()

(6) avcodec_alloc_context()

(7) avcodec_decode_video()

(8) av_free_packet()

(9) av_free()

4. 文件操作:

(1) avnew_steam()

(2) av_read_frame()

(3) av_write_frame()

(4) dump_format()

5. 其他函数:

(1) avpicture_deinterlace()

(2) ImgReSampleContext()

(落鹤生)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值