]> git.sesse.net Git - vlc/commitdiff
transcode/video.c: Do not leak mutex/conditional or fifo in transcode_video_new().
authorJean-Paul Saman <jpsaman@videolan.org>
Wed, 17 Apr 2013 09:52:26 +0000 (11:52 +0200)
committerJean-Paul Saman <jpsaman@videolan.org>
Wed, 17 Apr 2013 10:06:52 +0000 (12:06 +0200)
Do not leak mutex/conditional or fifo in transcode_video_new() its
error path when p_sys->i_thread > 1.

modules/stream_out/transcode/video.c

index fc1a96256ace0c7370f28603f9f9489246019be3..a0133ee403c219f53781967804c3aa3493e6faf9 100644 (file)
@@ -234,6 +234,8 @@ int transcode_video_new( sout_stream_t *p_stream, sout_stream_id_t *id )
         if( p_sys->pp_pics == NULL )
         {
             msg_Err( p_stream, "cannot create picture fifo" );
+            vlc_mutex_destroy( &p_sys->lock_out );
+            vlc_cond_destroy( &p_sys->cond );
             module_unneed( id->p_decoder, id->p_decoder->p_module );
             id->p_decoder->p_module = NULL;
             free( id->p_decoder->p_owner );
@@ -244,6 +246,9 @@ int transcode_video_new( sout_stream_t *p_stream, sout_stream_id_t *id )
         if( vlc_clone( &p_sys->thread, EncoderThread, p_sys, i_priority ) )
         {
             msg_Err( p_stream, "cannot spawn encoder thread" );
+            vlc_mutex_destroy( &p_sys->lock_out );
+            vlc_cond_destroy( &p_sys->cond );
+            picture_fifo_Delete( p_sys->pp_pics );
             module_unneed( id->p_decoder, id->p_decoder->p_module );
             id->p_decoder->p_module = NULL;
             free( id->p_decoder->p_owner );