Hi, I would love to see video support in nuttx. I worked with video4linux a few years ago. What I loved was how to deal with memory buffers from the user space.
The video4linux API allows the device configuration and also a registration of an undefined amount of memory buffers (usually related to the video/image frame size) by an user space task. Then the task simply waits for the next captured frame via a blocking ioctl call to the opened video character device. Once a frame is captured, the driver wakes up the userspace task and tells in which of the registered memory buffer the content of the last frame was captured. I found that API so quite easy, so I think we should have something similar in nuttx. The Video4Linux API is huge for historical reasons, and I think we do not need support for a lot of functionality for older hardware and should have a focus on video input devices first. The vl42 API should be a good starting point. But I can't help out here very much because of the lack of camera hardware. I only have an USB camera that supports uvc (usb video class) what I think should also be a thing that nuttx should support. Unfortunately, I'm not a USB expert. Marco Am Sa., 3. Apr. 2021 um 06:31 Uhr schrieb Gregory Nutt <spudan...@gmail.com >: > One thing that we have always been missing is a video subsystem. This > would be something similar to the audio/ subsystem which is basically a > way of connecting audio streams between audio sources (like > apps/system/nxplayer), audio processors (codecs, equalizers, etc. which > would go in audio/), and audio sinks most of which are in drivers/audio > (but also apps/system/nxrecorder). > > People have said that we need something like Video4Linux but I don't > really know very much about that. I also think Sony recently > contributed some video support under drivers/video but, again, I know > nothing about that really (video-related drivers should go under > drivers/video, but system video support should really go under video/). > > It would be nice to get some people together who are interested in video > to develop an architecture and roadmap for video support. I can't > imagine that we would be happy with the results if we just develop video > support organically. > > I say this because I spent some time developing camera support with the > SAMA5D's a few years back and was hamper because after writing the > camera driver, I really didn't know how to integrate it. > > Greg > > On 4/2/2021 8:30 PM, Matias N. wrote: > > Thanks Alan. I'll probably give it a try. > > > > Best, > > Matias > > > > On Fri, Apr 2, 2021, at 20:43, Alan Carvalho de Assis wrote: > >> Hi Matias, > >> > >> No, AFAIK there is nobody working on camera support. > >> > >> BR, > >> > >> Alan > >> > >> On 4/2/21, Matias N. <mat...@imap.cc <mailto:matias%40imap.cc>> wrote: > >>> I've looked into this a bit further. It seems NuttX supports the OV2640 > >>> command interface (via I2C) with video/ov2640.c driver. However, the > data > >>> transfer is handled separately. From what I read, on ESP32, the I2S > >>> peripheral is used to handle the data transfer using DMA. So this > means that > >>> an ESP32 specific driver would need to be written so that it transfers > image > >>> data using I2S. > >>> > >>> Any chance anyone already did this? Seems a bit complex. > >>> > >>> Best, > >>> Matias > >>> > >>> On Thu, Apr 1, 2021, at 12:18, Matias N. wrote: > >>>> I'm merely experimenting myself but as a test I will try to read the > >>>> camera and offer images via a webserver. I believe the camea is > supported > >>>> in NuttX already. > >>>> > >>>> Best, > >>>> Matias > >>>> > >>>> On Thu, Apr 1, 2021, at 11:40, Grr wrote: > >>>>> I have a bunch of those modules I plan to use as security cameras and > >>>>> automation control nodes, preferably under NuttX, so I have a couple > of > >>>>> questions: > >>>>> > >>>>> 1-How far away is the camera support? > >>>>> > >>>>> 2-How about WiFi? > >>>>> > >>>>> TIA > >>>>> Grr > >>>>> > >>>>> > >>>>> El jue, 1 abr 2021 a las 8:34, Matias N. (<mat...@imap.cc <mailto: > matias%40imap.cc>>) escribió: > >>>>>> __ > >>>>>> Yeah, I was under the impression it was single core due to the "S" > as in > >>>>>> the figure below. But you're right > >>>>>> that ESP32-S is not a valid Espressif part number. This is the > module I > >>>>>> was refering to: > >>>>>> > >>>>>> It makes sense that it is actually the normal dual-core chip inside. > >>>>>> > >>>>>> Best, > >>>>>> Matias > >>>>>> > >>>>>> On Thu, Apr 1, 2021, at 11:23, Sara da Cunha Monteiro de Souza > wrote: > >>>>>>> Besides that, > >>>>>>> here we can see all the "official" series of Espressif: > >>>>>>> > https://www.espressif.com/sites/default/files/documentation/espressif_products_ordering_information_en.pdf > >>>>>>> Or a more simple and interactive way, using the product selector: > >>>>>>> https://products.espressif.com/#/product-selector > >>>>>>> So, ESP32S or ESP32-S modules are from third party. > >>>>>>> > >>>>>>> > >>>>>>> Em qui., 1 de abr. de 2021 às 11:14, Sara da Cunha Monteiro de > Souza > >>>>>>> <saramonteirosouz...@gmail.com <mailto: > saramonteirosouza44%40gmail.com>> escreveu: > >>>>>>>> Hi Matias, > >>>>>>>> These devkits with cameras and sd card slot with ESP32S modules > are > >>>>>>>> third party modules and the S doesn't necessarily stand for > "single > >>>>>>>> core". > >>>>>>>> I recommend take a look at this post to see the differences > between > >>>>>>>> different devkits: > >>>>>>>> > https://diyprojects.io/esp32-cam-which-model-choose-esp-eye-aithinker-ttgo-tcamera-m5stack/#.YFJoh-1KhH4 > . > >>>>>>>> FY, this is how you can interpret Part numbers of ESP32 modules : > >>>>>>>> image.png > >>>>>>>> And if you don't have this information and you have the devkit on > >>>>>>>> hands, you can use esptool to discover this information from your > >>>>>>>> ESP32 > >>>>>>>> by using the following command: > >>>>>>>> > >>>>>>>> esptool.py --port /dev/ttyUSB0 chip_id > >>>>>>>> > >>>>>>>> You should have something like this: > >>>>>>>> > >>>>>>>> Serial port /dev/ttyUSB0 Connecting..... Detecting chip type... > ESP32 > >>>>>>>> Chip is ESP32-D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, > >>>>>>>> 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is > 40MHz > >>>>>>>> MAC: 9c:9c:1f:ea:6e:5c > >>>>>>>> > >>>>>>>> It can be very useful to know other information as you can see, > for > >>>>>>>> example, the chip revision. > >>>>>>>> > >>>>>>>> But regarding the support for this DevKit, the board > implementation is > >>>>>>>> relatively simple, but we still > >>>>>>>> don't have the I2S driver for the camera. > >>>>>>>> > >>>>>>>> > >>>>>>>> Em qui., 1 de abr. de 2021 às 10:49, Matias N. <mat...@imap.cc > <mailto:matias%40imap.cc>> > >>>>>>>> escreveu: > >>>>>>>>> Hi, > >>>>>>>>> I'm considering buying one of those ESP32 modules which includes > the > >>>>>>>>> camera and SD card and I noticed it seems it comes with a > single-core > >>>>>>>>> variant of the typical ESP32 module. > >>>>>>>>> I looked around NuttX and I think there's no explicit support > yet but > >>>>>>>>> I imagine it shouldn't be hard to add, right? > >>>>>>>>> > >>>>>>>>> Best, > >>>>>>>>> Matias > >>>>>>> *Attachments:* > >>>>>>> * image.png > >>>>> *Attachments:* > >>>>> * image.png > >>>>> * image.png > >>>> > >>>> *Attachments:* > >>>> * image.png > >>>> * image.png >