From f377653aefab814ef6ea57c163071b3f47cb6d07 Mon Sep 17 00:00:00 2001 From: awxkee Date: Sun, 1 Sep 2024 12:47:50 +0100 Subject: [PATCH] NEON, bi-planar to RGB16 --- app/src/main.rs | 6 +- src/lib.rs | 2 +- src/neon/rgb_to_yuv_p10.rs | 10 +- src/neon/yuv_nv_p10_to_rgba.rs | 14 +- src/neon/yuv_nv_p16_to_rgb.rs | 16 +- src/neon/yuv_p10_to_rgba.rs | 8 +- src/rgb_to_nv_p16.rs | 344 ++++++++++++++++----------------- src/rgb_to_yuv_p16.rs | 176 ++++++++--------- src/sse/mod.rs | 6 +- src/sse/rgb_to_yuv_p16.rs | 10 +- src/sse/sse_support.rs | 57 ++++++ src/sse/yuv_nv_p16_to_rgb.rs | 232 ++++++++++++++++++++++ src/yuv_nv_p10_to_rgba.rs | 234 +++++++++++----------- src/yuv_nv_p16_to_rgb.rs | 264 ++++++++++++++----------- src/yuv_p10_rgba.rs | 180 ++++++++--------- src/yuv_support.rs | 15 +- 16 files changed, 951 insertions(+), 623 deletions(-) create mode 100644 src/sse/yuv_nv_p16_to_rgb.rs diff --git a/app/src/main.rs b/app/src/main.rs index 81db9c8..739c8ba 100644 --- a/app/src/main.rs +++ b/app/src/main.rs @@ -5,7 +5,7 @@ use std::io::Read; use std::ops::Sub; use std::time::Instant; -use yuvutils_rs::{rgb_to_yuv_nv12_p16, yuv_nv12_p10_to_rgb, yuv_nv12_to_rgb_p16, YuvBytesPacking, YuvEndiannes, YuvRange, YuvStandardMatrix}; +use yuvutils_rs::{rgb_to_yuv_nv12_p16, yuv_nv12_p10_to_rgb, yuv_nv12_to_rgb_p16, YuvBytesPacking, YuvEndianness, YuvRange, YuvStandardMatrix}; fn read_file_bytes(file_path: &str) -> Result, String> { // Open the file @@ -68,7 +68,7 @@ fn main() { height, YuvRange::Full, YuvStandardMatrix::Bt709, - YuvEndiannes::BigEndian, + YuvEndianness::BigEndian, YuvBytesPacking::LeastSignificantBytes, ); bytes_16.fill(0); @@ -90,7 +90,7 @@ fn main() { height, YuvRange::Full, YuvStandardMatrix::Bt709, - YuvEndiannes::BigEndian, + YuvEndianness::BigEndian, YuvBytesPacking::LeastSignificantBytes, ); // yuv_nv12_p10_to_rgb( diff --git a/src/lib.rs b/src/lib.rs index 3cc325e..64bd729 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -47,7 +47,7 @@ mod yuv_to_yuy2; mod yuy2_to_yuv; pub use yuv_support::YuvBytesPacking; -pub use yuv_support::YuvEndiannes; +pub use yuv_support::YuvEndianness; pub use yuv_support::YuvRange; pub use yuv_support::YuvStandardMatrix; diff --git a/src/neon/rgb_to_yuv_p10.rs b/src/neon/rgb_to_yuv_p10.rs index e9d2446..11e9af3 100644 --- a/src/neon/rgb_to_yuv_p10.rs +++ b/src/neon/rgb_to_yuv_p10.rs @@ -8,7 +8,7 @@ use crate::internals::ProcessedOffset; use crate::yuv_support::{ CbCrForwardTransform, YuvChromaRange, YuvChromaSample, YuvSourceChannels, }; -use crate::{YuvBytesPacking, YuvEndiannes}; +use crate::{YuvBytesPacking, YuvEndianness}; use std::arch::aarch64::*; pub unsafe fn neon_rgba_to_yuv_p10< @@ -30,7 +30,7 @@ pub unsafe fn neon_rgba_to_yuv_p10< ) -> ProcessedOffset { let chroma_subsampling: YuvChromaSample = SAMPLING.into(); let source_channels: YuvSourceChannels = ORIGIN_CHANNELS.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let channels = source_channels.get_channels_count(); @@ -162,7 +162,7 @@ pub unsafe fn neon_rgba_to_yuv_p10< y_vl = vshlq_u16(y_vl, v_shift_count); } - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { y_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(y_vl))); } @@ -178,7 +178,7 @@ pub unsafe fn neon_rgba_to_yuv_p10< cr_s = vshl_u16(cr_s, vget_low_s16(v_shift_count)); } - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { cb_s = vreinterpret_u16_u8(vrev16_u8(vreinterpret_u8_u16(cb_s))); cr_s = vreinterpret_u16_u8(vrev16_u8(vreinterpret_u8_u16(cr_s))); } @@ -194,7 +194,7 @@ pub unsafe fn neon_rgba_to_yuv_p10< cr_vl = vshlq_u16(cr_vl, v_shift_count); } - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { cb_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(cb_vl))); cr_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(cr_vl))); } diff --git a/src/neon/yuv_nv_p10_to_rgba.rs b/src/neon/yuv_nv_p10_to_rgba.rs index 2dac000..c765d7c 100644 --- a/src/neon/yuv_nv_p10_to_rgba.rs +++ b/src/neon/yuv_nv_p10_to_rgba.rs @@ -9,7 +9,7 @@ use std::arch::aarch64::*; use crate::internals::ProcessedOffset; use crate::yuv_support::{ - CbCrInverseTransform, YuvBytesPacking, YuvChromaRange, YuvChromaSample, YuvEndiannes, YuvNVOrder, + CbCrInverseTransform, YuvBytesPacking, YuvChromaRange, YuvChromaSample, YuvEndianness, YuvNVOrder, YuvSourceChannels, }; @@ -35,7 +35,7 @@ pub unsafe fn neon_yuv_nv12_p10_to_rgba_row< let channels = destination_channels.get_channels_count(); let uv_order: YuvNVOrder = NV_ORDER.into(); let chroma_subsampling: YuvChromaSample = SAMPLING.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let dst_ptr = bgra.as_mut_ptr(); let cr_coef = transform.cr_coef; @@ -70,7 +70,7 @@ pub unsafe fn neon_yuv_nv12_p10_to_rgba_row< let v_low: int16x4_t; let mut y_vl = vld1q_u16(y_ld_ptr.add(cx)); - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { y_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(y_vl))); } if bytes_position == YuvBytesPacking::MostSignificantBytes { @@ -87,11 +87,11 @@ pub unsafe fn neon_yuv_nv12_p10_to_rgba_row< } let mut u_vl = uv_values_u.0; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { u_vl = vreinterpret_u16_u8(vrev16_u8(vreinterpret_u8_u16(u_vl))); } let mut v_vl = uv_values_u.1; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { v_vl = vreinterpret_u16_u8(vrev16_u8(vreinterpret_u8_u16(v_vl))); } if bytes_position == YuvBytesPacking::MostSignificantBytes { @@ -113,11 +113,11 @@ pub unsafe fn neon_yuv_nv12_p10_to_rgba_row< uv_values_u = uint16x8x2_t(uv_values_u.1, uv_values_u.0); } let mut u_vl = uv_values_u.0; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { u_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(u_vl))); } let mut v_vl = uv_values_u.1; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { v_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(v_vl))); } if bytes_position == YuvBytesPacking::MostSignificantBytes { diff --git a/src/neon/yuv_nv_p16_to_rgb.rs b/src/neon/yuv_nv_p16_to_rgb.rs index ce886dc..4edcab0 100644 --- a/src/neon/yuv_nv_p16_to_rgb.rs +++ b/src/neon/yuv_nv_p16_to_rgb.rs @@ -9,7 +9,7 @@ use std::arch::aarch64::*; use crate::internals::ProcessedOffset; use crate::yuv_support::{ - CbCrInverseTransform, YuvBytesPacking, YuvChromaRange, YuvChromaSample, YuvEndiannes, + CbCrInverseTransform, YuvBytesPacking, YuvChromaRange, YuvChromaSample, YuvEndianness, YuvNVOrder, YuvSourceChannels, }; @@ -34,7 +34,7 @@ pub unsafe fn neon_yuv_nv_p16_to_rgba_row< let channels = destination_channels.get_channels_count(); let uv_order: YuvNVOrder = NV_ORDER.into(); let chroma_subsampling: YuvChromaSample = SAMPLING.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let cr_coef = transform.cr_coef; let cb_coef = transform.cb_coef; @@ -47,7 +47,7 @@ pub unsafe fn neon_yuv_nv_p16_to_rgba_row< let mut dst_ptr = bgra; - let v_max_colors = vdupq_n_u16(1u16 << BIT_DEPTH as u16); + let v_max_colors = vdupq_n_u16((1u16 << BIT_DEPTH as u16) - 1); let y_corr = vdupq_n_s16(bias_y as i16); let uv_corr = vdup_n_s16(bias_uv as i16); @@ -73,7 +73,7 @@ pub unsafe fn neon_yuv_nv_p16_to_rgba_row< let v_low: int16x4_t; let mut y_vl = vld1q_u16(y_ld_ptr.add(cx)); - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { y_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(y_vl))); } if bytes_position == YuvBytesPacking::MostSignificantBytes { @@ -90,11 +90,11 @@ pub unsafe fn neon_yuv_nv_p16_to_rgba_row< } let mut u_vl = uv_values_u.0; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { u_vl = vreinterpret_u16_u8(vrev16_u8(vreinterpret_u8_u16(u_vl))); } let mut v_vl = uv_values_u.1; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { v_vl = vreinterpret_u16_u8(vrev16_u8(vreinterpret_u8_u16(v_vl))); } if bytes_position == YuvBytesPacking::MostSignificantBytes { @@ -116,11 +116,11 @@ pub unsafe fn neon_yuv_nv_p16_to_rgba_row< uv_values_u = uint16x8x2_t(uv_values_u.1, uv_values_u.0); } let mut u_vl = uv_values_u.0; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { u_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(u_vl))); } let mut v_vl = uv_values_u.1; - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { v_vl = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16(v_vl))); } if bytes_position == YuvBytesPacking::MostSignificantBytes { diff --git a/src/neon/yuv_p10_to_rgba.rs b/src/neon/yuv_p10_to_rgba.rs index 25cb848..e26c828 100644 --- a/src/neon/yuv_p10_to_rgba.rs +++ b/src/neon/yuv_p10_to_rgba.rs @@ -9,7 +9,7 @@ use std::arch::aarch64::*; use crate::internals::ProcessedOffset; use crate::yuv_support::{ - CbCrInverseTransform, YuvBytesPacking, YuvChromaRange, YuvChromaSample, YuvEndiannes, + CbCrInverseTransform, YuvBytesPacking, YuvChromaRange, YuvChromaSample, YuvEndianness, YuvSourceChannels, }; @@ -34,7 +34,7 @@ pub unsafe fn neon_yuv_p10_to_rgba_row< let destination_channels: YuvSourceChannels = DESTINATION_CHANNELS.into(); let channels = destination_channels.get_channels_count(); let chroma_subsampling: YuvChromaSample = SAMPLING.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let dst_ptr = rgba.as_mut_ptr(); @@ -61,7 +61,7 @@ pub unsafe fn neon_yuv_p10_to_rgba_row< let v_values_l = vld1_u16(v_ld_ptr.add(ux)); match endianness { - YuvEndiannes::BigEndian => { + YuvEndianness::BigEndian => { let mut y_u_values = vreinterpretq_u16_u8(vrev16q_u8(vreinterpretq_u8_u16( vld1q_u16(y_ld_ptr.add(cx)), ))); @@ -79,7 +79,7 @@ pub unsafe fn neon_yuv_p10_to_rgba_row< u_values_c = vsub_s16(vreinterpret_s16_u16(u_v), uv_corr); v_values_c = vsub_s16(vreinterpret_s16_u16(v_v), uv_corr); } - YuvEndiannes::LittleEndian => { + YuvEndianness::LittleEndian => { let mut y_vl = vld1q_u16(y_ld_ptr.add(cx)); if bytes_position == YuvBytesPacking::MostSignificantBytes { y_vl = vshrq_n_u16::<6>(y_vl); diff --git a/src/rgb_to_nv_p16.rs b/src/rgb_to_nv_p16.rs index 137eabd..2cfdcf4 100644 --- a/src/rgb_to_nv_p16.rs +++ b/src/rgb_to_nv_p16.rs @@ -8,13 +8,13 @@ use crate::yuv_support::{ get_forward_transform, get_kr_kb, get_yuv_range, ToIntegerTransform, YuvChromaSample, YuvNVOrder, YuvSourceChannels, }; -use crate::{YuvBytesPacking, YuvEndiannes, YuvRange, YuvStandardMatrix}; +use crate::{YuvBytesPacking, YuvEndianness, YuvRange, YuvStandardMatrix}; #[inline(always)] fn transform_integer( v: i32, ) -> u16 { - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let packing: i32 = 16 - BIT_DEPTH as i32; let packed_bytes = match bytes_position { @@ -22,8 +22,8 @@ fn transform_integer v, } as u16; let endian_prepared = match endianness { - YuvEndiannes::BigEndian => packed_bytes.to_be(), - YuvEndiannes::LittleEndian => packed_bytes.to_le(), + YuvEndianness::BigEndian => packed_bytes.to_be(), + YuvEndianness::LittleEndian => packed_bytes.to_le(), }; endian_prepared } @@ -267,20 +267,20 @@ pub fn rgb_to_yuv_nv12_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -289,18 +289,18 @@ pub fn rgb_to_yuv_nv12_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -309,7 +309,7 @@ pub fn rgb_to_yuv_nv12_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -359,20 +359,20 @@ pub fn rgb_to_yuv_nv21_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -381,18 +381,18 @@ pub fn rgb_to_yuv_nv21_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -401,7 +401,7 @@ pub fn rgb_to_yuv_nv21_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -451,20 +451,20 @@ pub fn rgba_to_yuv_nv12_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -473,18 +473,18 @@ pub fn rgba_to_yuv_nv12_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -493,7 +493,7 @@ pub fn rgba_to_yuv_nv12_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -552,20 +552,20 @@ pub fn rgba_to_yuv_nv21_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -574,18 +574,18 @@ pub fn rgba_to_yuv_nv21_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -594,7 +594,7 @@ pub fn rgba_to_yuv_nv21_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -653,20 +653,20 @@ pub fn bgr_to_yuv_nv12_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -675,18 +675,18 @@ pub fn bgr_to_yuv_nv12_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -695,7 +695,7 @@ pub fn bgr_to_yuv_nv12_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -746,20 +746,20 @@ pub fn bgr_to_yuv_nv21_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -768,18 +768,18 @@ pub fn bgr_to_yuv_nv21_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -788,7 +788,7 @@ pub fn bgr_to_yuv_nv21_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -838,20 +838,20 @@ pub fn bgra_to_yuv_nv12_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -860,18 +860,18 @@ pub fn bgra_to_yuv_nv12_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -880,7 +880,7 @@ pub fn bgra_to_yuv_nv12_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -939,20 +939,20 @@ pub fn bgra_to_yuv_nv21_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -961,18 +961,18 @@ pub fn bgra_to_yuv_nv21_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -981,7 +981,7 @@ pub fn bgra_to_yuv_nv21_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1040,20 +1040,20 @@ pub fn bgr_to_yuv_nv16_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1062,18 +1062,18 @@ pub fn bgr_to_yuv_nv16_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1082,7 +1082,7 @@ pub fn bgr_to_yuv_nv16_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1132,20 +1132,20 @@ pub fn bgr_to_yuv_nv61_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1154,18 +1154,18 @@ pub fn bgr_to_yuv_nv61_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1174,7 +1174,7 @@ pub fn bgr_to_yuv_nv61_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1224,20 +1224,20 @@ pub fn rgb_to_yuv_nv16_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1246,18 +1246,18 @@ pub fn rgb_to_yuv_nv16_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1266,7 +1266,7 @@ pub fn rgb_to_yuv_nv16_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1316,20 +1316,20 @@ pub fn rgb_to_yuv_nv61_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1338,18 +1338,18 @@ pub fn rgb_to_yuv_nv61_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1358,7 +1358,7 @@ pub fn rgb_to_yuv_nv61_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1408,20 +1408,20 @@ pub fn rgba_to_yuv_nv16_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1430,18 +1430,18 @@ pub fn rgba_to_yuv_nv16_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1450,7 +1450,7 @@ pub fn rgba_to_yuv_nv16_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1509,20 +1509,20 @@ pub fn rgba_to_yuv_nv61_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1531,18 +1531,18 @@ pub fn rgba_to_yuv_nv61_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1551,7 +1551,7 @@ pub fn rgba_to_yuv_nv61_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1610,20 +1610,20 @@ pub fn bgra_to_yuv_nv16_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1632,18 +1632,18 @@ pub fn bgra_to_yuv_nv16_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1652,7 +1652,7 @@ pub fn bgra_to_yuv_nv16_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1711,20 +1711,20 @@ pub fn bgra_to_yuv_nv61_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1733,18 +1733,18 @@ pub fn bgra_to_yuv_nv61_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1753,7 +1753,7 @@ pub fn bgra_to_yuv_nv61_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1812,20 +1812,20 @@ pub fn rgb_to_yuv_nv24_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1834,18 +1834,18 @@ pub fn rgb_to_yuv_nv24_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1854,7 +1854,7 @@ pub fn rgb_to_yuv_nv24_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1904,20 +1904,20 @@ pub fn rgb_to_yuv_nv42_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1926,18 +1926,18 @@ pub fn rgb_to_yuv_nv42_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1946,7 +1946,7 @@ pub fn rgb_to_yuv_nv42_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1996,20 +1996,20 @@ pub fn bgr_to_yuv_nv24_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2018,18 +2018,18 @@ pub fn bgr_to_yuv_nv24_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2038,7 +2038,7 @@ pub fn bgr_to_yuv_nv24_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -2088,20 +2088,20 @@ pub fn bgr_to_yuv_nv42_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2110,18 +2110,18 @@ pub fn bgr_to_yuv_nv42_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2130,7 +2130,7 @@ pub fn bgr_to_yuv_nv42_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -2180,20 +2180,20 @@ pub fn bgra_to_yuv_nv24_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2202,18 +2202,18 @@ pub fn bgra_to_yuv_nv24_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2222,7 +2222,7 @@ pub fn bgra_to_yuv_nv24_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -2272,20 +2272,20 @@ pub fn bgra_to_yuv_nv42_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2294,18 +2294,18 @@ pub fn bgra_to_yuv_nv42_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2314,7 +2314,7 @@ pub fn bgra_to_yuv_nv42_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -2364,20 +2364,20 @@ pub fn rgba_to_yuv_nv24_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2386,18 +2386,18 @@ pub fn rgba_to_yuv_nv24_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2406,7 +2406,7 @@ pub fn rgba_to_yuv_nv24_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -2456,20 +2456,20 @@ pub fn rgba_to_yuv_nv42_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2478,18 +2478,18 @@ pub fn rgba_to_yuv_nv42_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv_bi_planar_10::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -2498,7 +2498,7 @@ pub fn rgba_to_yuv_nv42_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } diff --git a/src/rgb_to_yuv_p16.rs b/src/rgb_to_yuv_p16.rs index 558ecaf..8fea154 100644 --- a/src/rgb_to_yuv_p16.rs +++ b/src/rgb_to_yuv_p16.rs @@ -12,13 +12,13 @@ use crate::yuv_support::{ get_forward_transform, get_kr_kb, get_yuv_range, ToIntegerTransform, YuvChromaSample, YuvSourceChannels, }; -use crate::{YuvBytesPacking, YuvEndiannes, YuvRange, YuvStandardMatrix}; +use crate::{YuvBytesPacking, YuvEndianness, YuvRange, YuvStandardMatrix}; #[inline(always)] fn transform_integer( v: i32, ) -> u16 { - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let packing: i32 = 16 - BIT_DEPTH as i32; let packed_bytes = match bytes_position { @@ -26,8 +26,8 @@ fn transform_integer v, } as u16; let endian_prepared = match endianness { - YuvEndiannes::BigEndian => packed_bytes.to_be(), - YuvEndiannes::LittleEndian => packed_bytes.to_le(), + YuvEndianness::BigEndian => packed_bytes.to_be(), + YuvEndianness::LittleEndian => packed_bytes.to_le(), }; endian_prepared } @@ -327,19 +327,19 @@ pub fn rgb_to_yuv422_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -347,17 +347,17 @@ pub fn rgb_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -365,7 +365,7 @@ pub fn rgb_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -419,19 +419,19 @@ pub fn bgr_to_yuv422_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -439,17 +439,17 @@ pub fn bgr_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -457,7 +457,7 @@ pub fn bgr_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -511,19 +511,19 @@ pub fn rgba_to_yuv422_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -531,17 +531,17 @@ pub fn rgba_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -549,7 +549,7 @@ pub fn rgba_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -614,19 +614,19 @@ pub fn bgra_to_yuv422_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -634,17 +634,17 @@ pub fn bgra_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -652,7 +652,7 @@ pub fn bgra_to_yuv422_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -717,19 +717,19 @@ pub fn rgb_to_yuv420_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -737,17 +737,17 @@ pub fn rgb_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -755,7 +755,7 @@ pub fn rgb_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -809,19 +809,19 @@ pub fn bgr_to_yuv420_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -829,17 +829,17 @@ pub fn bgr_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -847,7 +847,7 @@ pub fn bgr_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -901,19 +901,19 @@ pub fn rgba_to_yuv420_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -921,17 +921,17 @@ pub fn rgba_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -939,7 +939,7 @@ pub fn rgba_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1004,19 +1004,19 @@ pub fn bgra_to_yuv420_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1024,17 +1024,17 @@ pub fn bgra_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1042,7 +1042,7 @@ pub fn bgra_to_yuv420_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1107,19 +1107,19 @@ pub fn rgb_to_yuv444_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1127,17 +1127,17 @@ pub fn rgb_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1145,7 +1145,7 @@ pub fn rgb_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1199,19 +1199,19 @@ pub fn bgr_to_yuv444_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1219,17 +1219,17 @@ pub fn bgr_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1237,7 +1237,7 @@ pub fn bgr_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1291,19 +1291,19 @@ pub fn rgba_to_yuv444_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1311,17 +1311,17 @@ pub fn rgba_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1329,7 +1329,7 @@ pub fn rgba_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1394,19 +1394,19 @@ pub fn bgra_to_yuv444_u16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { if bit_depth != 10 && bit_depth != 12 { panic!("Only 10 and 12 bit depth is supported"); } let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1414,17 +1414,17 @@ pub fn bgra_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1432,7 +1432,7 @@ pub fn bgra_to_yuv444_u16( rgbx_to_yuv::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } diff --git a/src/sse/mod.rs b/src/sse/mod.rs index 35bd808..ca5d2b7 100644 --- a/src/sse/mod.rs +++ b/src/sse/mod.rs @@ -9,6 +9,7 @@ mod rgb_to_nv; mod rgb_to_y; mod rgb_to_ycgco; mod rgb_to_ycgco_r; +mod rgb_to_yuv_p16; mod rgba_to_yuv; pub(crate) mod sse_support; mod sse_ycbcr; @@ -17,27 +18,28 @@ mod to_identity; mod ycgco_to_rgb; mod ycgco_to_rgb_alpha; mod ycgcor_to_rgb; +mod yuv_nv_p16_to_rgb; mod yuv_nv_to_rgba; mod yuv_to_rgba; mod yuv_to_rgba_alpha; mod yuv_to_yuy2; mod yuy2_to_yuv; -mod rgb_to_yuv_p16; pub use from_identity::gbr_to_image_sse; pub use rgb_to_nv::sse_rgba_to_nv_row; pub use rgb_to_y::sse_rgb_to_y; pub use rgb_to_ycgco::sse_rgb_to_ycgco_row; pub use rgb_to_ycgco_r::sse_rgb_to_ycgcor_row; +pub use rgb_to_yuv_p16::sse_rgba_to_yuv_p10; pub use rgba_to_yuv::sse_rgba_to_yuv_row; pub(crate) use sse_support::*; pub use to_identity::image_to_gbr_sse; pub use ycgco_to_rgb::sse_ycgco_to_rgb_row; pub use ycgco_to_rgb_alpha::sse_ycgco_to_rgb_alpha_row; pub use ycgcor_to_rgb::sse_ycgcor_type_to_rgb_row; +pub use yuv_nv_p16_to_rgb::sse_yuv_nv_p16_to_rgba_row; pub use yuv_nv_to_rgba::sse_yuv_nv_to_rgba; pub use yuv_to_rgba::sse_yuv_to_rgba_row; pub use yuv_to_rgba_alpha::sse_yuv_to_rgba_alpha_row; pub use yuv_to_yuy2::yuv_to_yuy2_sse_impl; pub use yuy2_to_yuv::yuy2_to_yuv_sse_impl; -pub use rgb_to_yuv_p16::sse_rgba_to_yuv_p10; \ No newline at end of file diff --git a/src/sse/rgb_to_yuv_p16.rs b/src/sse/rgb_to_yuv_p16.rs index 37e21d1..f2972bd 100644 --- a/src/sse/rgb_to_yuv_p16.rs +++ b/src/sse/rgb_to_yuv_p16.rs @@ -9,7 +9,7 @@ use crate::sse::{_mm_deinterleave_rgb_epi16, _mm_deinterleave_rgba_epi16, sse_av use crate::yuv_support::{ CbCrForwardTransform, YuvChromaRange, YuvChromaSample, YuvSourceChannels, }; -use crate::{YuvBytesPacking, YuvEndiannes}; +use crate::{YuvBytesPacking, YuvEndianness}; #[cfg(target_arch = "x86")] use std::arch::x86::*; #[cfg(target_arch = "x86_64")] @@ -35,7 +35,7 @@ pub unsafe fn sse_rgba_to_yuv_p10< ) -> ProcessedOffset { let chroma_subsampling: YuvChromaSample = SAMPLING.into(); let source_channels: YuvSourceChannels = ORIGIN_CHANNELS.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let channels = source_channels.get_channels_count(); @@ -149,7 +149,7 @@ pub unsafe fn sse_rgba_to_yuv_p10< y_vl = _mm_sll_epi32(y_vl, v_shift_count); } - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { y_vl = _mm_shuffle_epi8(y_vl, big_endian_shuffle_flag); } @@ -165,7 +165,7 @@ pub unsafe fn sse_rgba_to_yuv_p10< cr_s = _mm_sll_epi32(cr_s, v_shift_count); } - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { cb_s = _mm_shuffle_epi8(cb_s, big_endian_shuffle_flag); cr_s = _mm_shuffle_epi8(cr_s, big_endian_shuffle_flag); } @@ -189,7 +189,7 @@ pub unsafe fn sse_rgba_to_yuv_p10< cr_vl = _mm_sll_epi32(cr_vl, v_shift_count); } - if endianness == YuvEndiannes::BigEndian { + if endianness == YuvEndianness::BigEndian { cb_vl = _mm_shuffle_epi8(cb_vl, big_endian_shuffle_flag); cr_vl = _mm_shuffle_epi8(cr_vl, big_endian_shuffle_flag); } diff --git a/src/sse/sse_support.rs b/src/sse/sse_support.rs index e8eae02..144aa2c 100644 --- a/src/sse/sse_support.rs +++ b/src/sse/sse_support.rs @@ -194,6 +194,19 @@ pub unsafe fn _mm_deinterleave_x2_epi8(a: __m128i, b: __m128i) -> (__m128i, __m1 (av, bv) } +#[inline] +#[target_feature(enable = "sse4.1")] +pub unsafe fn _mm_deinterleave_x2_epi16(a: __m128i, b: __m128i) -> (__m128i, __m128i) { + let v2 = _mm_unpacklo_epi16(a, b); // a0 a4 b0 b4 a1 a5 b1 b5 + let v3 = _mm_unpackhi_epi16(a, b); // a2 a6 b2 b6 a3 a7 b3 b7 + let v4 = _mm_unpacklo_epi16(v2, v3); // a0 a2 a4 a6 b0 b2 b4 b6 + let v5 = _mm_unpackhi_epi16(v2, v3); // a1 a3 a5 a7 b1 b3 b5 b7 + + let av = _mm_unpacklo_epi16(v4, v5); // a0 a1 a2 a3 a4 a5 a6 a7 + let bv = _mm_unpackhi_epi16(v4, v5); // b0 b1 ab b3 b4 b5 b6 b7 + (av, bv) +} + #[inline] #[target_feature(enable = "sse4.1")] pub unsafe fn sse_store_rgb_u8(ptr: *mut u8, r: __m128i, g: __m128i, b: __m128i) { @@ -343,3 +356,47 @@ pub unsafe fn _mm_deinterleave_rgb_epi16( let c0 = _mm_shuffle_epi8(c0, sh_c); (a0, b0, c0) } + +#[inline] +#[target_feature(enable = "sse4.1")] +pub unsafe fn _mm_interleave_rgb_epi16( + a: __m128i, + b: __m128i, + c: __m128i, +) -> (__m128i, __m128i, __m128i) { + let sh_a = _mm_setr_epi8(0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5, 10, 11); + let sh_b = _mm_setr_epi8(10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15, 4, 5); + let sh_c = _mm_setr_epi8(4, 5, 10, 11, 0, 1, 6, 7, 12, 13, 2, 3, 8, 9, 14, 15); + let a0 = _mm_shuffle_epi8(a, sh_a); + let b0 = _mm_shuffle_epi8(b, sh_b); + let c0 = _mm_shuffle_epi8(c, sh_c); + + let v0 = _mm_blend_epi16::<0x24>(_mm_blend_epi16::<0x92>(a0, b0), c0); + let v1 = _mm_blend_epi16::<0x24>(_mm_blend_epi16::<0x92>(c0, a0), b0); + let v2 = _mm_blend_epi16::<0x24>(_mm_blend_epi16::<0x92>(b0, c0), a0); + (v0, v1, v2) +} + +#[inline] +#[target_feature(enable = "sse4.1")] +pub unsafe fn _mm_interleave_rgba_epi16( + a: __m128i, + b: __m128i, + c: __m128i, + d: __m128i, +) -> (__m128i, __m128i, __m128i, __m128i) { + // a0 a1 a2 a3 .... + // b0 b1 b2 b3 .... + // c0 c1 c2 c3 .... + // d0 d1 d2 d3 .... + let u0 = _mm_unpacklo_epi16(a, c); // a0 c0 a1 c1 ... + let u1 = _mm_unpackhi_epi16(a, c); // a4 c4 a5 c5 ... + let u2 = _mm_unpacklo_epi16(b, d); // b0 d0 b1 d1 ... + let u3 = _mm_unpackhi_epi16(b, d); // b4 d4 b5 d5 ... + + let v0 = _mm_unpacklo_epi16(u0, u2); // a0 b0 c0 d0 ... + let v1 = _mm_unpackhi_epi16(u0, u2); // a2 b2 c2 d2 ... + let v2 = _mm_unpacklo_epi16(u1, u3); // a4 b4 c4 d4 ... + let v3 = _mm_unpackhi_epi16(u1, u3); // a6 b6 c6 d6 ... + (v0, v1, v2, v3) +} diff --git a/src/sse/yuv_nv_p16_to_rgb.rs b/src/sse/yuv_nv_p16_to_rgb.rs new file mode 100644 index 0000000..f1b3dec --- /dev/null +++ b/src/sse/yuv_nv_p16_to_rgb.rs @@ -0,0 +1,232 @@ +/* + * // Copyright (c) the Radzivon Bartoshyk. All rights reserved. + * // + * // Use of this source code is governed by a BSD-style + * // license that can be found in the LICENSE file. + */ + +#[cfg(target_arch = "x86")] +use std::arch::x86::*; +#[cfg(target_arch = "x86_64")] +use std::arch::x86_64::*; + +use crate::internals::ProcessedOffset; +use crate::sse::{_mm_deinterleave_x2_epi16, _mm_interleave_rgb_epi16, _mm_interleave_rgba_epi16}; +use crate::yuv_support::{ + CbCrInverseTransform, YuvBytesPacking, YuvChromaRange, YuvChromaSample, YuvEndianness, + YuvNVOrder, YuvSourceChannels, +}; + +pub unsafe fn sse_yuv_nv_p16_to_rgba_row< + const DESTINATION_CHANNELS: u8, + const NV_ORDER: u8, + const SAMPLING: u8, + const ENDIANNESS: u8, + const BYTES_POSITION: u8, + const BIT_DEPTH: u8, +>( + y_ld_ptr: *const u16, + uv_ld_ptr: *const u16, + bgra: *mut u16, + width: u32, + range: &YuvChromaRange, + transform: &CbCrInverseTransform, + start_cx: usize, + start_ux: usize, +) -> ProcessedOffset { + let destination_channels: YuvSourceChannels = DESTINATION_CHANNELS.into(); + let channels = destination_channels.get_channels_count(); + let uv_order: YuvNVOrder = NV_ORDER.into(); + let chroma_subsampling: YuvChromaSample = SAMPLING.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); + let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); + let cr_coef = transform.cr_coef; + let cb_coef = transform.cb_coef; + let y_coef = transform.y_coef; + let g_coef_1 = transform.g_coeff_1; + let g_coef_2 = transform.g_coeff_2; + + let bias_y = range.bias_y as i32; + let bias_uv = range.bias_uv as i32; + + let mut dst_ptr = bgra; + + let v_max_colors = _mm_set1_epi16((1i16 << BIT_DEPTH as i16) - 1); + + let y_corr = _mm_set1_epi16(bias_y as i16); + let uv_corr = _mm_set1_epi16(bias_uv as i16); + let uv_corr_q = _mm_set1_epi16(bias_uv as i16); + let v_luma_coeff = _mm_set1_epi16(y_coef as i16); + let v_cr_coeff = _mm_set1_epi16(cr_coef as i16); + let v_cb_coeff = _mm_set1_epi16(cb_coef as i16); + let zeros = _mm_setzero_si128(); + let v_g_coeff_1 = _mm_set1_epi16(-1i16 * (g_coef_1 as i16)); + let v_g_coeff_2 = _mm_set1_epi16(-1i16 * (g_coef_2 as i16)); + + let mut cx = start_cx; + let mut ux = start_ux; + + let v_big_shift_count = _mm_set1_epi64x(16i64 - BIT_DEPTH as i64); + + let big_endian_shuffle_flag = + _mm_setr_epi8(1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14); + + while cx + 8 < width as usize { + let y_values; + + let u_high; + let v_high; + let u_low; + let v_low; + + let mut y_vl = _mm_loadu_si128(y_ld_ptr.add(cx) as *const __m128i); + if endianness == YuvEndianness::BigEndian { + y_vl = _mm_shuffle_epi8(y_vl, big_endian_shuffle_flag); + } + if bytes_position == YuvBytesPacking::MostSignificantBytes { + y_vl = _mm_srl_epi16(y_vl, v_big_shift_count); + } + y_values = _mm_sub_epi16(y_vl, y_corr); + + match chroma_subsampling { + YuvChromaSample::YUV420 | YuvChromaSample::YUV422 => { + let uv_ld = uv_ld_ptr.add(ux); + + let row0 = _mm_loadu_si128(uv_ld as *const __m128i); + + let mut uv_values_u = _mm_deinterleave_x2_epi16(row0, zeros); + + if uv_order == YuvNVOrder::VU { + uv_values_u = (uv_values_u.1, uv_values_u.0); + } + + let mut u_vl = uv_values_u.0; + if endianness == YuvEndianness::BigEndian { + u_vl = _mm_shuffle_epi8(u_vl, big_endian_shuffle_flag); + } + let mut v_vl = uv_values_u.1; + if endianness == YuvEndianness::BigEndian { + v_vl = _mm_shuffle_epi8(v_vl, big_endian_shuffle_flag); + } + if bytes_position == YuvBytesPacking::MostSignificantBytes { + u_vl = _mm_srl_epi16(u_vl, v_big_shift_count); + v_vl = _mm_srl_epi16(v_vl, v_big_shift_count); + } + let u_values_c = _mm_sub_epi16(u_vl, uv_corr); + let v_values_c = _mm_sub_epi16(v_vl, uv_corr); + + let u_values_32 = _mm_cvtepi16_epi32(u_values_c); + let v_values_32 = _mm_cvtepi16_epi32(v_values_c); + + u_high = _mm_unpackhi_epi32(u_values_32, u_values_32); + v_high = _mm_unpackhi_epi32(v_values_32, v_values_32); + u_low = _mm_unpacklo_epi32(u_values_32, u_values_32); + v_low = _mm_unpacklo_epi32(v_values_32, v_values_32); + } + YuvChromaSample::YUV444 => { + let uv_ld = uv_ld_ptr.add(ux); + let row0 = _mm_loadu_si128(uv_ld as *const __m128i); + let row1 = _mm_loadu_si128(uv_ld.add(8) as *const __m128i); + let mut uv_values_u = _mm_deinterleave_x2_epi16(row0, row1); + + if uv_order == YuvNVOrder::VU { + uv_values_u = (uv_values_u.1, uv_values_u.0); + } + let mut u_vl = uv_values_u.0; + if endianness == YuvEndianness::BigEndian { + u_vl = _mm_shuffle_epi8(u_vl, big_endian_shuffle_flag); + } + let mut v_vl = uv_values_u.1; + if endianness == YuvEndianness::BigEndian { + v_vl = _mm_shuffle_epi8(v_vl, big_endian_shuffle_flag); + } + if bytes_position == YuvBytesPacking::MostSignificantBytes { + u_vl = _mm_srl_epi16(u_vl, v_big_shift_count); + v_vl = _mm_srl_epi16(v_vl, v_big_shift_count); + } + let u_values_c = _mm_sub_epi16(u_vl, uv_corr_q); + let v_values_c = _mm_sub_epi16(v_vl, uv_corr_q); + u_high = _mm_cvtepi16_epi32(_mm_slli_si128::<8>(u_values_c)); + v_high = _mm_cvtepi16_epi32(_mm_slli_si128::<8>(v_values_c)); + u_low = _mm_cvtepi16_epi32(u_values_c); + v_low = _mm_cvtepi16_epi32(v_values_c); + } + } + + let y_high = _mm_madd_epi16(_mm_unpackhi_epi16(y_values, zeros), v_luma_coeff); + + let r_high = _mm_srai_epi32::<6>(_mm_add_epi32(y_high, _mm_madd_epi16(v_high, v_cr_coeff))); + let b_high = _mm_srai_epi32::<6>(_mm_add_epi32(y_high, _mm_madd_epi16(u_high, v_cb_coeff))); + let g_high = _mm_srai_epi32::<6>(_mm_add_epi32( + _mm_add_epi32(y_high, _mm_madd_epi16(v_high, v_g_coeff_1)), + _mm_madd_epi16(u_high, v_g_coeff_2), + )); + + let y_low = _mm_madd_epi16(_mm_unpacklo_epi16(y_values, zeros), v_luma_coeff); + + let r_low = _mm_srai_epi32::<6>(_mm_add_epi32(y_low, _mm_madd_epi16(v_low, v_cr_coeff))); + let b_low = _mm_srai_epi32::<6>(_mm_add_epi32(y_low, _mm_madd_epi16(u_low, v_cb_coeff))); + let g_low = _mm_srai_epi32::<6>(_mm_add_epi32( + _mm_add_epi32(y_low, _mm_madd_epi16(v_low, v_g_coeff_1)), + _mm_madd_epi16(u_low, v_g_coeff_2), + )); + + let r_values = _mm_min_epi16( + _mm_max_epi16(_mm_packs_epi32(r_low, r_high), zeros), + v_max_colors, + ); + let g_values = _mm_min_epi16( + _mm_max_epi16(_mm_packs_epi32(g_low, g_high), zeros), + v_max_colors, + ); + let b_values = _mm_min_epi16( + _mm_max_epi16(_mm_packs_epi32(b_low, b_high), zeros), + v_max_colors, + ); + + match destination_channels { + YuvSourceChannels::Rgb => { + let dst_pack = _mm_interleave_rgb_epi16(r_values, g_values, b_values); + _mm_storeu_si128(dst_ptr as *mut __m128i, dst_pack.0); + _mm_storeu_si128(dst_ptr.add(8) as *mut __m128i, dst_pack.1); + _mm_storeu_si128(dst_ptr.add(16) as *mut __m128i, dst_pack.2); + } + YuvSourceChannels::Bgr => { + let dst_pack = _mm_interleave_rgb_epi16(b_values, g_values, r_values); + _mm_storeu_si128(dst_ptr as *mut __m128i, dst_pack.0); + _mm_storeu_si128(dst_ptr.add(8) as *mut __m128i, dst_pack.1); + _mm_storeu_si128(dst_ptr.add(16) as *mut __m128i, dst_pack.2); + } + YuvSourceChannels::Rgba => { + let dst_pack = + _mm_interleave_rgba_epi16(r_values, g_values, b_values, v_max_colors); + _mm_storeu_si128(dst_ptr as *mut __m128i, dst_pack.0); + _mm_storeu_si128(dst_ptr.add(8) as *mut __m128i, dst_pack.1); + _mm_storeu_si128(dst_ptr.add(16) as *mut __m128i, dst_pack.2); + _mm_storeu_si128(dst_ptr.add(24) as *mut __m128i, dst_pack.3); + } + YuvSourceChannels::Bgra => { + let dst_pack = + _mm_interleave_rgba_epi16(b_values, g_values, r_values, v_max_colors); + _mm_storeu_si128(dst_ptr as *mut __m128i, dst_pack.0); + _mm_storeu_si128(dst_ptr.add(8) as *mut __m128i, dst_pack.1); + _mm_storeu_si128(dst_ptr.add(16) as *mut __m128i, dst_pack.2); + _mm_storeu_si128(dst_ptr.add(24) as *mut __m128i, dst_pack.3); + } + } + + cx += 8; + dst_ptr = dst_ptr.add(8 * channels); + + match chroma_subsampling { + YuvChromaSample::YUV420 | YuvChromaSample::YUV422 => { + ux += 8; + } + YuvChromaSample::YUV444 => { + ux += 16; + } + } + } + + ProcessedOffset { cx, ux } +} diff --git a/src/yuv_nv_p10_to_rgba.rs b/src/yuv_nv_p10_to_rgba.rs index 41b3b78..8f4b32b 100644 --- a/src/yuv_nv_p10_to_rgba.rs +++ b/src/yuv_nv_p10_to_rgba.rs @@ -31,7 +31,7 @@ fn yuv_nv_p10_to_image_impl< let channels = dst_chans.get_channels_count(); let uv_order: YuvNVOrder = NV_ORDER.into(); let chroma_subsampling: YuvChromaSample = SAMPLING.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let range = get_yuv_range(10, range); let kr_kb = get_kr_kb(matrix); @@ -102,7 +102,7 @@ fn yuv_nv_p10_to_image_impl< let mut cb_value: i32; let mut cr_value: i32; match endianness { - YuvEndiannes::BigEndian => { + YuvEndianness::BigEndian => { let mut y_vl = u16::from_be(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; let mut cb_vl = u16::from_be(unsafe { uv_ld_ptr.add(_ux + uv_order.get_u_position()).read_unaligned() }) as i32; @@ -118,7 +118,7 @@ fn yuv_nv_p10_to_image_impl< cb_value = cb_vl; cr_value = cr_vl; } - YuvEndiannes::LittleEndian => { + YuvEndianness::LittleEndian => { let mut y_vl = u16::from_le(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; let mut cb_vl = u16::from_le(unsafe { uv_ld_ptr.add(_ux + uv_order.get_u_position()).read_unaligned() }) as i32; @@ -178,7 +178,7 @@ fn yuv_nv_p10_to_image_impl< if next_px < width as usize { let y_value: i32; match endianness { - YuvEndiannes::BigEndian => { + YuvEndianness::BigEndian => { let mut y_vl = u16::from_be(unsafe { y_ld_ptr.add(next_px).read_unaligned() }) as i32; @@ -187,7 +187,7 @@ fn yuv_nv_p10_to_image_impl< } y_value = (y_vl - bias_y) * y_coef; } - YuvEndiannes::LittleEndian => { + YuvEndianness::LittleEndian => { let mut y_vl = u16::from_le(unsafe { y_ld_ptr.add(next_px).read_unaligned() }) as i32; @@ -273,17 +273,17 @@ pub fn yuv_nv12_p10_to_bgra( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -292,18 +292,18 @@ pub fn yuv_nv12_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -312,7 +312,7 @@ pub fn yuv_nv12_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -366,17 +366,17 @@ pub fn yuv_nv12_p10_to_rgba( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -385,18 +385,18 @@ pub fn yuv_nv12_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -405,7 +405,7 @@ pub fn yuv_nv12_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -459,17 +459,17 @@ pub fn yuv_nv12_p10_to_bgr( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -478,18 +478,18 @@ pub fn yuv_nv12_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -498,7 +498,7 @@ pub fn yuv_nv12_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -543,17 +543,17 @@ pub fn yuv_nv12_p10_to_rgb( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -562,18 +562,18 @@ pub fn yuv_nv12_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -582,7 +582,7 @@ pub fn yuv_nv12_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -627,17 +627,17 @@ pub fn yuv_nv16_p10_to_bgra( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -646,18 +646,18 @@ pub fn yuv_nv16_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -666,7 +666,7 @@ pub fn yuv_nv16_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -720,17 +720,17 @@ pub fn yuv_nv61_p10_to_bgra( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -739,18 +739,18 @@ pub fn yuv_nv61_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -759,7 +759,7 @@ pub fn yuv_nv61_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -813,17 +813,17 @@ pub fn yuv_nv16_p10_to_bgr( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -832,18 +832,18 @@ pub fn yuv_nv16_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -852,7 +852,7 @@ pub fn yuv_nv16_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -906,17 +906,17 @@ pub fn yuv_nv61_p10_to_bgr( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -925,18 +925,18 @@ pub fn yuv_nv61_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -945,7 +945,7 @@ pub fn yuv_nv61_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -999,17 +999,17 @@ pub fn yuv_nv16_p10_to_rgb( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1018,18 +1018,18 @@ pub fn yuv_nv16_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1038,7 +1038,7 @@ pub fn yuv_nv16_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1092,17 +1092,17 @@ pub fn yuv_nv61_p10_to_rgb( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1111,18 +1111,18 @@ pub fn yuv_nv61_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1131,7 +1131,7 @@ pub fn yuv_nv61_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1185,17 +1185,17 @@ pub fn yuv_nv16_p10_to_rgba( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1204,18 +1204,18 @@ pub fn yuv_nv16_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1224,7 +1224,7 @@ pub fn yuv_nv16_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1278,17 +1278,17 @@ pub fn yuv_nv61_p10_to_rgba( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1297,18 +1297,18 @@ pub fn yuv_nv61_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1317,7 +1317,7 @@ pub fn yuv_nv61_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1371,17 +1371,17 @@ pub fn yuv_nv21_p10_to_bgr( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1390,18 +1390,18 @@ pub fn yuv_nv21_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1410,7 +1410,7 @@ pub fn yuv_nv21_p10_to_bgr( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1455,17 +1455,17 @@ pub fn yuv_nv21_p10_to_bgra( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1474,18 +1474,18 @@ pub fn yuv_nv21_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1494,7 +1494,7 @@ pub fn yuv_nv21_p10_to_bgra( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1548,17 +1548,17 @@ pub fn yuv_nv21_p10_to_rgb( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1567,18 +1567,18 @@ pub fn yuv_nv21_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1587,7 +1587,7 @@ pub fn yuv_nv21_p10_to_rgb( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1632,17 +1632,17 @@ pub fn yuv_nv21_p10_to_rgba( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1651,18 +1651,18 @@ pub fn yuv_nv21_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1671,7 +1671,7 @@ pub fn yuv_nv21_p10_to_rgba( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } diff --git a/src/yuv_nv_p16_to_rgb.rs b/src/yuv_nv_p16_to_rgb.rs index 8718c0b..61ad744 100644 --- a/src/yuv_nv_p16_to_rgb.rs +++ b/src/yuv_nv_p16_to_rgb.rs @@ -6,6 +6,8 @@ */ #[cfg(all(target_arch = "aarch64", target_feature = "neon"))] use crate::neon::neon_yuv_nv_p16_to_rgba_row; +#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] +use crate::sse::sse_yuv_nv_p16_to_rgba_row; use crate::yuv_support::*; fn yuv_nv_p16_to_image_impl< @@ -31,7 +33,7 @@ fn yuv_nv_p16_to_image_impl< let channels = dst_chans.get_channels_count(); let uv_order: YuvNVOrder = NV_ORDER.into(); let chroma_subsampling: YuvChromaSample = SAMPLING.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let range = get_yuv_range(BIT_DEPTH as u32, range); let kr_kb = get_kr_kb(matrix); @@ -67,6 +69,9 @@ fn yuv_nv_p16_to_image_impl< YuvChromaSample::YUV444 => 1usize, }; + #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] + let mut _use_sse = std::arch::is_x86_feature_detected!("sse4.1"); + for y in 0..height as usize { let mut _cx = 0usize; let mut _ux = 0usize; @@ -77,6 +82,31 @@ fn yuv_nv_p16_to_image_impl< let uv_ld_ptr = unsafe { uv_src_ptr.offset(uv_offset as isize) as *const u16 }; let dst_st_ptr = unsafe { dst_ptr.add(dst_offset) as *mut u16 }; + #[cfg(any(target_arch = "x86", target_arch = "x86_64"))] + unsafe { + if _use_sse { + let processed = sse_yuv_nv_p16_to_rgba_row::< + DESTINATION_CHANNELS, + NV_ORDER, + SAMPLING, + ENDIANNESS, + BYTES_POSITION, + BIT_DEPTH, + >( + y_ld_ptr, + uv_ld_ptr, + dst_st_ptr, + width, + &range, + &i_transform, + _cx, + _ux, + ); + _cx = processed.cx; + _ux = processed.ux; + } + } + #[cfg(all(target_arch = "aarch64", target_feature = "neon"))] unsafe { let processed = neon_yuv_nv_p16_to_rgba_row::< @@ -105,7 +135,7 @@ fn yuv_nv_p16_to_image_impl< let mut cb_value: i32; let mut cr_value: i32; match endianness { - YuvEndiannes::BigEndian => { + YuvEndianness::BigEndian => { let mut y_vl = u16::from_be(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; let mut cb_vl = u16::from_be(unsafe { uv_ld_ptr @@ -127,7 +157,7 @@ fn yuv_nv_p16_to_image_impl< cb_value = cb_vl; cr_value = cr_vl; } - YuvEndiannes::LittleEndian => { + YuvEndianness::LittleEndian => { let mut y_vl = u16::from_le(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; let mut cb_vl = u16::from_le(unsafe { uv_ld_ptr @@ -199,7 +229,7 @@ fn yuv_nv_p16_to_image_impl< if next_px < width as usize { let y_value: i32; match endianness { - YuvEndiannes::BigEndian => { + YuvEndianness::BigEndian => { let mut y_vl = u16::from_be(unsafe { y_ld_ptr.add(next_px).read_unaligned() }) as i32; @@ -208,7 +238,7 @@ fn yuv_nv_p16_to_image_impl< } y_value = (y_vl - bias_y) * y_coef; } - YuvEndiannes::LittleEndian => { + YuvEndianness::LittleEndian => { let mut y_vl = u16::from_le(unsafe { y_ld_ptr.add(next_px).read_unaligned() }) as i32; @@ -367,17 +397,17 @@ pub fn yuv_nv12_to_bgra_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -386,18 +416,18 @@ pub fn yuv_nv12_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -406,7 +436,7 @@ pub fn yuv_nv12_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -463,17 +493,17 @@ pub fn yuv_nv12_to_rgba_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -482,18 +512,18 @@ pub fn yuv_nv12_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -502,7 +532,7 @@ pub fn yuv_nv12_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -559,17 +589,17 @@ pub fn yuv_nv12_to_bgr_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -578,18 +608,18 @@ pub fn yuv_nv12_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -598,7 +628,7 @@ pub fn yuv_nv12_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -646,17 +676,17 @@ pub fn yuv_nv12_to_rgb_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -665,18 +695,18 @@ pub fn yuv_nv12_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -685,7 +715,7 @@ pub fn yuv_nv12_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -733,17 +763,17 @@ pub fn yuv_nv16_to_bgra_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -752,18 +782,18 @@ pub fn yuv_nv16_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -772,7 +802,7 @@ pub fn yuv_nv16_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -829,17 +859,17 @@ pub fn yuv_nv61_to_bgra_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -848,18 +878,18 @@ pub fn yuv_nv61_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -868,7 +898,7 @@ pub fn yuv_nv61_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -925,17 +955,17 @@ pub fn yuv_nv16_to_bgr_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -944,18 +974,18 @@ pub fn yuv_nv16_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -964,7 +994,7 @@ pub fn yuv_nv16_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1021,17 +1051,17 @@ pub fn yuv_nv61_to_bgr_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1040,18 +1070,18 @@ pub fn yuv_nv61_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1060,7 +1090,7 @@ pub fn yuv_nv61_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1117,17 +1147,17 @@ pub fn yuv_nv16_to_rgb_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1136,18 +1166,18 @@ pub fn yuv_nv16_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1156,7 +1186,7 @@ pub fn yuv_nv16_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1213,17 +1243,17 @@ pub fn yuv_nv61_to_rgb_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1232,18 +1262,18 @@ pub fn yuv_nv61_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1252,7 +1282,7 @@ pub fn yuv_nv61_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1309,17 +1339,17 @@ pub fn yuv_nv16_to_rgba_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1328,18 +1358,18 @@ pub fn yuv_nv16_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1348,7 +1378,7 @@ pub fn yuv_nv16_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::UV as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1405,17 +1435,17 @@ pub fn yuv_nv61_to_rgba_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1424,18 +1454,18 @@ pub fn yuv_nv61_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1444,7 +1474,7 @@ pub fn yuv_nv61_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1501,17 +1531,17 @@ pub fn yuv_nv21_to_bgr_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1520,18 +1550,18 @@ pub fn yuv_nv21_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1540,7 +1570,7 @@ pub fn yuv_nv21_to_bgr_p16( { YuvSourceChannels::Bgr as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1588,17 +1618,17 @@ pub fn yuv_nv21_to_bgra_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1607,18 +1637,18 @@ pub fn yuv_nv21_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1627,7 +1657,7 @@ pub fn yuv_nv21_to_bgra_p16( { YuvSourceChannels::Bgra as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1684,17 +1714,17 @@ pub fn yuv_nv21_to_rgb_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1703,18 +1733,18 @@ pub fn yuv_nv21_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1723,7 +1753,7 @@ pub fn yuv_nv21_to_rgb_p16( { YuvSourceChannels::Rgb as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1771,17 +1801,17 @@ pub fn yuv_nv21_to_rgba_p16( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1790,18 +1820,18 @@ pub fn yuv_nv21_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_nv_p16_to_image::< { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1810,7 +1840,7 @@ pub fn yuv_nv21_to_rgba_p16( { YuvSourceChannels::Rgba as u8 }, { YuvNVOrder::VU as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } diff --git a/src/yuv_p10_rgba.rs b/src/yuv_p10_rgba.rs index 2e32cc9..14530a7 100644 --- a/src/yuv_p10_rgba.rs +++ b/src/yuv_p10_rgba.rs @@ -9,7 +9,7 @@ use crate::neon::neon_yuv_p10_to_rgba_row; use crate::yuv_support::{ get_inverse_transform, get_kr_kb, get_yuv_range, YuvBytesPacking, YuvChromaSample, - YuvEndiannes, YuvRange, YuvSourceChannels, YuvStandardMatrix, + YuvEndianness, YuvRange, YuvSourceChannels, YuvStandardMatrix, }; fn yuv_p10_to_image_impl< @@ -34,7 +34,7 @@ fn yuv_p10_to_image_impl< let dst_chans: YuvSourceChannels = DESTINATION_CHANNELS.into(); let channels = dst_chans.get_channels_count(); let chroma_subsampling: YuvChromaSample = SAMPLING.into(); - let endianness: YuvEndiannes = ENDIANNESS.into(); + let endianness: YuvEndianness = ENDIANNESS.into(); let bytes_position: YuvBytesPacking = BYTES_POSITION.into(); let range = get_yuv_range(10, range); let kr_kb = get_kr_kb(matrix); @@ -101,7 +101,7 @@ fn yuv_p10_to_image_impl< let cb_value: i32; let cr_value: i32; match endianness { - YuvEndiannes::BigEndian => { + YuvEndianness::BigEndian => { let mut y_vl = u16::from_be(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; let mut cb_vl = u16::from_be(unsafe { u_ld_ptr.add(cx).read_unaligned() }) as i32; @@ -117,7 +117,7 @@ fn yuv_p10_to_image_impl< cb_value = cb_vl - bias_uv; cr_value = cr_vl - bias_uv; } - YuvEndiannes::LittleEndian => { + YuvEndianness::LittleEndian => { let mut y_vl = u16::from_le(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; let mut cb_vl = u16::from_le(unsafe { u_ld_ptr.add(cx).read_unaligned() }) as i32; @@ -164,7 +164,7 @@ fn yuv_p10_to_image_impl< if x + 1 < width as usize { let y_value: i32; match endianness { - YuvEndiannes::BigEndian => { + YuvEndianness::BigEndian => { let mut y_vl = u16::from_be(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; if bytes_position == YuvBytesPacking::MostSignificantBytes { @@ -172,7 +172,7 @@ fn yuv_p10_to_image_impl< } y_value = (y_vl - bias_y) * y_coef; } - YuvEndiannes::LittleEndian => { + YuvEndianness::LittleEndian => { let mut y_vl = u16::from_le(unsafe { y_ld_ptr.add(x).read_unaligned() }) as i32; if bytes_position == YuvBytesPacking::MostSignificantBytes { @@ -265,16 +265,16 @@ pub fn yuv420_p10_to_bgra( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -282,17 +282,17 @@ pub fn yuv420_p10_to_bgra( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -300,7 +300,7 @@ pub fn yuv420_p10_to_bgra( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -362,16 +362,16 @@ pub fn yuv420_p10_to_bgr( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -379,17 +379,17 @@ pub fn yuv420_p10_to_bgr( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -397,7 +397,7 @@ pub fn yuv420_p10_to_bgr( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -450,16 +450,16 @@ pub fn yuv422_p10_to_bgra( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -467,17 +467,17 @@ pub fn yuv422_p10_to_bgra( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -485,7 +485,7 @@ pub fn yuv422_p10_to_bgra( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -548,16 +548,16 @@ pub fn yuv422_p10_to_bgr( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -565,17 +565,17 @@ pub fn yuv422_p10_to_bgr( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -583,7 +583,7 @@ pub fn yuv422_p10_to_bgr( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -635,16 +635,16 @@ pub fn yuv420_p10_to_rgba( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -652,17 +652,17 @@ pub fn yuv420_p10_to_rgba( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -670,7 +670,7 @@ pub fn yuv420_p10_to_rgba( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -732,16 +732,16 @@ pub fn yuv420_p10_to_rgb( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -749,17 +749,17 @@ pub fn yuv420_p10_to_rgb( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -767,7 +767,7 @@ pub fn yuv420_p10_to_rgb( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV420 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -819,16 +819,16 @@ pub fn yuv422_p10_to_rgba( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -836,17 +836,17 @@ pub fn yuv422_p10_to_rgba( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -854,7 +854,7 @@ pub fn yuv422_p10_to_rgba( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -916,16 +916,16 @@ pub fn yuv422_p10_to_rgb( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -933,17 +933,17 @@ pub fn yuv422_p10_to_rgb( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -951,7 +951,7 @@ pub fn yuv422_p10_to_rgb( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV422 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1003,16 +1003,16 @@ pub fn yuv444_p10_to_rgba( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1020,17 +1020,17 @@ pub fn yuv444_p10_to_rgba( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1038,7 +1038,7 @@ pub fn yuv444_p10_to_rgba( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgba as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1100,16 +1100,16 @@ pub fn yuv444_p10_to_rgb( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1117,17 +1117,17 @@ pub fn yuv444_p10_to_rgb( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1135,7 +1135,7 @@ pub fn yuv444_p10_to_rgb( yuv_p10_to_image_impl::< { YuvSourceChannels::Rgb as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1187,16 +1187,16 @@ pub fn yuv444_p10_to_bgra( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1204,17 +1204,17 @@ pub fn yuv444_p10_to_bgra( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1222,7 +1222,7 @@ pub fn yuv444_p10_to_bgra( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgra as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } @@ -1284,16 +1284,16 @@ pub fn yuv444_p10_to_bgr( height: u32, range: YuvRange, matrix: YuvStandardMatrix, - endianness: YuvEndiannes, + endianness: YuvEndianness, bytes_packing: YuvBytesPacking, ) { let dispatcher = match endianness { - YuvEndiannes::BigEndian => match bytes_packing { + YuvEndianness::BigEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1301,17 +1301,17 @@ pub fn yuv444_p10_to_bgr( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::BigEndian as u8 }, + { YuvEndianness::BigEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } }, - YuvEndiannes::LittleEndian => match bytes_packing { + YuvEndianness::LittleEndian => match bytes_packing { YuvBytesPacking::MostSignificantBytes => { yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::MostSignificantBytes as u8 }, > } @@ -1319,7 +1319,7 @@ pub fn yuv444_p10_to_bgr( yuv_p10_to_image_impl::< { YuvSourceChannels::Bgr as u8 }, { YuvChromaSample::YUV444 as u8 }, - { YuvEndiannes::LittleEndian as u8 }, + { YuvEndianness::LittleEndian as u8 }, { YuvBytesPacking::LeastSignificantBytes as u8 }, > } diff --git a/src/yuv_support.rs b/src/yuv_support.rs index 002938d..41fd27c 100644 --- a/src/yuv_support.rs +++ b/src/yuv_support.rs @@ -287,17 +287,18 @@ impl From for YuvChromaSample { #[repr(u8)] #[derive(Copy, Clone, PartialEq, Eq)] -pub enum YuvEndiannes { +/// This controls endianness of YUV storage format +pub enum YuvEndianness { BigEndian = 0, LittleEndian = 1, } -impl From for YuvEndiannes { +impl From for YuvEndianness { #[inline(always)] fn from(value: u8) -> Self { match value { - 0 => YuvEndiannes::BigEndian, - 1 => YuvEndiannes::LittleEndian, + 0 => YuvEndianness::BigEndian, + 1 => YuvEndianness::LittleEndian, _ => { panic!("Unknown value") } @@ -307,6 +308,12 @@ impl From for YuvEndiannes { #[repr(u8)] #[derive(Debug, Copy, Clone, PartialEq, Eq)] +/// Most of the cases of storage bytes is least significant whereas b`0000000111111` integers stored in low part, +/// however most modern hardware encoders (Apple, Android manufacturers) uses most significant bytes +/// where same number stored as b`111111000000` and need to be shifted right before working with this. +/// This is not the same and endianness. I never met `big endian` packing with `most significant bytes` +/// so this case may not work fully correct, however, `little endian` + `most significant bytes` +/// can be easily derived from HDR camera stream on android and apple platforms pub enum YuvBytesPacking { MostSignificantBytes = 0, LeastSignificantBytes = 1,