-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need XV extension support for sunxi hardware #4
Comments
The following repo has an implementation of the XVideo extension although it's for the RK3066 chip it may help provide a basis. |
Thanks. It is not like implementing XV is really difficult. Plenty of different drivers can be used as a reference (RK3066 is not special). And there is also documentation here: http://www.x.org/releases/X11R7.7/doc/xorg-server/ddxDesign.html#id2596539 Basically, this just needs to be done, no interesting technical challenges expected :) But thanks again for bumping this issue, it shows that some people really want this resolved. |
I have just pushed an initial implementation, which is still buggy in some corner cases (simultaneous video playback and OpenGL ES usage, composited desktop environments). But additional testing is also welcome. |
Wow, that works a treat! I have compiled mythtv and am running a frontend. Before the XV extension I would get about 1 frame a second and you could see it scan down the screen. Now it's much better. I am now working on the hardware video decode to see if it's actually usable. |
XV is designed to work with software decoding and should provide reasonably smooth fullscreen scaled playback for SD resolution videos using the processor from Allwinner A10 (assuming that libav/ffmpeg is correctly compiled with NEON support). Hardware accelerated decoding to get 1080p videos support is a different thing and we need something like VDPAU wrapper for CedarX. Unfortunately none of the XV code is directly reusable for it. The same disp ioctl wrappers still could be handy though. |
Yes, I know that for 1080p I need to provide decoding and overlay support Thanks for your work on the driver BTW. If you are interested, I'll keep On Wed, Jul 17, 2013 at 7:59 AM, Siarhei Siamashka <[email protected]
|
What about some benchmarks using Xv enabled video driver and right-way compiled ffmpeg? What is the realistic possible limit - like 480P resolution video of codec X, bitrate Y and etc. ? |
CedarX is using physically contiguous memory and the display controller is also using physically contiguous memory. But XV relies on SHM to share buffers between the X server and the client application. SHM memory is not physically contiguous (at least as far as I know, and Linaro people seem to agree [1]). Using SHM as an intermediate buffer for the only purpose of passing data between CedarX and the display controller would be extremely inefficient (need CPU copy crawling through non-cached memory). |
In my limited tests with H.264 encoded videos, I could watch 480p media files just fine (especially if frame dropping is enabled and can be tolerated on motion heavy scenes). For the lightweight codecs such as mpeg2 or xvid, larger resolutions may be also fine. I also watched a VOB from a DVD as a test without any problems.
MPlayer can be easily used for benchmarking (it conveniently has -benchmark option). But first it would be great to successfully run the XV enabled driver on A20 :)
VFP has no use for video decoding. And the audio decoders, which rely on floating point calculations, should be already optimized with NEON. |
Thanks! The reports about any possible crashes or performance issues in this driver blocking your progress are very much welcome. |
Would be a quite useful improvement over xf86-video-fbdev
The text was updated successfully, but these errors were encountered: