客户(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完毕...
136



被折叠的 条评论
为什么被折叠?



