Chrome VEA support 

now, input and output threads run fully in parallel, almost not any lock.
input thread wakes up when: 1) new input buffer arrives 2) output thread consume one output buffer.
output thread wakes up when: 1) new output buffer to write 2) input thread accepts one input buffer.
so, it is not busy wait for now.

block wait can be used here after we add surface pool for encoder.