Separate names with a comma.
Discussion in 'Mac Programming' started by gaganse, Nov 8, 2008.
Reverse engineering an application is hard process even for people who can program.
The best I can suggest is that you or someone else spend the time learning. Expecting someone else to do it for you is rather hopeful as it would take a significant amount of time I would imagine. Unless you are willing to pay. Don't forget though that what you are trying to do is technically in breach of contract due to the probable license restrictions.
Well for something like this you'll need to learn Objective-C, C and x86 Assembly most likely (although Objective-C is a strict superset of C so it is not two different languages really). Cocoa is a framework not a language which is written in Objective-C and C.
I'm not an expert in this area though. I tried to disassemble a small open source program for educational purposes and found it particularly tricky to see what was going on even with the original source code sitting next to me. I wish you luck with the project though, it sounds interesting but don't expect to get anything done for 6 months or so if you are just starting out.
Cromulent has already pointed out the big task ahead of anyone who wishes to undertake this task. I wanted to find out what's wrong with the software now? Just because the original developer stopped working on it that shouldn't make the existing software stop working. Was it never in a working state to begin with? If that's the case, what did you pay for?
Is the problem that the software broke with an OS X update?
Do you need enhanced features?
I'm trying to understand what you have. From the sounds of the above this must be firmware that run on the camera. And then later you say it's a Mac application. Maybe there are two. One is firmware and the other is something that records from a firewire connected DV camera. If FW has the bandwidth this might work.
Fixing the little application that runs on the Mac might be easy, all it does is recored data to disk. But the firmware that runs on the camera would be much harder to change, harder by an order of magnitude.
There is another project just like this for Canon Point and Shoots to allow them to shoot RAW format images. Ths project is open source. Take a look here: http://chdk.wikia.com/wiki/CHDK
Without source code, you are in for a terrible journey. I think the best route here is to try to track down the company, and if possible, developer and see if they are willing to license you the source code under some license (perhaps the same license as the original software) such that those that are already licensed to run the original software can legally use your derivative software.
ChrisA brought up an interesting point regarding what part of this is strictly software, vs. hardware/firmware modifications. In terms of the 10 vs 12 bit image data, I have no idea what's getting to the computer. If it's coming in as 12 bit, and the software is currently doing... whatever one would do (just truncating 2 bits? or some conversion? I have no idea about this problem domain) to it to get it to 10 bits, then it should be "easy" to remove this once you have the source code. If the device is transferring 10 bit image data, then you have a much more serious problem on your hands. I don't know what it is, exactly.
It is truly unfortunate that you made this kind of investment to be "abandoned". Chances are you have no real legal recourse, unless there was a contact in place between the customers and the company by which future features were promised.
In any event, good luck. i would try the interpersonal approach instead of the technical approach first, and see how far that gets you.
P.S. The PDF states that you must be able to maintain a disk write speed of 28MB/s. I assume that writing a 12 bit image stream instead of a 10 bit image stream will require 20% more data for the same amount of video. This means 33.6MB/s of sustained disk write. I haven't paid a lot of attention to disk technology in recent years... but this seems like a very high sustained write speed to me.
Hmm they must compress at some point then - 10bit video is much more than 38MB/s more like 100+MB/s.
Or are you saying it literally only allows you to transfer a frame at a time uncompressed?
Well there is a way. It is just very hard. You can dissassemble to code. You can run Instruments on the application. You can snoop around and see what is going. But without knowing what is going on hardware wise you will only be seeing half the picture. Have you tried to get in contact with the author again recently?
As a non-programmer it would be impossible though, your looking at a significant amount of time to learn the necessary skills to be able to do this.