Fix potential sync issue with hardware encoders

Instead of the video just buffer using the 'buffering time', make it
properly interleave and wait for audio data to come in before it sends
out data.