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

+- XBMC Community Forum (http://forum.xbmc.org)
+-- 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)



- ungoliant - 2012-01-12 17:58

robclark Wrote:If you have ubuntu 11.10 filesystem, please try adding linaro PPA and using rsalveti's xbmc .deb, see http://rsalveti.wordpress.com/2012/01/06/hw-video-decode-and-xbmc-ubuntu-linaro/

There is one patch in there which helps somewhat, which I haven't had a chance to clean up and push. I'll try to do that this weekend if I have time. In general getting the flow control right with the way dvdplayer uses gst is, well, let's say a challenge. *Really* we badly need a native gstplayer to replace dvdplayer, which would solve all these issues w/ AV sync, fps, etc. But is perhaps a larger task.

That was exactly the way I got xbmc working on Linaro's build, I followed that blog. Now I realize you a the guy that made the patches Smile.

Is there any further testing you need to be done? I'm also on freenode, #linaro, nick nobill.


- RockerC - 2012-01-13 11:24

Have anyone looked using libdce directly in XBMC's "DVDPlayer" video player (without OpenMax and GStreamer) for the PandaBoard ES and other OMAP4 platforms?

http://www.phoronix.com/scan.php?page=news_item&px=MTAzNjY

https://github.com/robclark/libdce#readme

Quote:For those who became more interested in the PandaBoard ES after it was benchmarked on Phoronix last week, here's some details about the Distributed Codec Engine found on this OMAP4 platform from Texas Instruments.

For providing hardware accelerated codec support there is the Codec Engine for modern Texas Instruments ARM platforms. "Codec Engine (CE) is a framework that enables applications to easily instantiate and work with XDM codecs and algorithms using a common API."

Exposing this TI accelerated interface is "libdce", which is an open-source library maintained by Texas Instruments, and is currently supported by a few multi-media sample applications like omapfbplay and gst-ducati.

However, setting up libdce & co isn't quite as easy as if looking to use VDPAU or VA-API under Linux. Details on this project for those wanting to investigate more about the codec possibilities can find useful details from the GitHub project page.

That is, implement libdce directly in XBMC similarly to VDPAU and VAAPI?

robclark Wrote:There is one patch in there which helps somewhat, which I haven't had a chance to clean up and push.
@robclark, have you looked at the GStreamer code for XBMC from rabeeh to see if he done anything differently or added something you can use?

https://github.com/rabeeh/xbmc

He forked XBMC independently just like yourself and worked from topfs2 original GStreamer code to get it working on the CuBox by Solid-Run.

Maybe you and he can work together at cleaning up yours and his code so that you can push the the GStreamer code upstream to XBMC?


- RockerC - 2012-01-13 11:36

robclark Wrote:*Really* we badly need a native gstplayer to replace dvdplayer, which would solve all these issues w/ AV sync, fps, etc. But is perhaps a larger task.

Long term it might still be best to implement a proper a/v player abstraction layer framework and API in XBMC? Nod

Perhaps look at the UMMS (Unified Multimedia Service) audio/video player abstraction layer framework for XBMC?

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

Quote:Suggest that you look into implementing the UMMS (Unified Multimedia Service) audio video player abstraction layer framework into XBMC.

This article and UMMS introduction pdf sums up UMMS much better then I even can
http://lwn.net/Articles/465178/
http://wiki.meego.com/images/LinuxCon_2011_umms_introduction.pdf

However to put it simple, UMMS is an open source abstraction layer framework that have an consistent API which would make it possible for video and audio players to be treated as (binary) addons in XBMC.

Separating the video and audio players from the core XBMC application would also mean XBMC could have multiple video players and multiple audio players, and they could all be upgraded separately from the core application just like any other addon in XBMC.

Having the video and audio player separate binary addons using this API could open up future possibilities like having third-party closed source players dedicated for Blu-ray Disc playback or even DRM protected video on demand services like Netflix. This is possible since UMMS is LGPL licensed and is designed to use D-Bus service API to communicate between the frontend, and the backends it is language-independent and capable of providing license isolation, it could also be made to use a other open API then D-Bus, such as JSON-RPC or WebSocket to provide an bi-directional communications channel between the frontend and the backends.


Brendan Le Foll (username arfoll on the XBMC forums who also ported XBMC to MeeGo) have actually already coded his own proof of concept UMMS player for XBMC called madeo-uplayer that uses GStreamer and is written in Python
https://github.com/arfoll/Madeo-MUMS-player
https://github.com/arfoll/UMMS


UMMS official site
http://wiki.meego.com/Umms

Official git repositories for MeeGo middleware like UMMS are on meego.gitorious.org
http://meego.gitorious.org/meego-middleware/umms

First version of the module for Universal Multi Media Service has been published on the Meego OBS
https://build.meego.com/package/show?package=UMMS&project=MeeGo%3A1.2%3Aoss

The initial technical specification was published in March 2011 and can be found here
http://wiki.meego.com/File:Meego_Unified_MultiMedia_Service_V0.4.odt


Hope that the team developers have time to look into UMMS or some other type of Smile



- davilla - 2012-01-13 18:05

There is a gstplayer from another internal project. I'm looking into if release of it can be accelerated.

Unified Multimedia Service is python. Using python as the main internal player makes me nervous.


- BrokenCodes - 2012-01-15 16:00

Davilla, I am waiting patiently for theUni to finish DirectFB support ;-)

That will change everything.


- devanl - 2012-01-16 03:13

It would be nice to get inside one of these...
http://www.engadget.com/2012/01/07/always-innovating-hdmi-dongle-android-tv-video/


UMMS audio / video abstraction layer framework is not Python, code is written in C - RockerC - 2012-01-16 13:50

davilla Wrote:Unified Multimedia Service is python. Using python as the main internal player makes me nervous.
I think you misunderstand, looking at the code, the UMMS framework is not Python, its coded in C for front-end core integration

https://github.com/arfoll/UMMS look under the "src" folder for the UMMS front-end C code which would go into the XBMC core or lib


UMMS is a very similar concept to that of the PVR abstraction layer framework for XBMC front-end, only one API, many back-ends

Unified Multimedia Service is a abstraction layer framework that allows for the players to be written in any programming-language

UMMS front-end which is the core and middleware with uniformed API for players, then it has separate binary players as back-ends

You could write the main internal player for XBMC in C or C++ and just have it use the UMMS API, inc. porting DVDPlayer to UMMS

The beauty of UMMS is that XBMC could have multiple audio/video players in different programing-languages via same common API


I highly recommend you read this article about UMMS audio/video abstraction layer, it sums without looking having to at the code

http://lwn.net/Articles/465178/


Suggest that you have a talk about it with Brendan Le Foll (username arfoll on the XBMC forums who also ported XBMC to MeeGo)

Remember that the MeeGo TV project developers who coded UMMS used XBMC as their reference GUI


- davilla - 2012-01-16 17:27

https://github.com/arfoll/UMMS -> arfoll authored December 05, 2011

https://github.com/arfoll/Madeo-MUMS-player has been what I've been following as I have access to cex41xx hardware.

UMMS API is interesting. Brendan already has that implemented in https://github.com/arfoll/xbmc but I can't find the details right now.


- tschak909 - 2012-02-10 18:23

I saw some mentions in here of using the TTL port on an AML8726-M, what TTL cable did you use? did you have to fashion one? (I have cerebral palsy, so my hands aren't very well suited for soldering)

I keep seeing 6 pin variants with large headers on them, but they won't fit the 5 pin variant (I have the pinouts needed already)...

oh well, if not, I'll try to get a friend to help me solder one together.

Thanks,
-Thom


- davilla - 2012-02-10 20:17

tschak909 Wrote:I saw some mentions in here of using the TTL port on an AML8726-M, what TTL cable did you use? did you have to fashion one? (I have cerebral palsy, so my hands aren't very well suited for soldering)

I keep seeing 6 pin variants with large headers on them, but they won't fit the 5 pin variant (I have the pinouts needed already)...

oh well, if not, I'll try to get a friend to help me solder one together.

Thanks,
-Thom

All the AML8726-M pcb's that I have seen only have 4 pins, look for the white JST connector.

Matching plug -> http://www.sparkfun.com/products/10359

If you get these:
http://www.sparkfun.com/products/9920
http://www.sparkfun.com/products/718

You can make up an easy adapter. Note, the Breakout Board can supply +3.3v and the JST connector on the pcb also supplies +3.3v, don't connect them together. I just remove the pin from the header I solder on to the Breakout Board.