diff mbox series

[FFmpeg-devel,3/4] avformat/avio: Avoid indirection in ffio_fdopen()

Message ID AS8P250MB074474D4325850F157F9ABAE8F5D2@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM
State Accepted
Commit c856e4c5469761390d278e4c5953d86df1d64a21
Headers show
Series [FFmpeg-devel,1/4] avformat/aviobuf: Move code specific to URLContexts to avio.c | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt March 2, 2024, 7:51 p.m. UTC
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavformat/avio.c | 40 +++++++++++++++++++++-------------------
 1 file changed, 21 insertions(+), 19 deletions(-)
diff mbox series

Patch

diff --git a/libavformat/avio.c b/libavformat/avio.c
index 1622a03d7f..f3d10fac39 100644
--- a/libavformat/avio.c
+++ b/libavformat/avio.c
@@ -408,8 +408,9 @@  fail:
     return ret;
 }
 
-int ffio_fdopen(AVIOContext **s, URLContext *h)
+int ffio_fdopen(AVIOContext **sp, URLContext *h)
 {
+    AVIOContext *s;
     uint8_t *buffer = NULL;
     int buffer_size, max_packet_size;
 
@@ -428,36 +429,37 @@  int ffio_fdopen(AVIOContext **s, URLContext *h)
     if (!buffer)
         return AVERROR(ENOMEM);
 
-    *s = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE, h,
-                            ffurl_read2, ffurl_write2, ffurl_seek2);
-    if (!*s) {
+    *sp = avio_alloc_context(buffer, buffer_size, h->flags & AVIO_FLAG_WRITE, h,
+                             ffurl_read2, ffurl_write2, ffurl_seek2);
+    if (!*sp) {
         av_freep(&buffer);
         return AVERROR(ENOMEM);
     }
-    (*s)->protocol_whitelist = av_strdup(h->protocol_whitelist);
-    if (!(*s)->protocol_whitelist && h->protocol_whitelist) {
-        avio_closep(s);
+    s = *sp;
+    s->protocol_whitelist = av_strdup(h->protocol_whitelist);
+    if (!s->protocol_whitelist && h->protocol_whitelist) {
+        avio_closep(sp);
         return AVERROR(ENOMEM);
     }
-    (*s)->protocol_blacklist = av_strdup(h->protocol_blacklist);
-    if (!(*s)->protocol_blacklist && h->protocol_blacklist) {
-        avio_closep(s);
+    s->protocol_blacklist = av_strdup(h->protocol_blacklist);
+    if (!s->protocol_blacklist && h->protocol_blacklist) {
+        avio_closep(sp);
         return AVERROR(ENOMEM);
     }
-    (*s)->direct = h->flags & AVIO_FLAG_DIRECT;
+    s->direct = h->flags & AVIO_FLAG_DIRECT;
 
-    (*s)->seekable = h->is_streamed ? 0 : AVIO_SEEKABLE_NORMAL;
-    (*s)->max_packet_size = max_packet_size;
-    (*s)->min_packet_size = h->min_packet_size;
+    s->seekable = h->is_streamed ? 0 : AVIO_SEEKABLE_NORMAL;
+    s->max_packet_size = max_packet_size;
+    s->min_packet_size = h->min_packet_size;
     if(h->prot) {
-        (*s)->read_pause = h->prot->url_read_pause;
-        (*s)->read_seek  = h->prot->url_read_seek;
+        s->read_pause = h->prot->url_read_pause;
+        s->read_seek  = h->prot->url_read_seek;
 
         if (h->prot->url_read_seek)
-            (*s)->seekable |= AVIO_SEEKABLE_TIME;
+            s->seekable |= AVIO_SEEKABLE_TIME;
     }
-    ((FFIOContext*)(*s))->short_seek_get = ffurl_get_short_seek;
-    (*s)->av_class = &ff_avio_class;
+    ((FFIOContext*)s)->short_seek_get = ffurl_get_short_seek;
+    s->av_class = &ff_avio_class;
     return 0;
 }