]> git.sesse.net Git - vlc/commitdiff
INPUT: Properly remove SDT and EPG entries on exit
authorMarian Ďurkovič <md@bts.sk>
Mon, 14 Sep 2009 14:52:31 +0000 (16:52 +0200)
committerMarian Ďurkovič <md@bts.sk>
Mon, 14 Sep 2009 14:52:31 +0000 (16:52 +0200)
src/input/es_out.c

index 500f49dc4e07e2abcdd996fca1a70b7c2f35c1a1..ab4b5897a8694e96f494041361e058c8dcbc7e88 100644 (file)
@@ -331,6 +331,7 @@ es_out_t *input_EsOutNew( input_thread_t *p_input, int i_rate )
 static void EsOutDelete( es_out_t *out )
 {
     es_out_sys_t *p_sys = out->p_sys;
+    input_thread_t *p_input = p_sys->p_input;
     int i;
 
     if( p_sys->p_sout_record )
@@ -366,6 +367,18 @@ static void EsOutDelete( es_out_t *out )
     {
         es_out_pgrm_t *p_pgrm = p_sys->pgrm[i];
         input_clock_Delete( p_pgrm->p_clock );
+
+        /* Remove SDT and EPG entries */
+        char *psz_cat = EsOutProgramGetMetaName( p_pgrm );
+        input_Control( p_input, INPUT_DEL_INFO, psz_cat, NULL );
+        char *psz_epg;
+        if( asprintf( &psz_epg, "EPG %s", psz_cat ) >= 0 )
+        {
+            input_Control( p_input, INPUT_DEL_INFO, psz_epg, NULL );
+            free( psz_epg );
+        }
+        free( psz_cat );
+
         free( p_pgrm->psz_now_playing );
         free( p_pgrm->psz_publisher );
         free( p_pgrm->psz_name );