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

webcam 어플리케이션인 spcaview프로그램에서

이상한 부분이 있어서 물어볼려고 합니다.

struct video_mbuf videombuf;

memset(&videombuf, 0, sizeof(videombuf));
여기서 printf문으로 sizeof(videombuf)를 찍어봤더니
136이 나왔습니다.

videombuf.size = 614416;
unsigned char *pFramebuffer;

pFramebuffer = (unsigned char *) mmap (0,
                                                       videombuf.size,
                                    PROT_READ | PROT_WRITE,
                                    MAP_SHARED, fd, 0);
-------------------------------------------------------------------
여기까지가 웹캠에서 데이터를 읽어오는 부분을 셋팅한거 같습니다.

frame_size=240x320=76800;
tmp = (unsigned char*)malloc (frame_size);

memset(tmp, 0x00, frame_size);

memcpy (tmp,
        pFramebuffer +videombuf.offsets[vmmap.frame],
        frame_size);
--------------------------------------------------------------------
여기가 웹캠 데이터를 tmp에 저장하는 부분인 것 같습니다.

그리고 최종으로 나중에 refresh_screen함수를 호출합니다.

SDL_Surface *pscreen;
p=pscreen->pixels;
image_width=320;
image_height=240;
owidth=320;
oheight=240;
image_width*image_height*bpp=320x240x3;

refresh_screen ( tmp,
                       p,
                       format,
                       image_width,
                       image_height,
                       owidth,
                       oheight,
                       image_width*image_height*bpp,
                       autobright);

프로그램을 실행할때 memset,mmap,memcpy를 사용하지않고
직접적으로 read함수를 호출해서 사용하면 이미지와 영상은 저장됩니다.

제가 size값을 이리 저리 바꾸어도 않되는데요..
혹시 감이 가시는 부분이 있나요?
답변 부탁드립니다.

수고하세요...

고현철

2007.05.22 03:25:18
*.70.26.87

mmap을 이용해서 제어하시려면(즉, read하시려는 듯 한데)
실제 video buf의 데이터 영역을 읽어야 합니다.

structure로 읽으면 해당 영역을 접근 못하게 될 듯 한데요.
즉, 136 bytes mmap()되어 버려서, 실제 데이터에는 접근을 못할 듯 보여집니다....

코드 내용을 잘 모르니...허접한 답변만.....쩝...

이태간

2007.05.22 18:40:49
*.163.45.91

제가 videombuf.size로 mmap을 해주니까 세그멘테이션 에러가 나더라고요.

파일을 첨부하니까 한번 봐주세요....

수고하세요...

고현철

2007.05.22 22:42:19
*.70.26.87

videombuf.size 가 얼마되는지 모르겠네요.....

mmap은 아마도 v4l driver에서 구현이 되어 잇을텐데, 커널 메모리가 모자를 경우도
이런 케이스가 발생하고요. size에 알맞는...

코드 상으로는 큰 문제는 없어보입니다. device의 세팅이나, 커널상의 메모리 문제일지도
모르겠다는 생각은 드는데,

장비가 없으니....쩝......답하기가 난감하네요....

이태간

2007.05.22 23:45:01
*.163.45.91

답변 감사합니다.

videombuf.size가 614416입니다.

이걸 반으로 쪼개서 읽는것 같은데요..

암튼 아직 초보인 저에게 힘드네요...

고현철

2007.05.24 06:21:19
*.187.44.98

spcaview를 카메라 붙여서 함 돌려봐야겠네요.....--;
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
5668 NAND flash 에서의 XIP ? [5] 유형목 2007-05-17 815
5667 [질문] CD롬을 제거하면 부팅이 안된다...?!!! 이런 경우 보신분 ... [6] 임장욱 2007-05-17 3142
5666 [완료]] SDL 폰트에 관한질문 [3] 문철민 2007-05-17 756
5665 [질문]SDL display부분에 대해서 질문요... [5] 이태간 2007-05-17 802
5664 (요청)터치칩 구할 수 있을까요? [1] 문진호 2007-05-18 2446
5663 [완료] 이솝 3차보드와 JTAGProbe 로 디버깅 하시는분~ [2] 이재명 2007-05-18 1016
5662 [완료] 이솝 3차보드의 메모리맵은 어떻게 되나요? [2] 이재명 2007-05-18 771
5661 [완료] 완전 초짜의 질문 GPIO는 어디서 뽑을지.. [3] 오주열 2007-05-18 2839
5660 염치없지만 PCB DATA 파일을 공개하실수 있나요 [2] 정인수 2007-05-18 3784
5659 [완료] 2440 시리얼통신.. [2] 김민철 2007-05-19 857
5658 [질문]LAN91x 커널 패닉(S3C2440/2.4.20 커널) [4] 김현기 2007-05-19 1185
5657 [완료] 윤덕배님~ H-JTAG 질문 하나 있는데요~ [2] 이재명 2007-05-19 1048
5656 [완료]아래 케이스공구건 어떻게 된건지요? [1] 최재혁 2007-05-19 714
5655 [완료] USB slave [2] 김증일 2007-05-19 2445
5654 [질문]lx vga driver 관련. [2] 류영렬 2007-05-19 2529
5653 [완료]makefile 질문입니다. [3] 서두원 2007-05-21 878
5652 [질문] 동영상 재생시 너무 느립니다. [4] 강덕하 2007-05-21 3078
» [질문]memset, mmap, memcpy에 대해서 질문 있습니다. [5] 이태간 2007-05-22 44530
5650 [완료] Slackware 11.0 어디서 구하나요... [2] 김영곤 2007-05-22 2510
5649 [완료] 제온 서버 사용 가능 여부 [2] 김유석 2007-05-22 869

사용자 로그인