Created
June 21, 2019 13:27
-
-
Save dwbuiten/3531f377896a2b072aa487092979cdc2 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
From 864d5bf32dce364fa79abda016ed145067183fcd Mon Sep 17 00:00:00 2001 | |
From: Derek Buitenhuis <[email protected]> | |
Date: Fri, 21 Jun 2019 14:26:20 +0100 | |
Subject: [PATCH] hlsenc: Add option to set custom HTTP headers | |
Signed-off-by: Derek Buitenhuis <[email protected]> | |
--- | |
doc/muxers.texi | 3 +++ | |
libavformat/hlsenc.c | 4 ++++ | |
2 files changed, 7 insertions(+) | |
diff --git a/doc/muxers.texi b/doc/muxers.texi | |
index 4410a5f5bb..3177e4da1f 100644 | |
--- a/doc/muxers.texi | |
+++ b/doc/muxers.texi | |
@@ -1088,6 +1088,9 @@ Set timeout for socket I/O operations. Applicable only for HTTP output. | |
@item -ignore_io_errors | |
Ignore IO errors during open, write and delete. Useful for long-duration runs with network output. | |
+@item headers | |
+Set custom HTTP headers, can override built in default headers. Applicable only for HTTP output. | |
+ | |
@end table | |
@anchor{ico} | |
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c | |
index b4cb0364b4..d880f2e4aa 100644 | |
--- a/libavformat/hlsenc.c | |
+++ b/libavformat/hlsenc.c | |
@@ -237,6 +237,7 @@ typedef struct HLSContext { | |
AVIOContext *sub_m3u8_out; | |
int64_t timeout; | |
int ignore_io_errors; | |
+ char *headers; | |
int has_default_key; /* has DEFAULT field of var_stream_map */ | |
int has_video_m3u8; /* has video stream m3u8 list */ | |
} HLSContext; | |
@@ -294,6 +295,8 @@ static void set_http_options(AVFormatContext *s, AVDictionary **options, HLSCont | |
av_dict_set_int(options, "multiple_requests", 1, 0); | |
if (c->timeout >= 0) | |
av_dict_set_int(options, "timeout", c->timeout, 0); | |
+ if (c->headers) | |
+ av_dict_set(options, "headers", c->headers, 0); | |
} | |
static void write_codec_attr(AVStream *st, VariantStream *vs) { | |
@@ -3012,6 +3015,7 @@ static const AVOption options[] = { | |
{"http_persistent", "Use persistent HTTP connections", OFFSET(http_persistent), AV_OPT_TYPE_BOOL, {.i64 = 0 }, 0, 1, E }, | |
{"timeout", "set timeout for socket I/O operations", OFFSET(timeout), AV_OPT_TYPE_DURATION, { .i64 = -1 }, -1, INT_MAX, .flags = E }, | |
{"ignore_io_errors", "Ignore IO errors for stable long-duration runs with network output", OFFSET(ignore_io_errors), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E }, | |
+ {"headers", "set custom HTTP headers, can override built in default headers", OFFSET(headers), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, E }, | |
{ NULL }, | |
}; | |
-- | |
2.20.1 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment