merge cedarv support code from mireq

the previous code use y, u, v in an unsafe way. see the comments  here: https://github.com/mireq/QtAV/commit/d7b428c1dae66b2a85b7a6bfa7b253980b5b963c