193w ago - For those who didn't update to PS3 Firmware v3.21 yet, here is CodecSys H.264 Encoder API for PS3/OtherOS reversed.
When CodecSys version 1.3 came out I gave it a try and liked the speed you get, just sucks that you're quite limited concerning cropping and stuff, even multiple passes is disabled for the PS3 version.
So I did take a look at it. I usually hate .Net but in this case it made things a lot easier and by a lot I mean a lot. Long things short, I reversed mosted of the api dll which connects to the PS3 and stuff and used it to encode some frames.
Rebooting and stuff works as well, the cecom running on the PS3 seems to be buggy though and doesn't reboot to game_os for me, not even with the original application. Attached source is more or less based on QT, and still a work in progress, just wanted to share it.
• corrected a bug in my yuv calculation
• removed IP address since it's not neccassarry, most likely it's just to specify an interface on which to listen
• put the sending and receiving in a thread
• added wrapper around the CodecSys functions
• added a basic commandline interface
I'm not sure but it might be easier to just get some open source encoder run on the PS3 with speed but I'm no good with PPC + SPU, at least not yet
From the ReadMe file: The IP is hardcoded as I just finished to reverse the api of the DLL so you have to change the corresponding string and length of the string.
For testing purpose I added an image which is converted to yuv420
and then added multiple times to the stream. No threading for now so you can only add a handful of frames until the buffer of the ps3 is full.
The resulting file will be raw h264.ES container which I added to a mp4 which mp4box to see what it looks like
Sometimes the PS3 doesn't get an IP, that's a YDL/CodecSys issue.
Stay tuned for more PS3 Hacks and PS3 CFW news, follow us on Twitter and be sure to drop by the PS3 Hacks and PS3 Custom Firmware Forums for the latest PlayStation 3 scene updates and homebrew releases!
cropping works if you stick to the right dimensions, that is a multiple of 16 in width and 4 in height. I just added it to rip some of my movies to put em on the ps3 so I didn't add the possibility to set it up via commandline arguments.
as for avisynth it shouldn't be to hard if you modify the frame_queue to support it and if it outputs as yuv42 as that is the format that is sent to the ps3, didn't take a look at avisynth api so I'm not sure.
as for motivation I simply forgot about it ;D well I might get some spare time mid next week so I might take a look.
Okay too bad you lost motivation, i was exited about this project
i'll test your latest version to see whats changed. for now i see you added cropping, don't know if it's working also? how hard is it to let it support avisynth and let that do all the cropping, resizing, adding subtitles.