Merge commit 'f6b3dce952d66f87883a50d90d6e98416ee397df' into release/2.2
* commit 'f6b3dce952d66f87883a50d90d6e98416ee397df': librtmp: Don't free the temp url at the end of rtmp_open Conflicts: libavformat/librtmp.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -38,6 +38,7 @@ typedef struct LibRTMPContext {
|
|||||||
RTMP rtmp;
|
RTMP rtmp;
|
||||||
char *app;
|
char *app;
|
||||||
char *playpath;
|
char *playpath;
|
||||||
|
char *temp_filename;
|
||||||
} LibRTMPContext;
|
} LibRTMPContext;
|
||||||
|
|
||||||
static void rtmp_log(int level, const char *fmt, va_list args)
|
static void rtmp_log(int level, const char *fmt, va_list args)
|
||||||
@@ -62,6 +63,7 @@ static int rtmp_close(URLContext *s)
|
|||||||
RTMP *r = &ctx->rtmp;
|
RTMP *r = &ctx->rtmp;
|
||||||
|
|
||||||
RTMP_Close(r);
|
RTMP_Close(r);
|
||||||
|
av_freep(&ctx->temp_filename);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +103,7 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
|
|||||||
if (ctx->app) len += strlen(ctx->app) + sizeof(" app=");
|
if (ctx->app) len += strlen(ctx->app) + sizeof(" app=");
|
||||||
if (ctx->playpath) len += strlen(ctx->playpath) + sizeof(" playpath=");
|
if (ctx->playpath) len += strlen(ctx->playpath) + sizeof(" playpath=");
|
||||||
|
|
||||||
if (!(filename = av_malloc(len)))
|
if (!(ctx->temp_filename = filename = av_malloc(len)))
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
av_strlcpy(filename, s->filename, len);
|
av_strlcpy(filename, s->filename, len);
|
||||||
@@ -130,10 +132,9 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
|
|||||||
}
|
}
|
||||||
|
|
||||||
s->is_streamed = 1;
|
s->is_streamed = 1;
|
||||||
rc = 0;
|
return 0;
|
||||||
fail:
|
fail:
|
||||||
if (filename != s->filename)
|
av_freep(&ctx->temp_filename);
|
||||||
av_freep(&filename);
|
|
||||||
if (rc)
|
if (rc)
|
||||||
RTMP_Close(r);
|
RTMP_Close(r);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user