]> git.sesse.net Git - vlc/blobdiff - modules/video_filter/dynamicoverlay/dynamicoverlay.h
dynamicoverlay: We need a commanddesc_static_t for non strdup()-ed initializer.
[vlc] / modules / video_filter / dynamicoverlay / dynamicoverlay.h
index 532d39f54ce64b246b218010bb87c84d72b4b3ad..e9058381fa4c33cc505a0959c3597be6522dc68b 100644 (file)
@@ -24,7 +24,7 @@
 #ifndef DYNAMIC_OVERLAY_H
 #define DYNAMIC_OVERLAY_H   1
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
 #include <vlc_filter.h>
 
 /*****************************************************************************
@@ -71,18 +71,29 @@ typedef struct commandparams_t
     bool b_visible; /*< visibility flag of overlay */
 } commandparams_t;
 
+typedef int (*parser_func_t)(char *psz_command, char *psz_end, commandparams_t *p_params );
+typedef int (*execute_func_t)( filter_t *p_filter, const commandparams_t *p_params, commandparams_t *p_results );
+typedef int (*unparse_func_t)( const commandparams_t *p_results, buffer_t *p_output );
+
 typedef struct commanddesc_t
 {
-    const char *psz_command;
+    char *psz_command;
     bool b_atomic;
-    int ( *pf_parser ) ( char *psz_command, char *psz_end,
-                         commandparams_t *p_params );
-    int ( *pf_execute ) ( filter_t *p_filter, const commandparams_t *p_params,
-                          commandparams_t *p_results );
-    int ( *pf_unparse ) ( const commandparams_t *p_results,
-                          buffer_t *p_output );
+    parser_func_t pf_parser;
+    execute_func_t pf_execute;
+    unparse_func_t pf_unparse;
 } commanddesc_t;
 
+typedef struct commanddesc_static_t
+{
+    const char *psz_command;
+    bool b_atomic;
+    parser_func_t pf_parser;
+    execute_func_t pf_execute;
+    unparse_func_t pf_unparse;
+} commanddesc_static_t;
+
+
 typedef struct command_t
 {
     struct commanddesc_t *p_command;
@@ -122,7 +133,7 @@ typedef struct overlay_t
     bool b_active;
 
     video_format_t format;
-    struct text_style_t fontstyle;
+    struct text_style_t *p_fontstyle;
     union {
         picture_t *p_pic;
         char *p_text;
@@ -165,6 +176,8 @@ struct filter_sys_t
     bool b_updated, b_atomic;
     queue_t atomic, pending, processed;
     list_t overlays;
+
+    vlc_mutex_t lock;   /* lock to protect psz_inputfile and psz_outputfile */
 };
 
 #endif