distinguish decode-failure and no-decoder thread avail.

 * decode-failure will return a black-frame with cross -> 200
 * no decoder currently available (thread pool) -> 503
 * codec/format fail -> 500