카메라로 캡처 한 프레임을 잡고, 인코딩하고 마지막으로 RTP/RTSP를 사용하여 전송합니다.stagefright CameraSource :: read가 삼성 Galaxy S2의 작은 프레임 (20 바이트)을 반환합니다.
캡쳐를하려면 stagefright의 CameraSource 클래스를 사용하고 있습니다. 화면의 미리보기 (자바에서 전달 된 서피스)가 좋습니다. 그러나 프레임을 추출하려고하면 프레임이 20 바이트가됩니다.
내가 뭘 잘못하고 있니?
Size videoSize;
videoSize.width = 352;
videoSize.height = 288;
sp<CameraSource> myCamera = CameraSource::CreateFromCamera(NULL, NULL,
1 /*front camera*/, videoSize, 25, mySurface, true);
myCamera->start();
//the following is from a reader thread.
status_t err = OK;
MediaBuffer* pBuffer;
while ((err = myCamera->read(&pBuffer)) == OK)
{
// if not getting a valid buffer from source, then exit
if (pBuffer == NULL)
{
return;
}
else
{
LOGD("The Size of the returned buffer is: %d", pBuffer->size());
}
pBuffer->release();
pBuffer = NULL;
}
어떻게하면 카메라의 콜백이 작동하고 원시 프레임 버퍼가 제공됩니까? – Pavel