encoder: fix deadlock race condition
add missing condition signals

this fixes the possibility that libgroove waits thinking that the
buffers are full when they are really not