,p_ev(NULL)
{
vlc_mutex_init( &demuxer, &lock_demuxer );
+ StartUiThread();
}
virtual ~demux_sys_t()
/* add all es */
msg_Dbg( &sys.demuxer, "found %d es", tracks.size() );
- sys.StopUiThread();
+
for( i_track = 0; i_track < tracks.size(); i_track++ )
{
if( tracks[i_track]->fmt.i_cat == UNKNOWN_ES )
else if( !strcmp( tracks[i_track]->psz_codec, "B_VOBBTN" ) )
{
tracks[i_track]->fmt.i_codec = VLC_FOURCC( 's','p','u',' ' );
- sys.StartUiThread();
}
else
{
p_sys->dvd_interpretor.SetSPRM( 0x88, best );
p_sys->dvd_interpretor.Interpret( button_ptr.cmd.bytes, 8 );
+ msg_Dbg( &p_sys->demuxer, "Processed button %d", best );
+
// select new button
if ( best != p_sys->i_curr_button )
{
{
size_t i_track;
- sys.StopUiThread();
-
for( i_track = 0; i_track < tracks.size(); i_track++ )
{
if ( tracks[i_track]->p_es != NULL )
static int Demux( demux_t *p_demux)
{
demux_sys_t *p_sys = p_demux->p_sys;
+
+ vlc_mutex_lock( &p_sys->lock_demuxer );
+
virtual_segment_c *p_vsegment = p_sys->p_current_segment;
matroska_segment_c *p_segment = p_vsegment->Segment();
if ( p_segment == NULL ) return 0;
int64_t i_block_ref1;
int64_t i_block_ref2;
- vlc_mutex_lock( &p_sys->lock_demuxer );
-
for( ;; )
{
if ( p_sys->demuxer.b_die )