]> git.sesse.net Git - vlc/blobdiff - src/video_output/vout_internal.h
Qt: CaptureOpenPanel: check and prefill with usual devices
[vlc] / src / video_output / vout_internal.h
index 0caa9156664ffb604fd6e7f6e76cd5fb72b3de61..c5d99039758d47f9674eda83a0cbb0f712e6a708 100644 (file)
 #include "statistic.h"
 #include "chrono.h"
 
+/* It should be high enough to absorbe jitter due to difficult picture(s)
+ * to decode but not too high as memory is not that cheap.
+ *
+ * It can be made lower at compilation time if needed, but performance
+ * may be degraded.
+ */
+#define VOUT_MAX_PICTURES (20)
+
 /* */
 struct vout_thread_sys_t
 {
@@ -51,6 +59,7 @@ struct vout_thread_sys_t
 
     /* */
     video_format_t  original;   /* Original format ie coming from the decoder */
+    unsigned        dpb_size;
 
     /* Snapshot interface */
     vout_snapshot_t snapshot;
@@ -59,6 +68,7 @@ struct vout_thread_sys_t
     vout_statistic_t statistic;
 
     /* Subpicture unit */
+    vlc_mutex_t     spu_lock;
     spu_t           *p_spu;
 
     /* Monitor Pixel Aspect Ratio */
@@ -91,6 +101,8 @@ struct vout_thread_sys_t
         int         qtype;
         bool        is_interlaced;
         picture_t   *decoded;
+        picture_t   *current;
+        picture_t   *next;
     } displayed;
 
     struct {
@@ -114,8 +126,11 @@ struct vout_thread_sys_t
     bool            is_late_dropped;
 
     /* Video filter2 chain */
-    vlc_mutex_t     vfilter_lock;
-    filter_chain_t *vfilter_chain;
+    struct {
+        vlc_mutex_t     lock;
+        filter_chain_t  *chain_static;
+        filter_chain_t  *chain_interactive;
+    } filter;
 
     /* */
     vlc_mouse_t     mouse;
@@ -141,6 +156,7 @@ void vout_ControlChangeCropWindow(vout_thread_t *, int x, int y, int width, int
 void vout_ControlChangeCropBorder(vout_thread_t *, int left, int top, int right, int bottom);
 void vout_ControlChangeFilters(vout_thread_t *, const char *);
 void vout_ControlChangeSubFilters(vout_thread_t *, const char *);
+void vout_ControlChangeSubMargin(vout_thread_t *, int);
 
 /* */
 void vout_IntfInit( vout_thread_t * );
@@ -157,6 +173,7 @@ void vout_DisplayWrapper(vout_thread_t *, picture_t *);
 /* */
 int spu_ProcessMouse(spu_t *, const vlc_mouse_t *, const video_format_t *);
 void spu_Attach( spu_t *, vlc_object_t *input, bool );
+void spu_ChangeMargin(spu_t *, int);
 
 #endif