videodecoder: Only drain if the internal queue is not empty
Submitted by Nicolas Dufresne
Right now we drain, and drain, and then start playback. This makes very little sense, since nothing has ever been queued into the decoder yet. On seeks we do finish(), flush(), drain(). We are basically over telling the decoder to drain() here, because after finish() + flush() the decoder should be pretty drained already.
I didn't yet had time to write the patch, seems mostly trivial, but what I'm suggesting is to read the queue size before sending a drain. This we we don't have to do this check in every subclass. Some decoder don't really do this check, and the most common side effect is a slow start (specially for hardware decoders).