|
For several months, I have been unable to use my iSight with iChat, as all chats resulted in the error "Can't get video from the camera". I finally decided to get to the bottom of this, and a little bit of research revealed a conflict between iChat/iSight and Postgres. The problem is that one cannot run while the other is also running. As a test, I left Postgres running and verified that I could not initiate video chats with iChat. After bringing the db server down, iChat was able to initiate video chats using my iSight. I found several things discussing issues of limited shared memory between iChat and postgres, but none of the suggestions helped me (the first thing I found, which points to a postgres doc about shared memory). Initially, the only solution I found was to shutdown postgres before using iChat with iSight. I did eventually find a way to get my iSight working again with iChat while leaving postgres running, and here's what I did. Looking in postgresql.conf shows these default values for max_connections and shared_buffers: max_connections = 40 I tried descreasing shared_buffers to 80 (the smallest value allowed following the math rule of max_connections*2) and leaving max_connections at its default value, but iChat still failed on video chats. This was logged to console output: 2005-07-17 06:37:13.894 iChat[8259] WARNING: Freeze-frame failed: couldn't get local buffer for layer Local! When I decreased both max_connections and shared_buffers, as below, I found that I could leave postgres running and use iChat with iSight for video chats: max_connections = 20 I suspect that the numbers could be bumped up a little higher than 20 and 40, but I am perfectly content to leave "good enough" alone. |


