icecast: Do not use chunked post
authorMark McGough <madmanmarkau@gmail.com>
Sun, 12 Oct 2014 10:24:07 +0000 (18:24 +0800)
committerLuca Barbato <lu_zero@gentoo.org>
Sun, 12 Oct 2014 17:54:07 +0000 (19:54 +0200)
Icecast uses HTTP 1.0 while Libav uses HTTP 1.1 and enables by
default chunked post.

Icecast actually forwards the HTTP chunk headers to the listener
as part of the media stream (without the chunk encoding HTTP headers)
causing the players to lose sync.

Disabling the option is enough to feed icecast properly.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavformat/icecast.c

index b671d8c..155396f 100644 (file)
@@ -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))