# include "config.h"
#endif
-#include <assert.h>
-
#include <vlc_common.h>
#include <vlc_access.h>
#include <vlc_strings.h>
#include <vlc_input.h>
-#include <vlc_memory.h>
#include <vlc_network.h>
#include <vlc_url.h>
static block_t *Block( access_t *p_access );
static ssize_t ReadRedirect( access_t *, uint8_t *, size_t );
-static int Seek( access_t *, int64_t );
+static int Seek( access_t *, uint64_t );
static int Control( access_t *, int, va_list );
static int Describe( access_t *, char **ppsz_location );
-static int Start( access_t *, int64_t );
+static int Start( access_t *, uint64_t );
static void Stop( access_t * );
static int GetPacket( access_t *, chunk_t * );
/* Check proxy */
/* TODO reuse instead http-proxy from http access ? */
- psz_proxy = var_CreateGetString( p_access, "mmsh-proxy" );
- if( !*psz_proxy )
+ psz_proxy = var_CreateGetNonEmptyString( p_access, "mmsh-proxy" );
+ if( !psz_proxy )
{
- char *psz_http_proxy = config_GetPsz( p_access, "http-proxy" );
- if( psz_http_proxy && *psz_http_proxy )
+ char *psz_http_proxy = var_InheritString( p_access, "http-proxy" );
+ if( psz_http_proxy )
{
- free( psz_proxy );
psz_proxy = psz_http_proxy;
var_SetString( p_access, "mmsh-proxy", psz_proxy );
}
- else
- {
- free( psz_http_proxy );
- }
}
- if( *psz_proxy )
+ if( psz_proxy )
{
p_sys->b_proxy = true;
vlc_UrlParse( &p_sys->proxy, psz_proxy, 0 );
+ free( psz_proxy );
}
#ifdef HAVE_GETENV
else
{
- char *psz_proxy = getenv( "http_proxy" );
- if( psz_proxy && *psz_proxy )
+ const char *http_proxy = getenv( "http_proxy" );
+ if( http_proxy )
{
p_sys->b_proxy = true;
- vlc_UrlParse( &p_sys->proxy, psz_proxy, 0 );
+ vlc_UrlParse( &p_sys->proxy, http_proxy, 0 );
}
}
#endif
- free( psz_proxy );
if( p_sys->b_proxy )
{
}
/** \bug we do not autodelete here */
p_new_loc = input_item_New( p_access, psz_location, psz_location );
- input_item_AddSubItem( input_GetItem( p_input ), p_new_loc );
+ input_item_t *p_item = input_GetItem( p_input );
+ input_item_AddSubItem( p_item, p_new_loc );
+ input_item_AddSubItem2( p_item, p_new_loc );
+
vlc_gc_decref( p_new_loc );
vlc_object_release( p_input );
/*****************************************************************************
* Seek: try to go at the right place
*****************************************************************************/
-static int Seek( access_t *p_access, int64_t i_pos )
+static int Seek( access_t *p_access, uint64_t i_pos )
{
access_sys_t *p_sys = p_access->p_sys;
chunk_t ck;
- off_t i_offset;
- off_t i_packet;
+ uint64_t i_offset;
+ uint64_t i_packet;
msg_Dbg( p_access, "seeking to %"PRId64, i_pos );
asf_StreamSelect( &p_sys->asfh,
var_CreateGetInteger( p_access, "mms-maxbitrate" ),
- var_CreateGetInteger( p_access, "mms-all" ),
+ var_CreateGetBool( p_access, "mms-all" ),
var_CreateGetInteger( p_access, "audio" ),
var_CreateGetInteger( p_access, "video" ) );
asf_StreamSelect( &p_sys->asfh,
var_CreateGetInteger( p_access, "mms-maxbitrate" ),
- var_CreateGetInteger( p_access, "mms-all" ),
+ var_CreateGetBool( p_access, "mms-all" ),
var_CreateGetInteger( p_access, "audio" ),
var_CreateGetInteger( p_access, "video" ) );
return VLC_SUCCESS;
if( ck.i_data > 0 )
{
p_sys->i_header += ck.i_data;
- p_sys->p_header = realloc_or_free( p_sys->p_header, p_sys->i_header );
- assert( p_sys->p_header );
+ p_sys->p_header = xrealloc( p_sys->p_header, p_sys->i_header );
memcpy( &p_sys->p_header[p_sys->i_header - ck.i_data],
ck.p_data, ck.i_data );
}
/*****************************************************************************
* Start stream
****************************************************************************/
-static int Start( access_t *p_access, int64_t i_pos )
+static int Start( access_t *p_access, uint64_t i_pos )
{
access_sys_t *p_sys = p_access->p_sys;
int i_streams = 0;