mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-04-18 14:20:06 +00:00
Don't attempt to use mismatched 8-bit formats with 10-bit codecs
In addition to silently truncating the samples, this also tickles some nasty bugs in the VF2's out-of-tree OMX decoder.
This commit is contained in:
@@ -661,16 +661,28 @@ bool DrmRenderer::isPixelFormatSupported(int videoFormat, AVPixelFormat pixelFor
|
||||
else {
|
||||
// If we're going to need to map this as a software frame, check
|
||||
// against the set of formats we support in mapSoftwareFrame().
|
||||
switch (pixelFormat) {
|
||||
case AV_PIX_FMT_DRM_PRIME:
|
||||
case AV_PIX_FMT_NV12:
|
||||
case AV_PIX_FMT_NV21:
|
||||
case AV_PIX_FMT_P010:
|
||||
case AV_PIX_FMT_YUV420P:
|
||||
case AV_PIX_FMT_YUVJ420P:
|
||||
if (pixelFormat == AV_PIX_FMT_DRM_PRIME) {
|
||||
// AV_PIX_FMT_DRM_PRIME is always supported
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
else if (videoFormat & VIDEO_FORMAT_MASK_10BIT) {
|
||||
switch (pixelFormat) {
|
||||
case AV_PIX_FMT_P010:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
switch (pixelFormat) {
|
||||
case AV_PIX_FMT_NV12:
|
||||
case AV_PIX_FMT_NV21:
|
||||
case AV_PIX_FMT_YUV420P:
|
||||
case AV_PIX_FMT_YUVJ420P:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user