2016-12-09 26 views
1

ffmpegで計算された生のRGBフレームからAndroidのOpenGLテクスチャにビデオをレンダリングするにはどうすればよいですか?OpenGLを使用してffmpegフレームからビデオをレンダリングする

マイアプリはXamarin.Androidプロジェクトであり、私はこのように働いているのffmpegのC#のラッパーを使用しています:

while (ffmpeg.av_read_frame(pFormatContext, pPacket) >= 0) 
{ 
    if (pPacket->stream_index == pStream->index) 
    { 
     if (ffmpeg.avcodec_send_packet(pCodecContext, pPacket) < 0) 
     { 
      ffmpeg.av_packet_unref(pPacket); 
      ffmpeg.av_frame_unref(pDecodedFrame); 
      continue; 
     } 

     if (ffmpeg.avcodec_receive_frame(pCodecContext, pDecodedFrame) < 0) 
     { 
      ffmpeg.av_frame_unref(pDecodedFrame); 
      continue; 
     } 

     ffmpeg.av_packet_unref(pPacket); 
     var src = &pDecodedFrame->data0; 
     var dst = &pConvertedFrame->data0; 
     var srcStride = pDecodedFrame->linesize; 
     var dstStride = pConvertedFrame->linesize; 
     ffmpeg.sws_scale(pConvertContext, src, srcStride, 0, height, dst, dstStride); 

     var convertedFrameAddress = pConvertedFrame->data0; 

     var imageBufferPtr = new IntPtr(convertedFrameAddress); 
     ffmpeg.av_frame_unref(pDecodedFrame); 
    } 
} 

は、どのように私はOpenGLのテクスチャにimageBufferPtr変数からイメージをレンダラができますか?

答えて

1

imageBufferPtr変数の画像をOpenGLテクスチャにレンダリングするにはどうすればよいですか?

dataとして、glTex{Sub}Image2Dに渡す。

関連する問題