[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)
- pfbach - 2011-12-24 03:31
Allright, I managed to make it work now.
Had to compile gst-ducati (master) and gst-plugins-base (ti-branch) (with ./configure --prefix=/usr) to make it fix my segfault problem. I will make a tutorial so I remember next time.
I start xbmc as session from lightgdm.
I am using a Philips 42" 1080p LCD TV.
What I have noticed so far, is that:
Menu is much faster, and has a frame rate at 30fps(cpu0/cpu1 7%/30%), but dropping when changing between sub menus. (video, system etc).
- SD content plays with black screen (fps:8-9, cpu0/cpu1: 12%/15%), as mentioned a few posts ago by someone else I think.
- 720p and 1080p (x264 and mpeg4/xvid) are playing at a frame rate around 22-16fps(xvid around 28-20). Much better than last time I tried . The CPU load stays around 60% for cpu0, and 45% for cpu1 when playing content.
- Subtitles are showing.
There is a difference in fps between watching via network (ethernet 100mbit) and from a usb drive. usb drive gives 28-18fps (720p) and 23-18fps (1080p).
video/audio becomes out of sync when playing.
Let me know if there is anything I can do or test in order to make this work even better.
- Bigsy - 2011-12-24 14:12
Spotted this today: http://www.dealextreme.com/p/1080p-dual-system-android-2-3-linux-media-player-w-wifi-sd-2xusb-lan-optical-hdmi-av-111103
Runs android AND linux apparently so perhaps a possible xbmc host, might be worth keeping an eye on, I'm desperate for some cheap 1080p capable arm hardware that will run xbmc.
- overflowed - 2012-01-05 17:03
Thanks robclark, i merged your get additions to my git based on opdenkamps and sd and hd video playback seems to work very well.
I have just two issues, first one is, when i seek the framerate is dropping down for a few seconds to around 3-5fps. This also happens when starting video.
The second one is a little bit stranger, when watching live TV i see four rectangles, the tv image two times on the left side and on the right side two times streched lines:
Something similar i noticed when watching airplay videos.
The debug log says:
15:41:06 T:1350562880 DEBUG: CDVDPlayer::HandleMessages - player started 1
15:41:06 T:1330385984 WARNING: CDVDMessageQueue(video)::Get - asked for new data packet, with nothing available
15:41:06 T:1330385984 NOTICE: fps: 0,000000, pwidth: 720, pheight: 576, dwidth: 1024, dheight: 576
15:41:06 T:1330385984 DEBUG: OutputPicture - change configuration. 720x576. framerate: 0,00. format: EGLIMG
15:41:06 T:1103745568 NOTICE: Using GL_TEXTURE_2D
15:41:06 T:1103745568 DEBUG: GL: Requested render method: 0
15:41:06 T:1103745568 DEBUG: Shader - Loading shader file yuv2rgb_vertex_egl_image_external_gles.glsl
15:41:06 T:1103745568 DEBUG: Shader - Loading shader file yuv2rgb_egl_image_external_gles.glsl
15:41:06 T:1103745568 NOTICE: GL: Selecting eglImage shader
15:41:06 T:1103745568 DEBUG: GL: Vertex Shader compilation log:
15:41:06 T:1103745568 DEBUG: Success.
i think dheight should be 768? I am unsure if this is gstreamer related, but without gst it was fine.
Any suggestions? don't even know where to have a look.
- robclark - 2012-01-05 18:02
overflowed Wrote:Thanks robclark, i merged your get additions to my git based on opdenkamps and sd and hd video playback seems to work very well.
yeah, there are some seek issues.. I'm still trying to figure out how to handle that in a sane way.
The issue is that, since the way dvdplayer uses gst, decoding is happening in a different thread, if I don't do anything we end up feeding in 20-30+ input frames before we start getting output frames. And then later when we seek or pause, it takes ~1sec for video to react.
Recently I've begun experimenting with trying to throttle/flowcontrol things a bit, but it still sometimes gets in a mode where video rendering starts getting late and dropping frames (I think?)
overflowed Wrote:The second one is a little bit stranger, when watching live TV i see four rectangles, the tv image two times on the left side and on the right side two times streched lines:
The top/bottom looking image appears to be interlaced video. I've not worked out how to render interlaced video. Possibly there is some shader tricks that could be employed.
The junk around the outside appears that the buffer is not being cropped. Normally the codec uses buffers that are a bit oversized to deal with cases where reference frames have some block/macroblock content that is moved beyond the visible edge of the picture and back in a future frame. I added some logic in gles2 linux renderer class to deal with the cropping but maybe it is getting reset in some cases?
overflowed Wrote:Something similar i noticed when watching airplay videos.
- overflowed - 2012-01-05 20:07
thanks, i assume you are right the tv signal are 50 half pictures/second here.
With turning off screen resizing the right bar disappears, don't know about the aspect ration, since there are two pictures.
I tried to edit the pipeline to decodebin2 ! ffmpegcolorspace ! deinterlace ! ffmpegcolorspace, but i don't see a picture now, audio starts for a few seconds and then everything stopped (i assume thats a/v sync).
Thought could be easy
good plugins are installed.
But i know too less about gst, does the dsp have to support deinterlace? Or can this be done in one pipeline by the cpu?
I assume the plugins-good are done by cpu?
Can i anywhere check the "top" of the dsp?
Will have to read how gstreamer works...
- robclark - 2012-01-05 22:44
overflowed Wrote:thanks, i assume you are right the tv signal are 50 half pictures/second here.
I think deinterlace will do sw deinterlacing.. the performance won't be good, but might possibly be fast enough for standard-def video..
Better option would be if there was some way to do it with the shader. I think that is done w/ non eglImage shaders, but I've not had a chance to look into the shader magic that makes it work.
overflowed Wrote:Thought could be easy
- robclark - 2012-01-05 23:19
btw, I've not had a chance to try this build myself (but I guess it should be identical to what I have), but linaro now has xbmc packages for omap/panda pushed to it's PPA (for those who aren't patient enough to recompile xbmc themself)
- overflowed - 2012-01-06 01:47
ok, after removing the deinterlace ! ffmpegcolorspace i noticed, the video still does not appear. A git diff helped, I forgot to insert a ! at the end, the sink is still added after this. So i tried again, but still have two pictures (one above the other). CPU usage is not increased on sd (don't have an interlaced hd source).
Will have to do some more research but not before the weekend.
- ungoliant - 2012-01-12 16:12
robclark Wrote:btw, I've not had a chance to try this build myself (but I guess it should be identical to what I have), but linaro now has xbmc packages for omap/panda pushed to it's PPA (for those who aren't patient enough to recompile xbmc themself)
First of all, hi, I just registered to the forums
Second: I just build this and tested it on my Pandaboard ES: It has some bugs:
- seek: video slows down for a while and audio keeps going, and after a couple secs video plays faster to get in sync with audio.
- UI: I have 30 fps constant, but every 5-10 secs it drops for to ~15 FPS. I have noticed that if I am checkin the system info, when the FPS drops, the system info is gone for half second.
- Playback: Because of the above, playback is kinda painfull, with FPS drops every 5-10 secs.
- robclark - 2012-01-12 17:03
ungoliant Wrote:First of all, hi, I just registered to the forums
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.
- 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/
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 .
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?
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.
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?
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?
Perhaps look at the UMMS (Unified Multimedia Service) audio/video player abstraction layer framework for XBMC?
Quote:Suggest that you look into implementing the UMMS (Unified Multimedia Service) audio video player abstraction layer framework into XBMC.
- 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.