- p_input->p_demux_data = (void*)p_input->p_access_data;
- p_dvd = (dvd_data_t *)p_input->p_demux_data;
+ p_demux = p_input->p_demux_data = malloc( sizeof(demux_sys_t ) );
+ if( p_demux == NULL )
+ {
+ return -1;
+ }
+
+ p_input->p_private = (void*)&p_demux->mpeg;
+ p_demux->p_module = module_Need( p_input, "mpeg-system", NULL );
+ if( p_demux->p_module == NULL )
+ {
+ free( p_input->p_demux_data );
+ return -1;
+ }
+
+ p_input->p_demux_data->p_dvd = p_dvd;