Re: Asking advice for Camera/ISP driver framework design

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Cliff Cai wrote:
> On Thu, Sep 15, 2011 at 6:20 PM, Laurent Pinchart
> <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote:
>> Hi Cliff,
>>
>> On Wednesday 14 September 2011 08:13:32 Cliff Cai wrote:
>>> Dear guys,
>>>
>>> I'm currently working on a camera/ISP Linux driver project.Of course,I
>>> want it to be a V4L2 driver,but I got a problem about how to design
>>> the driver framework.
>>> let me introduce the background of this ISP(Image signal processor) a
>>> little bit.
>>> 1.The ISP has two output paths,first one called main path which is
>>> used to transfer image data for taking picture and recording,the other
>>> one called preview path which is used to transfer image data for
>>> previewing.
>>> 2.the two paths have the same image data input from sensor,but their
>>> outputs are different,the output of main path is high quality and
>>> larger image,while the output of preview path is smaller image.
>>> 3.the two output paths have independent DMA engines used to move image
>>> data to system memory.
>>>
>>> The problem is currently, the V4L2 framework seems only support one
>>> buffer queue,and in my case,obviously,two buffer queues are required.
>>> Any idea/advice for implementing such kind of V4L2 driver? or any
>>> other better solutions?
>>
>> Your driver should create two video nodes, one for each stream. They will each
>> have their own buffers queue.
>>
>> The driver should also implement the media controller API to let applications
>> discover that the video nodes are related and how they interact with the ISP.
> 
> Hi Laurent,
> 
> As "Documentation/media-framework" says, one of the goals of media
> device model is "Discovering a device internal topology,and
> configuring it at runtime".I'm just a bit confused about how
> applications can discover the related video notes? Could you explain
> it a little more?

Hi Cliff,

The major and minor numbers of video nodes are provided to the user
space in struct media_entity_desc (defined in include/linux/media.h)
using MEDIA_IOC_ENUM_ENTITIES IOCTL. The major and minor numbers define
which device node corresponds to the video device; this isn't trivial
for an application to do so there's a library which makes it easier:

<URL:http://git.ideasonboard.org/?p=media-ctl.git;a=summary>

See src/media.h for the interface. An example how to use this is
available in src/main.c.

Entities the type of which is MEDIA_ENT_T_DEVNODE_V4L are V4L2 device nodes.

Regards,

-- 
Sakari Ailus
sakari.ailus@xxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux