[FFmpeg-devel] [PATCH v3] avformat/icecast: Add option to use TLS connection

Marvin Scholz epirat07 at gmail.com
Thu Jul 2 02:22:17 EEST 2020


Ping for merge, again :)

On 28 Jun 2020, at 22:43, Marvin Scholz wrote:

> Ping
>
> On 18 Jun 2020, at 23:16, Marvin Scholz wrote:
>
>> Ping? Anything else needed to get this merged?
>>
>> On 14 Jun 2020, at 22:23, Marvin Scholz wrote:
>>
>>> On 14 Jun 2020, at 15:42, Michael Niedermayer wrote:
>>>
>>>> On Sun, Jun 14, 2020 at 12:52:44AM +0200, Marvin Scholz wrote:
>>>>> ---
>>>>>  doc/protocols.texi    | 3 +++
>>>>>  libavformat/icecast.c | 6 +++++-
>>>>>  2 files changed, 8 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/doc/protocols.texi b/doc/protocols.texi
>>>>> index 7aa758541c..32c829d2a3 100644
>>>>> --- a/doc/protocols.texi
>>>>> +++ b/doc/protocols.texi
>>>>> @@ -520,6 +520,9 @@ audio/mpeg.
>>>>>  This enables support for Icecast versions < 2.4.0, that do not 
>>>>> support the
>>>>>  HTTP PUT method but the SOURCE method.
>>>>>
>>>>> + at item tls
>>>>> +Establish a TLS (HTTPS) connection to Icecast.
>>>>> +
>>>>>  @end table
>>>>>
>>>>>  @example
>>>>> diff --git a/libavformat/icecast.c b/libavformat/icecast.c
>>>>> index 38af16b99e..b06c53cabd 100644
>>>>> --- a/libavformat/icecast.c
>>>>> +++ b/libavformat/icecast.c
>>>>> @@ -43,6 +43,7 @@ typedef struct IcecastContext {
>>>>>      int public;
>>>>>      char *url;
>>>>>      char *user_agent;
>>>>> +    int tls;
>>>>>  } IcecastContext;
>>>>>
>>>>>  #define DEFAULT_ICE_USER "source"
>>>>> @@ -62,6 +63,7 @@ static const AVOption options[] = {
>>>>>      { "password", "set password", OFFSET(pass), 
>>>>> AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, E },
>>>>>      { "content_type", "set content-type, MUST be set if not 
>>>>> audio/mpeg", OFFSET(content_type), AV_OPT_TYPE_STRING, { .str = 
>>>>> NULL }, 0, 0, E },
>>>>>      { "legacy_icecast", "use legacy SOURCE method, for Icecast < 
>>>>> v2.4", OFFSET(legacy_icecast), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 
>>>>> 1, E },
>>>>> +    { "tls", "use a TLS connection", OFFSET(tls), 
>>>>> AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
>>>>>      { NULL }
>>>>>  };
>>>>>
>>>>> @@ -162,7 +164,9 @@ static int icecast_open(URLContext *h, const 
>>>>> char *uri, int flags)
>>>>>      }
>>>>>
>>>>>      // Build new URI for passing to http protocol
>>>>> -    ff_url_join(h_url, sizeof(h_url), "http", auth, host, port, 
>>>>> "%s", path);
>>>>> +    ff_url_join(h_url, sizeof(h_url),
>>>>> +                s->tls ? "https" : "http",
>>>>> +                auth, host, port, "%s", path);
>>>>>      // Finally open http proto handler
>>>>>      ret = ffurl_open_whitelist(&s->hd, h_url, 
>>>>> AVIO_FLAG_READ_WRITE, NULL,
>>>>>                                 &opt_dict, h->protocol_whitelist, 
>>>>> h->protocol_blacklist, h);
>>>>
>>>> Is https support common or uncommon for icecast ?
>>>> if it is common then changing the default to enabled (in a seperate 
>>>> patch)
>>>> would make sense
>>>>
>>>> the patch should be ok
>>>>
>>>
>>> It's getting more common now but most people are probably still used 
>>> to
>>> have http enabled for use with source clients as most of the older
>>> ones do not yet support TLS at all.
>>>
>>> Ideally it would default to auto-detect but it seems thats not 
>>> easily possible
>>> with how the ffmpeg protocols work.
>>>
>>>> thx
>>>>
>>>> [...]
>>>> -- 
>>>> Michael     GnuPG fingerprint: 
>>>> 9FF2128B147EF6730BADF133611EC787040B0FAB
>>>>
>>>> Breaking DRM is a little like attempting to break through a door 
>>>> even
>>>> though the window is wide open and the only thing in the house is a 
>>>> bunch
>>>> of things you dont want and which you would get tomorrow for free 
>>>> anyway
>>>> _______________________________________________
>>>> ffmpeg-devel mailing list
>>>> ffmpeg-devel at ffmpeg.org
>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>
>>>> To unsubscribe, visit link above, or email
>>>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list