+ pub fn set_dec_bufs(&mut self, add_len: usize) {
+ self.add_len = add_len;
+ }
+ pub fn get_free(&mut self) -> Option<NAVideoBufferRef<T>> {
+ for e in self.pool.iter() {
+ if e.get_num_refs() == 1 {
+ return Some(e.clone());
+ }
+ }
+ None
+ }
+ pub fn get_copy(&mut self, rbuf: &NAVideoBufferRef<T>) -> Option<NAVideoBufferRef<T>> {
+ let mut dbuf = self.get_free()?;
+ dbuf.data.copy_from_slice(&rbuf.data);
+ Some(dbuf)
+ }
+ pub fn reset(&mut self) {
+ self.pool.truncate(0);
+ }
+}
+
+impl NAVideoBufferPool<u8> {