summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeyapal, Karthick <kjeyapal@akamai.com>2017-11-29 14:31:34 +0800
committerSteven Liu <lq@chinaffmpeg.org>2017-11-29 14:31:34 +0800
commit62f63b24bfec22134bc5b9312bc6afe824e63199 (patch)
treebec96a17cc2c08eb756747481dfae8fa279415bb
parentc5fd57f483d2ad8e34551b78509f1e14136f73c0 (diff)
downloadffmpeg-streaming-62f63b24bfec22134bc5b9312bc6afe824e63199.zip
ffmpeg-streaming-62f63b24bfec22134bc5b9312bc6afe824e63199.tar.gz
libavformat/avio: Utility function to return URLContext
-rw-r--r--libavformat/avio_internal.h8
-rw-r--r--libavformat/aviobuf.c13
2 files changed, 21 insertions, 0 deletions
diff --git a/libavformat/avio_internal.h b/libavformat/avio_internal.h
index c01835d..04c1ad5 100644
--- a/libavformat/avio_internal.h
+++ b/libavformat/avio_internal.h
@@ -133,6 +133,14 @@ int ffio_open_dyn_packet_buf(AVIOContext **s, int max_packet_size);
int ffio_fdopen(AVIOContext **s, URLContext *h);
/**
+ * Return the URLContext associated with the AVIOContext
+ *
+ * @param s IO context
+ * @return pointer to URLContext or NULL.
+ */
+URLContext *ffio_geturlcontext(AVIOContext *s);
+
+/**
* Open a write-only fake memory stream. The written data is not stored
* anywhere - this is only used for measuring the amount of data
* written.
diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c
index 3b4c843..86eb657 100644
--- a/libavformat/aviobuf.c
+++ b/libavformat/aviobuf.c
@@ -980,6 +980,19 @@ fail:
return AVERROR(ENOMEM);
}
+URLContext* ffio_geturlcontext(AVIOContext *s)
+{
+ AVIOInternal *internal;
+ if (!s)
+ return NULL;
+
+ internal = s->opaque;
+ if (internal && s->read_packet == io_read_packet)
+ return internal->h;
+ else
+ return NULL;
+}
+
int ffio_ensure_seekback(AVIOContext *s, int64_t buf_size)
{
uint8_t *buffer;
OpenPOWER on IntegriCloud