X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fmmsh.c;h=e92b74fc0a5670db3800deea48ce093aad7bf1fa;hb=e098fba5d9c9d52aaddd83e63dd910ff20b841d2;hp=47cfea020b190abfe71b02a300c258580a153a78;hpb=dbb38bc389e1af5ed465ed370887d6af4da0cb40;p=ffmpeg diff --git a/libavformat/mmsh.c b/libavformat/mmsh.c index 47cfea020b1..e92b74fc0a5 100644 --- a/libavformat/mmsh.c +++ b/libavformat/mmsh.c @@ -69,7 +69,6 @@ static int mmsh_close(URLContext *h) ffurl_close(mms->mms_hd); av_free(mms->streams); av_free(mms->asf_header); - av_freep(&h->priv_data); return 0; } @@ -218,12 +217,9 @@ static int mmsh_open_internal(URLContext *h, const char *uri, int flags, int tim char httpname[256], path[256], host[128]; char *stream_selection = NULL; char headers[1024]; - MMSHContext *mmsh; + MMSHContext *mmsh = h->priv_data; MMSContext *mms; - mmsh = h->priv_data = av_mallocz(sizeof(MMSHContext)); - if (!h->priv_data) - return AVERROR(ENOMEM); mmsh->request_seq = h->is_streamed = 1; mms = &mmsh->mms; av_strlcpy(mmsh->location, uri, sizeof(mmsh->location)); @@ -263,9 +259,9 @@ static int mmsh_open_internal(URLContext *h, const char *uri, int flags, int tim // close the socket and then reopen it for sending the second play request. ffurl_close(mms->mms_hd); memset(headers, 0, sizeof(headers)); - if (ffurl_alloc(&mms->mms_hd, httpname, AVIO_FLAG_READ, - &h->interrupt_callback) < 0) { - return AVERROR(EIO); + if ((err = ffurl_alloc(&mms->mms_hd, httpname, AVIO_FLAG_READ, + &h->interrupt_callback)) < 0) { + goto fail; } stream_selection = av_mallocz(mms->stream_num * 19 + 1); if (!stream_selection) @@ -403,11 +399,11 @@ static int64_t mmsh_seek(URLContext *h, int64_t pos, int whence) } URLProtocol ff_mmsh_protocol = { - .name = "mmsh", - .url_open = mmsh_open, - .url_read = mmsh_read, - .url_write = NULL, - .url_seek = mmsh_seek, - .url_close = mmsh_close, + .name = "mmsh", + .url_open = mmsh_open, + .url_read = mmsh_read, + .url_seek = mmsh_seek, + .url_close = mmsh_close, .url_read_seek = mmsh_read_seek, + .priv_data_size = sizeof(MMSHContext), };