您的位置:首页 > 移动开发 > Android开发

[Android 外挂字幕维护Note ]一次字幕版本release的心酸过程

2016-10-29 11:44 615 查看
客户(AN4.4的平台)报了一个sub字幕显示不了的问题,好吧,看。拿开发板烧image,拿最新的subtitle lib一替换之后,sub字幕显示了哈,开心。

然而,字幕竟然不同步,哼。一想,应该是帧率没有跟上,毕竟sub字幕文件如果没有给出帧率,那么就要有mstplayer给帧率。

然后查了下git的log历史,哈,真是已经上过code了,更新libmmp.so之后一看,嗯,同步搞定了哈。

事情到这我以为结束了,但其实才刚刚开始..

  下午Fae RTX告诉我,验证是OK了,但是subtitle 单独编译能通过,mmp编译不行啦,在头文件和so替换最新的情况下。XD.

那边FAE的小leader又在追杀,搞得我火燎火急的看到底编译哪里出错了。一编译,晕,怎么会是条件编译的地方出错呢,不应该呀,绝对不会呀。

然后静下心来再三看几遍,确实是没看出什么问题。

这里是字幕的头文件 

#if defined(JB_41) || defined(JB_42)

    void SetISurfaceTexture(const sp<ISurfaceTexture> &isurfacetexture);

#else

    void SetIGraphicBufferProducer(const sp<IGraphicBufferProducer> &graphicbufferproducer);

#endif

mmp的头文件是这样的

#ifndef JB_43

#include <gui/ISurfaceTexture.h>

#define IGraphicBufferProducer ISurfaceTexture

#else

#include <gui/IGraphicBufferProducer.h>

#endif

编译的时候提示ISurfaceTexture这个类找不到。字幕的头文件的话 4.4编译那么应该是走SetIGraphicBufferProducer呀。

然后mmp也是会声明  IGraphicBufferProducer的呀。这样ok呀,为啥会错呢。

搞不懂。因为mmp的头文件不能修改,所以字幕的头文件出错的条件编译地方,我保留了下来,只是更新最新的头文件的剩余地方的code。

然后再编译可以ok了。

这边mmp编译过去了,但是还有一步要做,那就是要重新buid subtitle的so,因这边mmp下面的subtitle头文件没有全部更新,

那么在新的subtitle lib里面就要使用旧版的条件编译的代码。

这里必须吐槽下subtitle的管理,竟然没有版本号的说明,客户的板子对应哪个版本都找不到,伤。。

然后在最新的subtitle的头文件中改用旧版的条件编译。

改完之后,一编译,错误。我没有修改cpp文件的条件编译,当然错。该打脸 。

于是修改了新版subtitle的cpp 文件中条件编译为旧版模式

然后再重新编译,还错。再打脸。我使用的是新版的MK文件编译,应该是这里出错。

然后再找到旧版的MK文件:9731ef57bd14a634f3d32c32ae486598dfc4f596(CL)

然后直接替换,再编译,终于在4.4平台编译过去了最新版的subtitle lib。

最后是上code release.使用symbols目录下的lib替换了subtitle 4.4下面的两个lib,

然后是git 提交修改的头文件,至此。4.4的subtitle 版本release完毕...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: