Sure.

Icecast uses HTTP/1.0, whereas libav uses HTTP/1.1 (it has no HTTP/1.0
support). Libav also uses chunked encoding of HTTP streams by default.

The patch disables the chunked encoding, as Icecast actually forwards the
HTTP chunk headers to the listener as part of the media stream (without the
chunk encoding HTTP headers). This causes many (most?) media players to
disregard each media packet as invalid, and stream sync fails after a while.

-----Original Message-----
From: libav-devel [mailto:[email protected]] On Behalf Of Luca
Barbato
Sent: Sunday, 12 October 2014 6:57 PM
To: [email protected]
Subject: Re: [libav-devel] [PATCH] Fix icecast clients not able to sync to
stream.

On 12/10/14 12:24, Mark McGough wrote:
> ---
>   libavformat/icecast.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/libavformat/icecast.c b/libavformat/icecast.c index 
> b671d8c..155396f 100644
> --- a/libavformat/icecast.c
> +++ b/libavformat/icecast.c
> @@ -126,6 +126,7 @@ static int icecast_open(URLContext *h, const char
*uri, int flags)
>       av_dict_set(&opt_dict, "method", s->legacy_icecast ? "SOURCE" :
"PUT", 0);
>       av_dict_set(&opt_dict, "auth_type", "basic", 0);
>       av_dict_set(&opt_dict, "headers", headers, 0);
> +    av_dict_set(&opt_dict, "chunked_post", "0", 0);
>       if (NOT_EMPTY(s->content_type))
>           av_dict_set(&opt_dict, "content_type", s->content_type, 0);
>       if (NOT_EMPTY(s->user_agent))
>

Probably won't hurt, do you have more background about it?

(I'll add to the commit message on push)

lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to