ijkplayer修改动态库名称(目前最新版本0.8.8)

举报
liuzhen007 发表于 2021/05/28 05:33:29 2021/05/28
【摘要】        了解ijkplayer的朋友都知道,底层有三个动态库,分别是libijkffmpeg.so、libijksdl.so、libijkplayer.so。一般出于避免重名冲突和便于区分的考虑都会修改它们的名称。接下来我就依次介绍如何修改三个动态库的名称。 1.libijkffmpeg.so,首先找到ijkplayer/and...

       了解ijkplayer的朋友都知道,底层有三个动态库,分别是libijkffmpeg.so、libijksdl.so、libijkplayer.so。一般出于避免重名冲突和便于区分的考虑都会修改它们的名称。接下来我就依次介绍如何修改三个动态库的名称。

1.libijkffmpeg.so,首先找到ijkplayer/android/contrib/tools/do-compile-ffmpeg.sh文件,替换其中的两处libijkffmpeg.so,修改成自己想要的名称libijkffmpeg***.so。


  
  1. FF_C_OBJ_FILES=
  2. FF_ASM_OBJ_FILES=
  3. for MODULE_DIR in $FF_MODULE_DIRS
  4. do
  5. C_OBJ_FILES="$MODULE_DIR/*.o"
  6. if ls $C_OBJ_FILES 1> /dev/null 2>&1; then
  7. echo "link $MODULE_DIR/*.o"
  8. FF_C_OBJ_FILES="$FF_C_OBJ_FILES $C_OBJ_FILES"
  9. fi
  10. for ASM_SUB_DIR in $FF_ASSEMBLER_SUB_DIRS
  11. do
  12. ASM_OBJ_FILES="$MODULE_DIR/$ASM_SUB_DIR/*.o"
  13. if ls $ASM_OBJ_FILES 1> /dev/null 2>&1; then
  14. echo "link $MODULE_DIR/$ASM_SUB_DIR/*.o"
  15. FF_ASM_OBJ_FILES="$FF_ASM_OBJ_FILES $ASM_OBJ_FILES"
  16. fi
  17. done
  18. done
  19. $CC -lm -lz -shared --sysroot=$FF_SYSROOT -Wl,--no-undefined -Wl,-z,noexecstack $FF_EXTRA_LDFLAGS \
  20. -Wl,-soname,libijkffmpeg***.so \
  21. $FF_C_OBJ_FILES \
  22. $FF_ASM_OBJ_FILES \
  23. $FF_DEP_LIBS \
  24. -o $FF_PREFIX/libijkffmpeg***.so
  25. mysedi() {
  26. f=$1
  27. exp=$2
  28. n=`basename $f`
  29. cp $f /tmp/$n
  30. sed $exp /tmp/$n > $f
  31. rm /tmp/$n
  32. }

同时,修改对应的Android.mk文件:


  
  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE := ijkffmpeg***
  4. LOCAL_SRC_FILES := $(MY_APP_FFMPEG_OUTPUT_PATH)/libijkffmpeg***.so
  5. include $(PREBUILT_SHARED_LIBRARY)

2.libijksdl.so,找到ijkplayer/ijkmedia/ijksdl/Android.mk文件,修改ijkffmpeg和ijksdk的名称分别为ijkffmpeg***、ijksdk***。


  
  1. LOCAL_SRC_FILES += android/ijksdl_vout_android_nativewindow.c
  2. LOCAL_SRC_FILES += android/ijksdl_vout_android_surface.c
  3. LOCAL_SRC_FILES += android/ijksdl_vout_overlay_android_mediacodec.c
  4. LOCAL_SHARED_LIBRARIES := ijkffmpeg***
  5. LOCAL_STATIC_LIBRARIES := cpufeatures yuv_static ijkj4a
  6. LOCAL_MODULE := ijksdl***
  7. include $(BUILD_SHARED_LIBRARY)
  8. $(call import-module,android/cpufeatures)

3.libijkplayer.so,找到ijkplayer/ijkmedia/ijkplayer/Android.mk文件,修改ijkffmpeg、ijksdk和ijkplayer的名称分别为ijkffmpeg***、ijksdk***、ijkplayer***。


  
  1. OCAL_SRC_FILES += ijkavutil/ijktree.c
  2. LOCAL_SRC_FILES += ijkavutil/ijkfifo.c
  3. LOCAL_SRC_FILES += ijkavutil/ijkstl.cpp
  4. LOCAL_SHARED_LIBRARIES := ijkffmpeg*** ijksdl***
  5. LOCAL_STATIC_LIBRARIES := android-ndk-profiler ijksoundtouch
  6. LOCAL_MODULE := ijkplayer***
  7. VERSION_SH = $(LOCAL_PATH)/version.sh
  8. VERSION_H = ijkversion.h
  9. $(info $(shell ($(VERSION_SH) $(LOCAL_PATH) $(VERSION_H))))
  10. include $(BUILD_SHARED_LIBRARY)

至此,就可以重新运行脚本编译ijkplayer的三个底层动态库了。

 

文章来源: liuzhen.blog.csdn.net,作者:Data-Mining,版权归原作者所有,如需转载,请联系作者。

原文链接:liuzhen.blog.csdn.net/article/details/82732492

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。