Commit 34f69d64 authored by Clément Stenac's avatar Clément Stenac

Fix crash in subpictures rendering

parent 90e5abe9
...@@ -528,11 +528,10 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -528,11 +528,10 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
p_fmt->i_height; p_fmt->i_height;
} }
if (p_subpic->p_region->fmt.i_aspect == 0) if ( p_region && p_subpic->p_region->fmt.i_aspect == 0 )
/* Set subtitle to be the same aspect ratio as the background /* Set subtitle to be the same aspect ratio as the background
source video. source video. */
*/ p_subpic->p_region->fmt.i_aspect = p_pic_src->format.i_aspect;
p_subpic->p_region->fmt.i_aspect = p_pic_src->format.i_aspect;
i_scale_width = i_scale_width_orig; i_scale_width = i_scale_width_orig;
i_scale_height = i_scale_height_orig; i_scale_height = i_scale_height_orig;
...@@ -541,20 +540,20 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt, ...@@ -541,20 +540,20 @@ void spu_RenderSubpictures( spu_t *p_spu, video_format_t *p_fmt,
p_subpic->i_original_picture_height ) p_subpic->i_original_picture_height )
{ {
i_scale_width = i_scale_width * p_fmt->i_width / i_scale_width = i_scale_width * p_fmt->i_width /
p_subpic->i_original_picture_width; p_subpic->i_original_picture_width;
i_scale_height = i_scale_height * p_fmt->i_height / i_scale_height = i_scale_height * p_fmt->i_height /
p_subpic->i_original_picture_height; p_subpic->i_original_picture_height;
} }
/* Take care of the aspect ratio */ /* Take care of the aspect ratio */
if( p_region && p_subpic->p_region->fmt.i_aspect !=
if( p_subpic->p_region->fmt.i_aspect != p_pic_src->format.i_aspect) p_pic_src->format.i_aspect)
{ {
i_scale_width = (p_subpic->p_region->fmt.i_aspect*1000) / i_scale_width = (p_subpic->p_region->fmt.i_aspect*1000) /
p_pic_src->format.i_aspect; p_pic_src->format.i_aspect;
i_subpic_x = p_subpic->i_x * i_scale_width / 1000; i_subpic_x = p_subpic->i_x * i_scale_width / 1000;
} else } else
i_subpic_x = p_subpic->i_x; i_subpic_x = p_subpic->i_x;
if( p_region && p_region->fmt.i_sar_num * p_fmt->i_sar_den != if( p_region && p_region->fmt.i_sar_num * p_fmt->i_sar_den !=
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment