- }
-
- /* Parse URL */
- p_access->p_source = p_source;
- if( p_source )
- {
- msg_Dbg( p_obj, "creating access filter '%s'", psz_access );
- p_access->psz_access = strdup( p_source->psz_access );
- p_access->psz_path = strdup( p_source->psz_path );
- p_access->psz_demux = strdup( p_source->psz_demux );
- }
- else
- {
- p_access->psz_path = strdup( psz_path );
- p_access->psz_access =
- b_quick ? strdup( "file" ) : strdup( psz_access );
- p_access->psz_demux = strdup( psz_demux );
-
- if( !b_quick )
- msg_Dbg( p_obj, "creating access '%s' path='%s'",
- psz_access, psz_path );
- }
+
+ /* */
+
+ p_access->p_input = p_parent_input;
+
+ p_access->psz_access = strdup( psz_access );
+ p_access->psz_location = strdup( psz_location );
+ p_access->psz_filepath = get_path( psz_location );
+ p_access->psz_demux = strdup( psz_demux );
+ if( p_access->psz_access == NULL || p_access->psz_location == NULL
+ || p_access->psz_demux == NULL )
+ goto error;
+
+ msg_Dbg( p_obj, "creating access '%s' location='%s', path='%s'",
+ psz_access, psz_location,
+ p_access->psz_filepath ? p_access->psz_filepath : "(null)" );