vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Jan 27 16:26:02 2019 +0200| [62f49fadfcf97ff9c7cf527755fc59e0f8d6775c] | committer: Rémi Denis-Courmont
vout: process vout_NextPicture() directly Since the caller waits for completion, there are no benefits to offloading the work to the video output thread. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=62f49fadfcf97ff9c7cf527755fc59e0f8d6775c --- src/video_output/control.h | 3 --- src/video_output/video_output.c | 21 ++++++--------------- 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/video_output/control.h b/src/video_output/control.h index fcccc53d2a..80b1ec08ed 100644 --- a/src/video_output/control.h +++ b/src/video_output/control.h @@ -40,8 +40,6 @@ enum { VOUT_CONTROL_CHANGE_FILTERS, /* string */ VOUT_CONTROL_CHANGE_INTERLACE, /* boolean */ - VOUT_CONTROL_STEP, /* time_ptr */ - VOUT_CONTROL_MOUSE_STATE, /* vlc_mouse_t */ VOUT_CONTROL_DISPLAY_SIZE, /* window */ VOUT_CONTROL_DISPLAY_FILLED, /* bool */ @@ -59,7 +57,6 @@ typedef struct { union { bool boolean; - vlc_tick_t *time_ptr; char *string; int integer; struct { diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 413e8d8199..a7bb5dec29 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -478,16 +478,6 @@ bool vout_IsEmpty(vout_thread_t *vout) return !picture; } -void vout_NextPicture(vout_thread_t *vout, vlc_tick_t *duration) -{ - vout_control_cmd_t cmd; - vout_control_cmd_Init(&cmd, VOUT_CONTROL_STEP); - cmd.time_ptr = duration; - - vout_control_Push(&vout->p->control, &cmd); - vout_control_WaitEmpty(&vout->p->control); -} - void vout_DisplayTitle(vout_thread_t *vout, const char *title) { assert(title); @@ -1533,15 +1523,18 @@ void vout_Flush(vout_thread_t *vout, vlc_tick_t date) vout_control_Release(&sys->control); } -static void ThreadStep(vout_thread_t *vout, vlc_tick_t *duration) +void vout_NextPicture(vout_thread_t *vout, vlc_tick_t *duration) { *duration = 0; + vout_control_Hold(&vout->p->control); if (vout->p->step.last == VLC_TICK_INVALID) vout->p->step.last = vout->p->displayed.timestamp; - if (ThreadDisplayPicture(vout, NULL)) + if (ThreadDisplayPicture(vout, NULL)) { + vout_control_Release(&vout->p->control); return; + } vout->p->step.timestamp = vout->p->displayed.timestamp; @@ -1551,6 +1544,7 @@ static void ThreadStep(vout_thread_t *vout, vlc_tick_t *duration) vout->p->step.last = vout->p->step.timestamp; /* TODO advance subpicture by the duration ... */ } + vout_control_Release(&vout->p->control); } static void ThreadProcessMouseState(vout_thread_t *vout, @@ -1798,9 +1792,6 @@ static int ThreadControl(vout_thread_t *vout, vout_control_cmd_t cmd) ThreadChangeFilters(vout, NULL, vout->p->filter.configuration, cmd.boolean ? 1 : 0, false); break; - case VOUT_CONTROL_STEP: - ThreadStep(vout, cmd.time_ptr); - break; case VOUT_CONTROL_MOUSE_STATE: ThreadProcessMouseState(vout, &cmd.mouse); break; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
