luvcviewを読むその2
取り合えずいろいろすっ飛ばして、画像取り込みのところを見る。
んで今回からSDLが入ってくる。
こことか参照
SDL_LockYUVOverlay(overlay); memcpy(p, videoIn->framebuffer, videoIn->width * (videoIn->height) * 2); SDL_UnlockYUVOverlay(overlay); SDL_DisplayYUVOverlay(overlay, &drect); if (videoIn->getPict) { switch(videoIn->formatIn){ case V4L2_PIX_FMT_MJPEG: get_picture(videoIn->tmpbuffer,videoIn->buf.bytesused); break; case V4L2_PIX_FMT_YUYV: get_pictureYV2(videoIn->framebuffer,videoIn->width,videoIn->height); break; default: break; }
処理を書くと
- ビデオオーバーレイをロック
- ビデオのフレームバッファからpにコピーちなみにpはcharのポインタ
- ビデオオーバーレイをアンロック
- オーバーレイを表画面にbitblit転送
- ピクチャーゲットのフラグを判別しさらにピクチャーフォーマットも確認
- picturegetは基本的に、fopenしてfwriteしてfcloseしてる。
- YUVの場合は変換してfopen,fwrite,fcloseしてる。
と意外と対した工程でもないかもSDLの恩恵がおおきそうだが。