func: void av_url_split(char *proto,int proto_size,char *authorization,int authorization_size,char *hostname,int hostname_size,int *port_ptr,char *path,int path_size,const char *url) const char * p ; const char * ls ; const char * ls2 ; const char * at ; const char * brk ; if ( p = ( strchr ( url , ':' ) ) )  p ++; if ( ( * p ) == '/' )  p ++; if ( ( * p ) == '/' )  p ++; ls = ( strchr ( p , '/' ) ); ls2 = ( strchr ( p , 63 ) ); if ( ! ls )  ls = ls2; if ( ls && ls2 )  ls = ( ls > ls2 ? ls2 : ls ); if ( ls )  ls = & p [ strlen ( p ) ]; if ( ls != p )  while ( ( at = ( strchr ( p , 64 ) ) ) && at < ls )  p = at + 1; if ( ( * p ) == '[' && ( brk = ( strchr ( p , ']' ) ) ) && brk < ls )  av_strlcpy ( hostname , p + 1 , ( hostname_size > brk - p ? brk - p : hostname_size ) ); if ( brk [ 1 ] == ':' && port_ptr )  * port_ptr = atoi ( brk + 2 ); if ( port_ptr )  * port_ptr = atoi ( col + 1 ); 