#include <vlc_picture_pool.h>
#include <vlc_vout_display.h>
#include "vout_control.h"
+#include "control.h"
#include "snapshot.h"
#include "statistic.h"
#include "chrono.h"
/* Video output configuration */
config_chain_t *p_cfg;
+ /* */
+ video_format_t fmt_render; /* render format (from the decoder) */
+ video_format_t fmt_in; /* input (modified render) format */
+ video_format_t fmt_out; /* output format (for the video output) */
+
/* Thread & synchronization */
vlc_thread_t thread;
vlc_cond_t change_wait;
bool b_ready;
bool b_done;
bool b_error;
+ vout_control_t control;
/* */
struct {
picture_t *filtered;
} display;
- bool b_picture_empty;
- vlc_cond_t picture_wait;
struct {
mtime_t date;
mtime_t timestamp;
} displayed;
struct {
- bool is_requested;
mtime_t last;
mtime_t timestamp;
} step;
mtime_t date;
} pause;
+ /* OSD title configuration */
struct {
bool show;
mtime_t timeout;
int position;
- char *value;
} title;
- /* */
- vlc_mutex_t vfilter_lock; /**< video filter2 lock */
-
/* */
unsigned int i_par_num; /**< monitor pixel aspect-ratio */
unsigned int i_par_den; /**< monitor pixel aspect-ratio */
vout_statistic_t statistic;
/* Filter chain */
- bool b_first_vout; /* True if it is the first vout of the filter chain */
char *psz_filter_chain;
bool b_filter_change;
/* Video filter2 chain */
+ vlc_mutex_t vfilter_lock;
filter_chain_t *p_vf2_chain;
- char *psz_vf2;
/* Snapshot interface */
vout_snapshot_t snapshot;
uint16_t i_changes; /**< changes made to the thread.
\see \ref vout_changes */
- unsigned b_fullscreen:1; /**< toogle fullscreen display */
- unsigned b_on_top:1; /**< stay always on top of other windows */
};
/** \defgroup vout_changes Flags for changes
* thread changed a variable
* @{
*/
-/** b_autoscale changed */
-#define VOUT_SCALE_CHANGE 0x0008
-/** b_on_top changed */
-#define VOUT_ON_TOP_CHANGE 0x0010
-/** b_fullscreen changed */
-#define VOUT_FULLSCREEN_CHANGE 0x0040
-/** i_zoom changed */
-#define VOUT_ZOOM_CHANGE 0x0080
/** cropping parameters changed */
#define VOUT_CROP_CHANGE 0x1000
/** aspect ratio changed */
#define VOUT_ASPECT_CHANGE 0x2000
/**@}*/
+/* TODO to move them to vlc_vout.h */
+void vout_ControlChangeFullscreen(vout_thread_t *, bool fullscreen);
+void vout_ControlChangeOnTop(vout_thread_t *, bool is_on_top);
+void vout_ControlChangeDisplayFilled(vout_thread_t *, bool is_filled);
+void vout_ControlChangeZoom(vout_thread_t *, int num, int den);
/* */
void vout_IntfInit( vout_thread_t * );
void vout_RenderWrapper(vout_thread_t *, picture_t *);
void vout_DisplayWrapper(vout_thread_t *, picture_t *);
+/* */
+int spu_ProcessMouse(spu_t *, const vlc_mouse_t *, const video_format_t *);
+
+/* */
+int vout_ShowTextRelative( vout_thread_t *, int, char *, const text_style_t *, int, int, int, mtime_t );
+int vout_ShowTextAbsolute( vout_thread_t *, int, const char *, const text_style_t *, int, int, int, mtime_t, mtime_t );
+
+
#endif