X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faccess%2Frtsp%2Faccess.c;h=af182cccc44cc04c425705ccb65087d76085fe12;hb=6ee1e193fd896ab9a4729fde14f009d9ce629815;hp=7ae26f0d9e698d634013754e049d96fc9f416d8e;hpb=d1d7614168dbc3f6a689003be66c8532b6180d01;p=vlc diff --git a/modules/access/rtsp/access.c b/modules/access/rtsp/access.c index 7ae26f0d9e..af182cccc4 100644 --- a/modules/access/rtsp/access.c +++ b/modules/access/rtsp/access.c @@ -2,7 +2,7 @@ * access.c: Real rtsp input ***************************************************************************** * Copyright (C) 2005 VideoLAN - * $Id: file.c 10310 2005-03-11 22:36:40Z anil $ + * $Id$ * * Authors: Gildas Bazin * @@ -18,16 +18,17 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** * Preamble *****************************************************************************/ #include -#include +#include +#include -#include "network.h" +#include #include "rtsp.h" #include "real.h" @@ -39,11 +40,11 @@ static void Close( vlc_object_t * ); #define CACHING_TEXT N_("Caching value (ms)") #define CACHING_LONGTEXT N_( \ - "Allows you to modify the default caching value for RTSP streams. This " \ - "value should be set in millisecond units." ) + "Caching value for RTSP streams. This " \ + "value should be set in milliseconds." ) vlc_module_begin(); - set_description( _("Standard filesystem file input") ); + set_description( _("Real RTSP") ); set_shortname( _("Real RTSP") ); set_category( CAT_INPUT ); set_subcategory( SUBCAT_INPUT_ACCESS ); @@ -53,6 +54,7 @@ vlc_module_begin(); set_callbacks( Open, Close ); add_shortcut( "realrtsp" ); add_shortcut( "rtsp" ); + add_shortcut( "pnm" ); vlc_module_end(); @@ -84,10 +86,12 @@ static int RtspConnect( void *p_userdata, char *psz_server, int i_port ) access_sys_t *p_sys = p_access->p_sys; /* Open connection */ - p_sys->fd = net_OpenTCP( p_access, psz_server, i_port ); + p_sys->fd = net_ConnectTCP( p_access, psz_server, i_port ); if( p_sys->fd < 0 ) { msg_Err( p_access, "cannot connect to %s:%d", psz_server, i_port ); + intf_UserFatal( p_access, VLC_FALSE, _("Connection failed"), + _("VLC could not connect to \"%s:%d\"."), psz_server, i_port ); return VLC_EGENERIC; } @@ -149,7 +153,13 @@ static int Open( vlc_object_t *p_this ) char *psz_server = 0; int i_result; - if( !p_access->b_force ) return VLC_EGENERIC; + if( !p_access->psz_access || ( + strncmp( p_access->psz_access, "rtsp", 4 ) && + strncmp( p_access->psz_access, "pnm", 3 ) && + strncmp( p_access->psz_access, "realrtsp", 8 ) )) + { + return VLC_EGENERIC; + } p_access->pf_read = NULL; p_access->pf_block = BlockRead; @@ -214,16 +224,19 @@ static int Open( vlc_object_t *p_this ) msg_Err( p_access, "rtsp session can not be established" ); + intf_UserFatal( p_access, VLC_FALSE, _("Session failed"), + _("The requested RTSP session could not be established.") ); goto error; } p_sys->p_header = block_New( p_access, 4096 ); p_sys->p_header->i_buffer = - rmff_dump_header( h, p_sys->p_header->p_buffer, 1024 ); + rmff_dump_header( h, (char *)p_sys->p_header->p_buffer, 1024 ); + rmff_free_header( h ); } else { - msg_Dbg( p_access, "only real/helix rtsp servers supported for now" ); + msg_Warn( p_access, "only real/helix rtsp servers supported for now" ); goto error; } @@ -231,6 +244,7 @@ static int Open( vlc_object_t *p_this ) var_Create( p_access, "realrtsp-caching", VLC_VAR_INTEGER | VLC_VAR_DOINHERIT); + if( psz_server ) free( psz_server ); return VLC_SUCCESS; error: @@ -292,7 +306,6 @@ static int Seek( access_t *p_access, int64_t i_pos ) *****************************************************************************/ static int Control( access_t *p_access, int i_query, va_list args ) { - access_sys_t *p_sys = p_access->p_sys; vlc_bool_t *pb_bool; int *pi_int; int64_t *pi_64;