![]() |
|
Register | Forum Rules | FAQs | Members List | Social Groups | Downloads | Search | Today's Posts | Mark Forums Read |
Hardware Support Discussions related to using various hardware setups with SageTV products. Anything relating to capture cards, remotes, infrared receivers/transmitters, system compatibility or other hardware related problems or suggestions should be posted here. |
![]() |
|
Thread Tools | Search this Thread | Display Modes |
#61
|
||||
|
||||
mplayer
Successfully compiled Sage's modified version of mplayer. Here's how (on the PS3):
Code:
./configure --enable-eavios --enable-stv --enable-stream-sagetv --disable-mencoder make Attached is the output from configure and make (for historical purposes). |
#62
|
||||
|
||||
Thanks for the configure args. I was having issues rebuilding it on my local pc, I'm going to give those a try
![]()
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#63
|
||||
|
||||
LoL
For reference (simply to document the dependencies of Sage), the following libraries are required and must provide the following functions:
Code:
libasound.so.2: snd_mixer_selem_id_set_name snd_mixer_load snd_mixer_selem_id_get_index snd_mixer_selem_set_playback_volume snd_mixer_selem_id_get_name snd_mixer_selem_id_set_index snd_mixer_selem_get_playback_volume_range snd_strerror snd_mixer_selem_id_sizeof snd_mixer_find_selem snd_mixer_selem_register snd_mixer_attach snd_mixer_selem_get_playback_volume snd_mixer_open snd_mixer_close libdl.so.2 dlopen libX11.so.6 XQueryTree XSendEvent XFree XInternAtom libjawt.so JAWT_GetAWT libc.so.6 settimeofday statfs printf gettimeofday memset sprintf __cxa_finalize _Jv_RegisterClasses Last edited by devinteske; 04-10-2009 at 06:27 AM. Reason: Redaction |
#64
|
|||
|
|||
Kudos on such an ambitious project.
I'm wondering though whether it wouldn't be easier to put together some sort of enhanced version of the Sage web interface. Doesn't the PS3 have a relatively advanced browser? Would it be easier to make some sort of web 2.0 interface (or flash?) that gives you some sort of placeshifter type of experience? You'd be able to use the PS3s existing video acceleration and it would also be usable on other platforms. F Quote:
|
#65
|
||||
|
||||
Quote:
On the Linux side, you can run whatever browser you like, as long as it is made available for Linux/PPC (think Opera and Firefox for modern browsers). However, flash is only supported on the PS3 via "gnash", a 3rd-party alternative that comes close to being a decent stand-in. Adobe/Macromedia doesn't make a Linux/PPC build of flash that is compatible with the PS3. Quote:
Whether through the built-in browser in the GameOS, or a browser running under Linux, we're going to be missing some features that you can only get through a stand-alone application (versus web-apps) such as remote control support. Although to be quite honest, I've learned to navigate the Sage menus via the keyboard arrow/enter keys. A remote would be nice but perhaps not entirely necessary. Quote:
Video acceleration is non-existent under the Linux environment and I have no clue whether the browser in the GameOS is accelerated or not (i.e. can it play 720p?) Theoretically if the only tasks were to play an MPEG2 stream, provide an [overlay] interface, and communicate with the server, it might be simple. However, for a web-player, I think that we'd be better off using Java. However, I've no idea of the feasibility of turning Sage into an applet. They wouldn't have to start from scratch per-se, but there would be some intensive work required to make Sage functional in the limited applet VM namespace. Update:[ Under the GameOS, flash is supported, but Java is not. Under Linux, Java is supported, but Flash is not (basic support for Flash using Gnash, but Gnash is not 100% compatible or robust enough to say that we have Flash support under Linux). Last edited by devinteske; 04-08-2009 at 02:56 PM. Reason: Details |
#66
|
||||
|
||||
JTux
I expect that I'll finish up with porting JTux tomorrow. I'll post the patches that were necessary to port it as well as a zipped binary of the compiled library and a status update as to where we stand as to "what's ported" and "what still needs porting". I hope to port any/all dependencies and then basically leave libSage.so as the only piece left (with a plead to Sage to please re-compile it). I'm hoping that once Sage sees that I've ported everything and have all but that one library working, that they'll be "nice enough" to oblige.
|
#67
|
||||
|
||||
![]()
Attached is a patch file that will allow you to compile JTux (libjtux.so) on the PS3 (YDL 6.1).
Instructions: 1, Download JTux Code:
devin@Lockhart ~ $ wget http://basepath.com/aup/jtux/jtux.tar.gz 3. Unpack JTux Code:
devin@Lockhart ~ $ tar zxf jtux.tar.gz Code:
devin@Lockhart ~ $ cd jtux devin@Lockhart jtux $ patch -u < ../jtux*.patch.txt Code:
devin@Lockhart ~ $ make Update: Fixed "jint < dev_t" runtime error. New patch/binary uploaded. Last edited by devinteske; 04-07-2009 at 07:29 PM. Reason: Grammar |
#68
|
||||
|
||||
JTux Results
Here is the resultant miniclient.log when running with ported JTux:
Code:
Starting MiniClient Mon 4/6 21:05:19.494 Detecting cryptography support... Mon 4/6 21:05:19.973 Sending out discovery packets to find SageTVPlaceshifter Servers... Mon 4/6 21:05:22.237 Starting SageTVPlaceshifter Client Mon 4/6 21:05:22.242 Starting main loop Mon 4/6 21:05:22.257 StorageDeviceDetector started... Mon 4/6 21:05:24.997 Error discovering servers:java.net.SocketTimeoutException: Receive timed out Mon 4/6 21:05:26.281 Attempting to connect to server at 10.0.0.2:31099 Mon 4/6 21:05:26.294 Error getting MAC address of:java.io.IOException: java.io.IOException: No such file or directory Mon 4/6 21:05:26.297 Connection accepted by server Mon 4/6 21:05:26.297 Connected to media server Mon 4/6 21:05:26.303 Error getting MAC address of:java.io.IOException: java.io.IOException: No such file or directory Mon 4/6 21:05:26.305 Connection accepted by server Mon 4/6 21:05:26.305 Connected to gfx server Mon 4/6 21:05:26.422 Testing to see if server can do a pull mode streaming connection... Mon 4/6 21:05:26.423 Server can do a pull-mode streaming connection. Mon 4/6 21:05:26.431 Loaded Type size error: sizeof(jint) < sizeof(dev_t) Jtux error: Java native types don't match POSIX/SUS types. Mon 4/6 21:05:26.478 Error w/ Media Thread: java.net.SocketException: Socket Closed On the bright-side, the output looks incredibly clean. Update: Patched jtux_util.c to fix the error (updated previous post with new patch and binary). Here's what we're getting in the miniclient.log now: Code:
Starting MiniClient Mon 4/6 21:23:41.975 Detecting cryptography support... Mon 4/6 21:23:42.447 Sending out discovery packets to find SageTVPlaceshifter Servers... Mon 4/6 21:23:42.459 Starting SageTVPlaceshifter Client Mon 4/6 21:23:42.464 StorageDeviceDetector started... Mon 4/6 21:23:42.464 Starting main loop Mon 4/6 21:23:47.493 Error discovering servers:java.net.SocketTimeoutException: Receive timed out Mon 4/6 21:23:48.191 Attempting to connect to server at 10.0.0.2:31099 Mon 4/6 21:23:48.206 Error getting MAC address of:java.io.IOException: java.io.IOException: No such file or directory Mon 4/6 21:23:48.208 Connection accepted by server Mon 4/6 21:23:48.208 Connected to media server Mon 4/6 21:23:48.215 Error getting MAC address of:java.io.IOException: java.io.IOException: No such file or directory Mon 4/6 21:23:48.217 Connection accepted by server Mon 4/6 21:23:48.217 Connected to gfx server Mon 4/6 21:23:48.370 Testing to see if server can do a pull mode streaming connection... Mon 4/6 21:23:48.371 Server can do a pull-mode streaming connection. Mon 4/6 21:23:48.378 Loaded Mon 4/6 21:23:48.383 Staring video server Mon 4/6 21:23:48.387 Starting MiniLIRC Mon 4/6 21:23:48.401 Exception in MiniLIRC: No such file or directory (ENOENT) Mon 4/6 21:23:48.457 Temp file:/tmp/sagevideovjozuo Mon 4/6 21:23:48.460 Trying to accept fd: 12 ERROR loading native lib for UI:java.lang.UnsatisfiedLinkError: libSage: ./libSage.so: ELF file data encoding not big-endian Mon 4/6 21:23:48.760 GetProperty: GFX_TEXTMODE Mon 4/6 21:23:48.762 GetProperty: FIRMWARE_VERSION Mon 4/6 21:23:48.763 GetProperty: GFX_BLENDMODE Mon 4/6 21:23:48.763 GetProperty: GFX_DRAWMODE Mon 4/6 21:23:48.764 GetProperty: GFX_SURFACES Mon 4/6 21:23:48.764 GetProperty: GFX_HIRES_SURFACES Mon 4/6 21:23:48.765 GetProperty: GFX_VIDEO_UPDATE Mon 4/6 21:23:48.766 GetProperty: GFX_BITMAP_FORMAT Mon 4/6 21:23:48.766 GetProperty: GFX_SCALING Mon 4/6 21:23:48.767 GetProperty: GFX_OFFLINE_IMAGE_CACHE Mon 4/6 21:23:48.767 GetProperty: GFX_YUV_IMAGE_CACHE Mon 4/6 21:23:48.768 GetProperty: GFX_SUPPORTED_ASPECTS Mon 4/6 21:23:48.768 GetProperty: GFX_ASPECT Mon 4/6 21:23:48.768 GetProperty: VIDEO_ADVANCED_ASPECT_LIST Mon 4/6 21:23:48.769 GetProperty: GFX_SUPPORTED_RESOLUTIONS Mon 4/6 21:23:48.769 GetProperty: GFX_SUPPORTED_RESOLUTIONS_DIGITAL Mon 4/6 21:23:48.770 GetProperty: GFX_RESOLUTION Mon 4/6 21:23:48.770 GetProperty: GFX_HDMI_MODE Mon 4/6 21:23:48.771 GetProperty: GFX_COMPOSITE Mon 4/6 21:23:48.771 GetProperty: GFX_COLORKEY Mon 4/6 21:23:48.771 GetProperty: AUDIO_OUTPUTS Mon 4/6 21:23:48.772 GetProperty: AUDIO_OUTPUT Mon 4/6 21:23:48.772 GetProperty: INPUT_DEVICES Mon 4/6 21:23:48.773 GetProperty: DISPLAY_OVERSCAN Mon 4/6 21:23:48.773 GetProperty: VIDEO_CODECS Mon 4/6 21:23:48.773 GetProperty: AUDIO_CODECS Mon 4/6 21:23:48.774 GetProperty: PULL_AV_CONTAINERS Mon 4/6 21:23:48.774 GetProperty: PUSH_AV_CONTAINERS Mon 4/6 21:23:48.775 GetProperty: STREAMING_PROTOCOLS Mon 4/6 21:23:48.775 GetProperty: FIXED_PUSH_MEDIA_FORMAT Mon 4/6 21:23:48.775 GetProperty: DETAILED_BUFFER_STATS Mon 4/6 21:23:48.776 GetProperty: PUSH_BUFFER_SEEKING Mon 4/6 21:23:48.776 GetProperty: MEDIA_PLAYER_BUFFER_DELAY Mon 4/6 21:23:48.777 GetProperty: REMOTE_FS Mon 4/6 21:23:48.777 GetProperty: IR_PROTOCOL Mon 4/6 21:23:48.777 GetProperty: VIDEO_ADVANCED_ASPECT Mon 4/6 21:23:48.778 SetProperty GFX_ASPECT Mon 4/6 21:23:48.779 GetProperty: CRYPTO_ALGORITHMS Mon 4/6 21:23:51.134 Error w/ GFX Thread: java.lang.NullPointerException java.lang.NullPointerException at gnu.java.awt.peer.gtk.GtkComponentPeer.setCursor(libgcj.so.7rh) at java.awt.Component.setCursor(libgcj.so.7rh) at sage.miniclient.GFXCMD2.ExecuteGFXCommand(GFXCMD2.java:219) at sage.miniclient.MiniClientConnection.GFXThread(MiniClientConnection.java:843) at sage.miniclient.MiniClientConnection.access$200(MiniClientConnection.java:6) at sage.miniclient.MiniClientConnection$4.run(MiniClientConnection.java:340) Mon 4/6 21:23:51.273 Connection error 0, exiting Mon 4/6 21:23:51.286 Error w/ Media Thread: java.net.SocketException: Socket Closed java.net.SocketException: Socket Closed at java.io.DataInputStream.readFully(libgcj.so.7rh) at java.io.DataInputStream.readFully(libgcj.so.7rh) at sage.miniclient.MiniClientConnection.MediaThread(MiniClientConnection.java:1923) at sage.miniclient.MiniClientConnection.access$100(MiniClientConnection.java:6) at sage.miniclient.MiniClientConnection$3.run(MiniClientConnection.java:331) Mon 4/6 21:23:52.497 Sending out discovery packets to find SageTVPlaceshifter Servers... Up next is JOGL (libjogl.so, libjogl_awt.so and libjogl_cg.so). Last edited by devinteske; 04-07-2009 at 07:34 PM. |
#69
|
|||
|
|||
@devinteske just wanted to add my thanks for the work you've done to date.
So just to make sure I'm following this correctly: 1) the approach you are currently trying is to run everything natively on the PS3? ie no x86 emulation layers? Honestly I think this is key to the eventual success of this. 2) The outstanding issue is the custom sage libraries which need to be recompiled for PPC? The only reason I think Sage will be reluctant to do this is the ongoing maintenance and support burden it might create - ie they need to setup to be able to compile (and presumably test) PPC libraries with each update. Do they need a PS3 to perform this compile or can it be done on a normal machine? I'd make clear in any comms that we would take on the testing - ie be willing to accept untested code under the assumption the logic will be correct, but we'd be performing PPC compatibility testing. 3) If we could get this done we (you!!) will hopefully have Sage running on the PS3 - a world first ![]() 4) To take it into the HD world, we'd then need to look into PS3 specific (optimised) video drivers, codecs, mplayer, anything else? Thanks again and the doco and work your are doing is really top-shelf stuff.... |
#70
|
|||||
|
|||||
Quote:
Quote:
Quote:
Also, it should be sufficient to recompile the native library on any Linux/PPC distribution running on any hardware. They won't need to recompile on a Sony PS3. For example, if they were to, say, install Yellow Dog Linux on a Mac (or an emulator) and re-compile, we would have a Linux/PPC build that could then run on the PS3. Quote:
However, yet to be seen is how well transcoded 720p content plays. That is to say, I've tested native codec playback on the PS3 using a native build of mplayer, but I believe that the SageTV Server transcodes to MPEG-2 in realtime prior to sending to the Placeshifter. So the Placeshifter may be able to play the transcoded stream more efficiently than mplayer can play the non-transcoded files. Maybe somebody with more info on this can confirm or deny if Sage transcodes 720p content to MPEG-2 in realtime and whether MPEG-2 playback requires more or less resources than DivX/Xvid/H.264/x264 et cetera. Native mplayer build on the PS3 was able to play any/all SD video flawlessly. I watched The Sopranos under Linux on my PS3 last night and it looks/sounds great. Quote:
In all honesty, the IBM Cell/B.E. makes a horrible desktop computing architecture when compared to standard preemptive CPU architectures such as PowerPC and x86. This is because the Cell Synergistic Processing Engines are not designed to be preemptable. Rather, the SPE cores are designed to perform a task from start-to-finish. This works great for video games which must render millions of polygons-per-second, scientific software which must perform millions of calculations, and statistics software which must derive meaning from data sets. So the SPUs are fundamentally different than the PPE in both form and function. I believe that adding custom code to mplayer to offload some of the more intensive tasks, such as YUGV color calculations, to the SPEs will allow us to achieve even 1080p smooth playback. We may be locked out of the RSX by the hypervisor but we're definitely allowed, encouraged even, to develop applications that use the SPUs. Last edited by devinteske; 04-10-2009 at 09:22 AM. Reason: grammar |
#71
|
||||
|
||||
![]()
I'm not so sure that we even need libSage.so. If you delete it and re-launch Placeshifter, everything appears to still work. I tested this on my Linux/x86 CentOS 4 system and was still able to connect to the server.
However, a full regression test will need to be done to determine what features, if any, will be absent or broken by not loading libSage.so. I'm more optimistic now about getting Placeshifter to run natively without the need to either re-compile this library or spend weeks (if not months) performing binary translation or writing my own. I feel that there's a very high likelihood that once I get JOGL ported that I'll have a functional client. SageTV Linux/x86 Placeshifter Dependencies: Java: Came packaged with YDL (functional) MPlayer: Compiled from source and functional JTux: Ported from source and functional ALSA: Came packaged with YDL (functional) JAWT: Came packaged with YDL (functional) X11: Came packaged with YDL (functional) JOGL: Porting As you can see, we're on the final leg here. The final dependency (JOGL) is also looking good. I found a PPC RPM of JOGL-1.1 the other day, so that proves that it can be compiled on PowerPC. Shouldn't be much longer. However, WAF is hindered by this project since I do my development on our main 52" LCD in the living room. I tend to get the most done while she's at school ![]() Update: I know that you may be tempted to think that it somehow found or recreated libSage.so, but I can assure you that's not the case. miniclient.log shows a Java error where it was unable to load the Sage library. So this shows us that libSage.so -- the only native library that is not open-source -- is both (a) dynamically loaded at runtime and (b) perhaps not required, as a fatal exception is not thrown if it can't be loaded. Last edited by devinteske; 04-10-2009 at 04:42 PM. |
#72
|
||||
|
||||
![]()
A lot of the *.txt files that I'm attaching are in UNIX format (meaning that when you open them on Windows, it appears as one really long line).
Rename to end in .wri so that it will open in WordPad which correctly displays the file. |
#73
|
||||
|
||||
Is this of any value, I just stumbled across it... H.264 on Cell
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#74
|
||||
|
||||
It's dated (2007), but I'll definitely have a look.
|
#75
|
||||
|
||||
Pretty much everything you are talking about is way over my head, as I only dabble in Linux, but I hope you do get the SageTV client/placeshifter working well natively on the PS3!! I have YellowDog loaded right now, and really don't use it because of the lack of flash etc..... If you get this working, you definitely have to submit this to the SageTV guys to see if they will release, and or maintain the code as yet another platform they support. They could only win with this situation.
Do you have the ability to optimize a distro to be as stripped down as possible to only run SageTV on X? If so, packaging it that way would be awsome.
__________________
Mike Janer SageTV HD300 Extender X2 Sage Server: AMD X4 620,2048MB RAM,SageTV 7.x ,2X HDHR Primes, 2x HDHomerun(original). 80GB OS Drive, Video Drives: Local 2TB Drive GB RAID5 |
#76
|
||||
|
||||
Quote:
The great thing is that we can really dial in the distro to the PS3 since it is "standardized hardware". So we can automate all the optimizations that will be required. Based on my experience with, the resultant ISO should be between 200MB and 250MB. |
#77
|
||||
|
||||
Quote:
I can't wait!! ![]()
__________________
Mike Janer SageTV HD300 Extender X2 Sage Server: AMD X4 620,2048MB RAM,SageTV 7.x ,2X HDHR Primes, 2x HDHomerun(original). 80GB OS Drive, Video Drives: Local 2TB Drive GB RAID5 |
#78
|
||||
|
||||
Small Update
Been swamped with other projects. It's going to take a little more time to get JOGL ported since it uses a build process I'm not familiar with. I've used "make" for years on-end, but have never used "ant" before (a make-like utility used to build JOGL from source).
Currently, I am in the throws of porting ANTLR (an ant module) so that I can port JOGL. I've successfully built ANTLR several times now on the PS3 but for some reason JOGL is refusing to recognize the installed ANTLR java classes ![]() |
#79
|
||||
|
||||
So, any updates. I know many including myself are very interested in this project. I just wish I had the knowledge to help. Don't give up.
![]()
__________________
SageTV Server: unRAID Docker v9, S2600CPJ, Norco 24 hot swap bay case, 2x Xeon 2670, 64 GB DDR3, 3x Colossus for DirecTV, HDHR for OTA Living room: nVidia Shield TV, Sage Mini Client, 65" Panasonic VT60 Bedroom: Xiomi Mi Box, Sage Mini Client, 42" Panasonic PZ800u Theater: nVidia Shield TV, mini client, Plex for movies, 120" screen. Mitsubishi HC4000. Denon X4300H. 7.4.4 speaker setup. |
#80
|
||||
|
||||
Updates
I've been utterly swamped with coding projects at work with sharp deadlines. In addition, several other projects have crept up on me like 2-3 cocoa obj-c projects on Mac OS X/iPhone, a CSS/Perl Web-App, a new FreeBSD kernel, and some other fluff.
The current status of SageTV on the PS3 is actually pretty good. JOGL remains to be the only hurdle left in the dependency list. Everything else required to run the Placeshifter (miniclient) on the PS3 under Linux is either available online or attached to messages in this forum. Currently, building JOGL on the PS3 bombs out during the configure stage, claiming that ANTLR, a dependency listed in the documentation, is not installed. Since ANTLR is listed rather prominently in the JOGL build-documentation, I feel fairly confident that all other dependencies are satisfied and that getting ANTLR, an Apache ANT module, installed will allow us to successfully build JOGL. I definitely encourage any impatient souls to set up Linux on their PS3 using the resources and methods mentioned in this thread. I'll help you along the way to get as far as I have. The interface launches, I can add a SageTV Server to the placeshifter main menu, etc. Of course, without JOGL, logging into the server works but the interface won't render. Once JOGL is successfully ported (which, we know is possible since YDL has a binary port of jogl-1.1.1 in the yum database), the interface should render and we should be able to play STD definition video smoothly. |
![]() |
Tags |
bd-j, bdj, client, extender, ps3 |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
SageTV, the HD Homerun, and a PS3 | Keenan | Hardware Support | 0 | 04-02-2008 01:28 PM |
SageTV Client on PS3 (under linux)? | bjkiller | SageTV Linux | 2 | 11-25-2007 10:35 AM |
PS3 | ChePazzo | General Discussion | 4 | 12-21-2006 04:40 AM |
Sage on PS3 Possible? | VikingCrown | SageTV Linux | 18 | 10-21-2006 12:45 PM |