I’ve got START_VIDEO working, I got the colorspace converted, I emulated all
ioctls() ezx camera is sending and even got the picture. But it looks like the
mmaped area is read before or after the synchronization happens.
The first time I read the image after camera app finishes it comes pretty
good, all subsequent attempts result in a broken image. So I decided to dig
more into the data camera app passes through ioctl.
# LD_PRELOAD=./libwrapioctl.so.1.0 /usr/SYSqtapp/camera/camera
ioctl : wrapping ioctl
next_ioctl = 0x4112b480
ioctl: wrapping done
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
ioctl WCAM_VIDIOCSINFOR: { val1=15, val2=16 }
ioctl WCAM_VIDIOCSBUFCOUNT: 4
ioctl WCAM_VIDIOCSFLICKER: 50
ioctl WCAM_VIDIOCSFPS: { minfps=30, maxfps=30 }
ioctl WCAM_VIDIOCSMIRROR: 0
ioctl WCAM_VIDIOCSNIGHTMODE: 0
ioctl WCAM_VIDIOCSBRIGHT: 0
ioctl WCAM_VIDIOCSLIGHT: 0
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
ioctl WCAM_VIDIOCSSTYLE: 0
QLinuxFbDoubleScreen::flip() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::flip() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
ioctl WCAM_VIDIOCSJPEGQUALITY: 6
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x42525f58, flags=0x44960000 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl WCAM_VIDIOCSBRIGHT: 1
ioctl WCAM_VIDIOCSBRIGHT: 2
ioctl WCAM_VIDIOCSBRIGHT: 3
ioctl WCAM_VIDIOCSBRIGHT: 4
ioctl WCAM_VIDIOCSBRIGHT: 3
ioctl WCAM_VIDIOCSBRIGHT: 2
ioctl WCAM_VIDIOCSBRIGHT: 1
ioctl WCAM_VIDIOCSBRIGHT: 0
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 358
ioctl WCAM_VIDIOCSSZOOM: 358
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 512
ioctl WCAM_VIDIOCSSZOOM: 512
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 717
ioctl WCAM_VIDIOCSSZOOM: 717
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=572, h=430 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 1024
ioctl WCAM_VIDIOCSSZOOM: 1024
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=400, h=300 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 1280
ioctl WCAM_VIDIOCSSZOOM: 1434
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=286, h=214 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 1280
ioctl WCAM_VIDIOCSSZOOM: 2048
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=200, h=150 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 1280
ioctl WCAM_VIDIOCSSZOOM: 1434
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=286, h=214 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 1024
ioctl WCAM_VIDIOCSSZOOM: 1024
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=400, h=300 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 717
ioctl WCAM_VIDIOCSSZOOM: 717
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=572, h=430 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 512
ioctl WCAM_VIDIOCSSZOOM: 512
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x64000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 358
ioctl WCAM_VIDIOCSSZOOM: 358
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x44960000, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
QLinuxFbDoubleScreen::flip() called, but flipping disabled
QLinuxFbDoubleScreen::redirectQtToBack() called, but flipping disabled
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=180, height=240,
chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=900, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=180, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=1600, h=1200 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=1024, h=768 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=1600, h=1200 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=1024, h=768 }
ioctl VIDIOCSWIN: { x=0x107, y=0x40002118, width=320, height=240, chromakey=0xd9, clipcount=0x40002234, flags=0x400021c8 }
ioctl WCAM_VIDIOCSSSIZE: { w=1600, h=1200 }
ioctl WCAM_VIDIOCSZOOM: 256
ioctl WCAM_VIDIOCSSZOOM: 256
ioctl WCAM_VIDIOCSOSIZE: { w=320, h=240 }
ioctl WCAM_VIDIOCSCSIZE: { w=640, h=480 }
ioctl WCAM_VIDIOCSNIGHTMODE: 1
ioctl WCAM_VIDIOCSNIGHTMODE: 0
ioctl WCAM_VIDIOCSSTYLE: 1
ioctl WCAM_VIDIOCSSTYLE: 2
ioctl WCAM_VIDIOCSSTYLE: 3
ioctl WCAM_VIDIOCSSTYLE: 4
ioctl WCAM_VIDIOCSSTYLE: 0
ioctl WCAM_VIDIOCSLIGHT: 1
ioctl WCAM_VIDIOCSLIGHT: 2
ioctl WCAM_VIDIOCSLIGHT: 3
ioctl WCAM_VIDIOCSLIGHT: 0
destroy ShareImage Object
UTIL_ShareImage::destroy()
UTIL_ShareImage::destroy() : data detched