1

iPhone 3GS で ffmpeg を使用してビデオをデコードするための A という子スレッド、yuv データを表示するための B という別のスレッドがあります。デコード スレッドのレートはわずか 15 fps です。

更新: フレーム サイズは 720 * 576 です。YUV データを表示するスレッドを開始しなかった場合、デコード スレッドで計算されたフレーム レートは 22 fps、それ以外の場合は 15 fps であるという興味深いこともわかりました。表示方法は非効率的でなければなりません。コードは次のとおりです。

デコード スレッドにコールバックがあります。

typedef struct _DVDVideoPicture
{
   char *plane[4];
   int iLineSize[4];
}DVDVideoPicture;

void YUVCallBack(void *pYUVData, void *pContext)
{
   VideoView *view = (VideoView *)pContext;
   [view.glView copyYUVData:(DVDVideoPicture *)pData];
   [view calculateFrameRate];
}

copyYUVData メソッドは、yuv プレーンを個別に抽出します。以下はスレッドメソッドを表示しています。

4

0 に答える 0