[vlc-devel] [PATCH 20/22] mmal: use the picture_chain API for the FIFO

Steve Lhomme robux4 at ycbcr.xyz
Thu Sep 17 17:33:42 CEST 2020


pf->head represents the picture chain and pf->tail the tail that is used to
append pictures.
---
 modules/hw/mmal/converter.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/modules/hw/mmal/converter.c b/modules/hw/mmal/converter.c
index f49f1f02022..d85f8a122e1 100644
--- a/modules/hw/mmal/converter.c
+++ b/modules/hw/mmal/converter.c
@@ -123,12 +123,7 @@ typedef struct pic_fifo_s {
 
 static picture_t * pic_fifo_get(pic_fifo_t * const pf)
 {
-    picture_t * const pic = pf->head;;
-    if (pic != NULL) {
-        pf->head = pic->p_next;
-        pic->p_next = NULL;
-    }
-    return pic;
+    return picture_chain_pop_front( &pf->head );
 }
 
 static void pic_fifo_release_all(pic_fifo_t * const pf)
@@ -147,12 +142,16 @@ static void pic_fifo_init(pic_fifo_t * const pf)
 
 static void pic_fifo_put(pic_fifo_t * const pf, picture_t * pic)
 {
-    pic->p_next = NULL;
     if (pf->head == NULL)
+    {
+        pic->p_next = NULL;
         pf->head = pic;
+        pf->tail = pic;
+    }
     else
-        pf->tail->p_next = pic;
-    pf->tail = pic;
+    {
+        pf->tail = picture_chain_append( pf->tail, pic  );
+    }
 }
 
 #define SUBS_MAX 3
@@ -289,8 +288,6 @@ static void conv_input_port_cb(MMAL_PORT_T *port, MMAL_BUFFER_HEADER_T *buf)
 
 static void conv_out_q_pic(converter_sys_t * const sys, picture_t * const pic)
 {
-    pic->p_next = NULL;
-
     vlc_mutex_lock(&sys->lock);
     pic_fifo_put(&sys->ret_pics, pic);
     vlc_mutex_unlock(&sys->lock);
-- 
2.26.2



More information about the vlc-devel mailing list