[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.