List of usage examples for java.net InetAddress isMulticastAddress
public boolean isMulticastAddress()
From source file:Main.java
public static void main(String[] argv) throws Exception { InetAddress address = InetAddress.getByName("web.mit.edu"); System.out.println("Name: " + address.getHostName()); System.out.println("Addr: " + address.getHostAddress()); System.out.println(address.isMulticastAddress()); }
From source file:Main.java
private static int scoreAddress(InetAddress addr) { if (addr.isAnyLocalAddress()) { return 0; }//from ww w . j a va 2 s . com if (addr.isMulticastAddress()) { return 1; } if (addr.isLinkLocalAddress()) { return 2; } if (addr.isSiteLocalAddress()) { return 3; } return 4; }
From source file:Main.java
/** * checks if the provided address is a global-scope ipv6 unicast address *//*from www . ja v a2 s .c om*/ public static boolean isGlobalAddressV6(InetAddress addr) { return addr instanceof Inet6Address && !addr.isAnyLocalAddress() && !addr.isLinkLocalAddress() && !addr.isLoopbackAddress() && !addr.isMulticastAddress() && !addr.isSiteLocalAddress() && !((Inet6Address) addr).isIPv4CompatibleAddress(); }
From source file:org.apache.metron.enrichment.adapters.maxmind.MaxMindDbUtilities.java
/** * Determines if an address isn't eligible for getting appropriate results from the underlying database. * @param ipStr The IP String/* ww w .j a va 2 s . com*/ * @param addr The addr to be tested * @return True if ineligible, false otherwise */ public static boolean isIneligibleAddress(String ipStr, InetAddress addr) { return addr.isAnyLocalAddress() || addr.isLoopbackAddress() || addr.isSiteLocalAddress() || addr.isMulticastAddress() || !ipvalidator.isValidInet4Address(ipStr); }
From source file:org.springframework.cloud.dataflow.yarn.streamappmaster.EmbeddedAppmasterTrackService.java
private static String getDefaultAddress() { Enumeration<NetworkInterface> nets; try {//from www.ja v a2 s . c o m nets = NetworkInterface.getNetworkInterfaces(); } catch (SocketException e) { return null; } NetworkInterface netinf; while (nets.hasMoreElements()) { netinf = nets.nextElement(); boolean skip = false; try { skip = netinf.isPointToPoint(); } catch (SocketException e) { skip = true; } if (skip) { continue; } Enumeration<InetAddress> addresses = netinf.getInetAddresses(); while (addresses.hasMoreElements()) { InetAddress address = addresses.nextElement(); if (!address.isAnyLocalAddress() && !address.isMulticastAddress() && !(address instanceof Inet6Address)) { return address.getHostAddress(); } } } return null; }
From source file:net.majorkernelpanic.streaming.rtsp.UriParser.java
/** * Configures a Session according to the given URI. * Here are some examples of URIs that can be used to configure a Session: * <ul><li>rtsp://xxx.xxx.xxx.xxx:8086?h264&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h263&camera=front&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h264=200-20-320-240</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?aac</li></ul> * @param uri The URI//from w w w. j av a2 s . c o m * @throws IllegalStateException * @throws IOException * @return A Session configured according to the URI */ public static Session parse(String uri) throws IllegalStateException, IOException { SessionBuilder builder = SessionBuilder.getInstance().clone(); List<NameValuePair> params = URLEncodedUtils.parse(URI.create(uri), "UTF-8"); if (params.size() > 0) { builder.setAudioEncoder(AUDIO_NONE).setVideoEncoder(VIDEO_NONE); // Those parameters must be parsed first or else they won't necessarily be taken into account for (Iterator<NameValuePair> it = params.iterator(); it.hasNext();) { NameValuePair param = it.next(); // FLASH ON/OFF if (param.getName().equalsIgnoreCase("flash")) { if (param.getValue().equalsIgnoreCase("on")) builder.setFlashEnabled(true); else builder.setFlashEnabled(false); } // CAMERA -> the client can choose between the front facing camera and the back facing camera else if (param.getName().equalsIgnoreCase("camera")) { if (param.getValue().equalsIgnoreCase("back")) builder.setCamera(CameraInfo.CAMERA_FACING_BACK); else if (param.getValue().equalsIgnoreCase("front")) builder.setCamera(CameraInfo.CAMERA_FACING_FRONT); } // MULTICAST -> the stream will be sent to a multicast group // The default mutlicast address is 228.5.6.7, but the client can specify another else if (param.getName().equalsIgnoreCase("multicast")) { if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); if (!addr.isMulticastAddress()) { throw new IllegalStateException("Invalid multicast address !"); } builder.setDestination(addr); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid multicast address !"); } } else { // Default multicast address builder.setDestination(InetAddress.getByName("228.5.6.7")); } } // UNICAST -> the client can use this to specify where he wants the stream to be sent else if (param.getName().equalsIgnoreCase("unicast")) { if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); builder.setDestination(addr); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid destination address !"); } } } // TTL -> the client can modify the time to live of packets // By default ttl=64 else if (param.getName().equalsIgnoreCase("ttl")) { if (param.getValue() != null) { try { int ttl = Integer.parseInt(param.getValue()); if (ttl < 0) throw new IllegalStateException(); builder.setTimeToLive(ttl); } catch (Exception e) { throw new IllegalStateException("The TTL must be a positive integer !"); } } } // H.264 else if (param.getName().equalsIgnoreCase("h264")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); builder.setVideoQuality(quality).setVideoEncoder(VIDEO_H264); } // H.263 else if (param.getName().equalsIgnoreCase("h263")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); builder.setVideoQuality(quality).setVideoEncoder(VIDEO_H263); } // AMR else if (param.getName().equalsIgnoreCase("amrnb") || param.getName().equalsIgnoreCase("amr")) { AudioQuality quality = AudioQuality.parseQuality(param.getValue()); builder.setAudioQuality(quality).setAudioEncoder(AUDIO_AMRNB); } // AAC else if (param.getName().equalsIgnoreCase("aac")) { AudioQuality quality = AudioQuality.parseQuality(param.getValue()); builder.setAudioQuality(quality).setAudioEncoder(AUDIO_AAC); } } } if (builder.getVideoEncoder() == VIDEO_NONE && builder.getAudioEncoder() == AUDIO_NONE) { SessionBuilder b = SessionBuilder.getInstance(); builder.setVideoEncoder(b.getVideoEncoder()); builder.setAudioEncoder(b.getAudioEncoder()); } return builder.build(); }
From source file:net.majorkernelpanic.streaming.misc.UriParser.java
/** * Configures a Session according to the given URI. * Here are some examples of URIs that can be used to configure a Session: * <ul><li>rtsp://xxx.xxx.xxx.xxx:8086?h264&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h263&camera=front&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h264=200-20-320-240</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?aac</li></ul> * @param uri The URI/*from ww w .j av a 2 s. c om*/ * @param session The Session that will be configured * @throws IllegalStateException * @throws IOException */ public static void parse(String uri, Session session) throws IllegalStateException, IOException { boolean flash = false; int camera = CameraInfo.CAMERA_FACING_BACK; List<NameValuePair> params = URLEncodedUtils.parse(URI.create(uri), "UTF-8"); if (params.size() > 0) { // Those parameters must be parsed first or else they won't necessarily be taken into account for (Iterator<NameValuePair> it = params.iterator(); it.hasNext();) { NameValuePair param = it.next(); // FLASH ON/OFF if (param.getName().equals("flash")) { if (param.getValue().equals("on")) flash = true; else flash = false; } // CAMERA -> the client can choose between the front facing camera and the back facing camera else if (param.getName().equals("camera")) { if (param.getValue().equals("back")) camera = CameraInfo.CAMERA_FACING_BACK; else if (param.getValue().equals("front")) camera = CameraInfo.CAMERA_FACING_FRONT; } // MULTICAST -> the stream will be sent to a multicast group // The default mutlicast address is 228.5.6.7, but the client can specify one else if (param.getName().equals("multicast")) { session.setRoutingScheme(Session.MULTICAST); if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); if (!addr.isMulticastAddress()) { throw new IllegalStateException("Invalid multicast address !"); } session.setDestination(addr); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid multicast address !"); } } else { // Default multicast address session.setDestination(InetAddress.getByName("228.5.6.7")); } } // UNICAST -> the client can use this so specify where he wants the stream to be sent else if (param.getName().equals("unicast")) { if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); session.setDestination(addr); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid destination address !"); } } } // TTL -> the client can modify the time to live of packets // By default ttl=64 else if (param.getName().equals("ttl")) { if (param.getValue() != null) { try { int ttl = Integer.parseInt(param.getValue()); if (ttl < 0) throw new IllegalStateException("The TTL must be a positive integer !"); session.setTimeToLive(ttl); } catch (Exception e) { throw new IllegalStateException("The TTL must be a positive integer !"); } } } // No tracks will be added to the session else if (param.getName().equals("stop")) { return; } } for (Iterator<NameValuePair> it = params.iterator(); it.hasNext();) { NameValuePair param = it.next(); // H264 if (param.getName().equals("h264")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); session.addVideoTrack(Session.VIDEO_H264, camera, quality, flash); } // H263 else if (param.getName().equals("h263")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); session.addVideoTrack(Session.VIDEO_H263, camera, quality, flash); } // AMRNB else if (param.getName().equals("amrnb") || param.getName().equals("amr")) { session.addAudioTrack(Session.AUDIO_AMRNB); } // AAC else if (param.getName().equals("aac")) { session.addAudioTrack(Session.AUDIO_AAC); } // Generic Audio Stream -> make use of api level 12 // TODO: Doesn't work :/ else if (param.getName().equals("testnewapi")) { session.addAudioTrack(Session.AUDIO_ANDROID_AMR); } } // The default behavior is to only add one video track if (session.getTrackCount() == 0) { session.addVideoTrack(); session.addAudioTrack(); } } // Uri has no parameters: the default behavior is to only add one video track else { session.addVideoTrack(); session.addAudioTrack(); } }
From source file:com.yahoo.inmind.services.streaming.control.rtsp.UriParser.java
/** * Configures a Session according to the given URI. * Here are some examples of URIs that can be used to configure a Session: * <ul><li>rtsp://xxx.xxx.xxx.xxx:8086?h264&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h263&camera=front&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h264=200-20-320-240</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?aac</li></ul> * @param uri The URI/*w w w . j av a2s. c om*/ * @throws IllegalStateException * @throws IOException * @return A Session configured according to the URI */ public static Session parse(String uri) throws IllegalStateException, IOException { SessionBuilder builder = SessionBuilder.getInstance().clone(); byte audioApi = 0, videoApi = 0; List<NameValuePair> params = URLEncodedUtilsHC4.parse(URI.create(uri), "UTF-8"); if (params.size() > 0) { builder.setAudioEncoder(SessionBuilder.AUDIO_NONE).setVideoEncoder(SessionBuilder.VIDEO_NONE); // Those parameters must be parsed first or else they won't necessarily be taken into account for (Iterator<NameValuePair> it = params.iterator(); it.hasNext();) { NameValuePair param = it.next(); // FLASH ON/OFF if (param.getName().equalsIgnoreCase("flash")) { if (param.getValue().equalsIgnoreCase("on")) builder.setFlashEnabled(true); else builder.setFlashEnabled(false); } // CAMERA -> the client can choose between the front facing camera and the back facing camera else if (param.getName().equalsIgnoreCase("camera")) { if (param.getValue().equalsIgnoreCase("back")) builder.setCamera(CameraInfo.CAMERA_FACING_BACK); else if (param.getValue().equalsIgnoreCase("front")) builder.setCamera(CameraInfo.CAMERA_FACING_FRONT); } // MULTICAST -> the stream will be sent to a multicast group // The default mutlicast address is 228.5.6.7, but the client can specify another else if (param.getName().equalsIgnoreCase("multicast")) { if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); if (!addr.isMulticastAddress()) { throw new IllegalStateException("Invalid multicast address !"); } builder.setDestination(param.getValue()); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid multicast address !"); } } else { // Default multicast address builder.setDestination("228.5.6.7"); } } // UNICAST -> the client can use this to specify where he wants the stream to be sent else if (param.getName().equalsIgnoreCase("unicast")) { if (param.getValue() != null) { builder.setDestination(param.getValue()); } } // VIDEOAPI -> can be used to specify what api will be used to encode video (the MediaRecorder API or the MediaCodec API) else if (param.getName().equalsIgnoreCase("videoapi")) { if (param.getValue() != null) { if (param.getValue().equalsIgnoreCase("mr")) { videoApi = MediaStream.MODE_MEDIARECORDER_API; } else if (param.getValue().equalsIgnoreCase("mc")) { videoApi = MediaStream.MODE_MEDIACODEC_API; } } } // AUDIOAPI -> can be used to specify what api will be used to encode audio (the MediaRecorder API or the MediaCodec API) else if (param.getName().equalsIgnoreCase("audioapi")) { if (param.getValue() != null) { if (param.getValue().equalsIgnoreCase("mr")) { audioApi = MediaStream.MODE_MEDIARECORDER_API; } else if (param.getValue().equalsIgnoreCase("mc")) { audioApi = MediaStream.MODE_MEDIACODEC_API; } } } // TTL -> the client can modify the time to live of packets // By default ttl=64 else if (param.getName().equalsIgnoreCase("ttl")) { if (param.getValue() != null) { try { int ttl = Integer.parseInt(param.getValue()); if (ttl < 0) throw new IllegalStateException(); builder.setTimeToLive(ttl); } catch (Exception e) { throw new IllegalStateException("The TTL must be a positive integer !"); } } } // H.264 else if (param.getName().equalsIgnoreCase("h264")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); builder.setVideoQuality(quality).setVideoEncoder(SessionBuilder.VIDEO_H264); } // H.263 else if (param.getName().equalsIgnoreCase("h263")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); builder.setVideoQuality(quality).setVideoEncoder(SessionBuilder.VIDEO_H263); } // AMR else if (param.getName().equalsIgnoreCase("amrnb") || param.getName().equalsIgnoreCase("amr")) { AudioQuality quality = AudioQuality.parseQuality(param.getValue()); builder.setAudioQuality(quality).setAudioEncoder(SessionBuilder.AUDIO_AMRNB); } // AAC else if (param.getName().equalsIgnoreCase("aac")) { AudioQuality quality = AudioQuality.parseQuality(param.getValue()); builder.setAudioQuality(quality).setAudioEncoder(SessionBuilder.AUDIO_AAC); } } } if (builder.getVideoEncoder() == SessionBuilder.VIDEO_NONE && builder.getAudioEncoder() == SessionBuilder.AUDIO_NONE) { SessionBuilder b = SessionBuilder.getInstance(); builder.setVideoEncoder(b.getVideoEncoder()); builder.setAudioEncoder(b.getAudioEncoder()); } Session session = builder.build(); if (videoApi > 0 && session.getVideoTrack() != null) { session.getVideoTrack().setStreamingMethod(videoApi); } if (audioApi > 0 && session.getAudioTrack() != null) { session.getAudioTrack().setStreamingMethod(audioApi); } return session; }
From source file:cn.ysu.edu.realtimeshare.librtsp.rtsp.UriParser.java
/** * Configures a Session according to the given URI. * Here are some examples of URIs that can be used to configure a Session: * <ul><li>rtsp://xxx.xxx.xxx.xxx:8086?h264&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h263&camera=front&flash=on</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?h264=200-20-320-240</li> * <li>rtsp://xxx.xxx.xxx.xxx:8086?aac</li></ul> * @param uri The URI//from w ww.j ava2s. c o m * @throws IllegalStateException * @throws IOException * @return A Session configured according to the URI */ public static Session parse(String uri) throws IllegalStateException, IOException { SessionBuilder builder = SessionBuilder.getInstance().clone(); byte audioApi = 0, videoApi = 0; List<NameValuePair> params = URLEncodedUtils.parse(URI.create(uri), "UTF-8"); if (params.size() > 0) { builder.setAudioEncoder(AUDIO_NONE).setVideoEncoder(VIDEO_NONE); // Those parameters must be parsed first or else they won't necessarily be taken into account for (Iterator<NameValuePair> it = params.iterator(); it.hasNext();) { NameValuePair param = it.next(); // FLASH ON/OFF if (param.getName().equalsIgnoreCase("flash")) { if (param.getValue().equalsIgnoreCase("on")) builder.setFlashEnabled(true); else builder.setFlashEnabled(false); } // CAMERA -> the client can choose between the front facing camera and the back facing camera else if (param.getName().equalsIgnoreCase("camera")) { if (param.getValue().equalsIgnoreCase("back")) builder.setCamera(CameraInfo.CAMERA_FACING_BACK); else if (param.getValue().equalsIgnoreCase("front")) builder.setCamera(CameraInfo.CAMERA_FACING_FRONT); } // MULTICAST -> the stream will be sent to a multicast group // The default mutlicast address is 228.5.6.7, but the client can specify another else if (param.getName().equalsIgnoreCase("multicast")) { if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); if (!addr.isMulticastAddress()) { throw new IllegalStateException("Invalid multicast address !"); } builder.setDestination(param.getValue()); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid multicast address !"); } } else { // Default multicast address builder.setDestination("228.5.6.7"); } } // UNICAST -> the client can use this to specify where he wants the stream to be sent else if (param.getName().equalsIgnoreCase("unicast")) { if (param.getValue() != null) { builder.setDestination(param.getValue()); } } // VIDEOAPI -> can be used to specify what api will be used to encode video (the MediaRecorder API or the MediaCodec API) else if (param.getName().equalsIgnoreCase("videoapi")) { if (param.getValue() != null) { if (param.getValue().equalsIgnoreCase("mr")) { videoApi = MediaStream.MODE_MEDIARECORDER_API; } else if (param.getValue().equalsIgnoreCase("mc")) { videoApi = MediaStream.MODE_MEDIACODEC_API; } } } // AUDIOAPI -> can be used to specify what api will be used to encode audio (the MediaRecorder API or the MediaCodec API) else if (param.getName().equalsIgnoreCase("audioapi")) { if (param.getValue() != null) { if (param.getValue().equalsIgnoreCase("mr")) { audioApi = MediaStream.MODE_MEDIARECORDER_API; } else if (param.getValue().equalsIgnoreCase("mc")) { audioApi = MediaStream.MODE_MEDIACODEC_API; } } } // TTL -> the client can modify the time to live of packets // By default ttl=64 else if (param.getName().equalsIgnoreCase("ttl")) { if (param.getValue() != null) { try { int ttl = Integer.parseInt(param.getValue()); if (ttl < 0) throw new IllegalStateException(); builder.setTimeToLive(ttl); } catch (Exception e) { throw new IllegalStateException("The TTL must be a positive integer !"); } } } // H.264 else if (param.getName().equalsIgnoreCase("h264")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); builder.setVideoQuality(quality).setVideoEncoder(VIDEO_H264); } // H.263 else if (param.getName().equalsIgnoreCase("h263")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); builder.setVideoQuality(quality).setVideoEncoder(VIDEO_H263); } // AMR else if (param.getName().equalsIgnoreCase("amrnb") || param.getName().equalsIgnoreCase("amr")) { AudioQuality quality = AudioQuality.parseQuality(param.getValue()); builder.setAudioQuality(quality).setAudioEncoder(AUDIO_AMRNB); } // AAC else if (param.getName().equalsIgnoreCase("aac")) { AudioQuality quality = AudioQuality.parseQuality(param.getValue()); builder.setAudioQuality(quality).setAudioEncoder(AUDIO_AAC); } } } if (builder.getVideoEncoder() == VIDEO_NONE && builder.getAudioEncoder() == AUDIO_NONE) { SessionBuilder b = SessionBuilder.getInstance(); builder.setVideoEncoder(b.getVideoEncoder()); builder.setAudioEncoder(b.getAudioEncoder()); } Session session = builder.build(); if (videoApi > 0 && session.getVideoTrack() != null) { session.getVideoTrack().setStreamingMethod(videoApi); } if (audioApi > 0 && session.getAudioTrack() != null) { session.getAudioTrack().setStreamingMethod(audioApi); } return session; }
From source file:net.facework.core.streaming.misc.UriParser.java
public static void parse(String uri, Session session) throws IllegalStateException, IOException { boolean flash = false; int camera = CameraInfo.CAMERA_FACING_FRONT; Log.i("UriParser", "RTSP server received:" + uri); String[] uriItem = uri.split("/"); filename = uriItem[uriItem.length - 1]; List<NameValuePair> params = URLEncodedUtils.parse(URI.create(uri), "UTF-8"); if (params.size() > 0) { // Those parameters must be parsed first or else they won't necessarily be taken into account for (Iterator<NameValuePair> it = params.iterator(); it.hasNext();) { NameValuePair param = it.next(); // play file if (param.getName().equals("file")) { Log.i("UriParser", "file name:" + param.getValue()); session.setFile(param.getValue()); session.addFileVideoTrack(Session.FILE_VIDEO_H264); Log.i("UriParser", "RTSP work in FILE_VIDEO_H264 Mode. FILE:" + param.getValue()); session.addFileAudioTrack(Session.FILE_AUDIO_AAC); Log.i("UriParser", "RTSP work in FILE_AUDIO_AAC Mode. FILE:" + param.getValue()); session.setFileMode();/*from www. j a va2 s . co m*/ break; } // FLASH ON/OFF if (param.getName().equals("flash")) { if (param.getValue().equals("on")) flash = true; else flash = false; } // CAMERA -> the client can choose between the front facing camera and the back facing camera else if (param.getName().equals("camera")) { if (param.getValue().equals("back")) camera = CameraInfo.CAMERA_FACING_BACK; else if (param.getValue().equals("front")) camera = CameraInfo.CAMERA_FACING_FRONT; } // MULTICAST -> the stream will be sent to a multicast group // The default mutlicast address is 228.5.6.7, but the client can specify one else if (param.getName().equals("multicast")) { session.setRoutingScheme(Session.MULTICAST); if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); if (!addr.isMulticastAddress()) { throw new IllegalStateException("Invalid multicast address !"); } session.setDestination(addr); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid multicast address !"); } } else { // Default multicast address session.setDestination(InetAddress.getByName("228.5.6.7")); } } // UNICAST -> the client can use this so specify where he wants the stream to be sent else if (param.getName().equals("unicast")) { if (param.getValue() != null) { try { InetAddress addr = InetAddress.getByName(param.getValue()); session.setDestination(addr); } catch (UnknownHostException e) { throw new IllegalStateException("Invalid destination address !"); } } } // TTL -> the client can modify the time to live of packets // By default ttl=64 else if (param.getName().equals("ttl")) { if (param.getValue() != null) { try { int ttl = Integer.parseInt(param.getValue()); if (ttl < 0) throw new IllegalStateException("The TTL must be a positive integer !"); session.setTimeToLive(ttl); } catch (Exception e) { throw new IllegalStateException("The TTL must be a positive integer !"); } } } // No tracks will be added to the session else if (param.getName().equals("stop")) { return; } } for (Iterator<NameValuePair> it = params.iterator(); it.hasNext();) { NameValuePair param = it.next(); // H264 if (param.getName().equals("h264")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); session.addVideoTrack(Session.VIDEO_H264, camera, quality, flash); } // H263 else if (param.getName().equals("h263")) { VideoQuality quality = VideoQuality.parseQuality(param.getValue()); session.addVideoTrack(Session.VIDEO_H263, camera, quality, flash); } // AMRNB else if (param.getName().equals("amrnb") || param.getName().equals("amr")) { session.addAudioTrack(Session.AUDIO_AMRNB); } // AAC else if (param.getName().equals("aac")) { session.addAudioTrack(Session.AUDIO_AAC); } // Generic Audio Stream -> make use of api level 12 // TODO: Doesn't work :/ else if (param.getName().equals("testnewapi")) { session.addAudioTrack(Session.AUDIO_ANDROID_AMR); } } // The default behavior is to only add one video track if (session.getTrackCount() == 0) { session.addVideoTrack(); session.addAudioTrack(); } } else if (!filename.contains(":")) { if (filename.equals("h264.sdp")) { VideoQuality quality = VideoQuality.defaultVideoQualiy.clone(); session.addVideoTrack(Session.VIDEO_H264, camera, quality, flash); } else { Log.i("UriParser", "file name:" + filename + ";"); session.setFile(filename); session.addFileVideoTrack(Session.FILE_VIDEO_H264); Log.i("UriParser", "RTSP work in FILE_VIDEO_H264 Mode. FILE:" + filename); /*session.addFileAudioTrack(Session.FILE_AUDIO_AAC); Log.i("UriParser","RTSP work in FILE_AUDIO_AAC Mode. FILE:"+filename);*/ session.setFileMode(); } } // Uri has no parameters: the default behavior is to only add one video track else { session.addVideoTrack(); session.addAudioTrack(); } }