流媒体程序开发之:H264解码器移植到OPhone

  • 时间:
  • 浏览:0
  • 来源:uu快3大小_uu快3网站_开奖历史

2. 面向人群

       本文面向有一定的手机应用开发经验(类似于:S30/Mobile/MTK)和有一定的跨手机平台移植经验的人员,帮助她们了解另另一个 企业的核心库(C/C++)是为社 移植到OPhone之上的。

 

        OPhone的模拟器和Mobile的模拟器一样是模拟ARM指令的,不像Symbian模拟器一样执行的是本地代码,许多许多在模拟器上模拟出来的下行速率 会比 真实手机上的下行速率 要低,而是这款解码器机会优化到在nokia 6300(相当低端的一款手机,CPU主频才120Hz)上做到在线播放。

 

        使用javah命令生成JNI头文件,这可不可以不能注意是class路径都在 源代码的路径,否则要换成包名:

        在“假定前提”中提到了要移植的函数,接下来会编写有有哪些 函数的Java Native Interface。

5.2 封装Java接口

国内最棒的Google Android技术社区(eoeandroid),欢迎访问!《银河系列原创教程》发布《Java Web开发速学宝典》出版,欢迎定购

4.  开发环境(请参考: http://www.ophonesdn.com/documentation/)

 

        最后,大家儿启动Cygwin,始于编译:

        首先,可不可以在$NDK"apps目录下,创建另另一个 项目目录,这里创建了另另一个 H264Decode目录,在H264Decode目录中,创建另另一个 Android.mk文件:

 

3. 假定前提

1)熟悉Java/C/C++语言;

2)熟悉Java的JNI技术;

3)有一定的跨手机平台移植经验;

4)有一套可供移植的源代码库,这里以H.264解码库为例,为了保护大家儿的知识版权,这里只有够公开头文件:

  

       将H.264解码器移植到OPhone操作系统之上(NDK+C),并写另另一个 测试程序运行运行(OPhoneSDK+Java)测试解码库是不是正常运行,下面是解码时的截图:

5.3 使用C实现本地法律依据

5.  移植过程



       接下来,可不可以在$NDK"source目录下,创建源代码目录(这里的目录名要和上端创建的项目目录文件名相同),这里创建另另一个 H264Decode目录,否则把而是生成的JNI头文件和你实现的本地法律依据 相关头文件和源代码,都拷贝到   這個目录下面。



      这里解释一下abd push命令:

      adb push <本地文件路径> <远程文件路径>    - 一键复制文件机会目录到模拟器

      在Eclipse中,启动库测试程序运行运行,得到画面如下:

 

5.3.2 实现本地法律依据

 5.3.3 编译本地法律依据

5.4 编写库测试程序运行运行

        接下来,只可不可以把用C实现的本地法律依据 编译为动态链接库,机会而是你用于移植的那个库原来移植到Symbian上过,没有编译会相当简单,机会NDK的编译器和Symbian的编译器一样,都在 采用GCC做交叉编译器。

          否则,大家儿编辑Android.mk文件:



         这块没有哪些好说的,而是按照H264解码库的函数,封装的一层接口,机会你熟悉Java JNI,会发现原来是没有类似于。这里插入一句:我老要认为技术都在 相通的,底层的技术就没有几种,学懂了,其它技术都在 一通百通。

      BMPImage是另另一个 工具类,主要用于把RGB序列,转换为BMP图象用于显示:

        模拟器黑屏为社 办?

        这机会是机会模拟器启动下行速率 没能所引起的,许多许多可不可以多等一会。希望下个版本并能改进。

原文地址:http://www.ophonesdn.com/article/show/45;jsessionid=306BD3BE92F43DC693BEB09B0234B036

5.1 移植流程

   可不可以注释掉你的代码中“typedef signed char  int8_t;”,机会你的代码而是是机会移植到了Mobile/Symbian上励志的话 ,很有机会遇到這個问题。

       

       机会你看得人了Install:**,这说明你的库机会编译好了。



         测试程序运行运行完整性工程在此暂不提供。

        这里生成了另另一个 ophone_streaming_video_h264_H264decode.h,大家儿打开来看看:



        关于Android.mk文件中,各个字段的解释,还可不可以参考$NDK"doc下的《OPHONE-MK.TXT》和《OVERVIEW.TXT》,上端有完整性的介绍。

        FAQ 3:

5.3.1生成头文件

        而是机会生成了JNI头文件,接下来只可不可以实现這個头文件的几个导出函数,这里以H264解码器的实现为例:



    用Eclipse创建另另一个 OPhone工程,在入口类中输入如下代码:

        集成测试有两点可不可以注意,在运行程序运行运行前,可不可以把动态库一键复制到模拟器的/system/lib目录下面,还可不可以把可不可以解码的视频传到模拟器的/tmp目录下。

       这里要明确的是,OPhone和Symbian的模拟器都做的太不人性化了,Symbian一键复制另另一个 文件到模拟器中,要进一堆太满的目录,OPhone的 更恼火,可不可以敲命令把文件传递到模拟器里,说实话,仅在这点上,Mobile的模拟器做的还是非常人性化的。

       命令:

      你不必熟悉OPhone平台,一切从零始于,机会在此而是,我而是熟悉。

 

5.5集成测试

       FAQ 2:

       机会编译遇到下面错误,为社 办?