기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

V4L2를 이용하여 USB캠을 임베디드보드에서 영상출력을 해봤는데요


다음으로 보드에 안드로이드를 올린후 안드로이드 어플로 USB캠을 출력해볼려고합니다

JNI를 이용하여 JNI쪽에서는 V4L2를 이용하여 영상데이터만 얻어서 안드로이드에 데이터를 넘겨주고

안드로이드에서는 데이터를 받아서 Color.rgb(R,G,B) 이렇게 바로 출력해볼려고하는데요


임베디드에서는 V4L2를 이용하여 정상출력까지 확인하고

그소스를 그대로 안드로이드를 테스트하는데 V4L2에서 계속 에러가 나고 있더라구요

V4L2에서 VIDIOC_DQBUF 를 사용할때 EAGAIN(-11) 이 계속 뜨면서

데이터를 못받아 오고 있습니다.


혹시나해서 커널쪽 설정이 잘 못되어 있나해서 V4L과련 설정다시 체크하고 UVC관련도 다시 체크후에

해봤는데도 계속 같은 에러가 나고 있더라구요


 V4L2를 JNI로 하여 데이터를 얻는데 무엇이 문제일까요...






biokk

2015.12.17 20:32:27
*.223.18.181

검색을 해보니..안드로이드가 공식적으로 UVC를 지원하지 않는다고 해서 opencv를 사용해야 한다?라고도하는데

openCV를 이용해봐야하나요

아라라라기

2015.12.18 02:40:21
*.106.171.173

libuvc 를 사용하시면 카메라 입력은 받아올 수 있어요. 좀 더 쉬운 오픈소스를 원하시면 

https://github.com/saki4510t/UVCCamera

여기 코드를 활용해 보세요. 저도 이 코드로 지금 프로젝트 진행하고 있습니다. 

고도리

2015.12.23 07:09:56
*.200.239.210

일단, 대부분의 android에서의 직접적인 device driver 접근은 permission 때문일겁니다.


root user면 되는 것인데, android app은 root 권한이 없기 때문입니다.

직접 테스트 해보지는 않아서 확실한 설명을 드리기는 그렇지만,


/dev/video* 디바이스의 permission을 함 바꿔서 해 보시기 바랍니다.

chmod 666 모드로 해서...


아라라라기// 좋은 library네요. 정확하게는 소스를 봐야하지만, 좋은 솔루션인 듯 합니다.


고도리

2015.12.23 07:10:56
*.200.239.210

참고로, CameraService의 경우 binder server형태로 돌고 있습니다.


Android에서 제대로 이래저래 사용하려면 binder server의 형태가 좋을 듯 합니다.

아라라라기

2015.12.25 05:31:51
*.245.36.37

안드로이드 USBConnection은 안드로이드에서 USB 호스트를 사용가능하게 하는데요 해당하는 file descriptor를 얻어서 libusb 의 open 함수에 전달하는 방식으로 사용하는것으로 알고 있습니다. 

List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인