case DEMUX_SET_NEXT_DEMUX_TIME:
case DEMUX_GET_TITLE_INFO:
case DEMUX_SET_GROUP:
+ case DEMUX_GET_ATTACHMENTS:
return VLC_EGENERIC;
default:
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;
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 );
if( p_demux->pf_demux( p_demux ) <= 0 ) break;
}
- p_demux->b_die = VLC_TRUE;
+ vlc_object_kill( p_demux );
return VLC_SUCCESS;
}