2012-08-04 9 views
5

時間を費やしてから、質問する方が良いかもしれません。助けてくれてありがとう、みんな! GLSL経由テクスチャ/フラグメントの色を変更するために、SurfaceTextureへのMediaPlayerやVideoViewからのビデオフレームまたはOpenGLテクスチャをレンダリングする方法Android 3.x/Google TV/SDKでのビデオ処理:SurfaceTexture/OpenGL/GLSLへのビデオフレーム

質問

  • ? (私たちは空想GLES/GLSL映像処理ルーチンのためにそれを必要とする。)

コンテキスト

a)のグーグルTV(LG G2 2012デバイス)をSDKのみのサポート(なしNDK)

とのAndroid 3.2デバイスであります

b)カメラからSurfaceTextureにレンダリングするのは簡単ですが、Android 3.xではSurfaceTextureにビデオをレンダリングする方法はありますか?カメラソリューションについては、以下を参照してください。

c)既にビデオフレームをGLView/GLRendererにレンダリングしていますが、GLSLを使用してフレームを変更するためにフレームを取得していません。それは動作していないようです。しかし、私はビデオ処理のためのビデオデータにアクセス可能GLES/GLSLテクスチャを必要とする:

MainActivityクラス:

public void onCreate(Bundle state) { 
    super.onCreate(state); 

    m_View = new GLSimpleView(this); 
    setContentView(m_View); 

    m_Holder = m_View.getHolder(); 
    m_Holder.addCallback(this); 
    m_Holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 
} 

GLSimpleViewクラス:

public GLSimpleView(Context context) { 
    super(context); 

    m_Renderer = new GLTextureRenderer(context); 
    this.setRenderer(m_Renderer); 
} 

GLTextureRenderクラス:

また
int[] textures = new int[1]; 
GLES20.glGenTextures(1, textures, 0); 

m_SurfaceTexture = textures[0]; 
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID); 

GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_NEAREST); 
GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR); 

GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE); 
GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE); 

m_Surface = new SurfaceTexture(m_SurfaceTexture); 
m_Surface.setOnFrameAvailableListener(this); 

// THIS ONE DOESN'T WORK WITH ANDROID 3.x! 
// HOW TO BIND m_Surface TO m_MediaPlayer? 

//Surface surface = new Surface(m_Surface); 
//m_MediaPlayer.setSurface(surface); 
//surface.release(); 

これを比較してください:

したがって、主な質問はまだあります:Android 3.xでビデオフレームにアクセスして操作する方法は?おそらく別の解決策ですか?あまりにも多くの時間を過ごした後、私は何かを逃していますかビデオデータを操作しようとすると、Google TVにはNDKのサポートが全くないことが非常に限られていると考えてください。

+0

あなたが見たことがありますか:http://stackoverflow.com/questions/8620560/video-processing-in-android?あなたのプロジェクトで廃止されたRenderscript Graphics APIを見ても興味があります。 –

答えて

0

メガは私のためにこれを調べるのに十分親切でした。 GoogleのARM for TVではこれをサポートしていません。現在のSOC(System on a Chip)では不可能です。

+0

ありがとう、それは役立ちます – btxsqdr

関連する問題