]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/utils.c
Merge commit 'aa51b0492bfced6d650fb5ff419e2b13fde6833d'
[ffmpeg] / libavformat / utils.c
index cc52d0ebf88ad7e6bf10d383c2bae6fa83a9a739..13d4c6b1ee57ffd0b9bd49e3705b97c5d705f17c 100644 (file)
@@ -1286,6 +1286,7 @@ static int read_from_packet_buffer(AVPacketList **pkt_buffer,
 static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
 {
     int ret = 0, i, got_packet = 0;
+    AVDictionary *metadata = NULL;
 
     av_init_packet(pkt);
 
@@ -1411,6 +1412,14 @@ static int read_frame_internal(AVFormatContext *s, AVPacket *pkt)
             av_packet_merge_side_data(pkt);
     }
 
+    av_opt_get_dict_val(s, "metadata", AV_OPT_SEARCH_CHILDREN, &metadata);
+    if (metadata) {
+        s->event_flags |= AVFMT_EVENT_FLAG_METADATA_UPDATED;
+        av_dict_copy(&s->metadata, metadata, 0);
+        av_dict_free(&metadata);
+        av_opt_set_dict_val(s, "metadata", NULL, AV_OPT_SEARCH_CHILDREN);
+    }
+
     if (s->debug & FF_FDEBUG_TS)
         av_log(s, AV_LOG_DEBUG,
                "read_frame_internal stream=%d, pts=%s, dts=%s, "