[vlc-devel] [PATCH 03/21] video_output: set the deadline directly when the next frame date is known
Steve Lhomme
robux4 at ycbcr.xyz
Wed Sep 16 08:00:01 CEST 2020
On 2020-09-15 18:01, Rémi Denis-Courmont wrote:
> Le tiistaina 15. syyskuuta 2020, 15.36.08 EEST Steve Lhomme a écrit :
>> We already know the deadline from the previous frame timeout, the deadline
>> for the next frame takes precedence if there is one.
>>
>> date_next can never be invalid now.
>>
>> We replace the test on frame_by_frame by a test on deadline not being NULL,
>> as it makes more sense when setting its value.
>> ---
>> src/video_output/video_output.c | 14 +++++++-------
>> 1 file changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/video_output/video_output.c
>> b/src/video_output/video_output.c index 906734b2cb1..32890966dd0 100644
>> --- a/src/video_output/video_output.c
>> +++ b/src/video_output/video_output.c
>> @@ -1501,7 +1501,6 @@ static int ThreadDisplayPicture(vout_thread_sys_t
>> *vout, vlc_tick_t *deadline) const vlc_tick_t render_delay =
>> vout_chrono_GetHigh(&sys->render) + VOUT_MWAIT_TOLERANCE;
>>
>> bool drop_next_frame = frame_by_frame;
>> - vlc_tick_t date_next = VLC_TICK_INVALID;
>>
>> /* FIXME/XXX we must redisplay the last decoded picture (because
>> * of potential vout updated, or filters update or SPU update)
>> @@ -1531,20 +1530,21 @@ static int ThreadDisplayPicture(vout_thread_sys_t
>> *vout, vlc_tick_t *deadline) * the current one). */
>> paused = true;
>> }
>> + else
>> {
>> - date_next = next_system_pts - render_delay;
>> + const vlc_tick_t date_next = next_system_pts - render_delay;
>> if (date_next <= system_now)
>> drop_next_frame = true;
>> +
>> + if (deadline) {
>
> Key strokes are cheap. You can compare with NULL, especially when it's not
> exactly obvious from the identifier that it's a pointer rather than a scalar
> value.
OK
>> + if (*deadline == VLC_TICK_INVALID || date_next < *deadline)
>> + *deadline = date_next;
>> + }
>> }
>> }
>>
>> bool force_refresh = !drop_next_frame && refresh;
>>
>> - if (!frame_by_frame) {
>> - if (date_next != VLC_TICK_INVALID && date_next < *deadline)
>> - *deadline = date_next;
>> - }
>> -
>> if (!first && !refresh && !drop_next_frame) {
>> return VLC_EGENERIC;
>> }
>
>
> --
> Rémi Denis-Courmont
> http://www.remlab.net/
>
>
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
>
More information about the vlc-devel
mailing list