@@ -269,34 +269,18 @@ int main(void)
269269 return ret ;
270270 }
271271
272- vbuf = & (struct video_buffer ){.type = VIDEO_BUF_TYPE_OUTPUT };
273-
274- if (video_dequeue (video_dev , & vbuf , K_NO_WAIT ) == 0 ) {
275- LOG_DBG ("Dequeued %p from %s, enqueueing to %s" ,
276- (void * )vbuf , video_dev -> name , uvc_dev -> name );
277-
278- vbuf -> type = VIDEO_BUF_TYPE_INPUT ;
279-
280- ret = video_enqueue (uvc_dev , vbuf );
281- if (ret != 0 ) {
282- LOG_ERR ("Could not enqueue video buffer to %s" , uvc_dev -> name );
283- return ret ;
284- }
272+ ret = video_transfer_buffer (video_dev , uvc_dev ,
273+ VIDEO_BUF_TYPE_OUTPUT , VIDEO_BUF_TYPE_INPUT , K_NO_WAIT );
274+ if (ret != 0 && ret != - EAGAIN ) {
275+ LOG_ERR ("Failed to transfer from %s to %s" , video_dev -> name , uvc_dev -> name );
276+ return ret ;
285277 }
286278
287- vbuf = & (struct video_buffer ){.type = VIDEO_BUF_TYPE_INPUT };
288-
289- if (video_dequeue (uvc_dev , & vbuf , K_NO_WAIT ) == 0 ) {
290- LOG_DBG ("Dequeued %p from %s, enqueueing to %s" ,
291- (void * )vbuf , uvc_dev -> name , video_dev -> name );
292-
293- vbuf -> type = VIDEO_BUF_TYPE_OUTPUT ;
294-
295- ret = video_enqueue (video_dev , vbuf );
296- if (ret != 0 ) {
297- LOG_ERR ("Could not enqueue video buffer to %s" , video_dev -> name );
298- return ret ;
299- }
279+ ret = video_transfer_buffer (uvc_dev , video_dev ,
280+ VIDEO_BUF_TYPE_INPUT , VIDEO_BUF_TYPE_OUTPUT , K_NO_WAIT );
281+ if (ret != 0 && ret != - EAGAIN ) {
282+ LOG_ERR ("Failed to transfer from %s to %s" , uvc_dev -> name , video_dev -> name );
283+ return ret ;
300284 }
301285
302286 k_poll_signal_reset (& sig );
0 commit comments