Commit dadf0b5b2e for ffmpeg

commit dadf0b5b2e21ed563ea942e04eb7e1c9289d1f90
Author: Michael Niedermayer <michael@niedermayer.cc>
Date:   Mon Oct 19 21:21:04 2026 +0200

    avformat/asfdec_f: pass the target dictionary to get_tag()

    Allows storing tags in a dictionary other than the format metadata.

    Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>

diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c
index d02c843ba6..158c70d295 100644
--- a/libavformat/asfdec_f.c
+++ b/libavformat/asfdec_f.c
@@ -217,7 +217,8 @@ static uint64_t get_value(AVIOContext *pb, int type)
     }
 }

-static void get_tag(AVFormatContext *s, const char *key, int type, int len)
+static void get_tag(AVFormatContext *s, AVDictionary **metadata,
+                    const char *key, int type, int len)
 {
     ASFContext *asf = s->priv_data;
     char *value = NULL;
@@ -264,7 +265,7 @@ static void get_tag(AVFormatContext *s, const char *key, int type, int len)
         goto finish;
     }
     if (*value)
-        av_dict_set(&s->metadata, key, value, 0);
+        av_dict_set(metadata, key, value, 0);

 finish:
     av_freep(&value);
@@ -536,10 +537,10 @@ static int asf_read_content_desc(AVFormatContext *s)
     len3 = avio_rl16(pb);
     len4 = avio_rl16(pb);
     len5 = avio_rl16(pb);
-    get_tag(s, "title", 0, len1);
-    get_tag(s, "author", 0, len2);
-    get_tag(s, "copyright", 0, len3);
-    get_tag(s, "comment", 0, len4);
+    get_tag(s, &s->metadata, "title", 0, len1);
+    get_tag(s, &s->metadata, "author", 0, len2);
+    get_tag(s, &s->metadata, "copyright", 0, len3);
+    get_tag(s, &s->metadata, "comment", 0, len4);
     avio_skip(pb, len5);

     return 0;
@@ -577,7 +578,7 @@ static int asf_read_ext_content_desc(AVFormatContext *s)
         else if (!strcmp(name, "AspectRatioY"))
             asf->dar[0].den = get_value(s->pb, value_type);
         else
-            get_tag(s, name, value_type, value_len);
+            get_tag(s, &s->metadata, name, value_type, value_len);
     }

     return 0;
@@ -644,7 +645,7 @@ static int asf_read_metadata(AVFormatContext *s)
             if(stream_num < 128)
                 asf->dar[stream_num].den = aspect_y;
         } else {
-            get_tag(s, name, value_type, value_len);
+            get_tag(s, &s->metadata, name, value_type, value_len);
         }
         av_freep(&name);
     }
@@ -775,17 +776,17 @@ static int asf_read_header(AVFormatContext *s)
                     len= avio_rl32(pb);
                     if (len > UINT16_MAX)
                         return AVERROR_INVALIDDATA;
-                    get_tag(s, "ASF_Protection_Type", -1, len);
+                    get_tag(s, &s->metadata, "ASF_Protection_Type", -1, len);

                     len= avio_rl32(pb);
                     if (len > UINT16_MAX)
                         return AVERROR_INVALIDDATA;
-                    get_tag(s, "ASF_Key_ID", -1, len);
+                    get_tag(s, &s->metadata, "ASF_Key_ID", -1, len);

                     len= avio_rl32(pb);
                     if (len > UINT16_MAX)
                         return AVERROR_INVALIDDATA;
-                    get_tag(s, "ASF_License_URL", -1, len);
+                    get_tag(s, &s->metadata, "ASF_License_URL", -1, len);
                 } else if (!ff_guidcmp(&g, &ff_asf_ext_content_encryption)) {
                     av_log(s, AV_LOG_WARNING,
                            "Ext DRM protected stream detected, decoding will likely fail!\n");