Hey - I've been playing with mplayer a bit, and my own CVS-current build with the freeware gcc gets exactly the same (or so) -benchmark results as the MIPSPro build above. Bit disappointing. I'm testing with MPEG2 VOB files and the same files mencoded to raw video/audio.
I'm a dual 300 SSE and I can only get 15-20 FPS playing DVD rate MPEG2, playing the uncompressed version is fine (mmm, Cheetah X15 :)) but with rather alarming CPU usage - 50% of each processor at least. For us people without TRAMS , I imagine one could do a much better job using glDrawPixels() instead of icky XImages. It also looks like all MGRAS cards could do hardware YUV-RGB with the SGI_color_matrix GL extension. Not sure how fast that would be. I may have a go at writing an output plugin. Perhaps one could use XSGIvc to switch to a better resolution too. If glPixelZoom() is too slow for full screen, which I image it is, it would be nice to have a 720x480_59.94_db32 mode but playing with the BlockSync template and VFC I can't seem to make one. And it would be the wrong aspect ratio anyway, and I doubt most monitors would like it. I use a 640x480_89.91 mode and chop the edges off at the minute :)
One could use the various video extensions to get proper synchronisation with the vertical retrace too. If one could get an interlaced mode, maybe it could be possible to split each frame into lines and get actual proper like-a-TV interlaced output :)
Of course, mpeg2lib is stil waay to slow to play DVDs. I don't suppose anyone is handy with the MADD instructions and feels like optimizing it? ;) Way over my head sadly. If assembly is asking too much, maybe some of the motion compensation and IDCT could be rewritten using routines from the SCSL , which is presumably pretty speedy?
More thoughts: How come xdpyinfo shows an XVideo extension, and there are headers, but no libraries? How come I can't build mplayer with ./configure --enable-profile? GCC complains about ftell being redeclared in IRIX's stdio_core.h.
Oh, and to get mplayer to play anything at all smoothly I have to use both -cache <lots> and -ni, which I thought were somewhat mutually exclusive...
Oh, and almost all of the -lavc codecs core when I try to encode with them. I was hoping that HuffYUV might let me play stuff without each file taking up 20Gib of disk...
AND, why does the whole screen revert to 1.0 gamma when the cursor is over the video window? I though television gamma was more like 2.2?
Sorry for all the questions... I'm also consideing porting the dvdlibs that mplayer uses. I'd have to basically write all the dvd ioctls, but it's already been done for BSDI using the user space ds SCSI stuff.
I'm a dual 300 SSE and I can only get 15-20 FPS playing DVD rate MPEG2, playing the uncompressed version is fine (mmm, Cheetah X15 :)) but with rather alarming CPU usage - 50% of each processor at least. For us people without TRAMS , I imagine one could do a much better job using glDrawPixels() instead of icky XImages. It also looks like all MGRAS cards could do hardware YUV-RGB with the SGI_color_matrix GL extension. Not sure how fast that would be. I may have a go at writing an output plugin. Perhaps one could use XSGIvc to switch to a better resolution too. If glPixelZoom() is too slow for full screen, which I image it is, it would be nice to have a 720x480_59.94_db32 mode but playing with the BlockSync template and VFC I can't seem to make one. And it would be the wrong aspect ratio anyway, and I doubt most monitors would like it. I use a 640x480_89.91 mode and chop the edges off at the minute :)
One could use the various video extensions to get proper synchronisation with the vertical retrace too. If one could get an interlaced mode, maybe it could be possible to split each frame into lines and get actual proper like-a-TV interlaced output :)
Of course, mpeg2lib is stil waay to slow to play DVDs. I don't suppose anyone is handy with the MADD instructions and feels like optimizing it? ;) Way over my head sadly. If assembly is asking too much, maybe some of the motion compensation and IDCT could be rewritten using routines from the SCSL , which is presumably pretty speedy?
More thoughts: How come xdpyinfo shows an XVideo extension, and there are headers, but no libraries? How come I can't build mplayer with ./configure --enable-profile? GCC complains about ftell being redeclared in IRIX's stdio_core.h.
Oh, and to get mplayer to play anything at all smoothly I have to use both -cache <lots> and -ni, which I thought were somewhat mutually exclusive...
Oh, and almost all of the -lavc codecs core when I try to encode with them. I was hoping that HuffYUV might let me play stuff without each file taking up 20Gib of disk...
AND, why does the whole screen revert to 1.0 gamma when the cursor is over the video window? I though television gamma was more like 2.2?
Sorry for all the questions... I'm also consideing porting the dvdlibs that mplayer uses. I'd have to basically write all the dvd ioctls, but it's already been done for BSDI using the user space ds SCSI stuff.