快速业务通道

流媒体程序开发之H264解码器移植到OPhone - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21
gt;CallObjectMethod(pOutBuffer,SetPositionMethodId,OutSize);          }      }      //賠尖        env->ReleaseByteArrayElements(InByteArrary,InJbyte,0);      env->ReleaseByteArrayElements(OutByteArrary,OutJbyte,0);      return DecodeSize; } JNIEXPORT jlong JNICALL Java_ophone_streaming_video_h264_H264decode_Initialize    (JNIEnv * env, jclass obj) {      H264Decode *pDecode = H264Decode::H264DecodeConstruct();      return (jlong)pDecode; } JNIEXPORT void JNICALL Java_ophone_streaming_video_h264_H264decode_Destroy    (JNIEnv * env, jclass obj, jlong decode) {      H264Decode *pDecode = (H264Decode *)decode;      if (pDecode)      {          delete pDecode;          pDecode = NULL;      } }

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

时间:2011-01-08 BlogJava 银河使者

5.3.3 编译本地方法

接下来,只需要把用C实现的本地方法编译为动态链接库,如果之前你用于移植的那个库曾经移植到Symbian上过,那么编译会相当简单,因为NDK的编译器和Symbian的编译器一样,都是采用GCC做交叉编译器。

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

APP_PROJECT_PATH := $(call my-dir) APP_MODULES   := H264Decode 

接下来,需要在$NDK"source目录下,创建源代码目录(这里的目录名要和上面创建的项目目录文件名相同),这里创建一个H264Decode目录,然后把之前生成的JNI头文件和你实现的本地方法相关头文件和源代码,都拷贝到   这个目录下面。

流媒体程序开发之H264解码器移植到OPhone - 编程入门网

然后,我们编辑Android.mk文件:

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE  := H264Decode LOCAL_SRC_FILES := common.c cabac.c utils.c golomb.c mpegvideo.c mem.c imgconvert.c h264decode.cpp h264.c dsputil.c ophone_streaming_video_h264_H264decode.cpp include $(BUILD_SHARED_LIBRARY)

关于Android.mk文件中,各个字段的解释,可以参考$NDK"doc下的《OPHONE-MK.TXT》和《OVERVIEW.TXT》,里面有详细的介绍。

最后,我们启动Cygwin,开始编译:

流媒体程序开发之H264解码器移植到OPhone - 编程入门网

流媒体程序开发之H264解码器移植到OPhone - 编程入门网

如果你看到了Install:**,这说明你的库已经编译好了。

FAQ 2:

如果编译遇到下面错误,怎么办?

error: redefinition of typedef ''int8_t''

需要注释掉你的代码中“typedef signed char  int8_t;”,如果你的代码之前是已经移植到了Mobile/Symbian上的话,很有可能遇到这个问题。

送箪悶殻會蝕窟岻H264盾鷹匂卞峅欺OPhone(5)

扮寂:2011-01-08 BlogJava 咢采聞宀

5.4 園亟垂霞編殻會

喘Eclipse幹秀匯倖OPhone垢殻?壓秘笥窃嶄補秘泌和旗鷹?

/**  * @author ophone  * @email 3751624@qq.com  */ package ophone.streaming.video.h264; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.nio.ByteBuffer; import OPhone.app.Activity; import OPhone.graphics.BitmapFactory; import OPhone.os.Bundle; import OPhone.os.Handler; import OPhone.os.Message; import OPhone.widget.ImageView; import OPhone.widget.TextView; public class H264Example extends Activity {     private static final int VideoWidth = 352;     private static 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号