}
}
-#[derive(Debug,Clone,Copy)]
+#[derive(Debug,Clone,Copy,PartialEq)]
pub enum NAChannelType {
C, L, R, Cs, Ls, Rs, Lss, Rss, LFE, Lc, Rc, Lh, Rh, Ch, LFE2, Lw, Rw, Ov, Lhs, Rhs, Chs, Ll, Rl, Cl, Lt, Rt, Lo, Ro
}
pub fn add_channel(&mut self, ch: NAChannelType) {
self.ids.push(ch);
}
+ pub fn add_channels(&mut self, chs: &[NAChannelType]) {
+ for i in 0..chs.len() {
+ self.ids.push(chs[i]);
+ }
+ }
pub fn num_channels(&self) -> usize {
self.ids.len()
}
}
pub fn get_linesize(&self, width: usize) -> usize {
let d = self.depth as usize;
- (self.get_width(width) * d + d - 1) >> 3
+ if self.packed {
+ (self.get_width(width) * d + d - 1) >> 3
+ } else {
+ self.get_width(width)
+ }
}
pub fn get_data_size(&self, width: usize, height: usize) -> usize {
let nh = (height + ((1 << self.v_ss) - 1)) >> self.v_ss;