[vlc-devel] [PATCH] video_output: keep the decoded timestamp fresh from the decoder

Steve Lhomme robux4 at ycbcr.xyz
Fri Oct 16 12:44:14 CEST 2020


Nevermind, there is no shift involved at this stage.

On 2020-10-16 11:58, Steve Lhomme wrote:
> The timestamp is used as the basis for "step display". It is used to estimate
> the duration of frames (between the current and previous frame). It doesn't
> need to be shifted to the system clock, especially in pause.
> 
> This duration is used to estimate how much extra buffering is needed from the
> source so we shouldn't involve the system clock at all.
> ---
>   src/video_output/video_output.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
> index e93acb2315b..7ca18491e05 100644
> --- a/src/video_output/video_output.c
> +++ b/src/video_output/video_output.c
> @@ -1078,6 +1078,8 @@ static int ThreadDisplayPreparePicture(vout_thread_sys_t *vout, bool reuse,
>               decoded = picture_fifo_Pop(sys->decoder_fifo);
>   
>               if (decoded) {
> +                sys->displayed.timestamp = decoded->date;
> +
>                   if (is_late_dropped && !decoded->b_force) {
>                       const vlc_tick_t system_now = vlc_tick_now();
>                       const vlc_tick_t system_pts =
> @@ -1135,7 +1137,6 @@ static int ThreadDisplayPreparePicture(vout_thread_sys_t *vout, bool reuse,
>               picture_Release(sys->displayed.decoded);
>   
>           sys->displayed.decoded       = picture_Hold(decoded);
> -        sys->displayed.timestamp     = decoded->date;
>           sys->displayed.is_interlaced = !decoded->b_progressive;
>   
>           picture = filter_chain_VideoFilter(sys->filter.chain_static, decoded);
> -- 
> 2.26.2
> 
> _______________________________________________
> 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