[Android] [PATCH 1/2] Add flag to use RTSP over TCP directly

Paulo Vitor Magacho da Silva pvmagacho at gmail.com
Fri Dec 5 02:15:12 CET 2014


Please ignore this patch.
Will send it again in a new email.
Thanks

2014-12-04 23:12 GMT-02:00 Paulo Vitor Magacho da Silva <pvmagacho at gmail.com
>:

> ---
>  libvlc/jni/libvlcjni-track.c                  |  4 ++--
>  libvlc/jni/libvlcjni.c                        |  6 +++---
>  libvlc/jni/thumbnailer.c                      |  2 +-
>  libvlc/jni/utils.h                            |  2 +-
>  libvlc/src/org/videolan/libvlc/LibVLC.java    |  5 ++++-
>  libvlc/src/org/videolan/libvlc/MediaList.java | 22 ++++++++++++++--------
>  6 files changed, 25 insertions(+), 16 deletions(-)
>
> diff --git a/libvlc/jni/libvlcjni-track.c b/libvlc/jni/libvlcjni-track.c
> index cfc70ce..1e131f9 100644
> --- a/libvlc/jni/libvlcjni-track.c
> +++ b/libvlc/jni/libvlcjni-track.c
> @@ -48,7 +48,7 @@ jboolean
> Java_org_videolan_libvlc_LibVLC_hasVideoTrack(JNIEnv *env, jobject thiz
>                                                         jstring
> fileLocation)
>  {
>      /* Create a new item and assign it to the media player. */
> -    libvlc_media_t *p_m = new_media(env, thiz, fileLocation, false,
> false);
> +    libvlc_media_t *p_m = new_media(env, thiz, fileLocation, false,
> false, false);
>      if (p_m == NULL)
>      {
>          LOGE("Could not create the media!");
> @@ -186,7 +186,7 @@ jobjectArray
> Java_org_videolan_libvlc_LibVLC_readTracksInfo(JNIEnv *env, jobject
>                                                              jstring mrl)
>  {
>      /* Create a new item and assign it to the media player. */
> -    libvlc_media_t *p_m = new_media(env, thiz, mrl, false, false);
> +    libvlc_media_t *p_m = new_media(env, thiz, mrl, false, false, false);
>      if (p_m == NULL)
>      {
>          LOGE("Could not create the media!");
> diff --git a/libvlc/jni/libvlcjni.c b/libvlc/jni/libvlcjni.c
> index 94b216c..a9662db 100644
> --- a/libvlc/jni/libvlcjni.c
> +++ b/libvlc/jni/libvlcjni.c
> @@ -72,7 +72,7 @@ static void add_media_options(libvlc_media_t *p_md,
> JNIEnv *env, jobjectArray me
>      }
>  }
>
> -libvlc_media_t *new_media(JNIEnv *env, jobject thiz, jstring
> fileLocation, bool noOmx, bool noVideo)
> +libvlc_media_t *new_media(JNIEnv *env, jobject thiz, jstring
> fileLocation, bool noOmx, bool noVideo, bool useTcp)
>  {
>      libvlc_instance_t *libvlc = getLibVlcInstance(env, thiz);
>      jboolean isCopy;
> @@ -83,10 +83,10 @@ libvlc_media_t *new_media(JNIEnv *env, jobject thiz,
> jstring fileLocation, bool
>          return NULL;
>
>      jclass cls = (*env)->GetObjectClass(env, thiz);
> -    jmethodID methodId = (*env)->GetMethodID(env, cls, "getMediaOptions",
> "(ZZ)[Ljava/lang/String;");
> +    jmethodID methodId = (*env)->GetMethodID(env, cls, "getMediaOptions",
> "(ZZZ)[Ljava/lang/String;");
>      if (methodId != NULL)
>      {
> -        jobjectArray mediaOptions = (*env)->CallObjectMethod(env, thiz,
> methodId, noOmx, noVideo);
> +        jobjectArray mediaOptions = (*env)->CallObjectMethod(env, thiz,
> methodId, noOmx, noVideo, useTcp);
>          if (mediaOptions != NULL)
>          {
>              add_media_options(p_md, env, mediaOptions);
> diff --git a/libvlc/jni/thumbnailer.c b/libvlc/jni/thumbnailer.c
> index 0b8aae3..4f61d6f 100644
> --- a/libvlc/jni/thumbnailer.c
> +++ b/libvlc/jni/thumbnailer.c
> @@ -161,7 +161,7 @@ jbyteArray
> Java_org_videolan_libvlc_LibVLC_getThumbnail(JNIEnv *env, jobject thi
>      libvlc_media_player_t *mp = libvlc_media_player_new(libvlc);
>      libvlc_media_player_set_video_title_display(mp,
> libvlc_position_disable, 0);
>
> -    libvlc_media_t *m = new_media(env, thiz, filePath, true, false);
> +    libvlc_media_t *m = new_media(env, thiz, filePath, true, false,
> false);
>      if (m == NULL)
>      {
>          LOGE("Could not create the media to play!");
> diff --git a/libvlc/jni/utils.h b/libvlc/jni/utils.h
> index 5da3514..f5b9f8d 100644
> --- a/libvlc/jni/utils.h
> +++ b/libvlc/jni/utils.h
> @@ -21,7 +21,7 @@
>  #ifndef LIBVLCJNI_UTILS_H
>  #define LIBVLCJNI_UTILS_H
>
> -libvlc_media_t *new_media(JNIEnv *env, jobject thiz, jstring
> fileLocation, bool noOmx, bool noVideo);
> +libvlc_media_t *new_media(JNIEnv *env, jobject thiz, jstring
> fileLocation, bool noOmx, bool noVideo, bool useTcp);
>
>  libvlc_instance_t *getLibVlcInstance(JNIEnv *env, jobject thiz);
>
> diff --git a/libvlc/src/org/videolan/libvlc/LibVLC.java
> b/libvlc/src/org/videolan/libvlc/LibVLC.java
> index 8bac400..822999a 100644
> --- a/libvlc/src/org/videolan/libvlc/LibVLC.java
> +++ b/libvlc/src/org/videolan/libvlc/LibVLC.java
> @@ -359,7 +359,7 @@ public class LibVLC {
>          }
>      }
>
> -    public String[] getMediaOptions(boolean noHardwareAcceleration,
> boolean noVideo) {
> +    public String[] getMediaOptions(boolean noHardwareAcceleration,
> boolean noVideo, boolean useTcp) {
>          if (this.devHardwareDecoder != DEV_HW_DECODER_AUTOMATIC)
>              noHardwareAcceleration = noVideo = false;
>          else if (!noHardwareAcceleration)
> @@ -384,6 +384,9 @@ public class LibVLC {
>          if (noVideo)
>              options.add(":no-video");
>
> +        if (useTcp)
> +            options.add(":rtsp-tcp");
> +
>          return options.toArray(new String[options.size()]);
>      }
>
> diff --git a/libvlc/src/org/videolan/libvlc/MediaList.java
> b/libvlc/src/org/videolan/libvlc/MediaList.java
> index 7888f6f..a1e057d 100644
> --- a/libvlc/src/org/videolan/libvlc/MediaList.java
> +++ b/libvlc/src/org/videolan/libvlc/MediaList.java
> @@ -1,7 +1,7 @@
>
>  /*****************************************************************************
>   * MediaList.java
>
> *****************************************************************************
> - * Copyright © 2013 VLC authors and VideoLAN
> + * Copyright © 2013-2014 VLC authors and VideoLAN
>   * Copyright © 2013 Edward Wang
>   *
>   * This program is free software; you can redistribute it and/or modify it
> @@ -36,12 +36,13 @@ public class MediaList {
>          Media m;
>          boolean noVideo; // default false
>          boolean noHardwareAcceleration; // default false
> +        boolean useTcp; // default false
>
>          public MediaHolder(Media media) {
> -            m = media; noVideo = false; noHardwareAcceleration = false;
> +            m = media; noVideo = false; noHardwareAcceleration = false;
> useTcp = false;
>          }
> -        public MediaHolder(Media m_, boolean noVideo_, boolean
> noHardwareAcceleration_) {
> -            m = m_; noVideo = noVideo_; noHardwareAcceleration =
> noHardwareAcceleration_;
> +        public MediaHolder(Media m_, boolean noVideo_, boolean
> noHardwareAcceleration_, boolean useTcp_) {
> +            m = m_; noVideo = noVideo_; noHardwareAcceleration =
> noHardwareAcceleration_; useTcp = useTcp_;
>          }
>      }
>
> @@ -68,13 +69,16 @@ public class MediaList {
>          add(new Media(mLibVLC, mrl));
>      }
>      public void add(Media media) {
> -        add(media, false, false);
> +        add(media, false, false, false);
>      }
>      public void add(Media media, boolean noVideo) {
> -        add(media, noVideo, false);
> +        add(media, noVideo, false, false);
>      }
>      public void add(Media media, boolean noVideo, boolean
> noHardwareAcceleration) {
> -        mInternalList.add(new MediaHolder(media, noVideo,
> noHardwareAcceleration));
> +        add(media, noVideo, false, false);
> +    }
> +    public void add(Media media, boolean noVideo, boolean
> noHardwareAcceleration, boolean useTcp) {
> +        mInternalList.add(new MediaHolder(media, noVideo,
> noHardwareAcceleration, useTcp));
>          signal_list_event(EventHandler.CustomMediaListItemAdded,
> mInternalList.size() - 1, media.getLocation());
>      }
>
> @@ -198,13 +202,15 @@ public class MediaList {
>      public String[] getMediaOptions(int position) {
>          boolean noHardwareAcceleration = false;
>          boolean noVideo = false;
> +        boolean useTcp = true;
>          if (isValid(position))
>          {
>              noHardwareAcceleration =
> mInternalList.get(position).noHardwareAcceleration;
>              noVideo = mInternalList.get(position).noVideo;
> +            useTcp = mInternalList.get(position).useTcp;
>          }
>
> -        return mLibVLC.getMediaOptions(noHardwareAcceleration, noVideo);
> +        return mLibVLC.getMediaOptions(noHardwareAcceleration, noVideo,
> useTcp);
>      }
>
>      public EventHandler getEventHandler() {
> --
> 1.9.3 (Apple Git-50)
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/android/attachments/20141204/87b79c30/attachment.html>


More information about the Android mailing list