Android上使用OpenGLES2.0显示YUV数据】的更多相关文章

在Android上用OpenGLES来显示YUV图像,之所以这样做,是因为: 1.Android本身也不能直接显示YUV图像,YUV转成RGB还是必要的: 2.YUV手动转RGB会占用大量的CPU资源,如果以这样的形式播放视频,手机会很热,所以我们尽量让GPU来做这件事: 3.OpenGLES是Android集成到自身框架里的第三方库,它有很多的可取之处. 博主的C/C++不是很好,所以整个过程是在Java层实现的,大家见笑,我主要参考(但不限于)以下文章,十分感谢这些朋友的分享: 1. htt…
按照教程开发OpenglES2.0应用,遇到Logcat报错“Called unimplemented OpenGL ES API” 在论坛和stackoverflow上找到了答案. 1.manifest里面加上 <uses-feature android:glEsVersion="0x00020000" android:required="true" /> 2.surfaceView要设置 mGLSurfaceView.setEGLContextCli…
如果说 ,我不知道,如果你不明白这个话题.连接到:http://blog.csdn.net/wangchenggggdn/article/details/8896453(下称链接①), 里面评论有非常多人提到了这个问题,我也是当中一员,可是问遍了全部人,自己也发帖(http://bbs.csdn.net/topics/390769358) 寻求解决方式,却终究没能得到一个可用的方案. 从2014年4月中旬遇到这个问题.纠结了两个多星期,最终在看了好多好多资料之后.于4月的最后一个周一,临时攻克了…
上一篇文章主要是參照AwesomePlayer直接用SoftwareRenderer类来显示yuv,为了能用到这个类,不惜依赖了libstagefright.libstagefright_color_conversion等动态静态库,从而造成程序具有非常高的耦合度,也不便于我们理解yuv数据直接显示的深层次原因. 于是我開始研究SoftwareRenderer的详细实现,我们来提取SoftwareRenderer的核心代码,自己来实现yuv的显示. SoftwareRenderer就仅仅有三个方…
本文用Java创建UI并联合JNI层操作surface来直接显示yuv数据(yv12),开发环境为Android 4.4,全志A23平台. package com.example.myyuvviewer; import java.io.File; import java.io.FileInputStream; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import a…
在本文中,Java创建UI和关节JNI经营层surface直接显示yuv数据(yv12).发展环境Android 4.4,驰A23平台. package com.example.myyuvviewer; import java.io.File; import java.io.FileInputStream; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import an…
做视频采集与处理,自然少不了要学会分析YUV数据.因为从采集的角度来说,一般的视频采集芯片输出的码流一般都是YUV数据流的形式,而从视频处理(例如H.264.MPEG视频编解码)的角度来说,也是在原始YUV码流进行编码和解析,所以,了解如何分析YUV数据流对于做视频领域的人而言,至关重要.本文就是根据我的学习和了解,简单地介绍如何分析YUV数据流. YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值:而“U”和“V” 表示的则是色度(Chrominance或Ch…
最近,想做一个跨平台的局域网的文件传输软件,思路是组播设备信息,TCP连接传输文件.于是进行了一次简单的UDP组播测试,发现Android对于UDP组播接收数据的支持即极为有限. 部分代码如下 package com.hsocket.Udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; public class UdpReceiver { protected…
最近在编写一个进行视频播放的ActiveX控件,工作已经接近尾声,现将其中显示YUV数据的使用DirectDraw的一些经验总结如下:(解码部分不是我编写的,我负责从网络接收数据,将数据传给解码器,并将解码得到的YUV数据进行显示,最初在显示部分我是先将YUV数据转换为RGB数据,再以位图的形式显示到屏幕上,但发现CPU占用率比较高,后来改用DirectDraw直接显示YUV数据) 1.在DirectDraw中创建YUV表面 与一般表面不同的是,创建YUV表面时需要指定象素格式,并指定YUV数据…
如何在Android上使用FFmpeg解码图像参考文章[原]如何在Android用FFmpeg解码图像 ,如何在Android上使用SDL2.0来显示图像参考[原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 .有了以上两篇文章的基础我们就可以在Android使用FFmpeg来解码图像并且使用SDL2.0来显示输出的图像了. 博主的开发环境:Ubuntu 14.04 64位,Eclipse+CDT+ADT+NDK. 在文章开始之前假定你已经知道如何使用NDK编译FFmpeg…
本文主要内容是基于的“Beginning SDL 2.0(3) SDL介绍及BMP渲染”(以下简称BS3)基础上,将BMP加载及渲染修改为YUV420或I420的原始视频格式.阅读完本部分内容相信你可以对SDL2.0中的Renderer机制(支持硬件加速)有一定了解,并可以直接加载显示YUV数据. SDL 2.0新的支持硬件加速的视频渲染技术——Render SDL 1.x的版本的视频渲染技术是基于纯软件实现的,效率相对较差,通常很难满足实时渲染的需求.SDL 2.0之后针对这个问题,提供了新的…
在3D游戏中通常都会用到天空盒,在3D引擎中也一般会存在天空盒组件,让开发者可以直接使用.那么天空盒是什么?天空盒又是如何实现的呢?本篇博客主要介绍如何在Android中利用OpenGLES绘制一个天空盒,并实现VR效果. 天空盒.天空穹.天空球和VR 虽然大多数人知道这些东西是啥,但是我觉得我还是有必要把他们的定义“搬”过来,万一有人不知道呢. 天空盒(Sky Box)是放到场景中的一个立方体,经常是由六个面组成的立方体,并经常会随着视点的移动而移动.天空盒将刻画极远处人无法达到的位置的景物.…
MVP(Model View Presenter)模式是著名的MVC(Model View Controller)模式的一个演化版本,目前它在Android应用开发中越来越重要了,大家也都在讨论关于MVP的理论,只是结构化的资料非常少.这就是我写这篇博客的原因,我想鼓励大家多参与讨论,然后把MVP模式运用在项目开发中. 什么是MVP? MVP模式可以分离显示层和逻辑层,所以功能接口如何工作与功能的展示可以实现分离,MVP模式理想化地可以实现同一份逻辑代码搭配不同的显示界面.首先要澄清就是MVP不…
2016-01-13 / 23:02:13 刚才在微信上看到这篇由cocoachina翻译小组成员翻译的文章,觉得还是挺值得参考的,因此转载至此,原文请移步:http://robots.thoughtbot.com/how-to-handle-large-amounts-of-data-on-maps/. 如何在iOS地图上以用户可以理解并乐于接受的方式来处理和显示大量数据?这个教程将会给大家进行示例说明. 我们要开发一款iOS的app应用,这个应用包含有87000个旅馆的信息,每个旅馆的信息中…
实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practice.json; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; i…
需要流畅显示YUV图像需要使用Opengl库调用GPU资源,网上在这部分的资料很少.实际上Android已经为我们提供了相关的Opengl方法 主体过程如下: 1.建立GLSurfaceView 2.建立Render 4.设置GLSurfaceView的Render为你创建的Render,并设置RenderMode为RENDERMODE_WHEN_DIRTY 3.把数据推入Render 而在Render中需要实现3个方法 1.void onSurfaceCreated(GL10 gl, EGLC…
[转至:http://blog.csdn.net/pjk1129/article/details/17358337] 原文:How To Efficiently Display Large Amounts of Data on iOS Maps   感谢翻译小组成员崩月姐姐热心翻译.本篇文章是我们每周推荐优秀国外的技术类文章的其中一篇.如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加入我们的翻译小组(联系qq:2408167315).   如何在iOS地图上以用户可以理解并乐于接受的方…
调用react-native-fs插件时,如果数据的接口是需要验证信息的,在android上运行报错,而在iOS上运行没问题.原因是因为接口是有验证信息的,而调用这个插件时没有传入,在iOS上会自动加上验证信息,而 android需要手动设置. 此错误的解决方法: 1.在调用登录接口时,保存下cookie(cookie在response里),在调用react-native-fs时放在headers里传入,代码如下: _appLogin(userName, password, callback){…
SlideView是一个Android上的以滑动揭示的方式显示并切换图片的View,以视觉对比的方式把一套相似的图片展示出来. 示例 翻页图片揭示效果: 特性 设置一组(List<ImageInfo>)待加载的图片(本地图片,网络图片),通过(ImageLoader)库加载出图片并按List的顺序显示图片. 通过手势识别(GestureDetector),判断用户手指往左或者往右滑动,根据滑动位移揭开和盖上图片,当手指松开时,根据滑动速度和滑动位移的距离决定是翻页,还是滑回当前页. 翻页或滑回…
Android上的菜单展示风格目前是各式各样的,但用的最多且体验最好的莫过于左右滑动来显示隐藏的菜单本示例实现了各种方式的菜单展示效果,只有你想不到的源码:https://github.com/SimonVT/android-menudrawer.git main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.a…
ImageUtil.java import android.graphics.ImageFormat; import android.media.Image; import android.os.Build; import android.support.annotation.RequiresApi; import android.util.Log; import java.nio.ByteBuffer; public class ImageUtil { public static final…
关于如何移植在android上使用SDL,可以参考[原]零基础学习SDL开发之移植SDL2.0到Android 和 [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图 . 在一篇文章我们主要使用SDL2.0来加载一张BMP图来渲染显示,同时叠加一张图作为背景图. 博主的开发环境:Ubuntu 14.04 64位,Eclipse + CDT + ADT+NDK 在前面两篇文章我们知道了如何移植SDL2.0到android上面来,并且可以在Android上面来显示一张图片,这篇…
近期因为有须要在Unity程序执行在ios或android手机上显示内嵌网页.所以遍从网上搜集了一下相关的资料.整理例如以下: UnityWebCore 从搜索中先看到了这个.下载下来了以后发现这个的原理好像是通过调用浏览器内核.然后将网页渲染到mesh的方式完毕的. 但遗憾的是仅仅支持windows桌面版本号.但还是发出来大家假设有须要能够下载  下载地址: http://pan.baidu.com/s/1nt3FVkd unity-webview 这个是在github上找到的. 是一个kei…
调试中通过android simulator模拟器链接localhost或者127.0.0.1,因为我在电脑上面建立了apache,我的代码大概就是URL url = new URL(urlString);     URLConnection urlconn = url.openConnection(); 但是报错了!! Exception 1:java.net.ConnectException: localhost/127.0.0.1:8080 - Connection refused 问题是…
DWORD ThreadFun(){    //用mfc窗口句柄创建一个sdl window    SDL_Window * pWindow = SDL_CreateWindowFrom( (void *)( GetDlgItem(IDC_STATIC1)->GetSafeHwnd() ) );    SDL_Rect sdlRT;    sdlRT.h = 288;    sdlRT.w = 352;    sdlRT.x = 0;    sdlRT.y = 0;    SDL_Rect ds…
DWORD ThreadFun() {    //用mfc窗口句柄创建一个sdl window    SDL_Window * pWindow = SDL_CreateWindowFrom( (void *)( GetDlgItem(IDC_STATIC1)->GetSafeHwnd() ) ); SDL_Rect sdlRT;    sdlRT.h = 288;    sdlRT.w = 352;    sdlRT.x = 0;    sdlRT.y = 0; SDL_Rect dstRT; …
RT .DiscardContents ()可以消除pc上的warning,但是会导致android上RT不显示.…
使用imageEffect做了个景深特效,原理很简单,就是一张清晰大图和一张模糊小图根据z值进行混合,z值小的像素清晰大图的比例高一些,z值大的像素模糊小图的比例高一些. 在pc上是ok的,但打出android包安到android手机上景深特效就没了. 后来折腾了半天,并请教了一些有经验的人,终于搞好了: 1,在pc上和在android上通过render to texture渲染出来的depthTex正倒立情况是不同的,在pc上渲染出来的depthTex是倒立的,在android上渲染出来的de…
在Android上编译OSG[3.0.2 ] 分类:Android   This file contents can be applied for version OpenSceneGraph(OSG) 3.0.2 or newer. Prerequisites for build process To compile OSG as a standalone library you'll only need the Android NDK. To develop applications wit…
转: android上实现0.5px线条 由于安卓手机无法识别border: 0.5px,因此我们要用0.5px的话必须要借助css3中的-webkit-transform:scale缩放来实现. 原理:将伪元素的宽设为200%,height设为1px通过-webkit-transform:scale(.5)来进行缩小一倍,这样就得到border为0.5的边框 Document .div { width: 100%; height: 100px; border-top: 1px solid rg…