]> granicus.if.org Git - handbrake/commitdiff
Fix closed captioning crash
authorjstebbins <jstebbins.hb@gmail.com>
Thu, 10 Nov 2011 23:29:23 +0000 (23:29 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Thu, 10 Nov 2011 23:29:23 +0000 (23:29 +0000)
Prevent the same CC buffer from being attached to multiple tags.  The
same buffer would get pushed to a fifo multiple times and ultimately
freed multiple times.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4345 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/decmpeg2.c

index 3c84fea5011491dd69bd67f1283f24dc749750cc..f37ee90221b8d493b38c4e111373d71ec1d94243 100644 (file)
@@ -242,6 +242,9 @@ static void extract_mpeg2_captions( hb_libmpeg2_t *m )
 
 static void next_tag( hb_libmpeg2_t *m, hb_buffer_t *buf_es )
 {
+    if( m->tags[m->cur_tag].cc_buf == m->last_cc1_buf )
+        m->last_cc1_buf = NULL;
+
     m->cur_tag = ( m->cur_tag + 1 ) & (NTAGS-1);
     if ( m->tags[m->cur_tag].start >= 0 || m->tags[m->cur_tag].cc_buf )
     {