vlc | branch: master | Steve Lhomme <[email protected]> | Thu Feb 7 13:24:40 2019 +0100| [94f1b134e51f2970136230943354c2ae87c4633d] | committer: Steve Lhomme
image: clean resetting of the es_format on metadata change The formats are always cleaned in DeleteConverter() so they need to be safe. Technically converters probably don't handle on the fly size change but that's a different issue. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=94f1b134e51f2970136230943354c2ae87c4633d --- src/misc/image.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/misc/image.c b/src/misc/image.c index a7f591157d..00e09c3952 100644 --- a/src/misc/image.c +++ b/src/misc/image.c @@ -255,8 +255,10 @@ static picture_t *ImageRead( image_handler_t *p_image, block_t *p_block, else { /* Filters should handle on-the-fly size changes */ - p_image->p_converter->fmt_in = p_image->p_dec->fmt_out; - p_image->p_converter->fmt_out.video = *p_fmt_out; + es_format_Clean( &p_image->p_converter->fmt_in ); + es_format_Copy( &p_image->p_converter->fmt_in, &p_image->p_dec->fmt_out ); + video_format_Clean( &p_image->p_converter->fmt_out.video ); + video_format_Copy( &p_image->p_converter->fmt_out.video, p_fmt_out); } p_pic = p_image->p_converter->pf_video_filter( p_image->p_converter, p_pic ); @@ -419,8 +421,10 @@ static block_t *ImageWrite( image_handler_t *p_image, picture_t *p_pic, else { /* Filters should handle on-the-fly size changes */ - p_image->p_converter->fmt_in.video = *p_fmt_in; - p_image->p_converter->fmt_out.video = p_image->p_enc->fmt_in.video; + es_format_Clean( &p_image->p_converter->fmt_in ); + es_format_InitFromVideo( &p_image->p_converter->fmt_in, p_fmt_in ); + es_format_Clean( &p_image->p_converter->fmt_out ); + es_format_Copy( &p_image->p_converter->fmt_out, &p_image->p_enc->fmt_in ); } picture_Hold( p_pic ); @@ -553,8 +557,10 @@ static picture_t *ImageConvert( image_handler_t *p_image, picture_t *p_pic, else { /* Filters should handle on-the-fly size changes */ - p_image->p_converter->fmt_in.video = *p_fmt_in; - p_image->p_converter->fmt_out.video = *p_fmt_out; + es_format_Clean( &p_image->p_converter->fmt_in ); + es_format_InitFromVideo( &p_image->p_converter->fmt_in, p_fmt_in ); + es_format_Clean( &p_image->p_converter->fmt_out ); + es_format_InitFromVideo( &p_image->p_converter->fmt_out, p_fmt_out ); } picture_Hold( p_pic ); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
