http://topic.csdn.net/u/20101224/19/8f3ef883-b950-444c-9b28-824d2d34341b.html你这个回答我没看懂。
我现在想用JNI实现视频图像显示,java层传一个Surface给C,在C中做显示。
Surface::SurfaceInfo info;需要加什么头文件?
我现在想用JNI实现视频图像显示,java层传一个Surface给C,在C中做显示。
Surface::SurfaceInfo info;需要加什么头文件?
解决方案 »
- android系统开发 ubuntu
- 也问:如何获得控件大小(高度、宽度等)尺寸信息?
- andriod系统怎么捕获硬键盘或外设输入并产生相应动作
- 调用系统视频播放器,怎样让他固定竖着播放,不横屏
- 在android2.3模拟器上可以测试流媒体功能吗
- android 权限获取和软件安装阻止
- Android高手必看的十个建议
- 请问如何获取com.android.phone进程id?
- Android上的WebView和ScrollView一起使用
- eclipse运行android程序时出现以下问题Errors occurred during the build. Errors running builde
- 全屏后 无法接收点击事件
- 100分请教高手一个 android串口控制台和i2c超时的问题
int lock_surface(unsigned char **ppbuf, int *width, int *height, int *bpp){
unsigned short *surfaceBuffer;
Surface::SurfaceInfo info;
Region dirtyRegion;
// invalid the whole surface
dirtyRegion.set(Rect(0x3FFF, 0x3FFF));
if(g_surface == NULL){
LOGD("Error! surface not initialized!\n");
return -1;
} status_t err = g_surface->lock(&info, &dirtyRegion);
if (err < 0) {
return -1;
} *ppbuf = (unsigned char *)info.bits;
*width = info.w;
*height = info.h; switch(info.format){
case PIXEL_FORMAT_RGBA_8888:
case PIXEL_FORMAT_RGBX_8888:
case PIXEL_FORMAT_BGRA_8888:
*bpp = 4;
break;
case PIXEL_FORMAT_RGB_888:
*bpp = 3;
break;
case PIXEL_FORMAT_RGB_565:
case PIXEL_FORMAT_RGBA_5551:
case PIXEL_FORMAT_RGBA_4444:
*bpp = 2;
break; default:
return -1;
} return 0;
}C/C++ code
int unlock_and_post_surface(void){ if(g_surface == NULL){
LOGD("Error! surface not initialized!\n");
return -1;
}
return g_surface->unlockAndPost();
}调用的地方:
C/C++ code
if(lock_surface(&graphic_buf, &output_width, &output_height, &bpp) < 0){
LOGE("ERROR! can not lock canvas");
continue;
}
yuv420_2_rgb565(yuv_location, graphic_buf,
output_width, output_height, output_width<<1);
unlock_and_post_surface();怎么获取surfaceView的native surface,从android_view_surface.cpp中剥出来就可以了。
有简单的例子吗?
这个函数中ppbuf传回是绘图的首地址
你只需要把解码处理的图片数据copy到这个地址里
然后调用unlock_and_post_surface让surfaceflinger去显示就OK了其实freshui大侠的代码已经讲得很清楚
如果不明白的话建议去看下surface跟SurfaceFlinger这个部分http://blog.csdn.net/DroidPhone/archive/2010/10/28/5972568.aspx