diff options
Diffstat (limited to 'libhb/sync.c')
-rw-r--r-- | libhb/sync.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libhb/sync.c b/libhb/sync.c index c14d96166..f002434ce 100644 --- a/libhb/sync.c +++ b/libhb/sync.c @@ -227,6 +227,12 @@ static void InitSubtitle( hb_job_t * job, hb_sync_video_t * sync, int i ) } } +static void CloseSubtitle(hb_sync_video_t * sync, int ii) +{ + hb_buffer_close(&sync->subtitle_sanitizer[ii].list_current); + hb_buffer_close(&sync->subtitle_sanitizer[ii].last); +} + /*********************************************************************** * Close Video *********************************************************************** @@ -237,6 +243,7 @@ void syncVideoClose( hb_work_object_t * w ) hb_work_private_t * pv = w->private_data; hb_job_t * job = pv->job; hb_sync_video_t * sync = &pv->type.video; + int ii; // Wake up audio sync if it's still waiting on condition. pv->common->pts_offset = 0; @@ -266,6 +273,13 @@ void syncVideoClose( hb_work_object_t * w ) sync->drops, sync->dups ); } + int count = hb_list_count(job->list_subtitle); + for( ii = 0; ii < count; ii++ ) + { + CloseSubtitle(sync, ii); + } + free(sync->subtitle_sanitizer); + hb_lock( pv->common->mutex ); if ( --pv->common->ref == 0 ) { |