diff --git a/src/driver/record.cpp b/src/driver/record.cpp index 04e3871b2..6a15e4775 100644 --- a/src/driver/record.cpp +++ b/src/driver/record.cpp @@ -2083,8 +2083,12 @@ bool CStreamRec::Open(CZapitChannel * channel) if (avformat_open_input(&ifcx, url.c_str(), NULL, &options) != 0) { printf("%s: Cannot open input [%s]!\n", __FUNCTION__, url.c_str()); + if (!headers.empty()) + av_dict_free(&options); return false; } + if (!headers.empty()) + av_dict_free(&options); if (avformat_find_stream_info(ifcx, NULL) < 0) { printf("%s: Cannot find stream info [%s]!\n", __FUNCTION__, channel->getUrl().c_str()); diff --git a/src/driver/streamts.cpp b/src/driver/streamts.cpp index b1740bfd1..2ab401258 100644 --- a/src/driver/streamts.cpp +++ b/src/driver/streamts.cpp @@ -788,8 +788,12 @@ bool CStreamStream::Open() av_dict_set(&options, "headers", headers.c_str(), 0); if (avformat_open_input(&ifcx, url.c_str(), NULL, &options) != 0) { printf("%s: Cannot open input [%s]!\n", __FUNCTION__, channel->getUrl().c_str()); + if (!headers.empty()) + av_dict_free(&options); return false; } + if (!headers.empty()) + av_dict_free(&options); if (avformat_find_stream_info(ifcx, NULL) < 0) { printf("%s: Cannot find stream info [%s]!\n", __FUNCTION__, channel->getUrl().c_str());