vlc | branch: master | Rémi Denis-Courmont <r...@remlab.net> | Mon Aug 13 15:54:12 2018 +0300| [f14ce6d5aba7e58142290f4c0492c7fe7f972082] | committer: Rémi Denis-Courmont
vout/osd: do not queue an event to queue an event Generate the OSD title subpicture directly, and only then queue the resulting SPU to the video output as an event. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f14ce6d5aba7e58142290f4c0492c7fe7f972082 --- src/video_output/control.c | 1 - src/video_output/control.h | 1 - src/video_output/video_output.c | 20 ++++++-------------- 3 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/video_output/control.c b/src/video_output/control.c index 8b3da801e4..1b9b1eaee4 100644 --- a/src/video_output/control.c +++ b/src/video_output/control.c @@ -43,7 +43,6 @@ void vout_control_cmd_Clean(vout_control_cmd_t *cmd) if (cmd->subpicture) subpicture_Delete(cmd->subpicture); break; - case VOUT_CONTROL_OSD_TITLE: case VOUT_CONTROL_CHANGE_FILTERS: free(cmd->string); break; diff --git a/src/video_output/control.h b/src/video_output/control.h index 6f0e9c5382..85155baddb 100644 --- a/src/video_output/control.h +++ b/src/video_output/control.h @@ -40,7 +40,6 @@ enum { #endif VOUT_CONTROL_SUBPICTURE, /* subpicture */ VOUT_CONTROL_FLUSH_SUBPICTURE, /* integer */ - VOUT_CONTROL_OSD_TITLE, /* string */ VOUT_CONTROL_CHANGE_FILTERS, /* string */ VOUT_CONTROL_CHANGE_INTERLACE, /* boolean */ diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 6e25d292a2..122f82eeb3 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -370,7 +370,12 @@ void vout_NextPicture(vout_thread_t *vout, vlc_tick_t *duration) void vout_DisplayTitle(vout_thread_t *vout, const char *title) { assert(title); - vout_control_PushString(&vout->p->control, VOUT_CONTROL_OSD_TITLE, title); + + if (!vout->p->title.show) + return; + + vout_OSDText(vout, VOUT_SPU_CHANNEL_OSD, vout->p->title.position, + VLC_TICK_FROM_MS(vout->p->title.timeout), title); } void vout_MouseState(vout_thread_t *vout, const vlc_mouse_t *mouse) @@ -1308,16 +1313,6 @@ static void ThreadFlushSubpicture(vout_thread_t *vout, int channel) spu_ClearChannel(vout->p->spu, channel); } -static void ThreadDisplayOsdTitle(vout_thread_t *vout, const char *string) -{ - if (!vout->p->title.show) - return; - - vout_OSDText(vout, VOUT_SPU_CHANNEL_OSD, - vout->p->title.position, VLC_TICK_FROM_MS(vout->p->title.timeout), - string); -} - static void ThreadChangePause(vout_thread_t *vout, bool is_paused, vlc_tick_t date) { assert(!vout->p->pause.is_on || !is_paused); @@ -1691,9 +1686,6 @@ static int ThreadControl(vout_thread_t *vout, vout_control_cmd_t cmd) case VOUT_CONTROL_FLUSH_SUBPICTURE: ThreadFlushSubpicture(vout, cmd.integer); break; - case VOUT_CONTROL_OSD_TITLE: - ThreadDisplayOsdTitle(vout, cmd.string); - break; case VOUT_CONTROL_CHANGE_FILTERS: ThreadChangeFilters(vout, NULL, cmd.string != NULL ? _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits