Hello All,
Facing high CPU usage problem for 1080p video when used with multiple display. Requirement is to have video playback in Front display and RSE display. Video sink need to be used is imxeglvivsink and imxv4l2sink. vpudec->tee --> queue -> imxeglvivsink ---> queue ->imxv4l2sink Please suggest if combination of these elements are compatible. Any video convert element will be required. Usually imxeglvivsink element is taking high CPU. Regards, Bhavya R |
Hi,
On Thu, Jun 1, 2017 at 1:56 PM, Bhavya <[hidden email]> wrote: > > Facing high CPU usage problem for 1080p video when used with multiple > display. Requirement is to have video playback in Front display and RSE > display. > Video sink need to be used is imxeglvivsink and imxv4l2sink. > > vpudec->tee --> queue -> imxeglvivsink > ---> queue ->imxv4l2sink the tee element reads FullHD buffer from vpudec to userland, memcpy() it, and enqueues/writes back to imxv4l2sink and imxeglvivsink. I don't know how those sinks are implemented but it takes some IO and CPU time for sure. -- yashi _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Le mardi 20 juin 2017 à 13:21 +0900, Yasushi SHOJI a écrit :
> Hi, > > > On Thu, Jun 1, 2017 at 1:56 PM, Bhavya <[hidden email]> wrote: > > > > Facing high CPU usage problem for 1080p video when used with multiple > > display. Requirement is to have video playback in Front display and RSE > > display. > > Video sink need to be used is imxeglvivsink and imxv4l2sink. > > > > vpudec->tee --> queue -> imxeglvivsink > > ---> queue ->imxv4l2sink > > the tee element reads FullHD buffer from vpudec to userland, memcpy() it, and > enqueues/writes back to imxv4l2sink and imxeglvivsink. > > I don't know how those sinks are implemented but it takes some IO and CPU > time for sure. currently drops the allocation queries. We don't know yet how to aggregate an allocation query to enable some zero copy with a tee (multiplexer). I would suspect the imxeglvivsink can do zero copy in that case, as it probably only rely on the VPU meta that sets the HW memory offset. I'm assuming you have recent enough kernel, gstreamer-imx and gstreamer so that works. For imxv4l2sink, I don't know much, if it's similar to v4l2sink, your best bet would be to set something like io-mode=userptr to try and avoid the copy (if implement and supported by the driver). What is not currently possible, is for vpuedec to use downstream memory through a tee element, so downstream renderer need to figure-out a way to use the incoming memory without copying if you want this to be performant enough. regards, Nicolas _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel signature.asc (188 bytes) Download Attachment |
Free forum by Nabble | Edit this page |