On 11/16/2021 11:52 AM, Derek Buitenhuis wrote:
In 45bfe8b838275235412777dd430206d9a24eb3ee, short_seek_threshold was removed
from the public AVIO struct. Although this option was private and not intended
to be used by public API users, it was nonetheless, because it provided
functionality
that could otherwise not be gained via public API.
This was especially important for networked I/O like HTTP, where the internal
size for lavf could be way to small depending on the specifics of a user's
usecase, such as reading interlavd media files from cloud storage.
Add an AVOption to make this functionality accessible to the HTTP client.
Signed-off-by: Derek Buitenhuis <derek.buitenh...@gmail.com>
---
libavformat/http.c | 4 ++++
libavformat/version.h | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavformat/http.c b/libavformat/http.c
index 476b9a8456..fdfbc69da1 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -126,6 +126,7 @@ typedef struct HTTPContext {
int is_multi_client;
HandshakeState handshake_step;
int is_connected_server;
+ int short_seek_size;
} HTTPContext;
#define OFFSET(x) offsetof(HTTPContext, x)
@@ -167,6 +168,7 @@ static const AVOption options[] = {
{ "listen", "listen on HTTP", OFFSET(listen), AV_OPT_TYPE_INT, { .i64 = 0
}, 0, 2, D | E },
{ "resource", "The resource requested by a client", OFFSET(resource),
AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, E },
{ "reply_code", "The http status code to return to a client",
OFFSET(reply_code), AV_OPT_TYPE_INT, { .i64 = 200}, INT_MIN, 599, E},
+ { "short_seek_size", "Threshold to favor readahead over seek.",
OFFSET(short_seek_size), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, D },
{ NULL }
};
@@ -1842,6 +1844,8 @@ static int http_get_file_handle(URLContext *h)
static int http_get_short_seek(URLContext *h)
{
HTTPContext *s = h->priv_data;
+ if (s->short_seek_size >= 1)
+ return s->short_seek_size;
return ffurl_get_short_seek(s->hd);
}
diff --git a/libavformat/version.h b/libavformat/version.h
index 2e860b8d76..d8a9351b3a 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -32,7 +32,7 @@
// Major bumping may affect Ticket5467, 5421, 5451(compatibility with
Chromium)
// Also please add any ticket numbers that you believe might be affected here
#define LIBAVFORMAT_VERSION_MAJOR 59
-#define LIBAVFORMAT_VERSION_MINOR 8
+#define LIBAVFORMAT_VERSION_MINOR 9
Micro.
LGTM otherwise if tested.
#define LIBAVFORMAT_VERSION_MICRO 100
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".