From: Sylwester Nawrocki <snjw23@gmail.com>
To: Alex Gershgorin <alexg@meprolight.com>
Cc: Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
linux-media@vger.kernel.org
Subject: Re: i.mx35 live video
Date: Sun, 26 Feb 2012 22:31:57 +0100 [thread overview]
Message-ID: <4F4AA4CD.2040605@gmail.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1202262154550.17982@axis700.grange>
Hi,
On 02/26/2012 09:58 PM, Guennadi Liakhovetski wrote:
>>> It might be difficult to completely eliminate the CPU, at the very least
>>> you need to queue and dequeue buffers to and from the V4L driver. To avoid
>>> even that, in principle, you could try to use only one buffer, but I don't
>>> think the current version of the mx3_camera driver would be very happy
>>> about that. You could take 2 buffers and use panning, then you'd just have
>>> to send queue and dequeue buffers and pan the display. But in any case,
>>> you probably will have to process buffers, but your most important
>>> advantage is, that you won't have to copy data, you only have to move
>>> pointers around.
>>
>> The method that you describe is exactly what I had in mind.
>> It would be more correct to say it is "minimum" CPU intervention and not without CPU intervention.
>
>> As far I understand, I can implement MMAP method for frame buffer device
>> and pass this pointer directly to mx3_camera driver with use USERPTR
>> method, then send queue and dequeue buffers to mx3_camera driver.
>> What is not clear, if it is possible to pass the same pointer of frame
>> buffer in mx3_camera, if the driver is using two buffers?
It should work when you request 2 USERPTR buffers and assign same address
(frame buffer start) to them. I've seen setups like this working with videbuf2
based drivers. However it's really poor configuration, to avoid tearing
you could just set framebuffer virtual window size to contain at least
two screen windows and for the second buffer use framebuffer start address
with a proper offset as the USERPTR address. Then you could just add display
panning to display every frame.
--
Regards,
Sylwester
> Sorry, I really don't know for sure. It should work, but I don't think I
> tested thid myself nor I remember anybody reporting having tested this
> mode. So, you can either try to search mailing list archives, or just test
> it. Begin with a simpler mode - USERPTR with separately allocated buffers
> and copying them manually to the framebuffer, then try to switch to just
> one buffer in this same mode, then switch to direct framebuffer memory.
>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski, Ph.D.
> Freelance Open-Source Software Developer
> http://www.open-technology.de/
next prev parent reply other threads:[~2012-02-26 21:32 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4875438356E7CA4A8F2145FCD3E61C0B2C8966B289@MEP-EXCH.meprolight.com>
[not found] ` <alpine.DEB.2.00.1202261207001.17356@axis700.grange>
2012-02-26 13:00 ` i.mx35 live video Alex Gershgorin
2012-02-26 14:31 ` Guennadi Liakhovetski
2012-02-26 17:56 ` Alex Gershgorin
2012-02-26 20:58 ` Guennadi Liakhovetski
2012-02-26 21:31 ` Sylwester Nawrocki [this message]
2012-02-27 10:44 ` Alex Gershgorin
2012-02-27 8:58 ` Alex Gershgorin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F4AA4CD.2040605@gmail.com \
--to=snjw23@gmail.com \
--cc=alexg@meprolight.com \
--cc=g.liakhovetski@gmx.de \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox