]> git.sesse.net Git - vlc/blobdiff - src/input/demux.c
all: added support for demuxer attachment (Patch by Bernie Purcell)
[vlc] / src / input / demux.c
index fefca84fe38ae03c858e80328981e518b30314b7..62706566fc124e8ce03b805eca99a2974681d56e 100644 (file)
@@ -269,6 +269,7 @@ int demux2_vaControlHelper( stream_t *s,
         case DEMUX_SET_NEXT_DEMUX_TIME:
         case DEMUX_GET_TITLE_INFO:
         case DEMUX_SET_GROUP:
+        case DEMUX_GET_ATTACHMENTS:
             return VLC_EGENERIC;
 
         default:
@@ -310,7 +311,7 @@ stream_t *__stream_DemuxNew( vlc_object_t *p_obj, const char *psz_demux,
 
     if( psz_demux == NULL || *psz_demux == '\0' ) return NULL;
 
-    s = vlc_object_create( p_obj, VLC_OBJECT_STREAM );
+    s = vlc_stream_create( p_obj );
     s->pf_block  = NULL;
     s->pf_read   = DStreamRead;
     s->pf_peek   = DStreamPeek;
@@ -359,8 +360,9 @@ void stream_DemuxDelete( stream_t *s )
     d_stream_sys_t *p_sys = (d_stream_sys_t*)s->p_sys;
     block_t *p_empty;
 
-    s->b_die = VLC_TRUE;
-    if( p_sys->p_demux ) p_sys->p_demux->b_die = VLC_TRUE;
+    vlc_object_kill( s );
+    if( p_sys->p_demux )
+        vlc_object_kill( p_sys->p_demux );
     p_empty = block_New( s, 1 ); p_empty->i_buffer = 0;
     block_FifoPut( p_sys->p_fifo, p_empty );
     vlc_thread_join( s );
@@ -534,7 +536,7 @@ static int DStreamThread( stream_t *s )
         if( p_demux->pf_demux( p_demux ) <= 0 ) break;
     }
 
-    p_demux->b_die = VLC_TRUE;
+    vlc_object_kill( p_demux );
     return VLC_SUCCESS;
 }