frameAvailable

Tells the video recorder that a new frame is available. (Call from non-encoder thread.)

This function sends a message and returns immediately. This isn't sufficient -- we don't want the caller to latch a new frame until we're done with this one -- but we can get away with it so long as the input frame rate is reasonable and the encoder thread doesn't stall.

TODO: either block here until the texture has been rendered onto the encoder surface, or have a separate "block if still busy" method that the caller can execute immediately before it calls updateTexImage(). The latter is preferred because we don't want to stall the caller while this thread does work.