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
