Kodi Community Forum
[LINUX] XBMC for Linux port to ARM architecture CPU and SoC chips? - Printable Version

+- Kodi Community Forum (http://forum.kodi.tv)
+-- Forum: Development (/forumdisplay.php?fid=32)
+--- Forum: Feature Suggestions (/forumdisplay.php?fid=9)
+--- Thread: [LINUX] XBMC for Linux port to ARM architecture CPU and SoC chips? (/showthread.php?tid=35139)



- McGeagh - 2009-10-17 16:43

that will be interesting to know, please keep me informed on your progress.

Thanks


- waldo22 - 2009-10-17 17:37

idioteque Wrote:can you give any info about what this means in term of using this branch to power other Media tanks like the Asus O'play or the WD live or even the HDX-1000 ?

@idioteque,

The Western Digital TV and WD Live (WD TV2) boxes use Sigma Designs SMP8635 and SMP8655 chipsets, respectively. (see page 2 of both docs)

These are 300Mhz and 500Mhz MIPS processors, respectively. They also use only 2D graphics.

The Asus O'Play uses Realtek's Venus RTD1073 SoC, which is a 200 Mhz MIPS processor, and also has no 3D acceleration hardware.

So, no 3D graphics (not even with a proprietary API) and MIPS architecture = no go.

See: http://forum.xbmc.org/showthread.php?tid=40236


- slicemaster - 2009-10-22 21:54

McGeagh Wrote:Its decoding fine.
The decoding of the video data is done in ffmpeg and that decodes all the frames without dropping any...
Its the YUV2RGB, scaling and rendering of the texture (i.e the SGX | GLES part) thats slow, and cant keep up...
Theres plenty room for improvement, but remember the beagleboard doesnt have very good memory bandwidth, so there will be a point where I cant make it go any faster... Will just have to wait for another board at that point!

Thanks for all your continued support!

@idioteque - not looked at those so cant say anything for certain... if its arm based, and has OpenGL ES2.0 support, it will be able to run this (at varying performance levels)

Congratulations! I have been tracking the progress of this project on and off and have been very impressed with what you have done in so little time…BY YOUR SELF! I honestly think the port of XBMC to ARM is going to offer a very bright future because of the fact that ARM is so low power, so small in size, and so dirt cheap (comparatively speaking that is). I take it; it is your end goal to have a fully functional ARM port of XBMC when you are done, correct?

Either way, I am not particularly familiar with the whole ARM scene but from my basic understanding the beagle board isn’t exactly the fastest ARM platform you can get…is that not so? Also, a few basic questions if you don’t mind answering them…

1. Once the port to ARM is finished won’t the software will be able to run on any ARM based platform with support for OpenGL ES 2.0 just as XBMC can currently runs on any X86 platform with OpenGL support?
2. Are the rest of the inner workings of XBMC fully functional in the state that your port is in now? AKA media library, network connectivity, audio playback, etc? (Basically everything besides the full speed video playback)?

Anyways, thanks for the update and please keep us informed…
Slice

P.S. I know there are ARM solutions from TI and others that offer hardware video/audio decoding capabilities, I was wondering if another potential avenue of exploration would be to strip-out XBMC’s software decoding code and perhaps implement a more platform specific decoding engine to take advantage of these types of hardware devices?


- McGeagh - 2009-10-23 16:47

slicemaster Wrote:Congratulations! I have been tracking the progress of this project on and off and have been very impressed with what you have done in so little time…BY YOUR SELF! I honestly think the port of XBMC to ARM is going to offer a very bright future because of the fact that ARM is so low power, so small in size, and so dirt cheap (comparatively speaking that is). I take it; it is your end goal to have a fully functional ARM port of XBMC when you are done, correct?

Either way, I am not particularly familiar with the whole ARM scene but from my basic understanding the beagle board isn’t exactly the fastest ARM platform you can get…is that not so? Also, a few basic questions if you don’t mind answering them…

1. Once the port to ARM is finished won’t the software will be able to run on any ARM based platform with support for OpenGL ES 2.0 just as XBMC can currently runs on any X86 platform with OpenGL support?
2. Are the rest of the inner workings of XBMC fully functional in the state that your port is in now? AKA media library, network connectivity, audio playback, etc? (Basically everything besides the full speed video playback)?

Anyways, thanks for the update and please keep us informed…
Slice

P.S. I know there are ARM solutions from TI and others that offer hardware video/audio decoding capabilities, I was wondering if another potential avenue of exploration would be to strip-out XBMC’s software decoding code and perhaps implement a more platform specific decoding engine to take advantage of these types of hardware devices?

Thanks for your interest!

My goal is to get this port identical in functionality as the current linux version has. I know this is not immediately possible, so expect this to be a long-haul.

I chose the beagleboard because its cheap and easily obtainable. It has a vast community with lots of help available, and its v7a architecture. (Chose this due to it having NEON.) I also only chose the beagleboard as a first step development board. I know it cannot do everything I wanted, but such board isnt available yet.

Yes, this port will run on any board which is ARM based and has OpenGL ES 2.0.

The rest of the functionality currently is widely untested. Here is a list of things that currently do not work:
  • Font colours (only white atm)
  • Screensavers - even dim fucks up (random text rather than solid quad renders)
  • Visualisations
  • mulitpass rendering not implemented yet (i think - i forget)
  • Audio player works if select DVDplayer and not PAplayer as the engine
  • At small resolutions (480p and less) the text looks nosiy/messy
  • Textures that get padded to 2048 do not render correctly, but instead clampstoedge
  • Does not exit!
  • avahi/zeroconf/atomics not implemented
  • window test pattern not implemented yet
  • dont think it works when not in fullscreen mode
There may be more, but they are currently untested
Sounds like a lot, but it was considerably more not long ago

Yes, I can use other pieces of hardware to accelerate performance, but thats a dangerous path to go down. unless done carefully, it can vastly restrict which platforms this will be able to run on. Saying that, once its fully working as is, I will be looking into this.

Thanks.


- Soju - 2009-10-25 20:42

McGeagh Wrote:Yes, I can use other pieces of hardware to accelerate performance, but thats a dangerous path to go down. unless done carefully, it can vastly restrict which platforms this will be able to run on. Saying that, once its fully working as is, I will be looking into this.
Thanks.

First of all, awesome work man! This is a monster effort to do by yourself!

On the HW front, what are you thinking other than beagle board? I'm sure a bunch of us will put some duckets together and buy you any board you think will work. I was hopping to see the Tegra optioned, since there is a prayer and a hope that it will do VDPAU or something very close to purevideo. That would be pretty awesome. Apparently there is a wider uptake of VDPAU in the market place. Unfortunately the ARM core in the Tegra is not the best version, but who knows with the GPU offload it could be just what we need.


- McGeagh - 2009-10-25 21:45

Soju Wrote:First of all, awesome work man! This is a monster effort to do by yourself!

On the HW front, what are you thinking other than beagle board? I'm sure a bunch of us will put some duckets together and buy you any board you think will work. I was hopping to see the Tegra optioned, since there is a prayer and a hope that it will do VDPAU or something very close to purevideo. That would be pretty awesome. Apparently there is a wider uptake of VDPAU in the market place. Unfortunately the ARM core in the Tegra is not the best version, but who knows with the GPU offload it could be just what we need.

I was hoping for a platform that has v7a architecture (Cortex A series) and their own Mali GPU.
An example of what Mali can do:
http://www.engadget.com/2009/10/21/arm-shows-off-its-mali-mobile-processors-with-impressive-3d-demo/
I dont reckon it will be too long before such a platform is out.
Also there is a benefit for me to spend as much time as i can on the beagleboard... means it will be rather well optimised. in which case, should work extra well on a beefier platform.


- Soju - 2009-10-25 22:15

McGeagh Wrote:I was hoping for a platform that has v7a architecture (Cortex A series) and their own Mali GPU.
An example of what Mali can do:
http://www.engadget.com/2009/10/21/arm-shows-off-its-mali-mobile-processors-with-impressive-3d-demo/
I dont reckon it will be too long before such a platform is out.
Also there is a benefit for me to spend as much time as i can on the beagleboard... means it will be rather well optimised. in which case, should work extra well on a beefier platform.

That makes sense of course. The mali platform looks great BTW, the OpenVG acceleration is cool. Do you know if they are planning anything on the mpeg2/4 hw acceleration front? I haven't read anything concerning Full bitstream acceleration from the releases. Ditto snapdragon.


- McGeagh - 2009-10-26 11:59

They do have a Video Engine that can do encode/decode of video... called the Mali VE
http://www.arm.com/products/multimedia/video/ARM-video-solutions.html


- BrokenCodes - 2009-10-26 18:31

McGeagh, have you tried changing the pointer, and doing redraw, instead of palette change? (YUV2RGB)
Can you do the Palette change during the onload, instead of the render?

Also, is there any way to get FFMPEG to output as RGB instead of YUV?


- BrokenCodes - 2009-10-26 18:38

-pix_fmt uyvy422 Smile


- spkm - 2009-10-26 20:11

McGeagh Wrote:that will be interesting to know, please keep me informed on your progress.

Thanks

Sorry for the late reply but've been completely overloaded with work. I've been having alot of problems with the sgx drivers so I couldn't test it properly yet ...

Could you please share your OS image with me ? It will work perfectly since the only differences are the wifi/bluetooth/ethernet.


- Rubik2k - 2009-10-26 21:28

spkm Wrote:i'm going to build an ubuntu image for my igepv2 and try do compile that version of xbmc you're using to see how it looks Big Grin

don't know if the fact that I have 512MB DDR2 will improve performance, but we will see.

Hi spkm,

I'm trying to make the same with my IGEPv2 board. Can you send me a private message?

Best regards,

Rubik2k


- McGeagh - 2009-10-27 16:04

spkm Wrote:Sorry for the late reply but've been completely overloaded with work. I've been having alot of problems with the sgx drivers so I couldn't test it properly yet ...

Could you please share your OS image with me ? It will work perfectly since the only differences are the wifi/bluetooth/ethernet.

I got my OS simply by following these directions:
http://elinux.org/BeagleBoardUbuntu
(jaunty - xfce4)


- Soju - 2009-10-27 20:26

Hey Guys do you know if the Roku player will take the build? Anyone try?

I gather it is Arm based, myth has a build going. Its 79 bucks BTW. probably no h264 or 1080P. Some source info.


IGEPv2 board - squid1 - 2009-10-28 01:01

IGEPv2 board , is currently out of stock really been thinking of getting one to play about with maybe even donate one with hows your experience been so far with it as far a xbmc goes ?? not done any gfx on arm my understanding that port is for open gl and is not direct fb based?