本阶段把把ffplay2.c融入到ffmpeg自动编译体系中。
为了便于git更新,尽量对存在的文件做最小的改动,下面的方式只需对Makefile改两行,其他文件不变。
总的思路就是找ffplay出现在哪ffplay2也出现在哪。
第一步:cp doc/ffplay.texi doc/ffplay2.texi
sed -e 's/ffplay/ffplay2/g' Makefile
cp configure configure.2
edit 3 lines of configure.2:
SDL_CONFIG="${cross_prefix}sdl2-config"
check_func_headers SDL_version.h SDL_GetRevision $sdl_cflags $sdl_libs &&
check_cpp_condition SDL.h "(SDL_MAJOR_VERSION<<16 | SDL_MINOR_VERSION<<8 | SDL_PATCHLEVEL) >= 0x020003" $sdl_cflags &&
这里2.0.3是我验证过可以的。
第二步: 把sdl2-config导出到路径中:
export PATH=$HOME/porting/host/bin:$PATH
../git_ffmpeg/configure.2 --prefix=$HOME/porting/host \
--disable-outdev=sdl \
--enable-version3 --enable-nonfree --enable-gpl --enable-libx264
这里的sdl 设备输出差不多是ffplay简化版,完全鸡肋,略去。这个配置会在当前目录生成两个重要的文件:config.mak和config.h,
可以临时对它们改动。
第三步:一切就绪。
make -j16
其他要说的:
ffmpeg/configure,Makefile 写的非常经典, 哪天我需要一个构建系统时一定会参考它们。