summaryrefslogtreecommitdiffstats
path: root/libhb
diff options
context:
space:
mode:
Diffstat (limited to 'libhb')
-rw-r--r--libhb/enclame.c7
-rw-r--r--libhb/encvorbis.c12
-rw-r--r--libhb/encxvid.c3
-rw-r--r--libhb/muxogm.c3
4 files changed, 25 insertions, 0 deletions
diff --git a/libhb/enclame.c b/libhb/enclame.c
index c0b0f9df0..33cfa14c8 100644
--- a/libhb/enclame.c
+++ b/libhb/enclame.c
@@ -68,6 +68,13 @@ int enclameInit( hb_work_object_t * w, hb_job_t * job )
**********************************************************************/
void enclameClose( hb_work_object_t * w )
{
+ hb_work_private_t * pv = w->private_data;
+
+ lame_close( pv->lame );
+ hb_list_empty( &pv->list );
+ free( pv->buf );
+ free( pv );
+ w->private_data = NULL;
}
/***********************************************************************
diff --git a/libhb/encvorbis.c b/libhb/encvorbis.c
index 01c71e844..169cb938f 100644
--- a/libhb/encvorbis.c
+++ b/libhb/encvorbis.c
@@ -120,6 +120,18 @@ int encvorbisInit( hb_work_object_t * w, hb_job_t * job )
**********************************************************************/
void encvorbisClose( hb_work_object_t * w )
{
+ hb_work_private_t * pv = w->private_data;
+
+ vorbis_block_clear( &pv->vb );
+ vorbis_dsp_clear( &pv->vd );
+ vorbis_comment_clear( &pv->vc );
+ vorbis_info_clear( &pv->vi );
+
+ hb_list_empty( &pv->list );
+
+ free( pv->buf );
+ free( pv );
+ w->private_data = NULL;
}
/***********************************************************************
diff --git a/libhb/encxvid.c b/libhb/encxvid.c
index 7768f8e12..6d869ae36 100644
--- a/libhb/encxvid.c
+++ b/libhb/encxvid.c
@@ -131,6 +131,9 @@ void encxvidClose( hb_work_object_t * w )
hb_log( "encxvid: closing libxvidcore" );
xvid_encore( pv->xvid, XVID_ENC_DESTROY, NULL, NULL);
}
+
+ free( pv );
+ w->private_data = NULL;
}
/***********************************************************************
diff --git a/libhb/muxogm.c b/libhb/muxogm.c
index 6a3b1ec5d..656c8e780 100644
--- a/libhb/muxogm.c
+++ b/libhb/muxogm.c
@@ -336,6 +336,8 @@ static int OGMEnd( hb_mux_object_t * m )
{
return -1;
}
+ ogg_stream_clear( &mux_data->os );
+
for( i = 0; i < hb_list_count( title->list_audio ); i++ )
{
audio = hb_list_item( title->list_audio, i );
@@ -344,6 +346,7 @@ static int OGMEnd( hb_mux_object_t * m )
{
return -1;
}
+ ogg_stream_clear( &mux_data->os );
}
fclose( m->file );