Re: V4L2_MEMORY_DMABUF for video decoders

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

 



Hi Hans/Community

Can you please help us with this query.

Thanks
Vinay

> Hi
>
> I am facing an issue while using videobuf2-dma-contig.c mem_ops. Following
> is brief description of the driver architecture and the limitation. Any
> pointers/hints are appreciated.
>
> Driver architecture:
> It is a video codec driver for video decoding. It exposes two ports -
> CAPTURE and OUTPUT. Raw bitstream buffers are queued/dequeued via OUTPUT
> capability and YUV via CAPTURE. This driver uses vb2_qops as well as
> vb2_mem_ops from videobuf2-dma-contig.c. Video hardware has MMU.
>
> V4L2 framework limitation:
> The empty buffers are allocated by userspace and file descriptor is queued
> to the V4L2 driver via VIDIOC_QBUF call. I am using vb2_mem_ops so the
> buffers are mapped into video device's MMU by map_dmabuf op. Then video
> driver sends this buffer down to hardware and hardware does the decoding
> and writes YUV data in this buffer. This buffer is ready to be shared with
> userspace so hardware returns this buffer back to driver. Userspace calls
> VIDIOC_DQBUF to get the buffer but as a result the buffer is also unmapped
> from video device's MMU. This is because DQBUF calls unmap_dmabuf op. This
> causes problem because video device will still need this buffer so future
> frames referencing to it can be decoded properly. Has anyone else faced
> this problem? Is there a patch for reference counting the MMU
> mappings/unmappings so that driver has more control over it?
>
> Thanks
> Vinay
>


--
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