Thursday, May 2, 2013

Current work

For the past week I've been generating wav data that corresponds with all the possible edge cases for better testing of my math.  its taken a while, but I'm almost done making them.  Once I'm finished, I should be able to come up with the best fix to my data repetition issue.

Monday, April 15, 2013

Post-weekend update

After working on it for a good chunk of the weekend and so far today, it now compiles using pthreads.  Unfortunately, something got lost in translation and encoding with one thread does not produce the correct data.  Hoping that by the end of the day I can sort out what exactly is causing it, then make it scale properly.

Thursday, April 11, 2013

Change of plans

Since I have yet to figure out what exactly i am doing wrong with boost::thread, I have decided to (for the sake of the presentation tuesday) implement it using pthreads, then attempt to move it to boost:thread later.

Tuesday, April 2, 2013

Unfortunate compiling issues...

Its now been a total of 2 weeks of working each of 2 problems.  I've mostly figured out how parallel i/o is actually going to work, but the bigger issue is I cannot seem to get this to compile using boost::thread.  I'm attempting to call a member function from a member of the same class in parallel, however my multitude of attempts have only resulted in various compiler errors.  Once I can move past this, I should still be able to finish what I intend to this semester, but until I can get everything running using boost::thread I'm dead in the water.

I have determined that when calling the thread creation i am going to need to use boost::bind to get the function pointer, however I cannot get the call to boost::bind correct, which seems to be my error.  If anyone happens to read this and have some knowledge that would be greatly appreciated.  Hopefully more progress will be made before the meeting today, but so far the insane amount of time I've spent on this just the last two days has resulted in very little progress.

Wednesday, March 27, 2013

Been a bit

Its been a while since I've updated here.  News is that I've been working hard on getting actually running in parallel to work properly.  My restructure has been correct,  but i've run into some issues getting the parallel I/O part working properly.  I will commit when I finally have encoding working properly, which shouldn't be too long if I dont run into too many issues.

Tuesday, March 5, 2013

Todays Presentation

If anyone has questions or requests for examples, comment with your question or request and I will prepare examples for the next presentation.

Tuesday, February 26, 2013

Conversion finally finished!

After considerable testing and bugfixing, I have finally finished converting from using file pointers to file descriptors.  Unfortunately, the change most likely breaks compilation on windows, but parallel I/O is likely not going to work in windows anyway so all I need to do is write another wrapper function. 

I've spent the last day or so testing the new code and so far everything seems to work properly.  During the conversion I also located several odd edge-case bugs and fixed them.  eg: if opening the output wav file succeeds but writing the RIFF headers to it fails, the program will continue trying to encode anyway.

The next commit or two will likely be cleaning up what I've changed a bit, then I will get back to the restructure, which is now ahead of schedule!

Wednesday, February 20, 2013

Further I/O issues

As part of changing how file I/O is handled, it turns out I also need to convert from file pointers to file descriptors.  Unfortunately, all of the RIFF validation code is dependent on using file pointers.  I have successfully converted the rest of the code to use file descriptors, but I wont commit it until i have the basic RIFF things working again.  As it stands, the code will compile but segfaults upon trying to read the RIFF data. (I used fdopen to try to get around the issue, but this has been highly unsuccessful.)

Tuesday, February 12, 2013

I/O issues

I've been doing a lot of work learning how boost::thread works and have started changing things around to allow for threading in general.  Unfortunately, in order to read data in anything resembling parallel, I need to change how files are opened entirely, which is posing a slight problem.  Currently I have separated the parts that can be executed in parallel from the normal encode and decode functions and started the process of changing how all file I/O is handled.

Tuesday, February 5, 2013

And We're Back

After a while of letting the project sit, I have returned to it to thread the program as much as possible.  This will speed up the already incredibly fast program, however its full benefit will be felt when the algorithm for better data hiding is fully implemented.  In these cases, the run time will be longer due to processing, which threading will assist in reducing.