ffv1dec: Fix decoding of 4:4:4 / 4:4:4:4 / 4:2:2 / 4:4:2:2 YUV formats

This commit is contained in:
Sebastian Dröge 2021-09-18 11:35:25 +03:00
parent 600d217e7d
commit 2878e4ce7c

View file

@ -99,23 +99,23 @@ fn get_output_format(record: &ConfigRecord) -> Option<VideoFormat> {
(false, _, _, 16, false, true) => Some(VideoFormat::Gray16Le),
(false, _, _, 16, false, false) => Some(VideoFormat::Gray16Be),
// 4:4:4
(true, 4, 4, 8, false, _) => Some(VideoFormat::Y444),
(true, 4, 4, 10, false, true) => Some(VideoFormat::Y44410le),
(true, 4, 4, 10, false, false) => Some(VideoFormat::Y44410be),
(true, 4, 4, 10, true, true) => Some(VideoFormat::A44410le),
(true, 4, 4, 10, true, false) => Some(VideoFormat::A44410be),
(true, 4, 4, 12, false, true) => Some(VideoFormat::Y44412le),
(true, 4, 4, 12, false, false) => Some(VideoFormat::Y44412be),
(true, 4, 4, 16, false, true) => Some(VideoFormat::Y44416le),
(true, 4, 4, 16, false, false) => Some(VideoFormat::Y44416be),
(true, 0, 0, 8, false, _) => Some(VideoFormat::Y444),
(true, 0, 0, 10, false, true) => Some(VideoFormat::Y44410le),
(true, 0, 0, 10, false, false) => Some(VideoFormat::Y44410be),
(true, 0, 0, 10, true, true) => Some(VideoFormat::A44410le),
(true, 0, 0, 10, true, false) => Some(VideoFormat::A44410be),
(true, 0, 0, 12, false, true) => Some(VideoFormat::Y44412le),
(true, 0, 0, 12, false, false) => Some(VideoFormat::Y44412be),
(true, 0, 0, 16, false, true) => Some(VideoFormat::Y44416le),
(true, 0, 0, 16, false, false) => Some(VideoFormat::Y44416be),
// 4:2:2
(true, 2, 2, 8, false, _) => Some(VideoFormat::Y42b),
(true, 2, 2, 10, false, true) => Some(VideoFormat::I42210le),
(true, 2, 2, 10, false, false) => Some(VideoFormat::I42210be),
(true, 2, 2, 10, true, true) => Some(VideoFormat::A42210le),
(true, 2, 2, 10, true, false) => Some(VideoFormat::A42210be),
(true, 2, 2, 12, false, true) => Some(VideoFormat::I42212le),
(true, 2, 2, 12, false, false) => Some(VideoFormat::I42212be),
(true, 0, 1, 8, false, _) => Some(VideoFormat::Y42b),
(true, 0, 1, 10, false, true) => Some(VideoFormat::I42210le),
(true, 0, 1, 10, false, false) => Some(VideoFormat::I42210be),
(true, 0, 1, 10, true, true) => Some(VideoFormat::A42210le),
(true, 0, 1, 10, true, false) => Some(VideoFormat::A42210be),
(true, 0, 1, 12, false, true) => Some(VideoFormat::I42212le),
(true, 0, 1, 12, false, false) => Some(VideoFormat::I42212be),
// 4:2:0
(true, 1, 1, 8, false, _) => Some(VideoFormat::I420),
(true, 1, 1, 8, true, _) => Some(VideoFormat::A420),