WEB开发网
开发学院软件开发Java 流媒体程序开发之:H264解码器移植到OPhone 阅读

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

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示:1. 移植目标 将H.264解码器移植到OPhone操作系统之上(NDK+C),并写一个测试程序(OPhoneSDK+Java)测试解码库是否正常运行,流媒体程序开发之:H264解码器移植到OPhone,下面是解码时的截图: OPhone的模拟器和Mobile的模拟器一样是模拟ARM指令的,不像Symbian模拟器一样

1.   移植目标      

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

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

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

2. 面向人群

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

3. 假定前提

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

2)熟悉Java的JNI技术;

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

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

#ifndef __H264DECODE_H__  
#define __H264DECODE_H__  
  
#if defined(__SYMBIAN32__)  //S602rd/3rd/UIQ  
    #include <e32base.h>  
    #include <libc"stdio.h>  
    #include <libc"stdlib.h>  
    #include <libc"string.h>  
#else                       //Windows/Mobile/MTK/OPhone  
    #include <stdio.h>  
    #include <stdlib.h>  
    #include <string.h>  
#endif  
  
class H264Decode  
{  
public:  
    /***************************************************************************/  
    /* 构造解码器                                                        */  
    /* @return H264Decode解码器实例                                      */  
    /***************************************************************************/  
    static H264Decode *H264DecodeConstruct();  
    /***************************************************************************/  
    /* 解码一帧                                                     */  
    /* @pInBuffer   指向H264的视频流                                      */  
    /* @iInSize H264视频流的大小                                      */  
    /* @pOutBuffer  解码后的视频视频                                        */  
    /* @iOutSize    解码后的视频大小                                        */  
    /* @return      已解码的H264视频流的尺寸                              */  
    /***************************************************************************/  
    int DecodeOneFrame(unsigned char *pInBuffer,unsigned int iInSize,unsigned char *pOutBuffer,unsigned int &iOutSize);  
    ~H264Decode();  
};  
#endif  // __H264DECODE_H__ 
 

1 2 3 4 5 6  下一页

Tags:流媒体 程序开发 解码器

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接