trivial: fix upmixing case and handle dualmono

Earlier commit for dualmono (from 2003) seemed to miss some cases
and reordering the if cases as I assume dualmono isn't most common
case in filter.

Ref #7261

(cherry picked from commit af147ca1552414cd57aa5acf194fa1093df5dd94)
Signed-off-by: Tim Walker <tdskywalker@gmail.com>