Midterm report
##
With the midterm evaluation behind us I thought it would be useful to
post a update
on the progress on the camera module for Mac OSX. The current version on
github.com/ab3/pygame-mirror/ can read a frame from the camera and
copy it to
the surface. There is still something wrong with the colors, this has
probably
something to do with the masks in surf->format. I have tried out some
combination
but non seem to work, so if you have suggestion on how to get the
colors write pleas
post them on the pygame mailinglist.
I have thoroughly cleaned up the camera_mac.m file and have removed
all Cocoa
code because it caused to many problems. Only the
mac_gworld_to_nsimage used
Cocoa so I didn't have to trow away too much code. The following
functions are now
available:
* mac_list_cameras()
* mac_open_device ()
* mac_init_device()
* mac_close_device()
* mac_start_capturing()
* mac_stop_capturing ()
* mac_read_raw()
note: When I try to print the string I get nothing, this is probably
because
of a \0 byte in the array.
* mac_read_frame()
* mac_camera_idle()
* mac_copy_gworld_to_surface()
note: There is something wrong with the colors.
The PyCameraObject strct has altered a bit because I don't use a
ImageSequence
anymore because it was easier to get the frame copy the frame directly
instead of
recording a frame into a sequence and then decompressing a frame out
of it. In
addition to removing the ImageSequence I make use of the buffer
struct. Here is the
current PyCameraObject struct:
typedef struct {
PyObject_HEAD
char* device_name; // unique name of the device
SeqGrabComponent component; // A type used by the
Sequence Grabber API
SGChannel channel; // Channel of the Sequence
Grabber
GWorldPtr gworld; // Pointer to the struct that
holds the
// data of the captured image
Rect boundsRect;// bounds of the image frame
long size; // size of the image in our
buffer to draw
short bytes;// number of bytes in gworld
struct buffer pixels; // pixels
} PyCameraObject;
A usual you can find the latest version on github.com/ab3 so if you
would like to test
the latest changes or would like to help with the color problem or the
read_raw function,
you are always welcome.
ToDo
Here is a list of thing I still have to finish I still have to do:
* fix the colors of read_frame()
* fix read_raw()
* implement set_controller() and get_controller()
* add simple computer vision stuff
* thresholding with hysteresis
*...
* optimization, sbggr8_to_rgb???
* implement proof of concept game...
Conclusion
==
So this concludes my midterm report, feel free to post any bugs,
comments and
suggestions
Slu