Browse Source

subpicture: don't call text renderer with no text

The text renderers and text to speech module don't produce anything if
there's no text. No need for defensive programming in each module.
pull/162/head
Steve Lhomme 3 years ago
parent
commit
f58c19a8b4
  1. 3
      modules/text_renderer/freetype/freetype.c
  2. 3
      modules/text_renderer/nsspeechsynthesizer.m
  3. 3
      modules/text_renderer/sapi.cpp
  4. 4
      modules/text_renderer/svg.c
  5. 2
      src/video_output/vout_subpictures.c

3
modules/text_renderer/freetype/freetype.c

@ -971,9 +971,6 @@ static subpicture_region_t *Render( filter_t *p_filter,
const subpicture_region_t *p_region_in,
const vlc_fourcc_t *p_chroma_list )
{
if( !p_region_in->p_text )
return NULL;
filter_sys_t *p_sys = p_filter->p_sys;
subpicture_region_t *region = NULL;
bool b_grid = (p_region_in->text_flags & VLC_SUBPIC_TEXT_FLAG_GRID_MODE) != 0;

3
modules/text_renderer/nsspeechsynthesizer.m

@ -104,9 +104,6 @@ static subpicture_region_t *RenderText(filter_t *p_filter,
filter_sys_t *p_sys = p_filter->p_sys;
const text_segment_t *p_segment = p_region_in->p_text;
if (!p_segment)
return NULL;
for ( const text_segment_t *s = p_segment; s != NULL; s = s->p_next ) {
if ( !s->psz_text )
continue;

3
modules/text_renderer/sapi.cpp

@ -129,9 +129,6 @@ static int RenderTextMTA(filter_t *p_filter,
struct filter_sapi *p_sys = static_cast<struct filter_sapi *>( p_filter->p_sys );
const text_segment_t *p_segment = p_region_in->p_text;
if (!p_segment)
return VLC_EGENERIC;
for (const text_segment_t *s = p_segment; s != NULL; s = s->p_next ) {
if (!s->psz_text)
continue;

4
modules/text_renderer/svg.c

@ -332,10 +332,6 @@ static subpicture_region_t *RenderText( filter_t *p_filter,
const subpicture_region_t *p_region_in,
const vlc_fourcc_t *p_chroma_list )
{
/* Sanity check */
if( !p_region_in->p_text )
return NULL;
for( size_t i=0; p_chroma_list[i]; i++ )
{
if( p_chroma_list[i] == VLC_CODEC_BGRA )

2
src/video_output/vout_subpictures.c

@ -321,6 +321,8 @@ static subpicture_region_t *SpuRenderText(spu_t *spu,
{
spu_private_t *sys = spu->p;
assert(subpicture_region_IsText( region ));
if ( region->p_text == NULL )
return NULL;
vlc_mutex_lock(&sys->textlock);
filter_t *text = sys->text;

Loading…
Cancel
Save