<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <meta http-equiv="Content-Style-Type" content="text/css" />
  <meta name="generator" content="pandoc" />
  <title></title>
  <style type="text/css">
      code{white-space: pre-wrap;}
      span.smallcaps{font-variant: small-caps;}
      span.underline{text-decoration: underline;}
      div.column{display: inline-block; vertical-align: top; width: 50%;}
  </style>
</head>
<body>
<p>Hi Zhao,</p>
<p>On 2018-09-29 21:25, Zhao Zhili wrote:</p>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code> 1. The document says rtsp-host is address/path
 2. stream_out/vod treats it as url, which is incorrect
 3. httpd treats it as address or hostname

 It simple to fix it by taking the rtsp-host as only hostname.</code></pre>
</blockquote>
<p>We will want the option to add an additional path associated with the <em>sout</em>, not only because it’s user-friendly, but also because the alternative would mean that it would be impossible to set up two <em>stream_outputs</em> that share the same media-names, even though the two might refer to completely different set of data (as both would end up listening on the same path).</p>
<p>For me, I do not see what the benefit of this patch is in the long run. If you want to “fix” things, allow the same mechanism but through some other behavior, removing the functionality all together is, in my opinion, not the way to go.</p>
<blockquote style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;color:#500050">
<pre><code> ---
  modules/stream_out/vod.c | 51 +++++-------------------------------------------
  1 file changed, 5 insertions(+), 46 deletions(-)

 diff --git a/modules/stream_out/vod.c b/modules/stream_out/vod.c
 index e1b6cbd..6b358ca 100644
 --- a/modules/stream_out/vod.c
 +++ b/modules/stream_out/vod.c
 @@ -78,8 +78,6 @@ struct vod_media_t

  typedef struct
  {
 -    char *psz_rtsp_path;
 -
      /* */
      vlc_thread_t thread;
      block_fifo_t *p_fifo_cmd;
 @@ -116,39 +114,10 @@ int OpenVoD( vlc_object_t *p_this )
  {
      vod_t *p_vod = (vod_t *)p_this;
      vod_sys_t *p_sys = NULL;
 -    char *psz_url;

      p_vod->p_sys = p_sys = malloc( sizeof( vod_sys_t ) );
 -    if( !p_sys ) goto error;
 -
 -    psz_url = var_InheritString( p_vod, "rtsp-host" );
 -
 -    if( psz_url == NULL )
 -        p_sys->psz_rtsp_path = strdup( "/" );
 -    else
 -    {
 -        vlc_url_t url;
 -        vlc_UrlParse( &url, psz_url );
 -        free( psz_url );
 -
 -        if( url.psz_path == NULL )
 -            p_sys->psz_rtsp_path = strdup( "/" );
 -        else
 -        if( !( strlen( url.psz_path ) > 0
 -               && url.psz_path[strlen( url.psz_path ) - 1] == '/' ) )
 -        {
 -            if( asprintf( &p_sys->psz_rtsp_path, "%s/", url.psz_path ) == -1 )
 -            {
 -                p_sys->psz_rtsp_path = NULL;
 -                vlc_UrlClean( &url );
 -                goto error;
 -            }
 -        }
 -        else
 -            p_sys->psz_rtsp_path = strdup( url.psz_path );
 -
 -        vlc_UrlClean( &url );
 -    }
 +    if( !p_sys )
 +        return VLC_EGENERIC;

      p_vod->pf_media_new = MediaNew;
      p_vod->pf_media_del = MediaAskDel;
 @@ -158,19 +127,11 @@ int OpenVoD( vlc_object_t *p_this )
      {
          msg_Err( p_vod, "cannot spawn rtsp vod thread" );
          block_FifoRelease( p_sys->p_fifo_cmd );
 -        goto error;
 -    }
 -
 -    return VLC_SUCCESS;
 -
 -error:
 -    if( p_sys )
 -    {
 -        free( p_sys->psz_rtsp_path );
          free( p_sys );
 +        return VLC_EGENERIC;
      }

 -    return VLC_EGENERIC;
 +    return VLC_SUCCESS;
  }

  /*****************************************************************************
 @@ -197,7 +158,6 @@ void CloseVoD( vlc_object_t * p_this )
      }
      block_FifoRelease( p_sys->p_fifo_cmd );

 -    free( p_sys->psz_rtsp_path );
      free( p_sys );
  }

 @@ -274,10 +234,9 @@ error:
  static void MediaSetup( vod_t *p_vod, vod_media_t *p_media,
                          const char *psz_name )
  {
 -    vod_sys_t *p_sys = p_vod->p_sys;
      char *psz_path;

 -    if( asprintf( &psz_path, "%s%s", p_sys->psz_rtsp_path, psz_name ) < 0 )
 +    if( asprintf( &psz_path, "/%s", psz_name ) < 0 )
          return;

      p_media->rtsp = RtspSetup(VLC_OBJECT(p_vod), p_media, psz_path);
 -- 
 2.9.5



 _______________________________________________
 vlc-devel mailing list
 To unsubscribe or modify your subscription options:
 https://mailman.videolan.org/listinfo/vlc-devel</code></pre>
</blockquote>
</body>
</html>