[vlc-commits] caca: merge event thread library

Rémi Denis-Courmont git at videolan.org
Fri Feb 2 16:44:01 CET 2018


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Fri Feb  2 16:57:19 2018 +0200| [ad5a38ab182eb3afed785b8f6624fe4ceaaee723] | committer: Rémi Denis-Courmont

caca: merge event thread library

(With removal of AA, this is now the only user.)

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ad5a38ab182eb3afed785b8f6624fe4ceaaee723
---

 modules/video_output/Makefile.am    |   7 +--
 modules/video_output/caca.c         |  73 ++++++++++++++++++++++++-
 modules/video_output/event_thread.c | 103 ------------------------------------
 modules/video_output/event_thread.h |  30 -----------
 4 files changed, 73 insertions(+), 140 deletions(-)

diff --git a/modules/video_output/Makefile.am b/modules/video_output/Makefile.am
index 1718a20cff..17967b51af 100644
--- a/modules/video_output/Makefile.am
+++ b/modules/video_output/Makefile.am
@@ -406,7 +406,7 @@ vout_LTLIBRARIES += $(LTLIBfb)
 ### Coloured ASCII art ###
 libcaca_plugin_la_SOURCES = video_output/caca.c
 libcaca_plugin_la_CFLAGS = $(AM_CFLAGS) $(CACA_CFLAGS)
-libcaca_plugin_la_LIBADD = libevent_thread.la $(CACA_LIBS)
+libcaca_plugin_la_LIBADD = $(CACA_LIBS)
 if !HAVE_WIN32
 if !HAVE_DARWIN
 libcaca_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIBS) -lX11
@@ -430,8 +430,3 @@ vout_LTLIBRARIES += \
 	libvdummy_plugin.la \
 	libvmem_plugin.la \
 	libyuv_plugin.la
-
-libevent_thread_la_SOURCES = \
-	video_output/event_thread.c video_output/event_thread.h
-libevent_thread_la_LDFLAGS = -static
-noinst_LTLIBRARIES += libevent_thread.la
diff --git a/modules/video_output/caca.c b/modules/video_output/caca.c
index a4442ce636..25e80f2f8e 100644
--- a/modules/video_output/caca.c
+++ b/modules/video_output/caca.c
@@ -30,7 +30,11 @@
 # include "config.h"
 #endif
 
+#include <stdnoreturn.h>
+#include <stdlib.h>
+#include <string.h>
 #include <vlc_common.h>
+#include <vlc_block.h>
 #include <vlc_plugin.h>
 #include <vlc_vout_display.h>
 #include <vlc_picture_pool.h>
@@ -42,7 +46,74 @@
 #endif
 
 #include <caca.h>
-#include "event_thread.h"
+
+typedef struct vout_display_event_thread {
+    vout_display_t *vd;
+    block_fifo_t *fifo;
+    vlc_thread_t thread;
+} vout_display_event_thread_t;
+
+noreturn static void *VoutDisplayEventKeyDispatch(void *data)
+{
+    vout_display_event_thread_t *vdet = data;
+    vout_display_t *vd = vdet->vd;
+    block_fifo_t *fifo = vdet->fifo;
+
+    for (;;) {
+        block_t *event = block_FifoGet(fifo);
+
+        int cancel = vlc_savecancel();
+        int key;
+
+        memcpy(&key, event->p_buffer, sizeof (key));
+        block_Release(event);
+        vout_display_SendEventKey(vd, key);
+        vlc_restorecancel(cancel);
+    }
+}
+
+static void VoutDisplayEventKey(vout_display_event_thread_t *vdet, int key)
+{
+    if (unlikely(vdet == NULL))
+        return;
+
+    block_t *event = block_Alloc(sizeof (key));
+    if (likely(event != NULL)) {
+        memcpy(event->p_buffer, &key, sizeof (key));
+        block_FifoPut(vdet->fifo, event);
+    }
+}
+
+static struct vout_display_event_thread *
+VoutDisplayEventCreateThread(vout_display_t *vd)
+{
+    vout_display_event_thread_t *vdet = malloc(sizeof (*vdet));
+    if (unlikely(vdet == NULL))
+        return NULL;
+
+    vdet->vd = vd;
+    vdet->fifo = block_FifoNew();
+    if (unlikely(vdet->fifo == NULL)) {
+        free(vdet);
+        return NULL;
+    }
+
+    if (vlc_clone(&vdet->thread, VoutDisplayEventKeyDispatch, vdet,
+                  VLC_THREAD_PRIORITY_LOW)) {
+        block_FifoRelease(vdet->fifo);
+        free(vdet);
+        return NULL;
+    }
+    return vdet;
+}
+
+static void VoutDisplayEventKillThread(vout_display_event_thread_t *vdet)
+{
+    vlc_cancel(vdet->thread);
+    vlc_join(vdet->thread, NULL);
+    block_FifoRelease(vdet->fifo);
+    free(vdet);
+}
 
 /*****************************************************************************
  * Module descriptor
diff --git a/modules/video_output/event_thread.c b/modules/video_output/event_thread.c
deleted file mode 100644
index 817de309a8..0000000000
--- a/modules/video_output/event_thread.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/*****************************************************************************
- * event.c: event thread for broken old video output display plugins
- *****************************************************************************
- * Copyright (C) 2009 Laurent Aimar
- * $Id$
- *
- * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdnoreturn.h>
-#include <stdlib.h>
-#include <string.h>
-#include <vlc_common.h>
-#include <vlc_block.h>
-#include <vlc_vout_display.h>
-
-#include "event_thread.h"
-
-struct vout_display_event_thread {
-    vout_display_t *vd;
-    block_fifo_t *fifo;
-    vlc_thread_t thread;
-};
-
-noreturn static void *VoutDisplayEventKeyDispatch(void *data)
-{
-    vout_display_event_thread_t *vdet = data;
-    vout_display_t *vd = vdet->vd;
-    block_fifo_t *fifo = vdet->fifo;
-
-    for (;;) {
-        block_t *event = block_FifoGet(fifo);
-
-        int cancel = vlc_savecancel();
-        int key;
-
-        memcpy(&key, event->p_buffer, sizeof (key));
-        block_Release(event);
-        vout_display_SendEventKey(vd, key);
-        vlc_restorecancel(cancel);
-    }
-}
-
-void VoutDisplayEventKey(vout_display_event_thread_t *vdet, int key)
-{
-    if (unlikely(vdet == NULL))
-        return;
-
-    block_t *event = block_Alloc(sizeof (key));
-    if (likely(event != NULL)) {
-        memcpy(event->p_buffer, &key, sizeof (key));
-        block_FifoPut(vdet->fifo, event);
-    }
-}
-
-struct vout_display_event_thread *
-VoutDisplayEventCreateThread(vout_display_t *vd)
-{
-    vout_display_event_thread_t *vdet = malloc(sizeof (*vdet));
-    if (unlikely(vdet == NULL))
-        return NULL;
-
-    vdet->vd = vd;
-    vdet->fifo = block_FifoNew();
-    if (unlikely(vdet->fifo == NULL)) {
-        free(vdet);
-        return NULL;
-    }
-
-    if (vlc_clone(&vdet->thread, VoutDisplayEventKeyDispatch, vdet,
-                  VLC_THREAD_PRIORITY_LOW)) {
-        block_FifoRelease(vdet->fifo);
-        free(vdet);
-        return NULL;
-    }
-    return vdet;
-}
-
-void VoutDisplayEventKillThread(vout_display_event_thread_t *vdet)
-{
-    vlc_cancel(vdet->thread);
-    vlc_join(vdet->thread, NULL);
-    block_FifoRelease(vdet->fifo);
-    free(vdet);
-}
diff --git a/modules/video_output/event_thread.h b/modules/video_output/event_thread.h
deleted file mode 100644
index 8dd9ff1b99..0000000000
--- a/modules/video_output/event_thread.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*****************************************************************************
- * event_thread.h: event thread for legacy video output display plugins
- *****************************************************************************
- * Copyright (C) 2009 Laurent Aimar
- * $Id$
- *
- * Authors: Laurent Aimar <fenrir _AT_ videolan _DOT_ org>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation; either version 2.1 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
- *****************************************************************************/
-
-typedef struct vout_display_event_thread vout_display_event_thread_t;
-
-void VoutDisplayEventKey(vout_display_event_thread_t *vdet, int key);
-struct vout_display_event_thread *
-VoutDisplayEventCreateThread(vout_display_t *) VLC_USED;
-void VoutDisplayEventKillThread(vout_display_event_thread_t *);
-



More information about the vlc-commits mailing list