@@ -157,9 +157,20 @@ impl UserStreamState {
157157 let width = width as usize ;
158158 let height = height as usize ;
159159
160+ println ! ( "{width}x{height}" ) ;
161+
160162 let metas = unsafe { from_raw_parts ( buffer. metas , buffer. n_metas as usize ) } ;
161163 let datas = unsafe { from_raw_parts ( buffer. datas , buffer. n_datas as usize ) } ;
162164
165+ for meta in metas {
166+ if meta. type_ == spa:: sys:: SPA_META_Busy {
167+ dbg ! ( unsafe { meta. data. cast:: <spa:: sys:: spa_meta_busy>( ) . read_unaligned( ) } ) ;
168+ }
169+ }
170+
171+ println ! ( "Metas: {metas:?}" ) ;
172+ println ! ( "Datas: {datas:?}" ) ;
173+
163174 // First check if memory buffers were sent
164175 let mem_data: SmallVec < [ _ ; 3 ] > = datas
165176 . iter ( )
@@ -176,7 +187,13 @@ impl UserStreamState {
176187 } else {
177188 let dma_data: SmallVec < [ _ ; 3 ] > = datas
178189 . iter ( )
179- . filter ( |data| data. type_ == spa:: sys:: SPA_DATA_DmaBuf )
190+ . filter ( |data| {
191+ println ! ( "{data:?}" ) ;
192+ println ! ( "\t {:?}" , unsafe { data. chunk. read_unaligned( ) } ) ;
193+ data. flags & spa:: sys:: SPA_DATA_FLAG_READABLE
194+ == spa:: sys:: SPA_DATA_FLAG_READABLE
195+ && data. type_ == spa:: sys:: SPA_DATA_DmaBuf
196+ } )
180197 . collect ( ) ;
181198
182199 if dma_data. is_empty ( ) {
@@ -187,12 +204,12 @@ impl UserStreamState {
187204 let first_data = dma_data[ 0 ] ;
188205
189206 // check that the fd of all dma buf's are the same, as different ones are currently not supported
190- if dma_data. iter ( ) . any ( |data| data. fd != first_data. fd ) {
191- log:: warn!(
192- "Got dma buffers with different fds, discarding as this is not supported"
193- ) ;
194- return ;
195- }
207+ // if dma_data.iter().any(|data| data.fd != first_data.fd) {
208+ // log::warn!(
209+ // "Got dma buffers with different fds, discarding as this is not supported"
210+ // );
211+ // return;
212+ // }
196213
197214 self . handle_dma_data ( metas, datas, dma_data)
198215 } ;
0 commit comments