Fixes issue for me when doing transcode{}:gather: --sout-keep and subtitle
overlaying from dvbs. Otherwise keeps last subtitles on video if new channel
doesn't contain dvbs track.
also consistenty as spu_Create is called on transcode_spu_new()
-void transcode_spu_close( sout_stream_id_t *id)
+void transcode_spu_close( sout_stream_t *p_stream, sout_stream_id_t *id)
+ sout_stream_sys_t *p_sys = p_stream->p_sys;
/* Close decoder */
if( id->p_decoder->p_module )
module_unneed( id->p_decoder, id->p_decoder->p_module );
/* Close decoder */
if( id->p_decoder->p_module )
module_unneed( id->p_decoder, id->p_decoder->p_module );
/* Close encoder */
if( id->p_encoder->p_module )
module_unneed( id->p_encoder, id->p_encoder->p_module );
/* Close encoder */
if( id->p_encoder->p_module )
module_unneed( id->p_encoder, id->p_encoder->p_module );
+
+ if( p_sys->p_spu )
+ {
+ spu_Destroy( p_sys->p_spu );
+ p_sys->p_spu = NULL;
+ }
}
int transcode_spu_process( sout_stream_t *p_stream,
}
int transcode_spu_process( sout_stream_t *p_stream,
- transcode_spu_close( id );
+ transcode_spu_close( p_stream, id );
if( p_sys->b_osd )
transcode_osd_close( p_stream, id );
else
if( p_sys->b_osd )
transcode_osd_close( p_stream, id );
else
- transcode_spu_close( id );
+ transcode_spu_close( p_stream, id );
/* SPU */
int transcode_spu_new ( sout_stream_t *, sout_stream_id_t * );
/* SPU */
int transcode_spu_new ( sout_stream_t *, sout_stream_id_t * );
-void transcode_spu_close ( sout_stream_id_t * );
+void transcode_spu_close ( sout_stream_t *, sout_stream_id_t * );
int transcode_spu_process( sout_stream_t *, sout_stream_id_t *,
block_t *, block_t ** );
bool transcode_spu_add ( sout_stream_t *, es_format_t *, sout_stream_id_t *);
int transcode_spu_process( sout_stream_t *, sout_stream_id_t *,
block_t *, block_t ** );
bool transcode_spu_add ( sout_stream_t *, es_format_t *, sout_stream_id_t *);