]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/asfdec_o.c
avcodec/dpx: Read alternative frame rate from television header
[ffmpeg] / libavformat / asfdec_o.c
index 0a7e47d8cc42db5cb2bf34749b35e32cedc830e1..655ba9f9ef005e438a724be0528a387a1cc23824 100644 (file)
@@ -596,7 +596,8 @@ static int asf_read_metadata_obj(AVFormatContext *s, const GUIDParseTable *g)
         } else {
             if (st_num < ASF_MAX_STREAMS) {
                 if ((ret = process_metadata(s, name, name_len, val_len, type,
-                                            &asf->asf_sd[st_num].asf_met)) < 0) {
+                                            st_num ? &asf->asf_sd[st_num].asf_met
+                                                   : &s->metadata)) < 0) {
                     av_freep(&name);
                     break;
                 }
@@ -1134,9 +1135,7 @@ static void reset_packet(ASFPacket *asf_pkt)
     asf_pkt->duration  = 0;
     asf_pkt->flags     = 0;
     asf_pkt->dts       = 0;
-    asf_pkt->duration  = 0;
     av_packet_unref(&asf_pkt->avpkt);
-    av_init_packet(&asf_pkt->avpkt);
 }
 
 static int asf_read_replicated_data(AVFormatContext *s, ASFPacket *asf_pkt)
@@ -1543,14 +1542,7 @@ static void reset_packet_state(AVFormatContext *s)
     asf->sub_dts           = 0;
     for (i = 0; i < asf->nb_streams; i++) {
         ASFPacket *pkt = &asf->asf_st[i]->pkt;
-        pkt->size_left = 0;
-        pkt->data_size = 0;
-        pkt->duration  = 0;
-        pkt->flags     = 0;
-        pkt->dts       = 0;
-        pkt->duration  = 0;
-        av_packet_unref(&pkt->avpkt);
-        av_init_packet(&pkt->avpkt);
+        reset_packet(pkt);
     }
 }