vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Jan 2 12:13:57 2019 +0200| [163ae591ec62f0178492df34f1ee1670a2ebe781] | committer: Rémi Denis-Courmont
display: use function rather than event for invalid pictures Handling is the same for all (two) cases and does not depend on the owner. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=163ae591ec62f0178492df34f1ee1670a2ebe781 --- include/vlc_vout_display.h | 17 ++++------------- src/libvlccore.sym | 1 + src/video_output/display.c | 21 ++++++++++----------- 3 files changed, 15 insertions(+), 24 deletions(-) diff --git a/include/vlc_vout_display.h b/include/vlc_vout_display.h index 54d13b549f..343a24419f 100644 --- a/include/vlc_vout_display.h +++ b/include/vlc_vout_display.h @@ -108,7 +108,7 @@ typedef struct { typedef struct { bool is_slow; /* The picture memory has slow read/write */ bool has_double_click; /* Is double-click generated */ - bool has_pictures_invalid; /* Will VOUT_DISPLAY_EVENT_PICTURES_INVALID be used */ + bool has_pictures_invalid; /* May invoke vout_display_SendEventPicturesInvalid() */ bool can_scale_spu; /* Handles subpictures with a non default zoom factor */ const vlc_fourcc_t *subpicture_chromas; /* List of supported chromas for subpicture rendering. */ } vout_display_info_t; @@ -117,8 +117,8 @@ typedef struct { * Control query for vout_display_t */ enum { - /* Ask to reset the internal buffers after a VOUT_DISPLAY_EVENT_PICTURES_INVALID - * request. + /* Ask to reset the internal buffers after calling + * vout_display_SendEventPicturesInvalid(). */ VOUT_DISPLAY_RESET_PICTURES, /* const vout_display_cfg_t *, es_format_t * */ @@ -163,12 +163,6 @@ enum { * Only the transition will be retained and acted upon. */ enum { - /* TODO: - * ZOOM ? DISPLAY_FILLED ? ON_TOP ? - */ - /* */ - VOUT_DISPLAY_EVENT_PICTURES_INVALID, /* The buffer are now invalid and need to be changed */ - /* VR navigation */ VOUT_DISPLAY_EVENT_VIEWPOINT_MOVED, }; @@ -342,10 +336,7 @@ static inline void vout_display_SendEvent(vout_display_t *vd, int query, ...) va_end(args); } -static inline void vout_display_SendEventPicturesInvalid(vout_display_t *vd) -{ - vout_display_SendEvent(vd, VOUT_DISPLAY_EVENT_PICTURES_INVALID); -} +VLC_API void vout_display_SendEventPicturesInvalid(vout_display_t *vd); #if defined(_WIN32) || defined(__OS2__) VLC_DEPRECATED diff --git a/src/libvlccore.sym b/src/libvlccore.sym index a71433b0ae..b454b18650 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -748,6 +748,7 @@ vout_window_Enable vout_window_Disable vout_display_GetDefaultDisplaySize vout_display_PlacePicture +vout_display_SendEventPicturesInvalid vout_display_SendMouseMovedDisplayCoordinates xml_Create text_style_Copy diff --git a/src/video_output/display.c b/src/video_output/display.c index cf863df80e..762a61d435 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -373,6 +373,15 @@ static void VoutDisplayDestroyRender(vout_display_t *vd) filter_chain_Delete(osys->converters); } +void vout_display_SendEventPicturesInvalid(vout_display_t *vd) +{ + vout_display_priv_t *osys = container_of(vd, vout_display_priv_t, display); + + msg_Warn(vd, "picture buffers invalidated"); + assert(vd->info.has_pictures_invalid); + atomic_store(&osys->reset_pictures, true); +} + static void VoutDisplayEvent(vout_display_t *vd, int event, va_list args) { vout_display_priv_t *osys = container_of(vd, vout_display_priv_t, display); @@ -382,13 +391,6 @@ static void VoutDisplayEvent(vout_display_t *vd, int event, va_list args) var_SetAddress(osys->vout, "viewpoint-moved", (void *)va_arg(args, const vlc_viewpoint_t *)); break; - - case VOUT_DISPLAY_EVENT_PICTURES_INVALID: { - msg_Warn(vd, "VoutDisplayEvent 'pictures invalid'"); - assert(vd->info.has_pictures_invalid); - atomic_store(&osys->reset_pictures, true); - break; - } default: msg_Err(vd, "VoutDisplayEvent received event %d", event); /* TODO add an assert when all event are handled */ @@ -851,12 +853,9 @@ static void SplitterEvent(vout_display_t *vd, int event, va_list args) //vout_display_owner_sys_t *osys = vd->owner.sys; switch (event) { - case VOUT_DISPLAY_EVENT_PICTURES_INVALID: - VoutDisplayEvent(vd, event, args); - break; - default: msg_Err(vd, "splitter event not implemented: %d", event); + (void) args; break; } } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
