[vlc-devel] [PATCH] avcodec: Fix unprotected accesses to pts

Rémi Denis-Courmont remi at remlab.net
Wed Oct 9 14:17:18 CEST 2019


Probably ok

Le 9 octobre 2019 15:16:57 GMT+03:00, "Hugo Beauzée-Luyssen" <hugo at beauzee.fr> a écrit :
>---
> modules/codec/avcodec/video.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
>diff --git a/modules/codec/avcodec/video.c
>b/modules/codec/avcodec/video.c
>index b9fa684290..0b51cd940b 100644
>--- a/modules/codec/avcodec/video.c
>+++ b/modules/codec/avcodec/video.c
>@@ -702,7 +702,6 @@ static void Flush( decoder_t *p_dec )
>     decoder_sys_t *p_sys = p_dec->p_sys;
>     AVCodecContext *p_context = p_sys->p_context;
> 
>-    date_Set(&p_sys->pts, VLC_TICK_INVALID); /* To make sure we
>recover properly */
>     p_sys->i_late_frames = 0;
>     p_sys->framedrop = FRAMEDROP_NONE;
>     cc_Flush( &p_sys->cc );
>@@ -716,6 +715,8 @@ static void Flush( decoder_t *p_dec )
>     if( avcodec_is_open( p_context ) )
>         avcodec_flush_buffers( p_context );
> 
>+    date_Set(&p_sys->pts, VLC_TICK_INVALID); /* To make sure we
>recover properly */
>+
>     /* Reset cancel state to false */
>     decoder_AbortPictures( p_dec, false );
> }
>@@ -759,7 +760,9 @@ static block_t * filter_earlydropped_blocks(
>decoder_t *p_dec, block_t *block )
>                             "dropping frame (computer too slow ?)",
>     p_sys->p_context->reordered_opaque - p_sys->i_last_output_frame );
> 
>+            vlc_mutex_lock(&p_sys->lock);
>date_Set( &p_sys->pts, VLC_TICK_INVALID ); /* To make sure we recover
>properly */
>+            vlc_mutex_unlock(&p_sys->lock);
>             block_Release( block );
>             p_sys->i_late_frames--;
>             return NULL;
>@@ -1339,7 +1342,10 @@ static int DecodeVideo( decoder_t *p_dec,
>block_t *p_block )
>         p_sys->i_last_output_frame = -1;
>         p_sys->framedrop = FRAMEDROP_NONE;
> 
>+        vlc_mutex_lock(&p_sys->lock);
>date_Set( &p_sys->pts, VLC_TICK_INVALID ); /* To make sure we recover
>properly */
>+        vlc_mutex_unlock(&p_sys->lock);
>+
>         cc_Flush( &p_sys->cc );
> 
>         if( p_block->i_flags & BLOCK_FLAG_CORRUPTED )
>-- 
>2.20.1
>
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20191009/12f9f51d/attachment.html>


More information about the vlc-devel mailing list