frame buffer (/dev/fb0) - gstreamer streaming
source를 아래와 같이 넣고 도전.
gst-launch-1.0 -v filesrc location=/dev/fb
gst-launch-1.0 -v multifilesrc location=/dev/fb0
gst-launch-1.0 multifilesrc device=/dev/fb0 ! video/x-raw, width=640, height=480 ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=192.168.1.60 port=5000
훔 입력이 안맞나 보다 ㅜㅜ

gst-launch-1.0 multifilesrc location=/dev/fb0 ! video/x-raw, width=640, height=480 ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=192.168.1.60 port=5000

움.. 싸이즈가 안맞나 보다.. ㅡ.ㅡ;
ㅋ.. 하나씩 하나씩 가는구나~~~
gst-launch-1.0 multifilesrc location=/dev/fb0 ! video/x-raw, width=320, height=240 ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=192.168.1.60 port=5000

엄.. format과 framerate를 추가 했는데.. 음..
gst-launch-1.0 multifilesrc location=/dev/fb0 ! video/x-raw, width=320, height=240, format={RGBA}, framerate=[1/30] ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=192.168.1.60 port=5000

32bit RGB는 RGBA 나 ABGR 로 집어 넣구..
H.264 로 전송하면 좋다고 함 .
https://gstreamer.freedesktop.org/documentation/rawparse/rawvideoparse.html?gi-language=c
gst-launch-1.0 multifilesrc location=/dev/fb0 ! video/x-raw, width=320, height=240, format={RGBA}, framerate=[0/1] ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=192.168.1.60 port=5000
훔 faramrate를 바꿨는데 여전히 에러는 동일하게나는건가?
pi@raspberrypi:~ $ gst-launch-1.0 multifilesrc location=/dev/fb0 ! video/x-raw, width=320, height=240, format={RGBA},framerate=[0/1] ! videoconvert ! jpegenc ! rtpjpegpay ! udpsink host=192.168.1.60 port=5000
WARNING: erroneous pipeline: could not parse caps “video/x-raw, width=320, height=240, format={RGBA}, framerate=[0/1]”
mplayer설치.. 및 테스트 - 엄.. 이미지가 깨지는데.. 그리고 frame buffer 0 가 … 아무래도. 화면인것 같다. ㅋ..
pi@raspberrypi:~mplayer -demuxer rawvideo -rawvideo w=320:h=240:format=RGBA /dev/fb0 -loop 0

ㅋㅋㅋㅋ 이거 보니까 /dev/fb0에 뿌리고 있는데.. 거기가.. 화면이네 ㅡㅡ;
mplayer로 그리는 RGB데이터가.. 깨지는건.. 버퍼 영역을 잘못 잡아서 인것 같구.. ㅜㅜ
코드부터 다시 보자.. ^^ fb0가 아니라 새로운 영역에 쓰도록 바꾸면 될듯 ^^;

gstreamer debug
https://embeddedartistry.com/blog/2018/02/22/generating-gstreamer-pipeline-graphs/
https://gstreamer.freedesktop.org/documentation/tutorials/basic/debugging-tools.html?gi-language=c
debug결과물
- driver 생성 - misc_register 참고. - blockdevice driver를 만들면 됨. -참고
-
v4l2 usb driver생성.
-
sample « 안드로이드 로그 생성 관련 블록디바이스 드라이버 사용 코드
-
ram disk sampel source code - sample « test
-
driver sample code « 한국 개발자 간단 설명
-
block device driver « 블록 디바이스 드라이버에 대해서 전체적인 설명이 영어로 잘 되어 있음
make file을 추가해준다.
obj-m := sbd.oKDIR := /lib/modules/$(shell uname -r)/buildPWD := $(shell pwd)default:$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
-> build할때 linux/module.h를 못찾음.. 참고
[# sudo apt-get update && sudo apt-get install linux-headers-uname -r ]
-> 설치 에러 남 ㅡ.ㅡ;

엄 .. stackoverflow에서 커널 업데이트하면 된다고해서 ㅡ.ㅡ; 라즈베리 업데이트 함.
$sudo rpi-update

\